Annotation of OpenXM_contrib/pari/doc/users.tex, Revision 1.1.1.1
1.1 maekawa 1: % This should be compiled with plain TeX
2: \input parimacro.tex
3: %
4: % START TYPESET
5: %
6: \begintitle
7: \vskip 2.5truecm
8: \centerline{\mine User's Guide}
9: \vskip 1.truecm
10: \centerline{\mine to}
11: \vskip 1.truecm
12: \centerline{\mine PARI-GP}
13: \vskip 1.truecm
14: \authors
15: \centerline{last updated 20 June 1999}
16: \centerline{for version \vers}
17: \endtitle
18:
19: \begintitle
20: \centerline{Table of Contents}\medskip
21: \ifsecondpass
22: \parskip=0pt plus 1pt
23: \parindent=0pt
24: \obeylines\input\jobname.toc
25: \else
26: % toc is 2 pages long
27: \newpage
28: \fi
29: \endtitle
30:
31: \chapno=0
32: { \input usersch1 }
33: { \input usersch2 }
34: { \input usersch3 }
35: { \input usersch4 }
36: { \input usersch5 }
37: { \input appa }
38: { \input appb }
39: { \input appc }
40: %
41: % INDEX
42: %
43:
44: \ifsecondpass\else
45: \condwrite\index{The End}
46: \immediate\condwrite\toc{Index\string\dotfill\the\pageno}
47: \expandafter\end
48: \fi
49: \newpage
50:
51: \newdimen\fullhsize
52: \fullhsize=\hsize
53: \advance\hsize by -20pt
54: \divide\hsize by 2
55:
56: \def\fullline{\hbox to\fullhsize}
57: \let\lr=L\newbox\leftcolumn
58:
59: \headline={\hfil Index\hfil\global\headline={\hfil}}
60:
61: \def\makeheadline{\vbox to 0pt{\vskip-22.5pt
62: \fullline{\vbox to8.5pt{}\the\headline}\vss}
63: \nointerlineskip}
64:
65: \def\makefootline{\baselineskip=24pt\fullline{\the\footline}}
66:
67: \output={\if L\lr %pique dans le TeXbook, p257
68: \global\setbox\leftcolumn=\columnbox\global\let\lr=R
69: \else\doubleformat\global\let\lr=L\fi
70: \ifnum\outputpenalty>-20000\else\dosupereject\fi}
71: \def\doubleformat{\shipout\vbox
72: {\makeheadline
73: \fullline{\box\leftcolumn\hfil\columnbox}
74: \makefootline}
75: \advancepageno}
76: \def\columnbox{\leftline{\pagebody}}
77: \def\parse !#1#2!#3! {%
78: \uppercase{\def\theletter{#1}}\def\theword{#1#2}\def\thepage{#3}}
79: \def\theoldword{}
80: \def\theend{The End }
81: \newif\ifencore
82:
83: \parskip=0pt plus 1pt
84: \parindent=0pt
85: \parfillskip=0pt
86:
87: \newbox\dbox \setbox\dbox=\hbox to 3truemm{\hss.\hss}
88: \newskip\dfillskip \dfillskip=.5em plus .98\hsize
89: \def\dotfill{\leaders\copy\dbox\hskip\dfillskip\relax}
90:
91: %more efficient to parse the glue specs once and keep them in registers
92: %for later use. These govern index lines with too many page numbers to
93: %fit in one line (currently only `Hermite normal form'.)
94: % b: indentation for 2nd and further lines / a: compensation for same,
95: % and shrinkability for the normal word space
96: \newskip\interskipa \interskipa=-.4\hsize plus -1.5\hsize minus .11em
97: \newskip\interskipb \interskipb= .4\hsize plus 1.5\hsize
98:
99: %cf. The TeXBook, App. D, p393 [GN]:
100: \def\interpage{,\penalty100\kern0.33em%normal space
101: \hskip\interskipa\vadjust{}\penalty10000 \hskip\interskipb\relax}
102:
103: \loop
104: \read\std to\theline
105: \ifx\theline\theend\encorefalse\else\encoretrue\fi
106: \ifencore
107: \expandafter\parse\theline
108: \ifx\theletter\theoldletter\else
109: \endgraf\vskip 10pt plus 10pt\centerline
110: {\theletter}\vskip 10pt plus 10pt\fi
111: \let\theoldletter\theletter
112: \ifx\theword\theoldword
113: \ifx\thepage\theoldpage\else\interpage\thepage\fi
114: \else
115: \relax\endgraf\theword\dotfill\thepage\let\theoldword=\theword
116: \fi
117: \let\theoldpage=\thepage
118: \repeat
119: \end
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>