Annotation of OpenXM_contrib/pari/doc/users.tex, Revision 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>