diff options
author | Carlo Zancanaro <carlo@carlo-laptop> | 2012-04-19 16:21:26 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@carlo-laptop> | 2012-04-19 16:21:26 +1000 |
commit | 2ee29b3426d2d79872fba35adbeb8d768983ffec (patch) | |
tree | c1c516816b7fa8d59bea445abd4505860be376bc /tex/presentation/thomas/textpos.sty | |
parent | 5d7252681da3b26845fc4e5dcf0b0e94ed9fabb1 (diff) |
Add presentation; start a different implementation
Diffstat (limited to 'tex/presentation/thomas/textpos.sty')
-rw-r--r-- | tex/presentation/thomas/textpos.sty | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/tex/presentation/thomas/textpos.sty b/tex/presentation/thomas/textpos.sty new file mode 100644 index 0000000..e8c0f34 --- /dev/null +++ b/tex/presentation/thomas/textpos.sty @@ -0,0 +1,367 @@ +%% +%% This is file `textpos.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% textpos.dtx (with options: `package') +%% Textpos: absolute positioning of text on the page +%% This software is copyright, 1999, 2001--2003, 2005--7, 2009 Norman Gray. +%% +%% This program is free software; you can redistribute it and/or +%% modify it under the terms of the GNU General Public License +%% as published by the Free Software Foundation; either version 2 +%% of the License, or (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the Free Software +%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +%% +%% Author: Norman Gray, norman@astro.gla.ac.uk. +%% Department of Physics and Astronomy, University of Glasgow, UK +%% +%% See the file LICENCE for a copy of the GPL. +%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html . +%% +%%% Source: @HGIDENT@ +%% +\def\filename{textpos} +\def\fileversion{1.7f} +\def\filedate{2009/05/28} +\def\docdate{2009 May 28} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{textpos}[\filedate\space v\fileversion] +\typeout{Package: `textpos' \fileversion\space<\docdate>} +\newif\ifTPshowboxes +\TPshowboxesfalse +\DeclareOption{showboxes}{\TPshowboxestrue} +\newif\ifTP@showtext +\TP@showtexttrue +\DeclareOption{noshowtext}{\TP@showtextfalse} +\newif\ifTP@abspos +\TP@absposfalse +\DeclareOption{absolute}{\TP@abspostrue} +\newif\ifTP@overlay +\TP@overlayfalse +\DeclareOption{overlay}{\TP@overlaytrue} +\newif\ifTP@chatter +\TP@chattertrue +\DeclareOption{quiet}{\TP@chatterfalse} +\DeclareOption{verbose}{\TP@chattertrue} +\ProcessOptions +\ifTP@abspos + \RequirePackage{everyshi} +\fi +\def\TP@xfloat#1[#2]{ + \par\def\@captype{#1}% + \@floatpenalty\z@ + \color@vbox + \normalcolor + \vbox\bgroup +} +\def\TP@xympar{ + \PackageError{textpos} + {You can't use \protect\marginpar\space within a textblock} + {You're using textpos because you _don't_ want things to float + around, yes?}} +\newbox\TP@textbox +\ifTP@abspos + \newbox\TP@holdbox % starts off void + \AtEndDocument{\ifvoid\TP@holdbox \else \hbox{}\fi} +\fi +\newdimen\TPHorizModule +\newdimen\TPVertModule +\newdimen\TP@margin +\TP@margin=0pt +\newdimen\TP@absmargin +\TP@absmargin=0pt +\newcommand{\TPMargin}{% + \@ifstar\TPMargin@outer\TPMargin@inner +} +\newcommand{\TPMargin@inner}[1]{% + \TP@margin=#1\relax + \ifdim\TP@margin < 0pt + \PackageError{textpos} + {\protect\TPMargin\space must have a positive argument} + {\protect\TPMargin\space must have a positive argument} + \fi + \TP@absmargin=\TP@margin +} +\newcommand\TPMargin@outer[1]{% + \TP@margin=-#1\relax + \ifdim\TP@margin > 0pt + \PackageError{textpos} + {\protect\TPMargin*\space must have a positive argument} + {\protect\TPMargin*\space must have a positive argument} + \fi + \TP@absmargin=-\TP@margin +} +\def\TPGrid{% + \@ifnextchar[{\@tempswatrue\TP@Grid}{\@tempswafalse\TP@Grid[0pt,0pt]}} +\def\TP@Grid[#1,#2]#3#4{ + \setlength{\@tempdima}{#1} + \multiply\@tempdima by 2 + \TPHorizModule=\paperwidth + \advance\TPHorizModule by -\@tempdima + \divide\TPHorizModule by #3 + \setlength{\@tempdima}{#2} + \multiply\@tempdima by 2 + \TPVertModule=\paperheight + \advance\TPVertModule by -\@tempdima + \divide\TPVertModule by #4 + \ifTP@chatter + \typeout{Grid set #3 x #4 = \the\TPHorizModule\space x \the\TPVertModule}% + \fi + \ifTP@abspos\if@tempswa \textblockorigin{#1}{#2}\fi\fi +} +\TPGrid{16}{16} +\newdimen\TPboxrulesize +\setlength{\TPboxrulesize}{0.4pt} +\def\showtextsize{\normalsize} +\ifTP@abspos + \newdimen\TP@ox + \newdimen\TP@oy +\fi +\def\textblockorigin#1#2{% + \ifTP@abspos + \TP@ox=-1in \addtolength\TP@ox{#1} + \TP@oy=-1in \addtolength\TP@oy{#2} + \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi + \else + \PackageError{textpos} + {The \protect\textblockorigin\space command\MessageBreak + may only be used if the package was given\MessageBreak + the`absolute' option when it was invoked} + {If you want to use the \protect\textblockorigin\space command, then + \MessageBreak + invoke the package with the syntax\MessageBreak + \protect\usepackage[absolute]{textpos}} + \fi + } +\def\textblocklabel#1{\gdef\TP@textblocklabel{#1}} +\def\textblockcolour#1{% + \@ifundefined{color}% + {% + \gdef\TP@blockcolour{}% ignore argument, switch off colour blocking below + \PackageWarning{textpos}{command textblockcolour used, but + {color} package not loaded.\MessageBreak Colour changes ignored.}% + } + {% + \def\@tempa{#1} + \gdef\TP@blockcolour{#1} + \ifx\TP@defaultblockcolour\@undefined + \gdef\TP@defaultblockcolour{#1} + \fi + }} +\def\TP@blockcolour{} % safe initial default +\let\textblockcolor\textblockcolour +\let\tekstblokkulur\textblockcolour +\def\textblockrulecolour#1{% + \@ifundefined{color}% + {% + \gdef\TP@rulecolour{}% ignore argument, switch off colour blocking below + \PackageWarning{textpos}{command textblockrulecolour used, but + {color} package not loaded.\MessageBreak Colour changes ignored.}}% + {% + \def\@tempa{#1} + \gdef\TP@rulecolour{#1}% + }} +\def\TP@rulecolour{black} +\let\textblockrulecolor\textblockrulecolour +\let\tekstblokroolkulur\textblockrulecolour +\@ifundefined{color}% + {\gdef\color#1{}% + \gdef\color@block#1#2#3{}% + }{} +\def\textblock#1{% + \@tempdima=#1\TPHorizModule + \ifvmode\else + \ifmmode + \PackageError{textpos} + {You cannot use textblock in maths mode} + {You may use the textblock environment only in \MessageBreak + vertical mode or horizontal mode (when it triggers a\MessageBreak + new paragraph). You cannot use it in maths mode.} + \else % in horizontal mode + \par % force us back into vertical mode + \fi + \fi + \@ifnextchar[{\TP@textblock}{\TP@textblock[0,0]}%] bracematch +} +\def\TP@textblockstar#1{% + \setlength{\@tempdima}{#1} + \ifvmode\else + \PackageWarning{textpos}{environment textblock* not in vertical mode. + \MessageBreak + Environment textblock* should not have any text\MessageBreak + or printable material appearing before it.\MessageBreak + Alignment may work out wrongly.}% + \par % force us back into vertical mode + \fi + \@ifnextchar[{\TP@textblock}{\TP@textblock[0,0]}%] bracematch +} +\expandafter\let\csname textblock*\endcsname\TP@textblockstar +\newtoks\TP@tbargs +\def\TP@textblock[#1,#2](#3,#4){% + \TP@tbargs={{#1}{#2}{#3}{#4}}% + \let\@xfloat\TP@xfloat + \let\@xympar\TP@xympar + \setbox\TP@textbox=\vbox\bgroup + \ifTPshowboxes + {\color{\TP@rulecolour}\hrule height0pt depth \TPboxrulesize }% + \vskip-\TPboxrulesize + \fi + \ifdim\TP@margin = 0pt + \hsize=\@tempdima + \textwidth\hsize \columnwidth\hsize \linewidth\hsize + \else + \vskip\TP@absmargin + \@tempdimb=\@tempdima % \@tempdimb is outer box width + \hsize=\@tempdima % \hsize is inner box width + \ifdim\TP@margin < 0pt + \advance\@tempdimb by 2\TP@absmargin % bigger box + \else + \advance\hsize by -2\TP@absmargin % narrower content + \fi + \hbox to \@tempdimb\bgroup + \hskip\TP@absmargin\vbox\bgroup + \textwidth\hsize \columnwidth\hsize \linewidth\hsize + \fi + } +\def\endtextblock{\global\@tempswatrue\TP@commonendtextblock} +\@namedef{endtextblock*}{\global\@tempswafalse\TP@commonendtextblock} +\newdimen\TP@prevdepth +\def\TP@commonendtextblock{% + \ifdim\TP@margin = 0pt + \relax + \else + \egroup % end of inner vbox + \hskip\TP@absmargin + \egroup % end of inner hbox + \vskip \TP@absmargin + \fi + \ifTPshowboxes + \vskip-\TPboxrulesize + {\color{\TP@rulecolour}\hrule depth 0pt height \TPboxrulesize}% + \fi + \egroup % end of \TP@textbox + \TP@prevdepth=\prevdepth + \prevdepth=-1000pt % = \nointerlineskip + \expandafter\TP@endtextblock\the\TP@tbargs + } +\def\TP@endtextblock#1#2#3#4{% + \if@tempswa % modular/unstarred endtextblock + \@tempdima=#3\TPHorizModule + \@tempdimb=#4\TPVertModule + \else % absolute/starred endtextblock + \setlength{\@tempdima}{#3} + \setlength{\@tempdimb}{#4} + \fi + \ifdim\TP@margin < 0pt + \advance\@tempdima \TP@margin + \advance\@tempdimb \TP@margin + % #1,#2 are proportions of \TP@textbox size + \@tempdimc=-#1\wd\TP@textbox + \advance\@tempdima\@tempdimc + \@tempdimc=-#2\ht\TP@textbox + \advance\@tempdimb\@tempdimc + \else + % \TP@margin is positive + % #1,#2 are proportions of \TP@framebox size = \TP@textbox+2\TP@margin + \@tempdimc=\wd\TP@textbox + \advance\@tempdimc 2\TP@margin + \@tempdimc=#1\@tempdimc + \advance\@tempdima -\@tempdimc + \@tempdimc=\ht\TP@textbox + \advance\@tempdimc 2\TP@margin + \@tempdimc=#2\@tempdimc + \advance\@tempdimb -\@tempdimc + \fi + \ifTP@abspos + \advance\@tempdima by \TP@ox + \advance\@tempdimb by \TP@oy + \fi + \setbox0=\vbox to 0pt{\vskip\@tempdimb + \hbox to 0pt{\hskip\@tempdima + \ifx\TP@blockcolour\@empty \else + {% defaults for TP@blockcolour mean we should never get here if + % the {color} package is not loaded + \color{\TP@blockcolour}% + \color@block{\wd\TP@textbox}{\ht\TP@textbox}{\dp\TP@textbox}% + }% + \fi + \ifx\TP@defaultblockcolour\@undefined \else + \global\let\TP@blockcolour\TP@defaultblockcolour + \fi + \ifTPshowboxes + {\color{\TP@rulecolour}\vrule width \TPboxrulesize}% + \hskip -\TPboxrulesize + \fi + \ifTP@showtext + \box\TP@textbox + \else + \vbox to\ht\TP@textbox{% + \ifTPshowboxes + {\color{\TP@rulecolour}\hrule depth 0pt height \TPboxrulesize \vskip-\TPboxrulesize}% + \fi + \vskip\smallskipamount + \hbox to\wd\TP@textbox{% + \ifx\TP@textblocklabel\undefined + \hbox{}% + \else + \hskip\smallskipamount + \fbox{\showtextsize \TP@textblocklabel}% + \global\let\TP@textblocklabel\undefined + \fi + \hss + }% + \vss + \ifTPshowboxes + \vskip -\TPboxrulesize + {\color{\TP@rulecolour}\hrule depth 0pt height \TPboxrulesize}% + \fi + }% + \fi + \ifTPshowboxes + \hskip -\TPboxrulesize + {\color{\TP@rulecolour}\vrule width \TPboxrulesize}% + \fi + \hss}% + \vss + }% end of box0 + \ifTP@abspos + \global\setbox\TP@holdbox\vbox{% + \unvbox\TP@holdbox + \box0 + }% + \else + \box0 + \prevdepth=\TP@prevdepth + \fi + }% +\ifTP@abspos + \ifTP@overlay + \EveryShipout{% + \global\setbox\@cclv\vbox{% + \vbox to 0pt{\ifvbox\@cclv \unvbox\@cclv \else \box\@cclv \fi \vss}% + \unvbox\TP@holdbox % TP@holdbox is now void + } + }% + \else + \EveryShipout{% + \global\setbox\@cclv\vbox{% + \unvbox\TP@holdbox + \ifvbox\@cclv \unvbox\@cclv \else \box\@cclv \fi + }% + }% + \fi + \textblockorigin{0pt}{0pt}% +\fi +\endinput +%% +%% End of file `textpos.sty'. |