Annotation of OpenXM_contrib/pari/doc/parimacro.tex, Revision 1.1
1.1 ! maekawa 1: \catcode`\@=11
! 2: \newif\ifgphelp
! 3: \long\def\@ifundef#1#2#3{\expandafter\ifx\csname
! 4: #1\endcsname\relax#2\else#3\fi}
! 5: \@ifundef{fromgphelp}{\gphelpfalse}{\gphelptrue}
! 6:
! 7: \ifgphelp
! 8: \magnification=\magstep1
! 9: \baselineskip=13pt
! 10: \else
! 11: \magnification=\magstephalf
! 12: \fi
! 13:
! 14: \newread\std
! 15: \openin\std=paricfg.tex
! 16: \ifeof\std
! 17: \openin\std=doc/paricfg.tex
! 18: \ifeof\std
! 19: \message{paricfg.tex not found. You should run Configure.}
! 20: % use default values
! 21: \def\vers{2.0.x}
! 22: \def\miscdir{/usr/local/lib/pari}
! 23: \def\includedir{/usr/local/include/pari}
! 24: \def\libdir{/usr/local/lib}
! 25: \def\wwwsite{\kbd{http://hasse.mathematik.tu-muenchen.de/ntsw/pari/}}
! 26: \else
! 27: \input doc/paricfg.tex
! 28: \fi
! 29: \else
! 30: \input paricfg.tex
! 31: \fi
! 32:
! 33: \font\chaptertitlefont=cmr12 scaled \magstep1
! 34: \font\captertitlebf=cmbx10 scaled \magstep2
! 35: \font\sectiontitlebf=cmbx12
! 36: \font\seventt=cmtt8 scaled 875
! 37: \scriptfont\ttfam=\seventt % we should really set the \hyphenchar etc first
! 38: \parskip=6pt plus 3pt minus 1.5pt
! 39: \overfullrule=0pt
! 40:
! 41: %
! 42: % CROSS REFERENCING & INDEX
! 43: %
! 44: \newif\ifsecondpass
! 45: \newwrite\out
! 46: \newwrite\aux
! 47:
! 48: \ifgphelp % disable most of it
! 49: \def\sidx#1{}
! 50: \def\tocwrite#1{}
! 51: \def\label#1{}
! 52: \def\ref#1{[{\bf ??}]}
! 53: \else
! 54: \def\typeout#1{\immediate\write\out{#1}}
! 55: \def\@namedef#1{\expandafter\def\csname #1\endcsname}
! 56: \def\newlabel#1#2{\@ifundef{r@#1}{}{\message{Label `#1' multiply
! 57: defined}}\global\@namedef{r@#1}{#2}}
! 58:
! 59: \openin\std=users.std
! 60: \ifeof\std
! 61: \secondpassfalse
! 62: \typeout{FIRST PASS}
! 63: \csname newwrite\endcsname\toc
! 64: \csname newwrite\endcsname\index
! 65: \openout\toc=\jobname.toc
! 66: \openout\index=\jobname.idx
! 67: \let\condwrite=\write
! 68: \else
! 69: \secondpasstrue
! 70: \typeout{SECOND PASS}
! 71: \let\immediate\relax
! 72: \def\condwrite#1#2{}
! 73: \fi
! 74: % index
! 75: \def\sidx#1{{\condwrite\index{!#1!\the\pageno!}}}
! 76: %cf TeXBook Exercice 21.10
! 77: \def\tocwrite#1{{\let\the=0\edef\next{\condwrite\toc{#1}}\next}}
! 78: % don't use \jobname here, macros may be used by tutorial.tex
! 79: \openin\std=users.aux
! 80: \ifeof\std
! 81: \message{No aux file.}
! 82: \else
! 83: \input users.aux
! 84: \fi
! 85: \openin\std=users.std
! 86:
! 87: % \ref, \label
! 88: \openout\aux=\jobname.aux
! 89:
! 90: \ifx\inputlineno\undefined
! 91: \let\on@line\empty
! 92: \else
! 93: \def\on@line{ on input line \the\inputlineno}
! 94: \fi
! 95: \def\@errundef#1{\typeout{Reference `#1' on page \the\pageno \space
! 96: undefined\on@line}}
! 97:
! 98: \def\@car#1#2\@nil{#1}
! 99: \def\@cdr#1#2\@nil{#2}
! 100:
! 101: \def\@ref{\expandafter\@cdr\@temp \@nil\null}
! 102: \def\@cref{\expandafter\@car\@temp \@nil\null}
! 103:
! 104: \def\label#1{\immediate\write\aux{\string
! 105: \newlabel{#1}{{\the\chapno}{\currentlabel}}}}
! 106: \def\ref#1{\@ifundef{r@#1}
! 107: {{\bf ??}\@errundef{#1}}
! 108: {\edef\@temp{\csname r@#1\endcsname}%
! 109: \def\lbl{\@ref}\def\chp{\@cref}%
! 110: \ifx\chp{\the\chapno}\lbl\else\chp.\lbl\fi}}
! 111: \fi
! 112:
! 113: \def\idx#1{\sidx{#1}#1}
! 114: \def\secref#1{Section~\ref{#1}}
! 115:
! 116: %
! 117: % SECTIONS
! 118: %
! 119: \newcount\appno
! 120: \newcount\chapno
! 121: \newcount\secno
! 122: \newcount\subsecno
! 123: \newcount\subsubsecno
! 124:
! 125: \def\newpage{\hbox{}\vfill\eject}
! 126:
! 127: \def\myhook{}
! 128: \def\title#1#2{%
! 129: \ifodd\pageno\else\newpage\fi
! 130: \tocwrite{#1 #2\string\dotfill\the\pageno}
! 131: \ifgphelp\else
! 132: \centerline{\chaptertitlefont #1}\medskip
! 133: \fi
! 134: \centerline{\let\bf\chaptertitlebf \chaptertitlefont #2}\vskip1cm}
! 135: \def\sectitle#1{%
! 136: \tocwrite{{\sevenrm\hskip0.5cm#1\string\dotfill\the\pageno}}
! 137: \vskip 0pt plus 54pt\penalty-600 % good break
! 138: \vskip 24pt plus -45pt minus 9pt
! 139: \leftline{\myhook{\sectiontitlebf #1}.}\def\myhook{}
! 140: \penalty10000 % impossible break
! 141: \smallskip}% whatever follows will add a \parskip
! 142:
! 143: \def\subsectitle#1{%
! 144: \vskip 0pt plus 45pt\penalty-300
! 145: \vskip 6pt plus -42pt minus 3pt
! 146: \noindent\myhook{\bf{#1}}\def\myhook{}}
! 147:
! 148: \def\subsubsectitle#1{% a \parskip is being added anyway by \noindent
! 149: \par\vskip 0pt plus 39pt\penalty-200
! 150: \vskip 0pt plus -37pt minus 1.5pt
! 151: \noindent\myhook{\bf{#1}}\def\myhook{}}
! 152:
! 153: \ifgphelp
! 154: \def\maketitle#1{#1}
! 155: \else
! 156: \def\maketitle#1{
! 157: \ifnum\chapno=0
! 158: \currentlabel. #1%
! 159: \else
! 160: \number\chapno.\currentlabel\ #1%
! 161: \fi}
! 162: \fi
! 163:
! 164: \def\misctitle#1{\par\vskip 0pt plus 66pt\penalty-400
! 165: \vskip 3pt plus -64pt minus 1.5pt\noindent{\bf #1}}
! 166:
! 167: % Chapter headings now occupy two lines in the manual (still only one in
! 168: % INSTALL.tex and gphelp-extracted bits). Syntax requirement: After calling
! 169: % \chapter{...} and possibly \label{...} etc, an empty line _must_ follow
! 170: % before the first paragraph of text or section heading begins. [GN]
! 171: \def\chapter#1#2\par{
! 172: \secno=0\global\advance\chapno by 1
! 173: \title{Chapter \number\chapno:}{#1}#2\noindent\ignorespaces}
! 174: \def\appendix#1\par{
! 175: \chapno=0
! 176: \secno=0\global\advance\appno by 1
! 177: \title{Appendix %
! 178: \ifcase\appno\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\fi:}%
! 179: {#1}\noindent\ignorespaces}
! 180: \def\section#1{
! 181: \subsecno=0\advance\secno by 1
! 182: \gdef\currentlabel{\number\secno}
! 183: \sectitle{\maketitle{#1}}}
! 184: \def\subsec#1{
! 185: \subsubsecno=0\advance\subsecno by 1
! 186: \gdef\currentlabel{\number\secno.\number\subsecno}
! 187: \subsectitle{\maketitle{#1}}}
! 188: \def\subsubsec#1{
! 189: \advance\subsubsecno by 1
! 190: \gdef\currentlabel{\number\secno.\number\subsecno.\number\subsubsecno}
! 191: \subsubsectitle{\maketitle{#1}}}
! 192:
! 193: \def\unix{\strut\hbox to 0pt{\hss {UNIX: }\indent}}
! 194: \def\unixx{\noindent\strut\hbox to 0pt{\hss {UNIX: }}}
! 195: \def\emacs{\strut\hbox to 0pt{\hss {EMACS: }\indent}}
! 196:
! 197: \def\sectionunix#1{\def\myhook{\unixx{}}\section{#1}}
! 198: \def\unixsubsecunix#1{\def\myhook{\unix{}}\subsec{#1}}
! 199: \def\subsecidxunix#1{\def\myhook{\unix{}}\subsecidx{#1}}
! 200: \def\subsubsecunix#1{\def\myhook{\unix{}}\subsubsec{#1}}
! 201: \def\subsubsecidxunix#1{\def\myhook{\unix{}}\subsubsecidx{#1}}
! 202:
! 203: \def\subseckbd#1{\subsec{\kbd{#1}}}
! 204: \def\subsecidx#1{\subsec{#1}\sidx{#1}}
! 205: \def\subsubsecidx#1{\subsubsec{#1}\sidx{#1}}
! 206: %
! 207: % General purpose
! 208: %
! 209: \def\begintitle{
! 210: \begingroup\nopagenumbers
! 211: \font\mine=cmb10 scaled 1893
! 212: \hbox{}
! 213: }
! 214: \def\authors{
! 215: \centerline{C. Batut, K. Belabas, D. Bernardi, H. Cohen, M. Olivier}
! 216: \vskip 1.truecm
! 217: \centerline{Laboratoire A2X, U.M.R. 9936 du C.N.R.S.}
! 218: \centerline{Universit\'e Bordeaux I, 351 Cours de la Lib\'eration}
! 219: \centerline{33405 TALENCE Cedex, FRANCE}
! 220: \centerline{\tt e-mail: pari@math.u-bordeaux.fr}
! 221: \vskip 2.truecm
! 222: \centerline{Home Page:}
! 223: \centerline{\wwwsite}
! 224: \vskip .5truecm
! 225: \centerline{Primary {\tt ftp} site:}
! 226: \centerline{\tt ftp://megrez.math.u-bordeaux.fr/pub/pari/}
! 227: \vskip 1.truecm
! 228: }
! 229: \def\endtitle{\newpage\endgroup}
! 230:
! 231: \newfam\euffam
! 232: \font\teneuf=eufm10
! 233: \textfont\euffam=\teneuf
! 234: \def\goth#1{{\fam\euffam#1}}
! 235: \def\d{\goth d}
! 236: \def\f{\goth f}
! 237: \def\p{{\bf p}}
! 238: \def\kbd#1{{\tt #1}}
! 239: \def\key#1{{\bf #1}}
! 240: \def\var#1{\hbox{\it #1\/}}
! 241: \def\fl{\var{f\kern0pt lag}}
! 242: \def\synx#1#2#3{\sidx{#3}The library syntax is $\key{#1}({#2})$}
! 243: \def\syn#1#2{\synx{#1}{#2}{#1}}
! 244: \def\synt#1#2{\syn{#1}{\hbox{\tt #2}}}
! 245:
! 246: \def\bs{{\char'134}}
! 247: \def\obr{{\char'173}}
! 248: \def\cbr{{\char'175}}
! 249: \def\pow{\^{}\hskip0pt}
! 250: \def\til{\raise-0.3em\hbox{\~{}}}
! 251: \def\b#1{{\tt \bs#1}}
! 252: \def\mod{\,{\rm mod}\,}
! 253: \def\text#1{{\rm#1}}
! 254: \def\teb#1{{\bf\idx{#1}}}
! 255: \def\tet#1{{\tt\idx{#1}}}
! 256: \def\dfrac#1#2{{{#1}\over{#2}}}
! 257: \def\binom#1#2{\pmatrix{{#1}\cr{#2}}}
! 258: \def\Bbb#1{{\bf #1}}
! 259: \def\typ#1{\kbd{t\_\kern1pt#1}}
! 260: \def\idxtyp#1{\sidx{t\string\_#1}}
! 261: \def\Z{\Bbb Z}
! 262: \def\Q{\Bbb Q}
! 263: \def\F{\Bbb F}
! 264: \def\R{\Bbb R}
! 265: \def\C{\Bbb C}
! 266: \def\dotfill{\leaders\hbox to 3truemm{\hfil.\hfil}\hfill}
! 267:
! 268: \def\bprog{\par\begingroup%
! 269: \def\q{\quad}\def\h{\hbox{}}%
! 270: \tt\obeylines\leavevmode\parskip=0pt plus 1pt%
! 271: \interlinepenalty2000\clubpenalty9000\widowpenalty9000%
! 272: \h}
! 273: % variant of same, for use with tabbing. Tabbing doesn't build paragraphs,
! 274: % the lines go directly into the vlist -- so we must add our own \parskip. [GN]
! 275: \def\bprogtabs{\par\vskip\parskip\begingroup%
! 276: \def\q{\quad}\def\h{\hbox{}}%
! 277: \tt\settabs}
! 278: % both to be ended with:
! 279: \def\eprog{\endgroup\par}
! 280: \catcode`\@=12
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>