blob: 63f30a6a02ffb13ee05621ed7e88acd3c7c72479 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
|