[BACK]Return to users.tex CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari-2.2 / doc

Annotation of OpenXM_contrib/pari-2.2/doc/users.tex, Revision 1.2

1.2     ! noro        1: % $Id: users.tex,v 1.14 2002/03/13 21:05:16 karim Exp $
1.1       noro        2: % Copyright (c) 2000  The PARI Group
                      3: %
                      4: % This file is part of the PARI/GP documentation
                      5: %
                      6: % Permission is granted to copy, distribute and/or modify this document
                      7: % under the terms of the GNU Free Documentation License
                      8:
                      9: % This file should be compiled with plain TeX
                     10: \def\TITLE{User's Guide to Pari-GP}
                     11: \input parimacro.tex
                     12: \ifPDF % PDF output (requires pdftex)
                     13:   \input pdfmacs.tex
                     14: \fi
                     15:
                     16: %
                     17: % START TYPESET
                     18: %
                     19: \begintitle
                     20: \vskip 2.5truecm
                     21: \centerline{\mine User's Guide}
                     22: \vskip 1.truecm
                     23: \centerline{\mine to}
                     24: \vskip 1.truecm
                     25: \centerline{\mine PARI / GP}
                     26: \vskip 1.truecm
                     27: \authors
1.2     ! noro       28: \centerline{last updated 13 March 2002}
1.1       noro       29: \centerline{for version \vers}
                     30: \endtitle
                     31:
                     32: \copyrightpage
                     33:
                     34: \begintitle
                     35: \centerline{Table of Contents}\medskip
                     36: \ifsecondpass
                     37:   \parskip=0pt plus 1pt
                     38:   \parindent=0pt
                     39:   \obeylines\input\jobname.toc
                     40: \else
                     41: % toc is 1 page long, uncomment below if it gets longer
                     42: %  \newpage
                     43: \fi
                     44: \endtitle
                     45:
                     46: \chapno=0
                     47: { \input usersch1 }
                     48: { \input usersch2 }
                     49: { \input usersch3 }
                     50: { \input usersch4 }
                     51: { \input usersch5 }
                     52: { \input appa }
                     53: { \input appb }
                     54: { \input appc }
                     55:
                     56: %%
                     57: %% INDEX (Macros)
                     58: %%
                     59:
                     60: \ifsecondpass\else
                     61:   \condwrite\index{The End}
                     62:   \immediate\condwrite\toc{Index\string\dotfill\the\pageno}
                     63:   \ifPDF \writesecnumbers \fi
                     64:   \expandafter\end % stop here the first time (don't process index)
                     65: \fi
                     66:
                     67: \ifPDF
                     68: % Add a bookmark entry for the index.   CHB
                     69:   \putchapdest
                     70:   \pdfoutline goto name {pdfchap@\the\pdfchapcntr} {Index}
                     71: \fi
                     72:
                     73: \newdimen\fullhsize
                     74: \fullhsize=\hsize
                     75: \advance\hsize by -20pt
                     76: \divide\hsize by 2
                     77:
                     78: \def\fullline{\hbox to\fullhsize}
                     79: \let\lr=L\newbox\leftcolumn
                     80:
                     81: \headline={\hfil\bf Index\hfil\global\headline={\hfil}}
                     82:
                     83: \def\makeheadline{\vbox to 0pt{\vskip-22.5pt
                     84:   \fullline{\vbox to8.5pt{}\the\headline}\vss}
                     85:   \nointerlineskip}
                     86:
                     87: \def\makefootline{\baselineskip=24pt\fullline{\the\footline}}
                     88:
                     89: \output={\if L\lr   %cf. The TeXbook, p257
                     90:   \global\setbox\leftcolumn=\columnbox\global\let\lr=R
                     91:   \else\doubleformat\global\let\lr=L\fi
                     92:   \ifnum\outputpenalty>-20000\else\dosupereject\fi}
                     93: \def\doubleformat{\shipout\vbox
                     94:   {\makeheadline
                     95:   \fullline{\box\leftcolumn\hfil\columnbox}
                     96:   \makefootline}
                     97:   \advancepageno}
                     98: \def\columnbox{\leftline{\pagebody}}
                     99:
                    100: \def\parse!#1#2!#3!#4!#5 {%
                    101:   \uppercase{\def\theletter{#1}}%
                    102:   \def\theword{#1#2}%
                    103:   \def\thefont{#3}%
                    104:   \def\thepage{#4}%
                    105:   \def\thedest{#5}}
                    106:
                    107: \ifPDF
                    108: %% This puts the hyperlink command in the index, linked to the page
                    109: %% number. #1 is the usual page number, #2 the pdfcounter.  CHB
1.2     ! noro      110:   \def\indxjump#1#2{\pdfstartlink attr {/Border [ 0 0 0 ] /H /O}
1.1       noro      111:     goto name {pdf@#2}\pushcolor{\linkcolor}#1\popcolor\pdfendlink}
                    112: \else
                    113:   \def\indxjump#1#2{#1}
                    114: \fi
                    115:
                    116: \def\theoldword{}
                    117: \def\theoldletter{}
                    118: \def\theoldpage{}
                    119: \def\theend{The End }
                    120:
                    121: % more efficient to parse the glue specs once and keep them in registers
                    122: % for later use.  These govern index lines with too many page numbers to
                    123: % fit in one line
                    124: %  b: indentation for 2nd and further lines / a: compensation for same,
                    125: % and shrinkability for the normal word space
                    126: \newbox\dbox \setbox\dbox=\hbox to 3truemm{\hss.\hss}
                    127: \newskip\dfillskip \dfillskip=.5em plus .98\hsize
                    128: \def\dotfill{\leaders\copy\dbox\hskip\dfillskip\relax}
                    129: \newskip\interskipa \interskipa=-.4\hsize plus -1.5\hsize minus .11em
                    130: \newskip\interskipb \interskipb= .4\hsize plus  1.5\hsize
                    131:
                    132: % cf. The TeXbook, p393:
                    133: \def\interpage{,\penalty100\kern0.33em%normal space
                    134:   \hskip\interskipa\vadjust{}\penalty10000 \hskip\interskipb\relax}
                    135:
                    136: \def\newword{\relax\endgraf%
                    137:   {\csname\thefont\endcsname\theword}\dotfill\indxjump{\thepage}{\thedest}%
                    138:   \let\theoldfont\thefont%
                    139:   \let\theoldword\theword}
                    140:
                    141: %%
                    142: %% INDEX
                    143: %%
                    144: \parskip=0pt plus 1pt
                    145: \parindent=0pt
                    146: \parfillskip=0pt
                    147:
                    148: \catcode`\_=11 % make _ an ordinary char (frequent in function names)
                    149:
                    150: \def\li#1{\hbox to\hsize{#1\hfil}}
                    151: \li{\var{SomeWord} refers to PARI-GP concepts.}
                    152: \li{\kbd{SomeWord} is a PARI-GP keyword.}
                    153: \li{SomeWord is a generic index entry.}
                    154:
                    155: \checkfile{users.std}
                    156: \newif\ifmore
                    157: \loop
                    158:   \read\std to\theline
                    159:   \ifx\theline\theend\morefalse\else\moretrue\fi
                    160: \ifmore
                    161:   \expandafter\parse\theline
                    162:   \ifx \theletter \theoldletter \else \endgraf
                    163:     \vskip 10pt plus 10pt\centerline{\bf\theletter}
                    164:     \vskip  6pt plus  7pt
                    165:   \fi
                    166:   \ifx \theword \theoldword
                    167:     \ifx \thefont \theoldfont
                    168:       \ifx \thepage \theoldpage
                    169:       \else \interpage \indxjump{\thepage}{\thedest}\fi
                    170:     \else \newword \fi
                    171:   \else \newword \fi
                    172:   \let\theoldletter\theletter
                    173:   \let\theoldpage\thepage
                    174: \repeat%
                    175: \end

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>