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

Annotation of OpenXM_contrib/pari-2.2/doc/parimacro.tex, Revision 1.1

1.1     ! noro        1: % $Id: parimacro.tex,v 1.11 2001/02/08 17:56:03 karim Exp $
        !             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: \catcode`\@=11
        !            10: %
        !            11: % GENERAL FORMATTING
        !            12: %
        !            13: \newif\ifGPHELP
        !            14: \newif\ifPDF
        !            15: \newread\std
        !            16: \def\checkfile#1{\def\@stdfile{#1}\openin\std=#1\relax}
        !            17: \long\def\@ifundef#1#2#3{\expandafter\ifx\csname
        !            18:   #1\endcsname\relax#2\else#3\fi}
        !            19:
        !            20: % do we come from gphelp ?
        !            21: \@ifundef{fromgphelp}{\GPHELPfalse}{\GPHELPtrue}
        !            22: \ifGPHELP %YES
        !            23:   \magnification=\magstep1
        !            24:   \baselineskip=13pt
        !            25: \else     %NO
        !            26:   \magnification=\magstephalf
        !            27:   \checkfile{wantpdfoutput} % check if we want PDF output
        !            28:   \ifeof\std \else \PDFtrue \fi
        !            29: \fi
        !            30:
        !            31: % if paricfg.tex is there (Configure succeeded), input it, otherwise use
        !            32: % default values
        !            33: \checkfile{paricfg.tex}
        !            34: \ifeof\std
        !            35:   \checkfile{doc/paricfg.tex}
        !            36: \fi
        !            37: \ifeof\std
        !            38:   \ifGPHELP\else% OK for gphelp to use default values
        !            39:     \message{paricfg.tex not found. You should run Configure.}
        !            40:   \fi
        !            41:   \def\vers{2.0.x}
        !            42:   \def\miscdir{/usr/local/lib/pari}
        !            43:   \def\includedir{/usr/local/include/pari}
        !            44:   \def\libdir{/usr/local/lib}
        !            45:   \def\wwwsite{\kbd{http://www.parigp-home.de/}}
        !            46: \else
        !            47:   \input\@stdfile
        !            48: \fi
        !            49:
        !            50: \font\chaptertitlefont=cmr12 scaled \magstep1
        !            51: \font\chaptertitlebf=cmbx10 scaled \magstep2
        !            52: \font\sectiontitlebf=cmbx12
        !            53: \font\seventt=cmtt8 scaled 875
        !            54: \scriptfont\ttfam=\seventt % we should really set the \hyphenchar etc first
        !            55: \parskip=6pt plus 3pt minus 1.5pt
        !            56: \overfullrule=0pt
        !            57:
        !            58: %%
        !            59: %% CROSS REFERENCING & INDEX
        !            60: %%
        !            61: \newif\ifsecondpass
        !            62: \newwrite\out
        !            63: \newwrite\aux
        !            64: \ifGPHELP % disable crossreferences
        !            65:   \def\condwrite#1#2{}
        !            66:   \def\idx#1{#1}
        !            67:   \def\toindex#1{}
        !            68:   \def\tocwrite#1{}
        !            69:   \def\label#1{}
        !            70:   \def\ref#1{[{\bf ??}]} % all crossref marked as [??]
        !            71: \else % none of the following is needed by gphelp
        !            72:   \def\typeout#1{\immediate\write\out{#1}}
        !            73:   \def\@namedef#1{\expandafter\def\csname#1\endcsname}
        !            74:   \def\newlabel#1#2{\@ifundef{r@#1}{}{\message{Label `#1' multiply
        !            75:     defined}}\global\@namedef{r@#1}{#2}}
        !            76:
        !            77:   \openin\std=users.std
        !            78:   \ifeof\std
        !            79:     \secondpassfalse
        !            80:     \typeout{FIRST PASS}
        !            81:     \csname newwrite\endcsname\toc
        !            82:     \csname newwrite\endcsname\index
        !            83:     \openout\toc=\jobname.toc
        !            84:     \openout\index=\jobname.idx
        !            85:     \let\condwrite=\write
        !            86:   \else
        !            87:     \secondpasstrue
        !            88:     \typeout{SECOND PASS}
        !            89:     \let\immediate\relax
        !            90:     \def\condwrite#1#2{}
        !            91:   \fi
        !            92:
        !            93: %default font for index entry
        !            94:   \def\f@nt{rm}
        !            95:
        !            96: %% \toindex{#1} = put #1 in index; use font \f@nt, indicate \pageno.
        !            97: %% If PDF, associate the page to a unique integer (\pdfdestcntr).
        !            98:   \ifPDF
        !            99:     \def\toindex#1{\putdest
        !           100:       \immediate\condwrite\index{!#1!\f@nt!\the\pageno!\number\pdfdestcntr}}
        !           101:   \else
        !           102:     \def\toindex#1{%
        !           103:       \immediate\condwrite\index{!#1!\f@nt!\the\pageno!}}
        !           104:   \fi
        !           105:
        !           106:   \checkfile{users.aux}% don't use \jobname: may be used by tutorial.tex
        !           107:   \ifeof\std
        !           108:     \message{No aux file.}
        !           109:   \else
        !           110:     \input\@stdfile% input aux file if present
        !           111:   \fi
        !           112:
        !           113: % \ref, \label. We need an auxiliary file written during first pass
        !           114:   \openout\aux=\jobname.aux
        !           115:
        !           116:   \ifx\inputlineno\undefined
        !           117:     \let\on@line\empty
        !           118:   \else
        !           119:     \def\on@line{ on input line \the\inputlineno}
        !           120:   \fi
        !           121:   \def\@errundef#1{\typeout{Reference `#1' on page \the\pageno \space
        !           122:     undefined\on@line}}
        !           123:
        !           124:   \def\@car#1#2\@nil{#1}
        !           125:   \def\@cdr#1#2\@nil{#2}
        !           126:
        !           127:   \def\@ref {\expandafter\@cdr\@temp \@nil\null}
        !           128:   \def\@cref{\expandafter\@car\@temp \@nil\null}
        !           129:
        !           130:   \def\label#1{\immediate\write\aux{\string
        !           131:     \newlabel{#1}{{\the\chapno}{\currentlabel}}}}
        !           132:   \def\ref#1{\@ifundef{r@#1}
        !           133:     {{\bf ??}\@errundef{#1}}
        !           134:     {\edef\@temp{\csname r@#1\endcsname}%
        !           135:       \def\lbl{\@ref}\def\chp{\@cref}%
        !           136:       \ifx\chp{\the\chapno}\lbl\else\chp.\lbl\fi}}
        !           137: \fi % end of non-gphelp section
        !           138:
        !           139: %%
        !           140: %% VERBATIM MODE
        !           141: %%
        !           142: % \doverb: setup verbatim mode for the first argument, and execute \do{\arg}
        !           143: \def\setupverb{\def\do##1{\catcode`##1=12}\dospecials
        !           144:   \catcode`\ =10% standard space
        !           145:   \catcode`\f=13% to break ugly ligatures as in nf{}init, use \EFF instead
        !           146: }
        !           147: % f won't produce any ligature if catcode 13, e.g in verbatim mode (cf above).
        !           148: { \let\GDEF=\gdef \global\let\EFF=f \catcode`\f=13
        !           149:   \GDEFf{\EFF{}}}
        !           150:
        !           151: \begingroup
        !           152: \catcode`<=1\catcode`\{=12
        !           153: \catcode`>=2\catcode`\}=12
        !           154: \gdef\d@verb#1<% gobble #1 = {
        !           155:   \def\next##1}<\gdef\@verb<##1>\endgroup%
        !           156:   \do<\@verb>>% \@verb is the (verbatim) argument
        !           157:   \next>
        !           158: \gdef\d@verbb#1<% gobble #1 = {
        !           159:   \def\next##1}{##2}<\gdef\@verba<##1>\gdef\@verbb<##2>\endgroup%
        !           160:   \do<\@verba><\@verbb>>% \@verba, \@verbb are the two (verbatim) argument
        !           161:   \next>
        !           162: %
        !           163: \endgroup
        !           164: \def\doverb {\begingroup\setupverb\d@verb}
        !           165: \def\doverbb{\begingroup\setupverb\d@verbb}
        !           166:
        !           167: % argument (silently) goes to index
        !           168: \def\sidx{\gdef\f@nt{rm}\let\do=\toindex\doverb}   % \rm
        !           169: \def\kbdsidx{\gdef\f@nt{tt}\let\do=\toindex\doverb}% \tt
        !           170:
        !           171: % argument printed + sent to index
        !           172: \def\@idx#1{#1\toindex{#1}}
        !           173: \def\idx{\gdef\f@nt{rm}\let\do=\@idx\doverb}
        !           174:
        !           175: % to index + set up as key (keyword)
        !           176: \def\@keyidx#1{{\bf\@idx{#1}}}
        !           177: \def\teb{\gdef\f@nt{tt}\let\do=\@keyidx\doverb}
        !           178:
        !           179: % to index + set up as kbd (verbatim)
        !           180: \def\@kbdidx#1{{\tt\@idx{#1}}}
        !           181: \def\tet{\gdef\f@nt{tt}\let\do=\@kbdidx\doverb}
        !           182:
        !           183: % to index + set up as var (variable)
        !           184: \def\@kbdvar#1{{\it\@idx{#1}\/}}
        !           185: \def\tev{\gdef\f@nt{it}\let\do=\@kbdvar\doverb}
        !           186:
        !           187: \def\@syn#1#2{\gdef\f@nt{tt}\toindex{#1}The library syntax is $\key{#1}(#2)$}
        !           188: \def\syn{\let\do=\@syn\doverb}
        !           189: \def\@synt#1#2{\@syn{#1}{\hbox{\tt#2}}}
        !           190: \def\synt{\let\do=\@synt\doverb}
        !           191:
        !           192: % function prototypes
        !           193: % types omitted in funs (for chap 3)
        !           194: \def\funno#1#2#3{\noindent{\tt#1 $\key{#2}$(#3)}} % no index
        !           195: \def\@funs#1#2{\gdef\f@nt{tt}\noindent\toindex{#1}$\key{#1}(#2)$}
        !           196: \def\@fun#1#2#3{\gdef\f@nt{tt}\toindex{#2}\funno{#1}{#2}{#3}}
        !           197: \def\fun{\let\do=\@fun\doverbb}
        !           198: \def\funs{\let\do=\@funs\doverb}  % simple fun (omit return type)
        !           199:
        !           200: \def\secref#1{Section~\ref{#1}}
        !           201:
        !           202: %%
        !           203: %% SECTIONS
        !           204: %%
        !           205: \newcount\appno
        !           206: \newcount\chapno
        !           207: \newcount\secno
        !           208: \newcount\subsecno
        !           209: \newcount\subsubsecno
        !           210:
        !           211: \def\newpage{\hbox{}\vfill\eject}
        !           212: %Table of contents. cf TeXBook Exercice 21.10
        !           213: \def\tocwrite#1{{\let\the=0\edef\next{\condwrite\toc{#1}}\next}}
        !           214: \let\putchapdest\relax
        !           215: \let\sectionhook\relax
        !           216:
        !           217: \def\title#1#2{%
        !           218:   \ifodd\pageno\else\newpage\fi
        !           219:   \tocwrite{#1 #2\string\dotfill\the\pageno}
        !           220:   \ifGPHELP\else
        !           221:      \putchapdest
        !           222:      \centerline{\chaptertitlefont #1}\medskip
        !           223:   \fi
        !           224:   \centerline{\let\bf\chaptertitlebf \chaptertitlefont #2}\vskip1cm}
        !           225: \def\sectitle#1{%
        !           226:   \tocwrite{{\sevenrm\hskip0.5cm#1\string\dotfill\the\pageno}}%
        !           227:   \vskip 0pt plus 54pt\penalty-600% good break
        !           228:   \vskip 24pt plus -45pt minus 9pt%
        !           229:   \putchapdest%
        !           230:   \leftline{\sectionhook{\sectiontitlebf #1}.}
        !           231:   \penalty10000 % impossible break
        !           232:   \smallskip}% whatever follows will add a \parskip
        !           233:
        !           234: \def\subsectitle#1{%
        !           235:   \vskip 0pt plus 45pt\penalty-300
        !           236:   \vskip 6pt plus -42pt minus 3pt
        !           237:   \sectionhook\noindent{\bf#1}}
        !           238:
        !           239: \def\subsubsectitle#1{% a \parskip is being added anyway by \noindent
        !           240:   \par\vskip 0pt plus 39pt\penalty-200
        !           241:   \vskip 0pt plus -37pt minus 1.5pt
        !           242:   \sectionhook\noindent{\bf#1}}
        !           243:
        !           244: \ifGPHELP
        !           245:   \let\maketitle\relax
        !           246: \else
        !           247:   \def\maketitle{%
        !           248:   \ifnum\chapno=0
        !           249:     \currentlabel.
        !           250:   \else
        !           251:     \number\chapno.\currentlabel\
        !           252:   \fi}
        !           253: \fi
        !           254:
        !           255: \def\misctitle#1{\par\vskip 0pt plus 66pt\penalty-400
        !           256:   \vskip 3pt plus -64pt minus 1.5pt\noindent{\bf #1}}
        !           257:
        !           258: % Chapter headings occupy two lines in the manual (only one in
        !           259: % INSTALL.tex and gphelp-extracted bits).  Syntax requirement: After calling
        !           260: % \chapter{...} and possibly \label{...}  etc, an empty line _must_ follow
        !           261: % before the first paragraph of text or section heading begins. [GN]
        !           262: \def\chapter#1#2\par{
        !           263:   \secno=0\global\advance\chapno by 1
        !           264:   \title{Chapter \number\chapno:}{#1}#2\noindent\ignorespaces}
        !           265: \def\appendix#1\par{
        !           266:   \chapno=0
        !           267:   \secno=0\global\advance\appno by 1
        !           268:   \def\applet{\ifcase\appno\or A\or B\or C\or D\or E\or F\or G\fi}
        !           269:   \title{Appendix \applet:}{#1}\noindent\ignorespaces}
        !           270: \def\section#1{%
        !           271:   \subsecno=0\global\advance\secno by 1%
        !           272:   \gdef\currentlabel{\number\secno}%
        !           273:   \sectitle{\maketitle#1}}
        !           274: \def\subsec#1{
        !           275:   \subsubsecno=0\global\advance\subsecno by 1
        !           276:   \gdef\currentlabel{\number\secno.\number\subsecno}
        !           277:   \subsectitle{\maketitle#1}}
        !           278: \def\subsubsec#1{
        !           279:   \global\advance\subsubsecno by 1
        !           280:   \gdef\currentlabel{\number\secno.\number\subsecno.\number\subsubsecno}
        !           281:   \subsubsectitle{\maketitle#1}}
        !           282:
        !           283: \def\annotepar#1{\noindent\llap{#1:\ \ }}
        !           284: \def\unix{\annotepar{UNIX}}
        !           285: \def\emacs{\annotepar{EMACS}}
        !           286:
        !           287: \def\@secunix#1{\begingroup\def\sectionhook{\unix{}}\do{#1}\endgroup}
        !           288: \def\sectionunix#1{{\let\do=\section\@secunix{#1}}}
        !           289: \def\subsecunix#1{{\let\do=\subsec\@secunix{#1}}}
        !           290: \def\subsubsecunix#1{{\let\do=\subsubsec\@secunix{#1}}}
        !           291: \def\@subsecidxunix#1{{\let\do=\@subsecidx\@secunix{#1}}}
        !           292: \def\@subsubsecidxunix#1{{\let\do=\@subsubsecidx\@secunix{#1}}}
        !           293:
        !           294: \def\subseckbd#1{\subsec{\kbd{#1}}}
        !           295: \def\@subsecidx#1{\subsec{#1}\toindex{#1}}
        !           296: \def\subsecidx{\gdef\f@nt{tt}\let\do=\@subsecidx\doverb}
        !           297: \def\@subsubsecidx#1{\subsubsec{#1}\toindex{#1}}
        !           298: \def\subsubsecidx{\gdef\f@nt{tt}\let\do=\@subsubsecidx\doverb}
        !           299:
        !           300: \def\subsecidxunix{\gdef\f@nt{tt}\let\do=\@subsecidxunix\doverb}
        !           301: \def\subsubsecidxunix{\gdef\f@nt{tt}\let\do=\@subsubsecidxunix\doverb}
        !           302:
        !           303: %
        !           304: % General purpose
        !           305: %
        !           306: \def\begintitle{
        !           307:   \begingroup\nopagenumbers
        !           308:   \font\mine=cmb10 scaled 1893
        !           309:   \hbox{}
        !           310: }
        !           311: \def\authors{
        !           312:   \centerline{C. Batut, K. Belabas, D. Bernardi, H. Cohen, M. Olivier}
        !           313:   \vskip 1.truecm
        !           314:   \centerline{Laboratoire A2X, U.M.R. 9936 du C.N.R.S.}
        !           315:   \centerline{Universit\'e Bordeaux I, 351 Cours de la Lib\'eration}
        !           316:   \centerline{33405 TALENCE Cedex, FRANCE}
        !           317:   \centerline{\tt e-mail: pari@math.u-bordeaux.fr}
        !           318:   \vskip 2.truecm
        !           319:   \centerline{Home Page:}
        !           320:   \centerline{\wwwsite}
        !           321:   \vskip .5truecm
        !           322:   \centerline{Primary {\tt ftp} site:}
        !           323:   \centerline{\tt ftp://megrez.math.u-bordeaux.fr/pub/pari/}
        !           324:   \vskip 1.truecm
        !           325: }
        !           326:
        !           327: \def\copyrightpage{
        !           328: \begintitle
        !           329: \vskip 14cm
        !           330: \noindent Copyright \copyright\ 2000 The PARI Group
        !           331: \medskip\par
        !           332: \noindent Permission is granted to make and distribute verbatim copies of
        !           333: this manual provided the copyright notice and this permission notice are
        !           334: preserved on all copies.
        !           335: \medskip\par
        !           336: \noindent Permission is granted to copy and distribute modified versions, or
        !           337: translations, of this manual under the conditions for verbatim copying,
        !           338: provided also that the entire resulting derived work is distributed under the
        !           339: terms of a permission notice identical to this one.
        !           340: \bigskip\par
        !           341: \noindent PARI/GP is Copyright \copyright\ 2000 The PARI Group
        !           342: \medskip\par
        !           343: \noindent PARI/GP is free software;  you can redistribute it and/or modify it
        !           344: under the terms of the GNU General Public License as published by the Free
        !           345: Software Foundation. It is distributed in the hope that it will be useful,
        !           346: but WITHOUT ANY WARRANTY WHATSOEVER.
        !           347: \endtitle
        !           348: }
        !           349:
        !           350: \def\endtitle{\newpage\endgroup}
        !           351:
        !           352: \newfam\euffam
        !           353: \font\teneuf=eufm10
        !           354: \textfont\euffam=\teneuf
        !           355: \def\goth#1{{\fam\euffam#1}}
        !           356: \def\d{\goth d}
        !           357: \def\f{\goth f}
        !           358: \def\p{{\bf p}}
        !           359: \def\kbd#1{{\tt #1}}
        !           360: \def\key#1{{\bf #1}}
        !           361: \def\var#1{\hbox{\it #1\/}}
        !           362: \def\fl{\var{f\kern0pt lag}}
        !           363:
        !           364: \def\bs{{\char'134}}
        !           365: \def\obr{{\char'173}}
        !           366: \def\cbr{{\char'175}}
        !           367: \def\pow{\^{}\hskip0pt}
        !           368: \def\til{\raise-0.3em\hbox{\~{}}}
        !           369: \def\b#1{{\tt \bs#1}}
        !           370: \def\mod{\,{\rm mod}\,}
        !           371: \def\text#1{{\rm#1}}
        !           372: \def\dfrac#1#2{{{#1}\over{#2}}}
        !           373: \def\binom#1#2{\pmatrix{{#1}\cr{#2}}}
        !           374: \def\Bbb#1{{\bf #1}}
        !           375: {\catcode`\_=11
        !           376: \gdef\typ#1{\kbd{t_#1}}}
        !           377: \def\Z{\Bbb Z}
        !           378: \def\Q{\Bbb Q}
        !           379: \def\F{\Bbb F}
        !           380: \def\R{\Bbb R}
        !           381: \def\C{\Bbb C}
        !           382: \def\dotfill{\leaders\hbox to 3truemm{\hfil.\hfil}\hfill}
        !           383: \def\B{\kbd{BIL}}
        !           384: \def\op{{\it op\/}}
        !           385:
        !           386: % verbatim mode, leave alone $ and _
        !           387: % @ made active: assume verbatim text doesn't contain it
        !           388: \newif\ifnopar
        !           389: {\catcode`\^=13\global\let^=\pow\obeyspaces\global\let \ }
        !           390: \def\ttverb{%
        !           391:   \nopartrue
        !           392:   \catcode`\\=12%
        !           393:   \catcode`\{=12%
        !           394:   \catcode`\}=12%
        !           395:   \catcode`\&=12%
        !           396:   \catcode`\#=12%
        !           397:   \catcode`\%=12%
        !           398:   \catcode`\^=13%
        !           399:   \catcode`\~=13\def~{{\til}}%
        !           400:   \catcode`\@=0%
        !           401:   \def\par{\futurelet\next\dopars}%
        !           402:   \def\dopars{%
        !           403:     \ifnopar \noparfalse%
        !           404:     \else% treat two consecutive \par specialy
        !           405:       \ifx\next\par \vskip4pt plus 1pt\nopartrue%
        !           406:       \else \leavevmode\endgraf\fi\fi}%
        !           407:   \obeyspaces\obeylines\tt}
        !           408:
        !           409: % back to normalcy
        !           410: \def\unverb{%
        !           411:   \catcode`\\=0%
        !           412:   \catcode`\{=1%
        !           413:   \catcode`\}=2%
        !           414:   \catcode`\$=3%
        !           415:   \catcode`\&=4%
        !           416:   \catcode`\#=6%
        !           417:   \catcode`\^=7%
        !           418:   \catcode`\_=8%
        !           419:   \catcode`\^^I=10}
        !           420:
        !           421: \def\bprogpart{\begingroup%
        !           422:   \vskip 0pt plus 1pt%
        !           423:   \leavevmode\parskip=0pt plus 1pt%
        !           424:   \interlinepenalty2000\clubpenalty9000\widowpenalty9000%
        !           425:   \ttverb}
        !           426:
        !           427: % complete verbatim (including _ and $)
        !           428: \def\bprogfile#1{\bprog\input#1\eprog}
        !           429: \def\bprog{\bprogpart\catcode`\_=12\catcode`\$=12}
        !           430: \def\eprog{\endgroup\par}
        !           431: {\obeylines
        !           432:   \gdef\com{\begingroup\unverb\comstart}
        !           433:   \gdef\comstart#1^^M{\it#1\endgroup
        !           434: } % newline after @endgroup is important
        !           435: }
        !           436: % comments
        !           437: \def\Ccom{\begingroup\unverb\Ccomstart}
        !           438: \def\Ccomstart#1*/{\rm#1\endgroup*/}
        !           439: \catcode`\@=12

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