diff options
Diffstat (limited to 'info/examples/tex-in-practice/x-parsh.tip')
-rw-r--r-- | info/examples/tex-in-practice/x-parsh.tip | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/x-parsh.tip b/info/examples/tex-in-practice/x-parsh.tip new file mode 100644 index 0000000000..63f30a6a02 --- /dev/null +++ b/info/examples/tex-in-practice/x-parsh.tip @@ -0,0 +1,64 @@ +% This macro source file is from the four volume series +% "TeX in Practice" by Stephan von Bechtolsheim, published +% 1993 by Springer-Verlag, New York. +% Copyright 1993 Stephan von Bechtolsheim. +% No warranty or liability is assumed. +% This macro may be copied freely if no fees other than +% media cost or shipping charges are charged and as long +% as this copyright and the following source code itself +% is not changed. Please see the series for further information. +% +% Version: 1.0 +% Date: May 1, 1993 +% +% +% This source code is documented in 12.1.3, p. II-108. +% Original source in file "par3.TEX", starting line 176. +\wlog{L: "x-parsh.tip" ["par3.TEX," l. 176, p. II-108]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\X@ParShapeCountA +\newcount\X@ParShapeCountB +\newcount\X@ParShapeCountC +\newdimen\X@ParShapeDimenA +\newdimen\X@ParShapeDimenB +\def\XParShape{% + \def\X@ParShapeCollect{ }% + \X@ParShapeCountC = 0 + \afterassignment\X@ParShapeB + \X@ParShapeCountA +} +\def\X@ParShapeB{% + \ifnum\X@ParShapeCountA = 0 + \let\@XParShapeNext = \X@ParShapeD + \else + \advance\X@ParShapeCountA by -1 + \let\@XParShapeNext = \X@ParShapeC + \fi + \@XParShapeNext +} +\def\X@ParShapeD{% + \parshape = \X@ParShapeCountC\X@ParShapeCollect +} +\def\X@ParShapeC #1 #2 #3 #4 #5 {% + \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}% + \X@ParShapeDimenA = #2% + \X@ParShapeDimenB = #4% + \DoLoop{\X@ParShapeCountB}{1}{1}{#1}% + {% + \edef\X@ParShapeCollect{% + \space + \X@ParShapeCollect + \the\X@ParShapeDimenA + \space + \the\X@ParShapeDimenB + \space + }% + \advance\X@ParShapeCountC by 1 + \advance\X@ParShapeDimenA by #3\relax + \advance\X@ParShapeDimenB by #5\relax + }% + \X@ParShapeB +} +\catcode`\@ = 12 |