diff options
Diffstat (limited to 'macros/lollipop/tex/lollipop-text.tex')
-rw-r--r-- | macros/lollipop/tex/lollipop-text.tex | 553 |
1 files changed, 0 insertions, 553 deletions
diff --git a/macros/lollipop/tex/lollipop-text.tex b/macros/lollipop/tex/lollipop-text.tex deleted file mode 100644 index d90c0a16b8..0000000000 --- a/macros/lollipop/tex/lollipop-text.tex +++ /dev/null @@ -1,553 +0,0 @@ -% lollipop-text.tex copyright 1992 Victor Eijkhout -% copyright 2014--2016 Vafa Khalighi -% -% -% 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 3 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, see <http://www.gnu.org/licenses/>. -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%% Text Blocks - -\@GenericConstruct{TextBlock} - -% commands can be before and after text -% store in two token lists -% switch from one to other by option 'text' -% this may also be used by ParagraphShape -% -\add@TextBlock@default{ - \def\@current@options@list{before@coms} - \def\switch@lists{\at@breakpointyes - \def\@current@options@list{after@coms}} - } -\@TextBlockOption{text}{\switch@lists} - -\def\@DefineTextBlock{ - \csarg\edef{\@name}{\@gen@open - \the\before@coms - } - \@DefineStopCommand{\the\after@coms \@gen@close} - } - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%% A L I N E A V O R M E N -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% via \everypar: -% \everypar={\@everyeverypar { ...locaal spul... -% \def\par{... \@par\egroup} -\@GenericConstruct{ParagraphShape} - -%%%%!!!!!!!!!!!!!!!! -% not functioning. -% note: \@defaulteverypar is installed now -% as a start@command! - -%% anonieme namen -% \iftempa : moet dit inspringen -% \iftempb : speciale behandeling staart? - -\def\@ParagraphShapeverstekwaardes{ - \tempano \tempbno - \temptoksb={} \temptoksc={} - \def\cs@d{b}\def\@current@options@list{temptoks\cs@d} - } -\def\@DefineParagraphShape{ - \csarg{\edef}{\@name}{% - \CSname{AltijdInspringen\iftempa yes\else no\fi}% - \nxp\everypar={\nxp\@everyeverypar - \iftempb \bgroup \fi - \the\temptoksb - \iftempb \parfillskip\z@ - \else \if@erislinkswit \parfillskip\z@ \fi\fi - \relax - \iftempb \def\nxp\par{\nxp\unskip\nxp\nobreak\the\temptoksc - \hbox{}\nxp\@par\egroup}\fi - }} } - -\@ParagraphShapeNOOP{verticaal} - -%-- inspringen -\@ParagraphShapeOption{inspringen}{ - \if\EqualString{#1}{no}\else\tempayes\fi} - -%-- tekst -\@ParagraphShapeOption{tekst}{\tempbyes\def\cs@d{c}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%% U T I L I T I E S -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%% Space, white space -% -% unit space \@@space is set by switching font style -% -\newdimen\@@space \@@space=.5em -\def\Spaces:#1 {\hskip#1\@@space} - -% handig voor bibliografieen -\def\lax{\tolerance\@m \hfuzz\p@} - - -%%%%%%%%%%%%%%%%%%%%%%% -% White space -% -\NewTrace:skip - -\def\hwhite:#1 {\@hwhite{#1}} -\def\@hwhite#1{\ifhmode\unskip\fi\relax - \if\EqualString{#1}{fillup}\hfill\else\hskip\@ww{#1}\relax\fi} - -% Vertical -% subtle: argument should be placed even if -% size is equal: stretch may be different, -% probably more. (cf \par\vwit{0pt plus 1fil} ) -% -\def\vwhite:#1 {\@vwhite{#1}} -\@GenericOption{vwhite}{\protect@breakpoint - \@add@toks{\@vwhite{#1}}\at@breakpointno} -\def\@vwhite#1{\tempskipa=\@ww{#1}\relax \tempskipb\lastskip - \Tmessage[skip]{Considering vskip \the\tempskipa}% - \ifvmode \ifdim\tempskipb>\tempskipa - \Tmessage[skip]{Ignored. (lastskip=\the\tempskipb)}% - \else \Tmessage[skip]{Backvspacing \the\tempskipb}% - \vskip-\tempskipb - \Tmessage[skip]{Vskip \the\tempskipa}% - \vskip\tempskipa \fi - \else \if\EqualString{#1}{fillup}\hfill - \else\vskip\tempskipa \fi - \fi} - -% advance skip by literal or name of control sequence -\def\advance@skip#1#2{\advance#1\@ww{#2}\relax} - -% only backspace the previous; -% in this case prevent creating a breakpoint -% if there was no glue -% -\def\v@buffer#1{\tempskipa=\@ww{#1}\relax \tempskipb\lastskip - \Tmessage[skip]{Clearing for vskip \the\tempskipa}% - \ifvmode \ifdim\tempskipb>\tempskipa - \else \ifdim\tempskipb=\z@ - \else \vskip-\tempskipb\relax - \Tmessage[skip]{Backspaced}\fi - \fi \fi} -\def\unhskip{\ifhmode\unskip\fi} -\def\leavehmode{\unvbox\voidb@x} -\def\novbreak{\leavehmode\nobreak} - -\def\white:#1 {\@white{#1}} -\@GenericOption{white}{\protect@breakpoint - \@add@toks{\@white{#1}}\at@breakpointyes} -\def\@white#1{\ifhmode\@hwhite{#1}\else - \ifvmode\@vwhite{#1}\fi\fi} -\def\fillup{\@white{0pt plus1fill}} - -\def\@@distance#1{\csarg\newskip{#1}} -\def\Distance:#1=#2 - {\if\UndefinedCS{#1}\@@distance{#1}\fi - \edef\cs@e{\global\noexpand\set@value{#1}% - \if\UndefinedCS{#2}{#2}% - \else \CSname{#2}\fi} - \cs@e} -\def\AdaptiveDistance:#1=#2 {\Distance:#1=#2 - \adds@stop@command - {\ifWriteExtern\immediate\write\aux@file - {\string\Distance:#1={\xp\the\csn#1\ecs}}\fi - }} - -\Distance:filler={0pt plus 1fil} -\parindent=30pt -\parskip=0pt -\parfillskip=0cm plus 1 fil -\baselineskip=12pt - -%%%%%%%%%%%%%%%% Rules -\@GenericOption{rule}{ - \if\EqualString{#1}{h}\protect@breakpoint - \@add@toks{\hrule#2\relax} - \at@breakpointyes - \else\if\EqualString{#1}{v}\@add@toks{\vrule#2\relax} - \else\Wmessage{Strange option: <rule:#1=#2>} - \fi \fi} -\@GenericOption{hrule}{\protect@breakpoint - \@add@toks{\hrule}\at@breakpointyes} -\@GenericOption{vrule}{\@add@toks{\vrule}} - -%%%%%%%%%%%%%%%% Indentation Control -% default value for all paragraphs set by AlwaysIndent -% this one is set by by the user, -% or by 'indentinside' option of paragraph shapes -% -\DefineTest:AlwaysIndent -\AlwaysIndent:yes - -% override by Indent -% can be set by the user, -% or by start/end of text constructs -% -\DefineTest:Indent %forceer/onderdruk inspringen - -% Remove indentation -% this is executed by \every@everypar -% -\def\controlled@indentation - {\ifAlwaysIndent - \ifIndent \else \remove@indent \Indent:yes \fi - \else \ifIndent \Indent:no \else \remove@indent \fi - \fi} -\def\remove@indent{{\setbox0=\lastbox}} - -\def\noindentation{\AlwaysIndentno \Indentno} - -% Indentation control in Universal Block -% control sequences \first@indent \inside@indent \after@indent -% are called (in \edef context) in general open/close macros -% for universal environments - -% Indent after this block -% \global because the block may be in a further group -% -\add@generic@default{\def\after@indent{\global\nxp\Indent:no }} -\@GenericOption{indentafter}{ - \def\after@indent{\global\nxp\Indent:#1 }} - -% Indent in this block -\add@generic@default{\def\inside@indent{}} -\@GenericOption{indentinside}{ - \def\inside@indent{\nxp\AlwaysIndent:#1 }} - -% Indent first in this block -\add@generic@default{\def\first@indent{\nxp\Indent:no }} -\@GenericOption{indentfirst}{ - \def\first@indent{\nxp\Indent:#1 }} - -%%%% Level dependent indentation -% -\NewTrace:indent - -% Lots of commands and parameters -% -% \levelindent is the indentation that will be taken -% on the current level, jumping to the next -% -\newdimen\levelindent - -% \previousindent is the indentation that got us to this level -% list item labels have to outdent over this amount -% -\newdimen\previousindent \previousindent\z@ - -% indentlevel counter: used to generate automatic indentation, -% for instance \levelindentvi for level vi -% -\new@@counter{indentlevel} -\set@counter{indentlevel}1 - -% \set@level@indent : set \levelindent to automatically -% generated indentation; if \levelindentiii is defined take it, -% otherwise use \@@level@indent{3}, which uses fraction -% of a \basicindent -% -\def\set@level@indent{\levelindent= - \level@indent{\cs@counter@name{indentlevel}}} -\def\level@indent - #1{\if\UndefinedCS{\@level@indent{#1}}\@@level@indent{#1}% - \else \csname \@level@indent{#1}\endcsname \fi} -\def\@level@indent#1{levelindent\romannumeral#1} -\def\@@level@indent#1{\ifcase#1\z@\or - \basicindent \or .75\basicindent \else .5\basicindent \fi} - -\DefineTest:BasicIndentIsSet -% the following lines appear as the last command in \Start, -% so that the user can tinker with \parindent -% through adaptive distances or in the style -%\ifBasicIndentIsSet\else\Distance:basicindent=parindent\fi -%\set@level@indent - -% \SetLevelIndent : set exact amount of indentation for -% specific level -% -\def\LevelIndent:#1=#2 {\csarg\edef{\@level@indent{#1}}{\@ww{#2}}} - -% Push/Pop indentlevels -% -\def\PushLeftIndentLevel - {\Tmessage[indent]{Old left indent: \the\leftskip}% - \advance\leftskip\levelindent - \previousindent=\levelindent - \step@counter{indentlevel}\set@level@indent - \Tmessage[indent]{New left indent: \the\leftskip, - at level \the\cs@counter@name{indentlevel}}% - } - -\let\PushIndentLevel\PushLeftIndentLevel % for backwards compatibility - -% Popping an indent level requires two pops: one for the \levelindent -% and one for the \previousindent. This last one then has to be -% pushed again. -% -\def\PopLeftIndentLevel - {\ifnum\cs@counter@name{indentlevel}=\@ne - \Emessage{Pop left indent level attempted at outer level} - \else \back@step@counter{indentlevel}% - \back@step@counter{indentlevel}% - \set@level@indent \previousindent\levelindent - \step@counter{indentlevel}% - \set@level@indent\advance\leftskip-\levelindent - \fi} - -\let\PopIndentLevel\PopLeftIndentLevel % for backwards compatibility - -\def\PushRightIndentLevel - {\Tmessage[indent]{Old right indent: \the\rightskip}% - \advance\rightskip\levelindent - \previousindent=\levelindent - \step@counter{indentlevel}\set@level@indent - \Tmessage[indent]{New right indent: \the\rightskip, - at level \the\cs@counter@name{indentlevel}}% - } - -\def\PopRightIndentLevel - {\ifnum\cs@counter@name{indentlevel}=\@ne - \Emessage{Pop right indent level attempted at outer level} - \else \back@step@counter{indentlevel}% - \back@step@counter{indentlevel}% - \set@level@indent \previousindent\levelindent - \step@counter{indentlevel}% - \set@level@indent\advance\rightskip-\levelindent - \fi} - -\def\PushLeftRightIndentLevels - {\Tmessage[indent]{Old left indent: \the\leftskip}% - \Tmessage[indent]{Old right indent: \the\rightskip}% - \advance\leftskip\levelindent - \advance\rightskip\levelindent - \previousindent=\levelindent - \step@counter{indentlevel}\set@level@indent - \Tmessage[indent]{New left indent: \the\leftskip, - at level \the\cs@counter@name{indentlevel}}% - \Tmessage[indent]{New right indent: \the\rightskip, - at level \the\cs@counter@name{indentlevel}}% - } - -\def\PopLeftRightIndentLevels - {\ifnum\cs@counter@name{indentlevel}=\@ne - \Emessage{Pop left and right indents level attempted at outer level} - \else \back@step@counter{indentlevel}% - \back@step@counter{indentlevel}% - \set@level@indent \previousindent\levelindent - \step@counter{indentlevel}% - \set@level@indent\advance\rightskip-\levelindent - \advance\leftskip-\levelindent - \fi} - -%%%%%%%%%%%%%%%% Paragraph Skip control -% parskip is stored and set to zero at the start and end -% of environments -\newskip\@restoreparskip - -% it is recorded if a parskip has been stored -% -\newif\if@parskipsaved \@parskipsavedno - -% Do no parskip -% used at start of environment -% -\def\hold@parskip - {\@restoreparskip\parskip \parskip\z@ \@parskipsavedyes} - -% Hold off parskip -% used at end of environment -% -\def\dono@parskip{\if@parskipsaved \else \hold@parskip \fi} - -% Reestablish the parskip -% this is executed in \every@everypar -% -\def\controlled@parskip - {\if@parskipsaved \@parskipsavedno - \parskip\@restoreparskip - \fi} - -\def\noparskip{\parskip\z@ \@restoreparskip\z@} - -%%%%%%%%%%%%%%%% Every Paragraph -% \everypar is supposed to contain \every@everypar -% as its first element. -% -\newtoks\EveryParagraph -\def\every@everypar{\controlled@indentation \controlled@parskip - \one@shot@coms \@headedno} -\def\default@everypar{\everypar={\every@everypar\the\EveryParagraph}} -\add@start@command{\default@everypar} -\everypar{\Emessage{You forgot to give the \nxp\Start\@space command.}} - -% Execute once -% -\newtoks\one@shot@toks -\def\one@shot@coms{\temptoksa\one@shot@toks - \global\one@shot@toks={}\the\temptoksa\temptoksa{}} -\def\next@paragraph#1{\append@to@list{one@shot@toks}{#1}} - -%%%%%%%%%%%%%%%% Every Math -% just like \everypar. -% -\newtoks\EveryMath -\newtoks\EveryDisplay -\newtoks\every@everymath \newcount\high@fam -\every@everymath{\high@fam\count18\relax - %\MainFace - \xp\math@setsize\style@sizes} -\everymath{\the\every@everymath\the\EveryMath} -\everydisplay{\the\every@everymath\the\EveryDisplay} - -% Flush margins -% -\Distance:rightmarginstretch={0pt plus 6cm} -\Distance:leftmarginstretch={0pt plus 6cm} -\def\FlushLeft:#1 {\switch {\if\EqualString{#1}} - {yes} {\leftskip=1\leftskip} - {default} {\leftskip=1\leftskip - \advance\leftskip\leftmarginstretch} - \endswitch \relax} -\FlushLeft:yes -\def\FlushRight:#1 {\switch {\if\EqualString{#1}} - {yes} {\rightskip=1\rightskip} - {default} {\rightskip=1\rightskip - \advance\rightskip\rightmarginstretch} - \endswitch \relax} -\FlushRight:yes - - -% French Spacing -% -\def\FrenchSpacing:#1 {\switch {\if\EqualString{#1}} - {yes} {\frenchspacing} - {no} {\nonfrenchspacing} - \endswitch \relax} -\FrenchSpacing:no - -%%%%%%% lijn -% #1 : hoogte; #2 : lengte; #3 : elevatie -% parameters kunnen van achter af aan weggelaten worden; -% #4 is dummy, kan niet door de gebruiker gespecificeerd worden. -% NNNNNNNNNBBBBBBBBBBBBB: #2 werkt nog niet!!!!!!!!!!!! -\newtoks\@lijntoks -\@lijntoks={} - -% Lijn. Hier moet ik nog eens naar kijken. -\@GenericOption{lijn}{ - \edef\cs@e{\nxp\lijnanalyse:#1:\@restarg::::;}\cs@e - \edef\cs@e{\nxp\@add@toks{\nxp\leavevmode\the\@lijntoks}} - \cs@e} - -\def\lijnanalyse:#1:#2:#3:#4;{\@lijntoks={} - \eqstring{#1}{}{}{\achteraanlijst{@lijntoks}{height #1 }} - \eqstring{#2}{}{\vooraanlijst{@lijntoks}{\leaders\hrule depth 0cm } - \achteraanlijst{@lijntoks}{\hfill}}% - {\eqstring{#2}{uitvullen}% - {\vooraanlijst{@lijntoks}{\leaders\hrule depth 0cm } - \achteraanlijst{@lijntoks}{\hfill}}% - {\achteraanlijst{@lijntoks}{width \w@w{#2} }% - \vooraanlijst{@lijntoks}{\vrule depth 0cm }} -% \eqstring{#3}{}{}{\vooraanlijst{@lijntoks}{\raise #3\hbox\bgroup} -% \achteraanlijst{@lijntoks}{\egroup}} - } - \achteraanlijst{@lijntoks}{\hbox{}} % \par doet \unskip!!! - } - - -%%%%%%%%%%%%%%%%%%%%%%%%%%% accenten -\gdef\allowhyphens{\penalty\@M \hskip\z@\relax} - -%{\catcode`\"=12 \gdef\hex{"}} - -%\catcode`\"=13 -%\def "#1{\ifx#1i\discretionary{-}{i}{{\accent'177 \i}}% -\def\"#1{\ifx#1i\discretionary{-}{i}{{\accent'177 \i}}% - \else\ifx#1-\allowhyphens-\penalty\z@\allowhyphens - \else\ifx#1"\hskip\z@\relax -% \else\ifx#1!\hex - \else\ifx#1!" - \else\ifx#1|\allowhyphens - \else {\accent'177 #1}\fi\fi\fi\fi\fi} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%% C A S E -%% -\def\UpperCase#1{\edef\cs@a{\uppercase{#1}}\cs@a} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%% L E T T E R S P A C I N G -%% -\def\LetterSpace - {\ifnextchar[\@LetterSpace %] <- to fool emacs - {\@LetterSpace[0ptplus1fil]}} -\def\@LetterSpace[#1]#2{\def\@LS{\hskip#1\relax}% - \edef\cs@e{#2}\xp\@@LS\cs@e&} -\def\@@LS#1#2&{#1\if\IsEmptyList{#2}\xp\take@one\else\@LS\xp\@@LS\fi#2&} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%% Interdictions -%% -\def\NoHyphenation{\hyphenpenalty\@M \exhyphenpenalty\@M} -\def\NoWidows{\widowpenalty\@M} -\def\NoOrphans{\clubpenalty\@M} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%% V E R B A T I M -%% - -\def\setupverbatim{\let\do=\makeother \dospecials} - -%% inline verbatim -\def\ver{\leavevmode\begingroup \setupverbatim \obeyspaces\tt \@ver} -\def\@ver#1{\def\@@ver##1#1{##1\endgroup}\@@ver} - -%% display verbatim -{\activecr % - \gdef\vVer>{\setupverbatim \obeyspaces % - \tt \parindent\z@ \noparskip \obeylines % - \ifnextchar - \@@Ver\@Ver}\noeol % - \gdef\@Ver#1<Rev{#1\VerStop}% - \gdef\@@Ver - #1<Rev{#1\VerStop}} - -%% verbatim files -\def\verbatimfile#1{\begingroup - \setupverbatim \obeyspaces \parindent\z@ \noparskip \obeylines % - \tt \input#1\relax - \endgroup} - -\endinput - -% 2016/05/14 defined \FrenchSpacing -% 2016/04/14 defined \PushLeftIndentLevel, \PopLeftIndentLevel, -% \PushRightIndentLevel, \PopRightIndentLevel, -% \PushLeftRightIndentLevels, and \PopLeftRightIndentLevels -% commands. \PushIndentLevel is now a synonym for -% \PushLeftIndentLevel and \PopIndentLevel is a synonym -% for \PopLeftIndentLevel -% 2014/04/13 defined \EveryParagraph, \EveryMath, and \EveryDisplay -% 2014/04/12 changed "#1 cs to \"#1 cs to be compatible with plain; -% also we can not make " active since it is used by xetex for font selection -% 92/11/08 white options created; -% breakpoint protection in white options -% 92/11/18 AdaptiveDistance implemented -% 92/11/20 \set@counter calls updated for \w@w use -% 92/12/14 default flush right |