summaryrefslogtreecommitdiff
path: root/info/examples/tip/ola-2p.tip
blob: 69b86108fa5b6400a58fd0b35f309cb4439cde2a (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
% 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 36.2.4, p. IV-141.
% Original source in file "o3.TEX", starting line 444.
\wlog{L: "ola-2p.tip" ["o3.TEX," l. 444, p. IV-141]}%
% This file DOES NOT belong to format "texip."
\InputD{namedef.tip}
\catcode`\@ = 11
\def\FigurePlacementFileName{\jobname.fip }
\newcount\Fco
\newread\FigurePlacementStreamIn
\newwrite\FigurePlacementStreamOut
\def\ReadTheFigurePlacementFile{% 
    \Fco = 1
    \openin\FigurePlacementStreamIn = \FigurePlacementFileName
    \ActuallyReadFigurePlacementFile
    \immediate\openout\FigurePlacementStreamOut =
        \FigurePlacementFileName
}
\def\ActuallyReadFigurePlacementFile{%
    \ifeof\FigurePlacementStreamIn
        \closein\FigurePlacementStreamIn
        \let\ReadInFigurePlacementFileNext = \relax
    \else
        \read\FigurePlacementStreamIn to \ALineFromTheFile
        \def\ParMeansDone{\par}% 
        \ifx\ALineFromTheFile\ParMeansDone
        \else
            \NameEdef{Fig-\the\Fco}{\ALineFromTheFile}
            \advance\Fco by 1
        \fi
        \let\ReadInFigurePlacementFileNext =
                \ActuallyReadFigurePlacementFile
    \fi
    \ReadInFigurePlacementFileNext
}
\newcount\FBTwoCount
\FBTwoCount = 1
\newif\ifLeftSideCaption
\def\FBTwoPass #1#2#3{% 
    \PrepareFigureBoxes{#1}{#2}{#3}
    \insert\FigureIns{%
        \write\FigurePlacementStreamOut{\the\pageno}
        \if\NameDefinedConditional{Fig-\the\FBTwoCount}% 
            \wlog{Figure \the\FBTwoCount:
                    \NameUse{Fig-\the\FBTwoCount}}%
            \expandafter\ifodd\NameUse{Fig-\the\FBTwoCount}%
                \LeftSideCaptionfalse
            \else
                \LeftSideCaptiontrue
            \fi
        \else
            \LeftSideCaptiontrue
        \fi
        \ifLeftSideCaption
            \hbox{%
                \valign{% 
                    ##\vfil
                \cr
                    \copy 1\cr
                    \copy 0\cr
                }%
            }%
        \else
            \hbox{%
                \valign{% 
                    ##\vfil
                \cr
                    \copy 0\cr
                    \copy 1\cr
                }%
            }%
        \fi
    }
    \advance\FBTwoCount by 1
}
\def\OutCaptionGameTwoPass{%
    \setbox0 = \box\voidb@x
    \setbox1 = \box\voidb@x
    \ifodd\pageno
        \dimen0 = 0pt
        \let\Header = \RightHeader
        \let\Footer = \RightFooter
    \else
        \dimen0 = \DiffWidth
        \let\Header = \LeftHeader
        \let\Footer = \LeftFooter
    \fi
    \shipout\vbox{%
        \hrule height 1pt
        \vskip 5pt
        \Header
        \vskip 12pt
        \ifvoid\FigureIns
        \else
            \box\FigureIns
            \vskip\skip\FigureIns
        \fi
        \moveright\dimen0 \BoxR 255
        \vskip 12pt
        \Footer
    }
    \global\advance\pageno by 1
    \ifnum\outputpenalty > -20000
    \else
        \dosupereject
    \fi
}
\catcode`\@ = 12