summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cutwin/cutwin.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/cutwin/cutwin.dtx')
-rw-r--r--macros/latex/contrib/cutwin/cutwin.dtx221
1 files changed, 98 insertions, 123 deletions
diff --git a/macros/latex/contrib/cutwin/cutwin.dtx b/macros/latex/contrib/cutwin/cutwin.dtx
index e04aca02c8..9c93af47ce 100644
--- a/macros/latex/contrib/cutwin/cutwin.dtx
+++ b/macros/latex/contrib/cutwin/cutwin.dtx
@@ -1,20 +1,23 @@
%% \iffalse meta-comment
%
% cutwin.dtx
-% Author: Peter Wilson, Herries Press (herries dot press at earthlink dot net)
+% Author: Peter Wilson, Herries Press
% and Alan Hoenig
% Copyright 2010 Peter R. Wilson
%
+% Current Maintainer David Carlisle
+% Copyright 2021 Peter R. Wilson, David Carlisle
+%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
-% version 1.3 of this license or (at your option) any
+% version 1.3 of this license or (at your option) any
% later version.
% The latest version of the license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of
% LaTeX version 2003/06/01 or later.
%
-% This work has the LPPL maintenance status "author-maintained".
+% This work has the LPPL maintenance status "maintained".
%
% This work consists of the files listed in the README file.
%
@@ -47,14 +50,13 @@
%
% \fi
%
-% \CheckSum{720}
%
% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
% \DoNotIndex{\@centercr,\@cite}
% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
% \DoNotIndex{\@input,\@ixpt,\@m}
% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
-% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\c@twdima}
% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
@@ -91,9 +93,10 @@
% \DoNotIndex{\wd,\xiipt,\year,\z@}
%
% \changes{v0.1}{2010/09/29}{First public release}
+% \changes{v0.2}{2021/10/13}{Declare registers}
%
% \def\dtxfile{cutwin.dtx}
-% \def\fileversion{v0.1} \def\filedate{2010/09/29}
+% \def\fileversion{v0.2} \def\filedate{2021/10/13}
% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package
% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option
% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file
@@ -107,8 +110,8 @@
% \filedate.}}
%
% \author{%
-% Peter Wilson\thanks{Herries Press, \texttt{herries dot press at earthlink dot net}}
-% and Alan Hoenig
+% Peter Wilson\thanks{Herries Press} and Alan Hoenig\and
+% Maintained by David Carlisle\thanks{https://github.com/latex-package-repositories/cutwin/issues}%
% }
% \date{\filedate}
% \maketitle
@@ -119,7 +122,7 @@
% \end{abstract}
% \tableofcontents
%
-%
+%
%
% \section{Introduction}
%
@@ -131,8 +134,8 @@
% \LaTeX{} \textsc{docstrip} utility which enables the automatic
% extraction of the \LaTeX{} macro source files~\cite{COMPANION}.
%
-% Section~\ref{sec:usc} describes the usage of the \Lpack{cutwin}
-% package and
+% Section~\ref{sec:usc} describes the usage of the \Lpack{cutwin}
+% package and
% commented source code is in Section~\ref{sec:code}.
%
% \section{The \Lpack{cutwin} package} \label{sec:usc}
@@ -169,7 +172,7 @@
% \centering\bfseries
% Text \\ in \\Window \par}
% \newcommand*{\qinwin}{%
-% \centering\bfseries\Huge ?\,
+% \centering\bfseries\Huge ?\,
% \par}
% \let\windowpagestuff\tinwin
% \begin{cutout}{2}{0.2\textwidth}{0.4\textwidth}{3}
@@ -186,18 +189,18 @@
%
% \DescribeEnv{cutout}
% The |cutout| environment, the body of which must be a single paragraph,
-% enables a rectangular window to be cut out of the paragraph with the
+% enables a rectangular window to be cut out of the paragraph with the
% text flowing across the cutout. Use as:\\
% \verb?\begin{cutout}?\marg{numtop}\marg{leftwidth}\marg{rightwidth}\marg{numcut} \\
% where \meta{numtop} is the number of full lines above the window
-% and \meta{numcut} is the number of lines to be cut (giving the height
+% and \meta{numcut} is the number of lines to be cut (giving the height
% of the window).
% The meaning of the lengths \meta{leftwidth} and \meta{rightwidth} depend
% on the location of the cutout:
% \begin{itemize}
-% \item for a centered cutout \meta{leftwidth} and \meta{rightwidth} are the
+% \item for a centered cutout \meta{leftwidth} and \meta{rightwidth} are the
% lengths of the text lines at the left and right sides of the window;
-% \item for an open left cutout \meta{leftwidth} is ignored and
+% \item for an open left cutout \meta{leftwidth} is ignored and
% \meta{rightwidth} is the length of the lines to the right of the cutout; and
% \item for an open right cutout \meta{rightwidth} is ignored and
% \meta{leftwidth} is the length of the lines at the left of the cutout.
@@ -226,7 +229,7 @@
% satisfaction.
%
% \subsection{Shaped cutouts}
-%
+%
% \newcommand*{\mycut}{%
% 0.1\textwidth, 0.3\textwidth,
% 0.2\textwidth, 0.4\textwidth,
@@ -240,27 +243,27 @@
% bordering the cutout. Normally there is text on either side of the
% window but it could be open at either the left or right side of
% the paragraph. It is possible to put a logo or some text in the
-% window. In this paragraph with a shaped cutout I have used a large
+% window. In this paragraph with a shaped cutout I have used a large
% \$ sign as a simple logo.
% \end{shapedcutout}
%
%
% \DescribeEnv{shapedcutout}
% The |shapedcutout| environment, the body of which must be a single paragraph,
-% enables an arbitrary shaped window to be cut out of the paragraph with the
+% enables an arbitrary shaped window to be cut out of the paragraph with the
% text flowing across the cutout. Use as:\\
% \verb?\begin{shapedcutout}?\marg{numtop}\marg{numcut}\marg{shapespec}
% where \meta{numtop} is the number of full lines above the window,
-% \meta{numcut} is the number of lines to be cut (giving the height of
+% \meta{numcut} is the number of lines to be cut (giving the height of
% the window) and
% \meta{shapespec} is the specification of the length of the lines
% bordering the cutout.
%
-% More precisely \meta{shapespec} is a comma-separated list of the
-% lengths of the
+% More precisely \meta{shapespec} is a comma-separated list of the
+% lengths of the
% text lines bordering the window.
% \begin{itemize}
-% \item For a centered cutout one pair of entries are required for each cut
+% \item For a centered cutout one pair of entries are required for each cut
% line denoting the length of the left and right part of the cut line.
% There must be exactly \meta{numcut} pairs.
% \item
@@ -285,7 +288,7 @@
% of the gap in the first line of the
% cutout. The default \cs{picinwindow} is a zero-sized picture whose contents
% is \cs{putstuffinpic}.
-%
+%
% \cs{picinwindow} and \cs{putstuffinpic} are initially defined as
% \begin{verbatim}
% \newcommand*{\picinwindow}{%
@@ -293,8 +296,8 @@
% \putstuffinpic
% \end{picture}}
% \newcommand*{\putstuffinpic}{}
-% \end{verbatim}
-%
+% \end{verbatim}
+%
% You can change \cs{putstuffinpic} to place what you want in the picture.
% For example, to put the large \$ symbol in the shaped cutout paragraph above
% I used:
@@ -333,8 +336,7 @@
% \begin{macrocode}
%<*pkg>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{cutwin}[2010/09/29 v0.1 cutout windows]
-
+\ProvidesPackage{cutwin}[2021/10/13 v0.2 cutout windows]
% \end{macrocode}
%
%
@@ -348,7 +350,6 @@
\newcount\c@twwinlines % window lines
\newcount\c@twtoplines % top lines
\newcount\c@twcnt % a count
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -364,7 +365,6 @@
\newdimen\c@twrtside % right width
\newdimen\c@twtopht % height of top text
\newdimen\c@twvsilg % Vertical Shift or InterLine Glue
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -377,7 +377,6 @@
% \begin{macrocode}
\newtoks\c@twtoka % build of parshape spec
\newtoks\c@twtokb % build of parshape spec
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -396,7 +395,6 @@
\newbox\c@twfinaltext % final assembled cutout paragraph
\newbox\c@twslicea % slice A of window text
\newbox\c@twsliceb % slice B of window text
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -405,6 +403,16 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\c@twdima}
+% \begin{macro}{\c@twdimb}
+% And some lengths.
+% \begin{macrocode}
+\newdimen\c@twdima % formally \@tempdimb
+\newdimen\c@twdimb % formally \@tempdimc
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\opencutleft}
% \begin{macro}{\opencutright}
% \begin{macro}{\opencutcenter}
@@ -423,17 +431,15 @@
% \end{macro}
% \begin{macrocode}
\opencutcenter
-
% \end{macrocode}
%
% \begin{macro}{\cutfuzz}
% An attempt to stop TeX moaning about over/under full h/v boxes.
% \begin{macrocode}
-\newcommand{\cutfuzz}{\vbadness=50000
+\newcommand{\cutfuzz}{\vbadness=50000
\hbadness=50000
% \hfuzz=1pt
\sloppy}
-
% \end{macrocode}
% \end{macro}
%
@@ -442,9 +448,8 @@
% \begin{macrocode}
\newcommand*{\c@twcalcilg}{%
\c@twvsilg=\baselineskip
- \setbox0=\hbox{(}
+ \setbox0=\hbox{(}%
\advance\c@twvsilg-\ht0 \advance\c@twvsilg-\dp0}
-
% \end{macrocode}
% \end{macro}
%
@@ -454,35 +459,34 @@
% \begin{macro}{\pageinwindow}
% \begin{macro}{\windowpagestuff}
% User modifiable macros for putting (\cs{pageinwindow}), via a
-% zero-sized picture,
+% zero-sized picture,
% stuff (\cs{windowpagestuff}) in a cutout window.
% \begin{macrocode}
\newcommand*{\pageinwindow}{%
- \@tempdimc=\c@twwinlines\baselineskip % cutout height
- \@tempdimb=\hsize
+ \c@twdimb=\c@twwinlines\baselineskip % cutout height
+ \c@twdima=\hsize
\ifnum\c@twl@c=\m@ne % openleft
- \advance\@tempdimb -\c@twrtside
+ \advance\c@twdima -\c@twrtside
\else
\ifnum\c@twl@c=\@ne % openright
- \advance\@tempdimb -\c@twlftside
+ \advance\c@twdima -\c@twlftside
\else% center
- \advance\@tempdimb - \c@twlftside
- \advance\@tempdimb - \c@twrtside
+ \advance\c@twdima - \c@twlftside
+ \advance\c@twdima - \c@twrtside
\fi
\fi
\begin{picture}(0,0)%
\put(0,0){%
\raisebox{4pt}{%
%\fbox{%
- \begin{minipage}[t][\@tempdimc][c]{\@tempdimb}
+ \begin{minipage}[t][\c@twdimb][c]{\c@twdima}%
\windowpagestuff
- \end{minipage}
+ \end{minipage}%
%}% end fbox
}% end raisebox
}% end put
\end{picture}}
\newcommand*{\windowpagestuff}{}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -493,13 +497,13 @@
% \verb?\begin{cutout}?\marg{numtop}\marg{leftwidth}\marg{rightwidth}\marg{numcut} \\
% where \meta{numtop} is the number of full lines above the window,
% \meta{leftwidth} and \meta{rightwidth} are the widths of the text
-% at the sides of the window,
-% and \meta{numcut} is the number of lines to be cut (giving the height
+% at the sides of the window,
+% and \meta{numcut} is the number of lines to be cut (giving the height
% of the window).
%
% The basic method is to split the paragraph into three parts (a)
-% the top lines above the window, (b) the window lines and (c) the rest
-% (which will be below the window). \cs{parshape} is used to do the
+% the top lines above the window, (b) the window lines and (c) the rest
+% (which will be below the window). \cs{parshape} is used to do the
% splitting. The top lines are left at their natural length, each line
% crossing the window is treated as a pair of short lines, and the rest
% are left at their natural length.
@@ -527,7 +531,7 @@
\c@twwinlines=#4\relax
\c@twcalcshift \vskip-\c@twvsilg
% \end{macrocode}
-% Open the \cs{c@twrawtext} box, call the \cs{parshape} and start
+% Open the \cs{c@twrawtext} box, call the \cs{parshape} and start
% collecting the text to be windowed.
% \begin{macrocode}
\setbox\c@twrawtext=\vbox\bgroup
@@ -538,12 +542,12 @@
% the interline glue.
% \begin{macrocode}
{\egroup% end \box\c@twrawtext
- \parshape=0 % reset parshape;
+ \parshape=0 % reset parshape;
\c@twcalcilg % find ILG using current font
% \end{macrocode}
% If there are lines above the window, split them off from \cs{c@twrawtext}
% into \cs{c@twfinaltext}.
-% \begin{macrocode}
+% \begin{macrocode}
\ifnum\c@twtoplines>\z@
\setbox\c@twfinaltext=\vsplit\c@twrawtext to\c@twtoplines\baselineskip
\fi
@@ -564,17 +568,17 @@
% \begin{macrocode}
\setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht
% \end{macrocode}
-% Now `compose' the window side(s) text (\cs{c@twholdwin})
+% Now `compose' the window side(s) text (\cs{c@twholdwin})
% into the final set of windowed lines (\cs{c@twwindow}).
-% The process depends on whether the cutout is at the left, right, or center.
+% The process depends on whether the cutout is at the left, right, or center.
% \begin{macrocode}
\ifnum\c@twl@c=\z@% center
- \c@twcompctr{\c@twholdwin}{\c@twwindow}
+ \c@twcompctr{\c@twholdwin}{\c@twwindow}%
\else% left or right
- \c@twcomplftrt{\c@twholdwin}{\c@twwindow}
+ \c@twcomplftrt{\c@twholdwin}{\c@twwindow}%
\fi
% \end{macrocode}
-% Assemble the various boxes into the final box (\cs{c@twfinaltext})
+% Assemble the various boxes into the final box (\cs{c@twfinaltext})
% to be output.
% \begin{macrocode}
\setbox\c@twfinaltext=
@@ -585,13 +589,12 @@
% We're done, hand off the paragraph.
% \begin{macrocode}
\box\c@twfinaltext}
-
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\c@twcompctr}
% \begin{macro}{\c@twfirst}
-% \cs{c@twcompctr}\marg{linepairbox}\marg{composedbox} composes a
+% \cs{c@twcompctr}\marg{linepairbox}\marg{composedbox} composes a
% center window box \meta{linepairbox} consisting of pairs of short
% lines into a box \meta{composedbox} where the pairs have been assembled
% into single lines.
@@ -599,7 +602,7 @@
% \cs{c@twfirst} is used as a flag for indicating the first line of a cutout.
% \begin{macrocode}
\newcommand*{\c@twcompctr}[2]{%
- \def\c@twfirst{1}
+ \def\c@twfirst{1}%
\loop\advance\c@twwinlines\m@ne
% \end{macrocode}
% Get a pair of lines and remove skips.
@@ -626,9 +629,8 @@
\fi
% \end{macrocode}
% \begin{macrocode}
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\ifnum\c@twwinlines>\z@\repeat}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -641,12 +643,12 @@
\loop\advance\c@twwinlines\m@ne
% \end{macrocode}
% For an open window we simply deal with one line at a time, not
-% pairs. In other respects the code is generally similar to that for
+% pairs. In other respects the code is generally similar to that for
% \cs{c@twcompctr}.
% \begin{macrocode}
\setbox\c@twslicea=\vsplit#1 to\baselineskip
\ifnum\c@twl@c=\m@ne% open left, text at right
- \c@twprune{\c@twslicea}{\c@twrtside}
+ \c@twprune{\c@twslicea}{\c@twrtside}%
\ifnum\c@twfirst=\@ne
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\pageinwindow\hfil\box\c@twslicea}}%
@@ -654,10 +656,10 @@
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\box\c@twslicea}}%
\fi
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\ifnum\c@twl@c=\@ne% open right, text at left
- \c@twprune{\c@twslicea}{\c@twlftside}
+ \c@twprune{\c@twslicea}{\c@twlftside}%
\ifnum\c@twfirst=\@ne\relax
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\pageinwindow}}%
@@ -665,11 +667,10 @@
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea}}%
\fi
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\fi
\fi
\ifnum\c@twwinlines>\z@\repeat}
-
% \end{macrocode}
% \end{macro}
%
@@ -683,7 +684,6 @@
\newcommand*{\c@twprune}[2]{%
\unvbox#1 \setbox#1=\lastbox % \box#1 is now an \hbox
\setbox#1=\hbox to#2{\strut\unhbox#1\unskip}}
-
% \end{macrocode}
% \end{macro}
%
@@ -697,7 +697,7 @@
% the number of the top lines plus (twice) the number of window line
% plus one for the remaining lines.
% \begin{macrocode}
- \c@twcnt=\c@twwinlines
+ \c@twcnt=\c@twwinlines
\ifnum\c@twl@c=\z@
\multiply \c@twcnt by \tw@
\fi
@@ -706,7 +706,7 @@
% If there are top lines generate a \verb?0pt \hsize? for each
% \begin{macrocode}
\ifnum\c@twtoplines>\z@
- \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}
+ \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}%
\advance\c@twtoplines -1\relax
\ifnum\c@twtoplines>\z@\repeat
\fi
@@ -728,18 +728,18 @@
% \end{macrocode}
% For open left generate a \verb?\c@twlftside \c@twrtside? for each.
% \begin{macrocode}
- \expandafter{\the\c@twtoka \c@twlftside \c@twrtside}
+ \expandafter{\the\c@twtoka \c@twlftside \c@twrtside}%
\else
\ifnum\c@twl@c=\@ne % openright
% \end{macrocode}
% For open right generate a \verb?\0pt c@twlftside? for each
% \begin{macrocode}
- \expandafter{\the\c@twtoka 0pt \c@twlftside}
+ \expandafter{\the\c@twtoka 0pt \c@twlftside}%
\else %center
% \end{macrocode}
% For centered generate \verb?0pt \c@twlftside 0pt \c@twrtside? for each pair.
% \begin{macrocode}
- \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside}
+ \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside}%
\fi
\fi
\advance\c@twwinlines \m@ne
@@ -749,7 +749,6 @@
% paragraph just generate a single \verb?0pt \hsize?.
% \begin{macrocode}
\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}}
-
% \end{macrocode}
% \end{macro}
%
@@ -767,7 +766,6 @@
\ifnum\c@twl@c=\z@\else
\c@twvsilg=0.5\c@twvsilg
\fi}
-
% \end{macrocode}
% \end{macro}
%
@@ -789,7 +787,6 @@
% Default \cs{putstuffinpic} is empty.
% \begin{macrocode}
\newcommand*{\putstuffinpic}{}
-
% \end{macrocode}
% \end{macro}
%
@@ -798,9 +795,9 @@
% A shaped cutout where the user defines the shape. \\
% \verb?\begin{shapedcutout}?\marg{numtop}\marg{numcut}\marg{shapespec} \\
% where \meta{numtop} is the number of full lines above the window,
-% \meta{numcut} is the number of lines to be cut (giving the height
+% \meta{numcut} is the number of lines to be cut (giving the height
% of the window) and
-% \meta{shapespec} is the user's specification of the shape of the
+% \meta{shapespec} is the user's specification of the shape of the
% surroundings of the cutout. This is in the form of a comma-separated
% list of either the pairs of widths of the left and right texts of a centered
% cutout or the widths of the left or right texts of an open cutout.
@@ -850,42 +847,40 @@
\fi
\setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht
\ifnum\c@twl@c=\z@% center
- \c@twcompoddctr{\c@twholdwin}{\c@twwindow}
- \else% open left or righyt
- \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow}
+ \c@twcompoddctr{\c@twholdwin}{\c@twwindow}%
+ \else% open left or right
+ \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow}%
\fi
\setbox\c@twfinaltext=
\vbox{\ifnum\c@twtoplines>\z@\unvbox\c@twfinaltext\vskip\c@twvsilg\fi
\unvbox\c@twwindow%
\vskip-\c@twvsilg\unvbox\c@twrawtext}%
\box\c@twfinaltext}
-
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\c@twmaketopoddspec}
-% Make up the easy part of the odd \cs{parshape} specification;
+% Make up the easy part of the odd \cs{parshape} specification;
% total number \cs{c@twcnt} and the toplines spec (\cs{c@twtoka}).
% \begin{macrocode}
\newcommand*{\c@twmaketopoddspec}{%
- \c@twcnt=\c@twwinlines
+ \c@twcnt=\c@twwinlines
\ifnum\c@twl@c=\z@
\multiply \c@twcnt by \tw@
\fi
\advance\c@twcnt by \c@twtoplines \advance\c@twcnt by \@ne
%% \c@twcnt is total of toplines + 2(window lines) + 1
- \c@twtoka={}
+ \c@twtoka={}%
\ifnum\c@twtoplines>\z@
- \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}
+ \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}%
\advance\c@twtoplines -1\relax
\ifnum\c@twtoplines>\z@\repeat
\fi}
-
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\c@twaddtospec}
-% Adds a `zero-indented line' to a parshape spec being assembled in
+% Adds a `zero-indented line' to a parshape spec being assembled in
% \cs{c@twtokb}.
% \begin{macrocode}
\newcommand*{\c@twaddtospec}[1]{%
@@ -894,24 +889,23 @@
% \end{macro}
% \begin{macro}{\c@twbuildoddspec}
% \begin{macro}{\c@twxpf}
-% \cs{c@twbuildoddspec}\marg{commalist} builds up the parshape spec for
+% \cs{c@twbuildoddspec}\marg{commalist} builds up the parshape spec for
% the odd cutout lines from the comma-separated list of lengths
% in \meta{commalist}.
%
% \cs{c@twxpf} is a shorthand for \cs{expandafter}
% to try and make the code shorter to read.
% \begin{macro}{\c@twlspec}
-% \cs{c@twlspec} is used as a temporary variable when iterating over
+% \cs{c@twlspec} is used as a temporary variable when iterating over
% a comma-separated list.
% \end{macro}
%
% \begin{macrocode}
\let\c@twxpf\expandafter
\newcommand*{\c@twbuildoddspec}[1]{%
- \c@twtokb={}
+ \c@twtokb={}%
\@for\c@twlspec:=#1\do{%
\c@twxpf\c@twxpf\c@twxpf\c@twaddtospec\c@twxpf{\c@twlspec}}}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -919,34 +913,33 @@
% \begin{macro}{\c@twcompoddctr}
% \begin{macro}{\c@twrounds}
% Compose the lines of an odd shaped center cutout.
-%
+%
% We go through the user's shape list an item at a time but we need to
% collect pairs of items. The \cs{c@twrounds} variable is for managing the
% pairing. \cs{c@twfirst} is a flag for positioning the \cs{picinwindow} in
% the first line of the cutout.
% \begin{macrocode}
\newcommand*{\c@twcompoddctr}[2]{%
- \def\c@twrounds{1}
- \def\c@twfirst{1}
+ \def\c@twrounds{1}%
+ \def\c@twfirst{1}%
\@for\c@twlspec:=\c@twb\do{%
\ifnum\c@twrounds=1
\setbox\c@twslicea=\vsplit#1 to\baselineskip % first of pair
\c@twprune{\c@twslicea}{\c@twlspec}%
- \def\c@twrounds{2}
+ \def\c@twrounds{2}%
\else
\setbox\c@twsliceb=\vsplit#1 to\baselineskip % second of pair
\c@twprune{\c@twsliceb}{\c@twlspec}%
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\picinwindow\hfil\box\c@twsliceb}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\box\c@twsliceb}}%
\fi
- \def\c@twrounds{1}
+ \def\c@twrounds{1}%
\fi}}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -955,7 +948,7 @@
% Compose the open (left or right) lines of an odd shaped cutout.
% \begin{macrocode}
\newcommand*{\c@twcompoddlftrt}[2]{%
- \def\c@twfirst{1}
+ \def\c@twfirst{1}%
\@for\c@twlspec:=\c@twb\do{%
\setbox\c@twslicea=\vsplit#1 to\baselineskip % get a line
\c@twprune{\c@twslicea}{\c@twlspec}%
@@ -963,7 +956,7 @@
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\picinwindow\hfil\box\c@twslicea}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\box\c@twslicea}}%
@@ -973,14 +966,13 @@
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\picinwindow\hfil}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil}}%
\fi
\fi
\fi}}
-
% \end{macrocode}
% \end{macro}
%
@@ -1000,20 +992,3 @@
%
\endinput
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-
-