diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/inrstex/inrsdoc |
Initial commit
Diffstat (limited to 'macros/inrstex/inrsdoc')
54 files changed, 12697 insertions, 0 deletions
diff --git a/macros/inrstex/inrsdoc/boxex.tex b/macros/inrstex/inrsdoc/boxex.tex new file mode 100644 index 0000000000..61acf76af6 --- /dev/null +++ b/macros/inrstex/inrsdoc/boxex.tex @@ -0,0 +1,41 @@ +%-*-tex-*- +%boxexample +\def\wid{{\tt wd}} +\def\hei{{\tt ht}} +\def\dpt{{\tt dp}} +\def\boxpoint{\setbox2=\hbox{\vrule width 8pt height 3pt depth 5pt} \wd2 =0pt + \ht2=0pt \dp2=0pt \hskip -8pt \box2} +\setbox4=\hbox{\hei} +\def\vbrule{\vrule width 1pt} +\def\hbrule{\hrule height 1pt} +\setbox0=\hbox to 1.2in{\vbrule$\longleftarrow \hss \wid \hss\longrightarrow$\vbrule} +\setbox8=\vbox to 2in{\offinterlineskip\hbox to \wd4{\hss$\uparrow$\hss} + \hbox to \wd4{\hss $\Bigg\vert$\hss}\vss + \hbox to \wd4{\hss \hei\hss}\vss + \hbox to \wd4{\hss $\Bigg\vert$\hss} + \hbox to \wd4{\hss$\downarrow$\hss}} +\setbox6=\vbox{\hbox to \wd4{\hss$\uparrow$\hss} + \hbox to \wd4{\hss \dpt\hss} + \hbox to \wd4{\hss$\downarrow$\hss}} + +\def\boxexample{\bigbreak\line{\hss + \vtop{\copy0 \offinterlineskip + \smallskip + \hbrule + \hbox to \wd0{\vbrule height \ht8 + \boxpoint \hss + \hskip 4pt\copy8 \hss + \vbrule height \ht8} + \hbrule + \hbox to \wd0{\vbrule height \ht6 \hss + \copy6 \hss + \vbrule height \ht6} + \hbrule + } + \vtop{\hrule height 0pt + \vskip 1in + \hbox{\qquad \vrule height 6pt width 8pt depth 2pt + \quad $\Leftarrow$ Reference Point} + \vskip 62pt + \hbox{$\Leftarrow$ Baseline}} + \hss}\medskip} diff --git a/macros/inrstex/inrsdoc/genins.tex b/macros/inrstex/inrsdoc/genins.tex new file mode 100644 index 0000000000..cf08172235 --- /dev/null +++ b/macros/inrstex/inrsdoc/genins.tex @@ -0,0 +1,165 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ========= Syntactic Compability Forms ============ +% Each of these has a token list that is inserted before each +% particular insert ... and in a group. +% in \begin... \end.. pairs +\newtoks\everytopinsert +\newtoks\everymidinsert +\newtoks\everypageinsert +\def\begintopinsert{\begingroup\the\everytopinsert\topinsert} +\def\beginmidinsert{\begingroup\the\everymidinsert\midinsert} +\def\beginpageinsert{\begingroup\the\everypageinsert\pageinsert} + +\def\e@ndinsert{\endinsert\endgroup} + +\let\endtopinsert = \e@ndinsert +\let\endmidinsert = \e@ndinsert +\let\endpageinsert = \e@ndinsert + +% ============= Figure, Table, etc inserts ========== + +% Assumptions +% The form is described by three letters, eg "fig" or "tbl" +% If the list file exists, the page info is written. +% \writelistfile must be defined +% \autonumber, \autoreference, \ref, \quietref, \veryraggedright +% If autonumbering is on, then +% \silent, \autofignum .. +% An "fig" form and "tbl" form are defined. These need +% \figurelabel, and \tablelabel respectively. These are +% usually defined in the \englishversion and \versionfrancaise +% The insert forms use \beginmidinsert ... \endmidinsert. + + +% Defaults --- to be set. +% \captiontextfraction ... inrsdef.tex +% \captionskip ... inrsdef.tex +% \topcaptiontrue or \topcaptionfalse ... inrsdef.tex +% \figurelabel or \figlabel ... english.tex or francais.tex +% \tablelabel or \tbllabel ... english.tex or francais.tex +% \captionnumfont ... inrsfont.tex +% \captiontitlefont ... inrsfont.tex +% \captionbodyfont ... inrsfont.tex +% \captionbodyon <off> ... inrsdef.tex + + +% This is a general form for an insert with a caption, under it +% if \topcaptionfalse and over it if \topcaptiontrue +% The particular form is identified with a (usually) three letter sequence +% such as "fig" or "tbl". There can be an associated list file for +% automatic generation of the page list for the items. +% The basic form is a non-floating type, enclosed in $$ ... $$ to give +% correct spacing. This can be put in an insert to make it float. +% Full page forms require \vfill above and/or below for top, bottom, or center. + +% The caption box measures its size and centers the text if it is short +% or puts it in a \vbox which is \captiontextfraction of the \hsize +% if it is not. +% The \captionskip is the spacing between the caption and the actual +% item in the text. This may be a table or figure or .... + +% \let\captionnumfont = \bf +% \let\captiontextfont = \relax % defaults to "outside font" +% \def\captiontextfraction{0.8} + +\def\captionbox#1#2{\setbox0=\hbox{{\captionnumfont #1}\quad #2} + \ifdim 1\wd0 < \captiontextfraction\hsize + \centerline{\unhbox0} + \else + \centerline{\vbox{\hsize=\captiontextfraction\hsize + \veryraggedright + \setbox0=\hbox{{\captionnumfont #1}\quad} + \hangindent=1\wd0 \hangafter=1 + \noindent\unhbox0 + \captiontitlefont #2}}% + \fi} + +% A caption is assumed to have both a <title> that will appear in the +% list, if any and a <caption body> that will appear only when the caption is +% printed. The default is to have \captionbody ... "active" and to turn it +% off when making lists. +% This is done with two commands \captionbodyon and \captionbodyoff +% associated with a <caption body> is a <caption body font> + +\def\captionbodyon{\def\captionbody##1{\captionbodyfont ##1}} +\def\captionbodyoff{\def\captionbody##1{}} + + +% \rect <hor dimen> by <vert dimen>} A centered rectangular box to act +% as a place holder if there is a figure to be pasted in later. +\def\r@ect{\centerline{\vbox{\hrule + \hbox{\vrule height \the\dimen2 + \hskip \dimen0 + \vrule height \the\dimen2} + \hrule + }}} +\def\rect #1by{\dimen0 #1\afterassignment\r@ect \dimen2} + +% ======= This is the general insert form ======= +% #1 is the name of the insert form, #2 is the tag or number, #3 is the title +% #4 is the actual insert form value ... ie figure or table or ... + +% This is the glue specification between the caption and the body of the +% insert + +\newskip\captionskip %\captionskip=2ex + +% This is a switch that controls whether the caption is above or below the +% the body of the insert + +\newif\iftopcaption %\topcaptionfalse % defaulted + +% This is the general form of the insert --- it requires both \autonumber +% and \autoreference to work. By selectively turning on/off these +% switches, multipart figures are possible. + +\def\geninsertform #1#2#3#4{ + \ifautonumber + \silent{\expandafter\csname auto#1num\endcsname{#2}}\relax + \edef\i@nsnum{\csname:@#2\endcsname}\else + \edef\i@nsnum{#2}\fi + {\def\captionbody##1{}\edef\t@out{\noexpand\writelistfile + {#1}{\csname #1tocout\endcsname}{\i@nsnum}{#3}}\t@out}\relax + $$\vbox{\normalbaselines + \iftopcaption + \captionbox{\csname #1label\endcsname\i@nsnum}{#3} + \vskip \captionskip + \centerline{\vbox{#4}} + \else + \centerline{\vbox{#4}} + \vskip \captionskip + \captionbox{\csname #1label\endcsname\i@nsnum}{#3} + \fi + \vss}$$} + + +% ========== Special Cases ============ +% These define simple forms for standard midinserts. It uses +% \beginmidinsert ... \endmidinsert for consistency + +% For Figures +\def\figureform #1#2#3{\geninsertform {fig}{#1}{#2}{#3}} +\def\figlabel{\figurelabel } +\def\figureinsert #1#2#3{\beginmidinsert + \figureform{#1}{#2}{#3} + \endmidinsert } + +%\def\figtocout{\string\figtoc} % actually set in inrsdef.tex + + +% For Tables +\def\tableform #1#2#3{\geninsertform {tbl}{#1}{#2}{#3}} +\def\tbllabel{\tablelabel } +\def\tableinsert #1#2#3{\beginmidinsert + \tableform{#1}{#2}{#3} + \endmidinsert } +%\def\tbltocout{\string\tbltoc} % actually set in inrsdef.tex + + +% Comment ---- \endinsert in Plain has a pre and post \bigskip +% This should probably be removed and the spacing always controlled by +% the $$ ... $$. Instead, if the \everymidinsert form were used it +% would be possible to remove it with \everymidinsert = {\let\bigskip=\relax
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/helphdr.tex b/macros/inrstex/inrsdoc/helphdr.tex new file mode 100644 index 0000000000..52911e89a7 --- /dev/null +++ b/macros/inrstex/inrsdoc/helphdr.tex @@ -0,0 +1,307 @@ + +% -*-tex-*- +% tex 1.1 +% special definitions +\catcode`\@=11 +% subdocument macros fix + +\def\lb{ \li $\bullet$ } + +\def\subdocumentmacros#1{\ifs@ubdocument #1 \fi\s@ubdocumentfalse} + + +%simple line skip +\def\ls{\vskip \baselineskip \noindent} + +%vphantom "bug" +\def\sphantom#1{\setbox0=\hbox{#1} \setbox2=\null \ht2=\ht0 \dp2=\dp0 \box2} + +% INRS +\def\INRS{INRS-\kern-.1emT\'el\'e\-com\-muni\-ca\-tions} + +%check form %will print in proof mode only +\long\def\proofcheck#1{\ifproofmode \par Proofcheck: \par #1 \fi} + +\def\comhead#1{\penaltybreak{-1000}{2.8ex}\centerline{\sssheadfont #1}\smallskip\nobreak} + +\let\tex = \TeX % its easier to type +\def\inprint{INRSprint} +\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} +\def\texbook{\tex book} +\def\plain{{\it plain}} +\def\intex{INRS\mtex} + +\def\vrt{\hbox{\tt\char`\|}} % vertical line +\def\dnArrow{\hbox{\tt\char'14}} % downward arrow +\def\upArrow{\hbox{\tt\char'13}} % upward arrow +\def\]{\hbox{\tt\char`\ }} % visible space + +%special boxits + +\def\hhboxit#1{\hbox{\vrule\vbox{\hrule\hbox{#1}\hrule}\vrule}} +\def\hvboxit#1{\hbox{\vrule\vbox{\hrule\hbox{\vbox{#1}}\hrule}\vrule}} +\def\vvboxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} +\def\vhboxit#1{\vbox{\hrule\hbox{\vrule\vbox{\hbox{#1}}\vrule}\hrule}} +\let \hh=\hhboxit \let \vh=\vhboxit \let \vv=\vvboxit \let \hv=\hvboxit + + + +%========== simple forms for prim,plain,ext ended commands ======= +\def\pri{\leavevmode\llap{$\bullet$\kern 5pt}\nobreak} +\def\pla{\leavevmode\llap{$\diamond$\kern 5pt}\nobreak} +\def\ext{\leavevmode\llap{$\star$\kern 5pt}\nobreak} + +%======== simple multicolumn for symbols and commands +% must fit on single page and have no inserts +% will be balanced + +\newbox\simpgalleybox +\newdimen\simphcolumnsize +\newdimen\simpfirstoffset \simpfirstoffset = 1em +\newtoks\simpcolumnsep \simpcolumnsep = {\vrule\hskip 2em\vrule} +\newcount\simpnumcolumns +\def\setsimphsize{\setbox0=\hbox{\the\simpcolumnsep} + \dimen0= \simpnumcolumns\wd0 %\the\dimen0 + \advance\dimen0 by -\wd0 %\the\dimen0 + \advance\dimen0 by \simpfirstoffset + \dimen2 = \hcolumnsize %\the\dimen2 + \advance\dimen2 by -\dimen0 %\the\dimen0 + \divide\dimen2 by \simpnumcolumns + \global\simphcolumnsize = \dimen2 + } + +\def\beginsimplemulticolumn{ + \setbox\simpgalleybox = \vbox\bgroup \hsize\simphcolumnsize} + + +\def\endsimplemulticolumn{ \egroup \dimen0 = \ht\simpgalleybox + \advance\dimen0 by \dp\simpgalleybox + \divide\dimen0 by \simpnumcolumns + \advance\dimen0 by 0pt % size of split box + \count255=1 + \splitmaxdepth=\maxdepth + \splittopskip=0pt + \setbox2 = \vsplit\simpgalleybox to \dimen0 + \setbox0 = \hbox{\vbox to \dimen0{\unvbox2\vss}} + \loop \ifnum \count255 < \simpnumcolumns + \setbox2 = \vsplit\simpgalleybox to\dimen0 + \setbox0 = \hbox{\unhbox0\the\simpcolumnsep + \vbox to \dimen0{\unvbox2\vss}} + \advance\count255 by 1 + \repeat + \centerline{\box0}} + +%use default values +\def\beginthreecolumn{\begincolumns 3} +\def\begintwocolumn{\begincolumns 2} +\def\begincolumns#1{\par\simpnumcolumns= #1 + \simpfirstoffset = 10pt + \simpcolumnsep = {\hskip 2em} + \setsimphsize + \beginsimplemulticolumn \obeylines + \advance\parskip by 0pt plus 2pt minus 2pt + \parindent =0pt} +\let\endthreecolumn=\endsimplemulticolumn +\let\endmulticolumn=\endsimplemulticolumn +\let\endtwocolumn = \endsimplemulticolumn +%command followed by explanation or short example +\newdimen\descrwd \descrwd = 2.5in +\def\bshortcomlist{\begingroup$$\tabskip=1em plus 1fil + minus 1fil\halign\bgroup##\dotfill&\quad + \vtop{\hsize \descrwd \veryraggedright\noindent\strut ##\strut} \cr} +\def\eshortcomlist{\crcr \egroup$$\endgroup} + + +% macros for verbatim scanning +\chardef\bslash=`\\ +\chardef\other=12 +\def\space{\leavevmode\hskip.5emplus1ptminus1pt\relax} +{\obeyspaces %makes a space active for inside def +\gdef\ttverbatim{\begingroup +\def|{\char`\|}\catcode`\\=\other +\catcode`\{=\other +\catcode`\}=\other +\catcode`\$=\other +\catcode`\&=\other +\catcode`\#=\other +\catcode`\%=\other +\catcode`\~=\other +\catcode`\_=\other +\catcode`\^=\other +\catcode`\<=\other +\catcode`\>=\other +\parindent0pt\parskip0pt plus1pt% +\obeyspaces\let =\space +\obeylines\tt}} + +\def\hendgraf{\endgraf\leavevmode} +\outer\def\begintt{\vskip-\baselineskip$$\let\par=\hendgraf\ttverbatim% +\catcode`\|=0\ttfinish} +{\catcode`\|=0 |catcode`|\=\other% | is temporary escape character +|obeylines% end of line is active +|gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$|vskip-|baselineskip|noindent|ignorespaces}} + +{\catcode`\|=\active \gdef\g@et #1|{\gdef\text{#1}#1\endgroup + \ifindexit \makexref \fi \indexitfalse}} + +\catcode`\|=\active %defines | as an active character in the entire document +{\obeylines \gdef|{\ttverbatim\spaceskip\ttglue\g@et}} +%\def\ttspace{{\tt\hskip\ttglue}} + +% ========= \ in \beginttverbatim ======== +\def\1{\char'134} + +%More useful stuff from TeX manual Header + + +\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet +\def\SS{{\it SS}} % scriptscript style + +% \box\bigdot is a null box with a bullet at its reference point +\newbox\bigdot \newbox\smalldot +\setbox0=\hbox{$\vcenter{}$} % \ht0 is the axis height +\setbox1=\hbox to 0pt{$\hss\bullet\hss$} % bullet is centered on the axis +\setbox\bigdot=\vbox to 0pt{\kern-\ht1 \kern\ht0 \box1 \vss} +\setbox1=\hbox to0pt{$\hss\cdot\hss$} % cdot is centered on the axis +\setbox\smalldot=\vbox to0pt{\kern-\ht1 \kern\ht0 \box1 \vss} + +% \samplebox makes the outline of a box, with big dot at reference point +\def\samplebox#1#2#3#4{% #1=ht, #2=dp, #3=wd, #4=text + {\setbox0=\vtop{\vbox to #1{\hbox to #3{}\vss} + \nointerlineskip + \vbox to #2{}}% now \box0 has the desired ht, dp, and wd + \hbox{\copy\bigdot + \vrule height.2pt depth.2pt width#3% + \kern-#3% + \makelightbox + \kern-#3% + \raise#1\vbox{\hbox to #3{\hss#4\hss} + \kern 3pt}}}} + +% \sampleglue makes glue between sample boxes +\def\sampleglue#1#2{% #1=width, #2=text + \vtop{\hbox to #1{\xleaders\hbox to .5\varunit{\hss\copy\smalldot\hss}\hfil} + \kern3pt + \tabskip 0pt plus 1fil + \halign to #1{\hfil##\cr#2\cr}}} + + +% indexing macros mods of texbook + +% there is an interaction between \beginttverbatim and indexing wrt ^ +% thus change of ^ active to \@ !!!!! + + + +\def\indxx{\xref} +\def\xref{\relax} +\let\@=\indxx +\newif\ifindexit + +{\obeylines +\gdef\makexref{{\def\space{ }\def^^M{*/*}% spaces are important +\xdef\writeit{\write\ind@file{!\text!\space\string\indpg\space\noexpand\number\pageno.}}\writeit}}} + + +\def\indexingon{\openlistfile{ind}\def\xref{\indexittrue}} + + +\def\indexingoff{\closelistfile{ind}\def\xref{\relax}} + + + +% Command description macro +% Format will be +% \bc +% |<command>|\par-- for input +% nobreak +% Block based description +% bigbreak +\def\beginblockmode {\begingroup\parindent=0pt + \parskip= \smallskipamount + \def\nbr{\par\nobreak\smallskip} + \let\sbr=\smallbreak + \let\mbr=\bigbreak + \let\bbr=\bigbreak} +\def\endblockmode{\par\endgroup} + +%multipoint eqalign +\def\multieqalign#1{\,\vcenter{\openup\jot\m@th + \ialign{&\quad\strut\hfil$\displaystyle{##}$&$\displaystyle + {{}##}$\hfil\quad&##\crcr#1\crcr}}\,} + +\bookstyle +%special changes for this book + +\def\cqu{} +\newskip\qsk \qsk=3in plus 1fill +\def\cquote#1#2{\par\vfill\leftskip=\qsk {\it #1}\par\bigskip{\bf #2}} + +\def\pslide #1//#2//{\vfill\hslide #1//#2//} + +\def\chapterstartform{\ifodd\pageno \relax\else + \line{}{\cqu\par\ejectpage}\fi + \gdef\cqu{}\titlepagestyle} +% modification of header format +\def\leftheadertext{\line{\llap{\ssheadfont\folio\qquad}\def\cr{ }CHAPTER + \chnumform: \the\chaptername \hss}} +\def\rightheadertext{\line{\hss\topmark\rlap{\ssheadfont\qquad\folio}}} +\let\chapterhead=\chead +\let\bookstyle=\relax % removes the second try +\input texgraph %POSTCRIPT +\input inrssl%POSTCRIPT + +\def\textpagestyle{} + +\inrsform +\textform +%boxexample +\def\boxexample{ +\def\wid{{\tt wd}} +\def\hei{{\tt ht}} +\def\dpt{{\tt dp}} +\def\boxpoint{\setbox2=\hbox{\vrule width 8pt height 3pt depth 5pt} \wd2 =0pt + \ht2=0pt \dp2=0pt \hskip -8pt \box2} +\setbox4=\hbox{\hei} +\def\vbrule{\vrule width 1pt} +\def\hbrule{\hrule height 1pt} +\setbox0=\hbox to 1.2in{\vbrule$\longleftarrow \hss \wid \hss\longrightarrow$\vbrule} +\setbox8=\vbox to 2in{\offinterlineskip\hbox to \wd4{\hss$\uparrow$\hss} + \hbox to \wd4{\hss $\Bigg\vert$\hss}\vss + \hbox to \wd4{\hss \hei\hss}\vss + \hbox to \wd4{\hss $\Bigg\vert$\hss} + \hbox to \wd4{\hss$\downarrow$\hss}} +\setbox6=\vbox{\hbox to \wd4{\hss$\uparrow$\hss} + \hbox to \wd4{\hss \dpt\hss} + \hbox to \wd4{\hss$\downarrow$\hss}} +\bigbreak\line{\hss + \vtop{\copy0 \offinterlineskip + \smallskip + \hbrule + \hbox to \wd0{\vbrule height \ht8 + \boxpoint \hss + \hskip 4pt\copy8 \hss + \vbrule height \ht8} + \hbrule + \hbox to \wd0{\vbrule height \ht6 \hss + \copy6 \hss + \vbrule height \ht6} + \hbrule + } + \vtop{\hrule height 0pt + \vskip 1in + \hbox{\qquad \vrule height 6pt width 8pt depth 2pt + \quad $\Leftarrow$ Reference Point} + \vskip 62pt + \hbox{$\Leftarrow$ Baseline}} + \hss}\medskip} + + +\def\ftn{} + +\hfuzz=5pt +\let\prule=\relax \let\ptrule=\relax +\marginnotesfalse +\pagetagson + +\ejectpage diff --git a/macros/inrstex/inrsdoc/ieeelogo.ps b/macros/inrstex/inrsdoc/ieeelogo.ps new file mode 100644 index 0000000000..b96c2b8f2a --- /dev/null +++ b/macros/inrstex/inrsdoc/ieeelogo.ps @@ -0,0 +1,685 @@ +%! +%%BoundingBox: 215.040000 362.160000 396.720000 429.840000 +0.240000 0.240000 scale +896 1509 translate +768 282 scale +768 282 true [768 0 0 -282 0 282] {< +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000700000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000001C000000000000000000000000000000000000000000000000000000000000000000F800000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000FF00000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000001FF800000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000003FFC00000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000007FFE000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000FFFF00000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000001FFFF0000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000003FFFF80000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000003FFFFC0000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000007FFFFE00000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000FFFFFE0000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000001FFFFFF000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000001FFFFFF8000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000003FFFFFF8000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000007FFFFFFC0000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00FFFFFFFE000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000001FFFFFFFF00000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000001FFFFFFFF800000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000003FFFFFFFF800000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000007FFFFFFFFC000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0FFFFFFFFFE00000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000001FFFFFFFFFE0000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFF00000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000003FFFFFFFFFF80000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000003FFFFFFFFFFC00000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +7FFFFFFFFFFE0000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000FFFFFFFFFFFF000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFFFF0000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000003FFFFFFFFFFFF8000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000007FFFFFFFFFFFFC0000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000007 +FFFFFC1FFFFFE000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000FFFFFE003FFFFF00000000000000000000000000000000000 +0000000000000000000000001FC00000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000001FFFFF8000FFFFF000 +000000000000000000000000000000000000000000000000000000001FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000003FFFFF03E03FFFF800000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000007FFFFC1FFC1FFFFC000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000FF +FFF87FFF07FFFE00000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000001FFFFE0FFFF83FFFF0000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000003FFFFC3FFFFE1FFFF80 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000007FFFF07FFFFF07FFFC0000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000007FFFE1FFFFFFC3FFFE00000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000001FFF +F83FFFFFFE1FFFE0000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000001FFFF07FFFFFFF07FFF000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000003FFFF0FFFFFFFF83FFF8 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000007FFFC3FFFFFFFFC1FFFC000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000FFFF87FFFFFFFFF0FFFE0000000000000000 +00000000000000000000000000000000000000000FC000000000000000000000000000000007FFFF +F800000000000000000000000000000000000000000000000000000000000000000000000001FFFF +0FFFFFFFFFF87FFF000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000001FFFFFFFFFC00000000000000000000000000000000000000000000 +0000000000000000000000000003FFFE1FFFFFFFFFF81FFF80000000000000000000000000000000 +0000000000000000000000000FC000000000000000000000000000000FFFFFFFFFFF800000000000 +000000000000000000000000000000000000000000000000000000000007FFFC3FFFFFFFFFFE0FFF +C00000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000FFFFFF83FFFFF80000000000000000000000000000000000000000000000000000000000 +00000000000FFFF0FFFFFFFFFFFF07FFE00000000000000000000000000000000000000000000000 +000000000FC00000000000000000000000000007FFF8000000FFFF00000000000000000000000000 +0000000000000000000000000000000000000000001FFFE1FFFFFFFFFFFF83FFF000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000003FFE000000 +0003FFE00000000000000000000000000000000000000000000000000000000000000000003FFFC3 +FFFFFFFFFFFFC1FFF80000000000000000000000000000000000000000000000000000000FC00000 +0000000000000000000000FFE000000000003FFC0000000000000000000000000000000000000000 +000000000000000000000000007FFF87FFFFFFFFFFFFE0FFFC000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000FFE00000000000007FF00000000 +0000000000000000000000000000000000000000000000000000000000FFFF0FFFFFFFFFFFFFF87F +FE0000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00001FF0000000000000007FC0000000000000000000000000000000000000000000000000000000 +0000000001FFFC3FFFFFFFFFFFFFFC3FFF0000000000000000000000000000000000000000000000 +000000000FC0000000000000000000000000FF80000000000000000FF80000000000000000000000 +000000000000000000000000000000000000000003FFF87FFFFFFFFFFFFFFE0FFF80000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000003FE0000000000 +00000003FE0000000000000000000000000000000000000000000000000000000000000007FFF0FF +FFFFFFFFFFFFFF07FF8000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000007F80000000000000000007F80000000000000000000000000000000000000 +0000000000000000000000000FFFF1FFFFFFFE7FFFFFFF83FFC00000000000000000000000000000 +0000000000000000000000000FC000000000000000000000001FC00000000000000000001FC00000 +000000000000000000000000000000000000000000000000000000001FFFE3FFFFFFFC7FFFFFFFE1 +FFE000000000000000000000000000000000000000000000000000000FC000000000000000000000 +003F0000000000000000000007F80000000000000000000000000000000000000000000000000000 +000000003FFFC7FFFFFFFC3FFFFFFFE0FFF000000000000000000000000000000000000000000000 +000000000FC00000000000000000000000780000000000000000000001FC00000000000000000000 +00000000000000000000000000000000000000007FFF9FFFFFFFFC3FFFFFFFF07FFC000000000000 +00000000000000000000000000000000000000000FC00000000000000000000000C0000000000000 +00000000007F000000000000000000000000000000000000000000000000000000000000FFFE3FFF +FFFFF81FFFFFFFFC3FFE00000000000000000000000000000000000000000000000000000FC00000 +0000000000000000078000000000000000000000001F800000000000000000000000000000000000 +000000000000000000000001FFFC7FFFFFFFF81FFFFFFFFE1FFF0000000000000000000000000000 +0000000000000000000000000FC0000000000000000000000E00000000000000000000000007E000 +00000000000000000000000000000000000000000000000000000003FFF8FFFFFFFFF00FFFFFFFFF +0FFF80000000000000000000000000000000000000000000000000000FC000000000000000000000 +3C00000000000000000000000003F000000000000000000000000000000000000000000000000000 +0000000FFFF1FFFFFFFFF00FFFFFFFFF87FFC0000000000000000000000000000000000000000000 +000000000FC0000000000000000000007800000000000000000000000000F8000000000000000000 +000000000000000000000000000000000000001FFFE3FFFFFFFFF00FFFFFFFFFC3FFE00000000000 +00000000000000000000000000000000000000000FC000000000000000000001F0000000000003FF +FC00000000007E000000000000000000000000000000000000000000000000000000003FFFC7FFFF +FFFFE007FFFFFFFFE1FFF0000000000000000000000000000000000000000000000000000FC00000 +0000000000000003C000000000003FFFFFC0000000003F0000000000000000000000000000000000 +00000000000000000000007FFF8FFFFFFFFFE007FFFFFFFFF0FFF800000000000000000000000000 +0000000000000000000000000FC000000000000000000007800000000000FFFFFFF0000000000F80 +000000000000000000000000000000000000000000000000000000FFFF9FFFFFFFFFE007FFFFFFFF +F87FFC000000000000000000000000000000000000000000000000000FC00000000000000000001F +000000000007FFFFFFF80000000007C0000000000000000000000000000000000000000000000000 +000001FFFE3FFFFFFFFFE003FFFFFFFFF83FFE000000000000000000000000000000000000000000 +000000000FC00000000000000000003C00000000000FFFFFFFF80000000003F00000000000000000 +00000000000000000000000000000000000003FFFC7FFFFFFFFFC003FFFFFFFFFC1FFF0000000000 +00000000000000000000000000000000000000000FC00000000000000000007800000000001FFFFF +FFF80000000000F8000000000000000000000000000000000000000000000000000007FFF8FFFFFF +FFFFC001FFFFFFFFFE0FFF800000000000000000000000000000000000000000000000000FC00000 +00000000000000F000000000003FFFFFFF8000000000007C00000000000000000000000000000000 +000000000000000000000FFFF1FFFFFFFFFF8001FFFFFFFFFF07FFE0000000000000000000000000 +0000000000000000000000000FC0000000000000000001E000000000007FFFFFF80000000000003E +00000000000000000000000000000000000000000000000000001FFFE3FFFFFFFFFF8001FFFFFFFF +FF87FFE00000000000000000000000000000000000000000000000000FC0000000000000000003C0 +0000000000FFFFFFE00000000000001F000000000000000000000000000000000000000000000000 +00003FFFC7FFFFFFFFFF8000FFFFFFFFFFC3FFF80000000000000000000000000000000000000000 +000000000FC0000000000000000007800000000001FFFFFF800000000000000F8000000000000000 +0000000000000000000000000000000000007FFF8FFFFFFFFFFF0000FFFFFFFFFFE1FFFC00000000 +00000000000000000000000000000000000000000FC000000000000000000F000000000003FFFFFF +0000000000000007C000000000000000000000000000000000000000000000000001FFFF1FFFFFFF +FFFF0000FFFFFFFFFFF0FFFE0000000000000000000000000000000000000000000000000FC00000 +0000000000001C000000000007FFFFFC0000000000000003E0000000000000000000000000000000 +00000000000000000003FFFE3FFFFFFFFFFF00007FFFFFFFFFFC7FFF000000000000000000000000 +0000000000000000000000000FC000000000000000003C000000000007FFFFFC0000000000000001 +F000000000000000000000000000000000000000000000000007FFFC7FFFFFFFFFFE00007FFFFFFF +FFFC3FFF8000000000000000000000000000000000000000000000000FC000000000000000007800 +000000000FFFFFFC0000000000000000F80000000000000000000000000000000000000000000000 +000FFFF87FFFFFFFFFFE00007FFFFFFFFFFE1FFFC000000000000000000000000000000000000000 +000000000FC00000000000000000F000000000000FFFFFFFC0000000000000007800000000000000 +00000000000000000000000000000000003FFFF0FFFFFFFFFFFE00003FFFFFFFFFFF0FFFF0000000 +00000000000000000000000000000000000000000FC00000000000000001E000000000000FFFFFFF +FF000000000000003C0000000000000000000000000000000000000000000000007FFFF1FFFFFFFF +FFFC00003FFFFFFFFFFF87FFF800000000000000000000000000000000000000000000000FC00000 +000000000001C000000000001FFFFFFFFFF00000000000001E000000000000000000000000000000 +000000000000000000FFFFC3FFFFFFFFFFFC00003FFFFFFFFFFFC3FFFC0000000000000000000000 +0000000000000000000000000FC000000000000000038000000000001FFFFFFFFFFE000000000000 +0F000000000000000000000000000000000000000000000001FFFF87FFFFFFFFFFFC00003FFFFFFF +FFFFE3FFFE00000000000000000000000000000000000000000000000FC000000000000000078000 +000000003FFFFFF00FFFC00000000000070000000000000000000000000000000000000000000000 +03FFFF8FFFFFFFFFFFFC00003FFFFFFFFFFFF1FFFF80000000000000000000000000000000000000 +000000000FC0000000000000000F0000000000007FFFFFF0007FF000000000000780000000000000 +000000000000000000000000000000000FFFFF1FFFFFFFFFFFFF0000FFFFFFFFFFFFF0FFFFC00000 +00000000000000000000000000000000000000000FC0000000000000001E000000000001FFFFFFF0 +000FFC000000000003C0000000000000000000000000000000000000000000001FFFFE1FFFFFFFFF +FFFFC003FFFFFFFFFFFFF87FFFE0000000000000000000000000000000000000000000000FC00000 +00000000001C000000000007FFFFFFF00000FF000000000001E00000000000000000000000000000 +00000000000000003FFFFC3FFFFFFFFFFFFFE00FFFFFFFFFFFFFFC3FFFF000000000000000000000 +0000000000000000000000000FC0000000000000003C00000000001FFFFFFFF000003F8000000000 +01F0000000000000000000000000000000000000000000007FFFF87FFFFFFFFFFFFFF00FFFFFFFFF +FFFFFE1FFFF8000000000000000000000000000000000000000000000FC000000000000000380000 +0000003FFFFFFFF800000FE00000000000F000000000000000000000000000000000000000000000 +FFFFF8FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFF1FFFFC000000000000000000000000000000000000 +000000000FC000000000000000700000000000FF1FFFFFF8000003F8000000000078000000000000 +00000000000000000000000000000001FFFFF1FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFF0FFFFF0000 +00000000000000000000000000000000000000000FC000000000000000F00000000001F81FFFFFFC +000000FE00000000007C00000000000000000000000000000000000000000007FFFFE3FFFFFFFFFF +FFFFF00FFFFFFFFFFFFFFF87FFFF800000000000000000000000000000000000000000000FC00000 +0000000000E00000000007F00FFFFFFC0000003F00000000003C0000000000000000000000000000 +000000000000000FFFFFC7FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFC3FFFFC0000000000000000000 +0000000000000000000000000FC000000000000001E0000000000FC00FFFFFFE0000001F80000000 +001E0000000000000000000000000000000000000000003FFFFF87FFFFFFFFFFFFFFF00FFFFFFFFF +FFFFFFE3FFFFF00000000000000000000000000000000000000000000FC000000000000003C00000 +00001F8007FFFFFF00000007C0000000000E0000000000000000000000000000000000000000007F +FFFF8FFFFFFFFFFBFFFFF00FFFFFFFFFFFFFFFF1FFFFF80000000000000000000000000000000000 +000000000FC00000000000000380000000003E0007FFFFFF80000003F0000000000F000000000000 +000000000000000000000000000001FFFFFF1FFFFFFFFFC03FFFF00FFFFFFFFFFFFFFFF0FFFFFE00 +00000000000000000000000000000000000000000FC0000000000000078000000000FC0007FFFFFF +C0000000F80000000007800000000000000000000000000000000000000003FFFFFF3FFFFFFFFE00 +0FFFF00FFFFBFFFFFFFFFFF87FFFFF0000000000000000000000000000000000000000000FC00000 +000000000F0000000001F00003FFFFFFF00000007C00000000078000000000000000000000000000 +0000000000000FFFFFFC7FFFFFFFF80007FFF00FFFF01FFFFFFFFFFC7FFFFFC00000000000000000 +0000000000000000000000000FC00000000000000E0000000003E00001FFFFFFFC0000003E000000 +0003C0000000000000000000000000000000000000001FFFFFF8FFFFFFFFE00003FFF00FFFF001FF +FFFFFFFE3FFFFFE000000000000000000000000000000000000000000F800000000000001E000000 +0007E00001FFFFFFFE0000000F0000000001C0000000000000000000000000000000000000007FFF +FFF9FFFFFFFF800007FFF00FFFF0007FFFFFFFFF1FFFFFF800000000000000000000000000000000 +000000000F800000000000001E000000000F800000FFFFFFFF800000078000000001E00000000000 +0000000000000000000000000000FFFFFFF1FFFFFFFE00001FFFF00FFFF8003FFFFFFFFF0FFFFFFC +00000000000000000000000000000000000000000FC00000000000003C000000001F0000007FFFFF +FFC0000003C000000001E000000000000000000000000000000000000003FFFFFFE3FFFFFFFC0000 +7FFFF00FFFFFF83FFFFFFFFF8FFFFFFE00000000000000000000000000000000000000000FC00000 +0000000038000000003E0000003FFFFFFFE0000001E000000000F000000000000000000000000000 +000000000007FFFFFFE3FFFFFFF80003FFFFF00FFFFFFE1FFFFFFFFFC7FFFFFF8000000000000000 +0000000000000000000000000FC000000000000078000000007C0000001FFFFFFFF0000000F00000 +0000700000000000000000000000000000000000000FFFFFFFC7FFFFFFF00007FFFFF00FFFFFFF07 +FFFFFFFFC3FFFFFFC0000000000000000000000000000000000000000FC000000000000070000000 +007800000007FFFFFFF80000007800000000780000000000000000000000000000000000000FFFFF +FF87FFFFFFE0000FFFFFF00FFFFFFFC3FFFFFFFFE3FFFFFFE0000000000000000000000000000000 +000000000FC0000000000000F000000000F000000003FFFFFFFC0000007800000000780000000000 +000000000000000000000000001FFFFFFF8FFFFFFFE0003FFFFFF00FFFFFFFE1FFFFFFFFE1FFFFFF +F0000000000000000000000000000000000000000FC0000000000000F000000000F000000001FFFF +FFFE0000003C000000003C0000000000000000000000000000000000001FFFFFFF8FFFFFFFC0007F +FFFFF00FFFFFFFE0FFFFFFFFF1FFFFFFF8000000000000000000000000000000000000000FC00000 +00000000E000000001E0000000007FFFFFFF0000001E000000003C00000000000000000000000000 +00000000003FFFFFFF8FFFFFFFC0007FFFFFF00FFFFFFFF07FFFFFFFF1FFFFFFF800000000000000 +0000000000000000000000000FC0000000000001E000000003C0000000001FFFFFFF0000000F0000 +00001C0000000000000000000000000000000000003FFFFFFF0FFFFFFFC0007FFFFFF00FFFFFFFF0 +7FFFFFFFF0FFFFFFF8000000000000000000000000000000000000000FC0000000000001E0000000 +03C00000000007FFFFFF0000000F800000001E0000000000000000000000000000000000001FFFFF +FF0FFFFFFFC000FFFFFFF00FFFFFFFF07FFFFFFFF0FFFFFFF8000000000000000000000000000000 +000000000FC0000000000001C000000007800000000001FFFFFF80000007800000001E0000000000 +000000000000000000000000001FFFFFFF0FFFFFFFC000FFFFFFF00FFFFFFFF07FFFFFFFF0FFFFFF +F8000000000000000000000000000000000000000FC0000000000003C00000000F0000000000007F +FFFF80000003C00000000E0000000000000000000000000000000000001FFFFFFF0FFFFFFFC0007F +FFFFF00FFFFFFFF07FFFFFFFF0FFFFFFF8000000000000000000000000000000000000000FC00000 +00000003800000000E0000000000003FFFFFC0000003C00000000F00000000000000000000000000 +00000000000FFFFFFF8FFFFFFFE0007FFFFFF00FFFFFFFF07FFFFFFFF0FFFFFFF800000000000000 +0000000000000000000000000FC0000000000003800000001E0000000000000FFFFFC0000001E000 +0000070000000000000000000000000000000000000FFFFFFF87FFFFFFE0007FFFFFF00FFFFFFFE0 +7FFFFFFFF1FFFFFFF0000000000000000000000000000000000000000FC000000000000780000000 +1C00000000000007FFFFC0000001E00000000700000000000000000000000000000000000007FFFF +FF87FFFFFFF0003FFFFFF00FFFFFFFC0FFFFFFFFE1FFFFFFF0000000000000000000000000000000 +000000000FC0000000000007000000003C00000000000003FFFFC0000000F0000000078000000000 +0000000000000000000000000003FFFFFFC7FFFFFFF8001FFFFFE00FFFFFFF81FFFFFFFFE3FFFFFF +E0000000000000000000000000000000000000000FC0000000000007000000007800000000000003 +FFFFE0000000700000000380000000000000000000000000000000000000FFFFFFC3FFFFFFFC000F +FFFFF00FFFFFFF03FFFFFFFFE3FFFFFFC0000000000000000000000000000000000000000FC00000 +00000007000000007800000000000001FFFFE0000000780000000380000000000000000000000000 +0000000000007FFFFFE1FFFFFFFF0007FFFFF00FFFFFFC07FFFFFFFFC7FFFFFF0000000000000000 +0000000000000000000000000FC000000000000E000000007000000000000001FFFFE00000003800 +000003C00000000000000000000000000000000000003FFFFFF1FFFFFFFFC000FFFFF81FFFFFF01F +FFFFFFFF87FFFFFC00000000000000000000000000000000000000000FC000000000000E00000000 +F000000000000000FFFFE00000003C00000003C00000000000000000000000000000000000000FFF +FFF8FFFFFFFFF0003FFFFFFFFFFF807FFFFFFFFF8FFFFFF800000000000000000000000000000000 +000000000FC000000000000E00000000F000000000000000FFFFC00000001C00000003C000000000 +000000000000000000000000000007FFFFF87FFFFFFFFE0007FFFFFFFFF801FFFFFFFFFF0FFFFFE0 +00000000000000000000000000000000000000000FC000000000001E00000001E000000000000000 +7FFFC00000001E00000003E000000000000000000000000000000000000001FFFFFC3FFFFFFFFF80 +000FFFFFFF801FFFFFFFFFFE1FFFFFC000000000000000000000000000000000000000000FC00000 +0000001E00000001E0000000000000007FFFC00000001FFFFFFFFFE0000000000000000000000000 +00000000000000FFFFFE3FFFFFFFFFF80000001F8001FFFFFFFFFFFC3FFFFF000000000000000000 +0000000000000000000000000FC000000000001C00000001C0000000000000007FFFC00000001FFF +FFFFFFC0000000000000000000000000000000000000007FFFFF1FFFFFFFFFFF80000000000FFFFF +FFFFFFFC7FFFFE0000000000000000000000000000000000000000000FC000000000001C00000003 +C0000000000000007FFF8000000003FFFFFFFF80000000000000000000000000000000000000001F +FFFF8FFFFFFFFFFFFE00000003FFFFFFFFFFFFF87FFFFC0000000000000000000000000000000000 +000000000FC000000000001C0000000380000000000000007FFF8000000000000000000000000000 +0000000000000000000000000000000FFFFF87FFFFFFFFFFFFFE0003FFFFFFFFFFFFFFF0FFFFF800 +00000000000000000000000000000000000000000FC000000000003C000000038000000000000000 +7FFF800000000000000000000000000000000000000000000000000000000007FFFFC3FFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFE1FFFFE00000000000000000000000000000000000000000000FC00000 +000000380000000780000000000000007FFF80000000000000000000000000000000000000000000 +0000000000000003FFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFC0000000000000000000 +0000000000000000000000000FC00000000000380000000780000000000000007FFF000000000000 +000000000000000000000000000000000000000000000001FFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFC7FFFF800000000000000000000000000000000000000000000FC000000000003800000007 +0000000000000000FFFE000000000000000000000000000000000000000000000000000000000000 +7FFFF0FFFFFFFFFFFFFFF03FFFFFFFFFFFFFFF87FFFF000000000000000000000000000000000000 +000000000FC0000000000038000000070000000000000000FFFC0000000000000000000000000000 +000000000000000000000000000000003FFFF8FFFFFFFFFFFFFFE00FFFFFFFFFFFFFFF0FFFFC0000 +00000000000000000000000000000000000000000FC0000000000038000000070000000000000000 +FFF80000000000000000000000000000000000000000000000000000000000001FFFFC7FFFFFFFFF +FFFFE007FFFFFFFFFFFFFE1FFFF8000000000000000000000000000000000000000000000FC00000 +00000078000000070000000000000001FFF800000000000000000000000000000000000000000000 +00000000000000000FFFFE3FFFFFFFFFFFFFE007FFFFFFFFFFFFFC3FFFF000000000000000000000 +0000000000000000000000000FC00000000000780000000F0000000000000001FFF0000000000000 +00000000000000000000000000000000000000000000000007FFFE1FFFFFFFFFFFFFE007FFFFFFFF +FFFFFC3FFFE0000000000000000000000000000000000000000000000FC00000000000300000000E +0000000000000003FFE0000000000000000000000073C00000000000000000000000000000000000 +01FFFF0FFFFFFFFFFFFFC007FFFFFFFFFFFFF87FFF80000000000000000000000000000000000000 +000000000FC00000000000700000000E0000000000000003FF80000000000381FFF81FFF83FFF000 +0000000000000000000000000000000000FFFF87FFFFFFFFFFFFC007FFFFFFFFFFFFF0FFFF000000 +00000000000000000000000000000000000000000FC00000000000700000000E0000000000000007 +FF000000000007C1FFFC3FFF87FFF00000000000000000000000000000000000007FFFC3FFFFFFFF +FFFFC007FFFFFFFFFFFFE1FFFE00000000000000000000000000000000000000000000000FC00000 +000000700000000E000000000000000FFC000000000007C3FFFC3FFF87FFF0000000000000000000 +0000000000000000003FFFE1FFFFFFFFFFFFC003FFFFFFFFFFFFC3FFFC0000000000000000000000 +0000000000000000000000000FC00000000000700000000E000000000000001FF000000000000FE3 +FFF87FFF87FFC00000000000000000000000000000000000000FFFF0FFFFFFFFFFFFC003FFFFFFFF +FFFF87FFF000000000000000000000000000000000000000000000000FC00000000000700000000E +000000000000003FE0000000000007E3FF807F8007F0000000000000000000000000000000000000 +0007FFF87FFFFFFFFFFFC007FFFFFFFFFFFF0FFFE000000000000000000000000000000000000000 +000000000FC00000000000700000001E00000000000E7FFFE0000000000007E3F0007F0007E00000 +000000000000000000000000000000000003FFFC7FFFFFFFFFFFC003FFFFFFFFFFFF1FFFC0000000 +00000000000000000000000000000000000000000FC00000000000700000001E00000000001FFFFF +FFE0000000000FE3F0007F0007E00000000000000000000000000000000000000001FFFE1FFFFFFF +FFFFC003FFFFFFFFFFFE3FFF8000000000000000000000000000000000000000000000000FC00000 +000000700000001E00000000003FFFFFFFF0000000000FE3FC007FC007FF00000000000000000000 +000000000000000000007FFF0FFFFFFFFFFFC003FFFFFFFFFFF87FFE000000000000000000000000 +0000000000000000000000000FC00000000000700000001E00000000003E071E7FF0000000000FE3 +FFF87FFF07FFE0000000000000000000000000000000000000007FFF87FFFFFFFFFFC003FFFFFFFF +FFF8FFFC0000000000000000000000000000000000000000000000000FC00000000000700000001E +00000000001E000000F0000000000FE3FFF87FFF87FFF00000000000000000000000000000000000 +00001FFF83FFFFFFFFFFC003FFFFFFFFFFE1FFF80000000000000000000000000000000000000000 +000000000FC00000000000700000001E00000000001FFFFFFFF00000000007E3FFFC7FFF87FFE000 +0000000000000000000000000000000000000FFFE3FFFFFFFFFFC003FFFFFFFFFFC3FFF000000000 +00000000000000000000000000000000000000000FC00000000000700000001E00000000001FFFFF +FFE00000000007E3FFF87FFF07FFE00000000000000000000000000000000000000007FFE1FFFFFF +FFFFC003FFFFFFFFFFC7FFE00000000000000000000000000000000000000000000000000FC00000 +000000700000001E00000000000FFFFFFFE0000000000FE3FFE03FFC07FC00000000000000000000 +0000000000000000000003FFF0FFFFFFFFFFC003FFFFFFFFFF87FFC0000000000000000000000000 +0000000000000000000000000FC00000000000700000000E000000000007C0000FC00000000007E3 +F8003F0007E0000000000000000000000000000000000000000001FFF87FFFFFFFFFC003FFFFFFFF +FF0FFF800000000000000000000000000000000000000000000000000FC00000000000700000000E +000000000003C00007800000000007E3F8007F0007E0000000000000000000000000000000000000 +000000FFFC3FFFFFFFFFC003FFFFFFFFFE1FFF000000000000000000000000000000000000000000 +000000000FC00000000000700000000E000000000003C00007800000000007E3F8007F0007E00000 +000000000000000000000000000000000000007FFE1FFFFFFFFFC003FFFFFFFFFC3FFE0000000000 +00000000000000000000000000000000000000000FC00000000000700000000E000000000003C000 +07000000000007E3F8003F8007F00000000000000000000000000000000000000000003FFF0FFFFF +FFFF8003FFFFFFFFF87FFC000000000000000000000000000000000000000000000000000FC00000 +000000700000000E000000000003C00007000000000007E3FFF83FFF87FFF0000000000000000000 +00000000000000000000001FFF87FFFFFFFF8003FFFFFFFFF0FFF800000000000000000000000000 +0000000000000000000000000FC00000000000780000000E000000000003C00007000000000007E3 +FFFC3FFF87FFF800000000000000000000000000000000000000000FFFC3FFFFFFFFC003FFFFFFFF +E1FFF0000000000000000000000000000000000000000000000000000FC00000000000780000000E +000000000003C00007000000000007E3FFFC3FFF87FFF80000000000000000000000000000000000 +00000007FFE1FFFFFFFFC003FFFFFFFFC3FFE0000000000000000000000000000000000000000000 +000000000FC00000000000780000000E000000000001C00007000000000007C1FFFC3FFF83FFF000 +0000000000000000000000000000000000000003FFF0FFFFFFFFC003FFFFFFFF87FFC00000000000 +00000000000000000000000000000000000000000FC000000000007800000006000000000001C000 +0700000000000381FFF81FFF00FF80000000000000000000000000000000000000000001FFF87FFF +FFFF8003FFFFFFFF0FFF80000000000000000000000000000000000000000000000000000FC00000 +0000003800000007000000000001C00007000000000000000000000000000000000000000E000000 +000000000000000000000000FFFC3FFFFFFF8003FFFFFFFE1FFF0000000000000000000000000000 +0000000000000000000000000FC000000000003800000007000000000001C0000700000000000000 +0000000000000000000000001F0000000000000000000000000000003FFE1FFFFFFF8003FFFFFFFC +3FFC00000003FFFF80000000000000000000000000000000000000000FC000000000003800000007 +000000000001C0000F000000000000000000000000000000000000003F000007E000000000000000 +000070001FFF07FFFFFF8003FFFFFFF87FF800000007FFFFE0000000FFFFE0000000000000000000 +000000000FC000000000003C00000007800000000001C0000E000000000000000000000000000000 +000000007E00007FFE000000FFF000000000F0000FFF83FFFFFFC003FFFFFFE0FFF00000000FFFFF +F8000001FFFFFC00000E000000000000000000000FC000000000003C00000003800000000001C000 +0E00000000000000000000000000000000000001FE0003FFFFC0000FFFFE00000001F00007FFE1FF +FFFFF007FFFFFFC1FFE0007800FFFFFFF8300001FFFFFE00003F000000700000000000000FC00000 +0000001C00000003800000000001C0000E00000000000000000000000000000000000003FE000FFF +87F0003FFE0780000003F00003FFF0FFFFFFFFFFFFFFFF83FFC000F801FFFFFFFCF8003FFFFFFF0E +003F000000F80000000000000FC000000000001C00000003C00000000000E0000E00000000000000 +000000000000000000000007FE001FFC01F8007FF001C0000007F00001FFF87FFFFFFFFFFFFFFF07 +FF8001FC03FFFFFFFFF8007FFFFFFF9F007F000001F80000000000000FC000000000001C00000001 +C00000000000E0000E00000000000000000000000000000000000007FC003FE0007C00FFC000E000 +000FF00000FFFC3FFFFFFFFFFFFFFE0FFF0003FC03FFFFFFFFFC00FFFFFFFFFF807F800001FC0000 +000000000FC000000000001E00000001E00000000000E0000E000000000000000000000000000000 +0000000FFC007FC0003C01FF00007000000FE000007FFE1FFFFFFFFFFFFFFC3FFE0003FC07FDFFFF +FFFC00FFFFFFFFFF807F800003FC0000000000000FC000000000001E00000001E00000000000E000 +0C0000000000000000000000000000000000001FFC00FFC0001E03FE00007000001FE000003FFF0F +FFFFFFFFFFFFF07FFC0003FC07F8003FE7FC00FF3FFFFFFF00FF000003FC0000000000000FC00000 +0000000E00000000E00000000000E0001C00000000001FFFFFFEF000000000000000007FF800FF80 +001F07FC00003800003FE000001FFF83FFFFFFFFFFFFE0FFF80003FC07F8000007FC01FF001F7EFF +80FF000003F80000000000000FC000000000000E00000000F00000000000E0001C00000000001FFF +FFFFFF80000000000000007FF801FE00000F07FC00003800007FC000001FFFC1FFFFFFFFFFFFC1FF +F00003FC07F8000007FC01FF000000FF80FF000007F80000000000000FC000000000000E00000000 +700000000000E0001C00000000003FFFFFFFFF8000000000000000FFF803FE00000F8FF800001C00 +00FFC000000FFFE0FFFFFFFFFFFF83FFE00007FC0FF8000007F801FF000000FF80FF000007F80000 +000000000FC000000000000F00000000780000000000E0001C00000000007C00FFFFFFC000000000 +000001FFF003FC0000078FF000001C0001FF80000007FFF8FFFFFFFFFFFF07FFC00007FC0FF80000 +07FC01FF000000FF00FF000007F80000000000000FC0000000000007000000007800000000006000 +1C00000000007800000007C000000000000003FFF007F80000079FE000001C0003FF80000003FFF8 +3FFFFFFFFFFE0FFFC00007F80FF8000007F801FF000000FF00FF000007F80000000000000FC00000 +00000007000000003C000000000060001C00000000007800000007C000000000000007FFF007F800 +00079FE000001C0007FF80000001FFFE1FFFFFFFFFFC1FFF000007F80FF0000007F801FE000000FF +00FF000007F80000000000000FC0000000000007800000003C000000000070003C0000000000F000 +000003800000000000000FFFE007F80000079FE000001C000FFF00000000FFFF0FFFFFFFFFF83FFF +000007F80FF0000007F801FE000000FF00FF000007F80000000000000FC000000000000380000000 +1E00000000007000380000000000F000000007800000000000001FFFE007F0000007BFC000001C00 +1FFF000000007FFF87FFFFFFFFE0FFFE000007F80FF0000007F801FE000000FF00FF000007F80000 +000000000FC0000000000003800000001E00000000007000380000000001E0000000070000000000 +00003FFFE007F00000071FC000001C003FFF000000003FFFC1FFFFFFFFC1FFFC000007F80FF00000 +07F801FE000000FF00FF000007F80000000000000FC0000000000003C00000000F00000000007000 +380000000003E000000007000000000000007F9FE00FF000000F1FC000001C007FFE000000001FFF +F0FFFFFFFF87FFF8000007F80FF0000007F801FE000000FF01FF000007F00000000000000FC00000 +00000001C00000000700000000007000380000000003C00000000F00000000000000FF1FC00FF000 +000F1FC000001C01FFFE000000000FFFF87FFFFFFF0FFFF0000007F80FF000000FF801FE000000FF +01FE00000FF00000000000000FC0000000000001E000000007800000000070003800000000078000 +00000E00000000000001FE3FC007F000001E1FC000003C03F9FE0000000007FFFC3FFFFFFC1FFFE0 +000007F80FF000000FF801FE000001FF01FE00000FF00000000000000FC0000000000001E0000000 +03C000000000700038000000000F800000001E00000000000003FC3F8007F800003E1FC000007807 +F1FE0000000003FFFE0FFFFFF87FFFC0000007F80FF000000FF801FE000001FF01FE00000FF00000 +000000000FC0000000000000E000000001E000000000700078000000001F000000001C0000000000 +0007F87F8007F800007C0FE00000780FE3FC0000000001FFFF87FFFFE0FFFF80000007F80FF00000 +0FF001FE000001FE01FE00000FF00000000000000FC0000000000000F000000001E0000000003000 +70000000001E000000001C0000000000001FF07F8007FC0000FC0FE00001F01FC3FC0000000000FF +FFC1FFFFC1FFFF0000000FF00FF000000FF001FE000001FE01FE00000FF00000000000000FC00000 +000000007000000000F000000000380070000000003C000000003C0000000000003FE07F8003FE00 +01F80FF00003E07F83FC00000000007FFFF0FFFF07FFFE0000000FF00FF000000FF001FC000001FE +00FE00000FE00000000000000FC00000000000007800000000780000000038007000000000780000 +0000380000000000007FC0FF0003FF0007F007F80007E0FF07F800000000003FFFF83FFC0FFFFC00 +000007E007F000000FE001FC000001FE00FF00000FE00000000000000FC000000000000078000000 +003C0000000038007000000000F80000000078000000000001FF80FF0001FF803FE003FC001FC1FE +07F800000000001FFFFE07F03FFFF800000007C007FF00000FE001FE000001FC00FFFFFF8FC00000 +000000000FC00000000000003C000000001E0000000038007000000000F000000000700000000000 +03FF00FE0001FFFFFFE003FF807FC3FC07F800000000001FFFFF00007FFFF0000000000007FFFFFF +E7C001FFFFFFF1F8007FFFFFFF800000000000000FC00000000000003C000000001F000000003800 +7000000001E000000000F0000000000007FE01FE0001FFFFFFC003FFFFFF8FF80FF800000000000F +FFFFC001FFFFE0000000000003FFFFFFF80000FFFFFFFFE0007FFFFFF8000000000000000FC00000 +000000001E000000000F8000000038006000000003C000000000F0000000000007FE01FE0003FFFF +FFC003FFFFFFFFF00FF0000000000007FFFFF007FFFFE0000000000003FFFFFFFC0000FFFFFFFF80 +003FFFFFFC000000000000000FC00000000000001E0000000007C000000038006000000007800000 +0001E000000000001FFC03FE0007FFFFFFE007FFFBFFFFF01FF0000000000003FFFFFF3FFFFFC000 +0000000001FFFFFFFC0000FFFFFFFF80003FFFFFFC000000000000000FC00000000000000F000000 +0003E00000001800E00000000F0000000001E000000000003FF003FE000FFFF0FFE01FFF803FFFE0 +1FF0000000000001FFFFFFFFFFFF8003F000000001FFFFFFFC0000FFFFFFFF80001FFFFFFC000000 +000000000FC00000000000000F0000000001F00000001C00E00000003E0000000003C00000000000 +3FE003FC001FFFC007F83FFC001FFFC01FF0000000000001FFFFFFFFFFFF0007FC0000E000FFFFFF +FE0001FFFFFFFF80000FFFFFFFC00000000000000FC0000000000000078000000000780000001C00 +E00000007E0000000003C000000000001F0007FC003FFE0001FFFFF8000FFFC03FF0000000000000 +FFFFFFFFFFFE000FFE0001F0007FFFFFFFE003FFFFFFFFF80003FFFFFFE00000000000000FC00000 +000000000780000000007C0000001C00E0000000F80000000007800000000000000007FC007FF800 +007FFFE0001FFFC07FFC0000000000007FFFFFFFFFFE001FFF0003F0001FFFFFFFF003FFFFFFFFFC +000001840FF00000000000000FC000000000000003C0000000001E0000001C00E0000001F0000000 +000F000000000000000007F800FFE000003FFFC0003FFFFFFFFFFFF8000000003FFFFFFFFFFC001F +FF0007F80000000007F803FFFFFFFFFE000000000FF00000000000000FC000000000000001E00000 +00001F8000001C00E0000003F0000000000F00000000000000000FF801FFC000001FFF00007FFFFF +FFFFFFFC000000001FFFFFFFFFF80037FB8007F80000000007F807FE000000FE000000000FF00000 +000000000FC000000000000001E00000000007E000001C01C000000FC0000000001E000000000000 +00000FF803FF8000001FFF0000FFFFFFFFFFFFFC000000001FFFFFFFFFF00037F98007F800000000 +07F807FC000000FF000000000FF00000000000000FC000000000000000F00000000003F000001C01 +C000003F80000000001E00000000000000000FF803FF0000001FFE00007FFFFFFFF0000000000000 +0FFFFFFFFFE00037F98007F80000000007F807FC000001FF000000000FF00000000000000FC00000 +0000000000F00000000000FC00001E01C000007E00000000003C00000000000000001FF807FE0000 +001FFC0000007F80FFE000000000000007FFFFFFFFC00037F18007F8000000000FF807F8000001FF +000000000FF00000000000000FC0000000000000007800000000007F00000E01C00001F800000000 +007800000000000000001FF807FE0000001FFC0000001F00FFC000000000000007FFFFFFFF800037 +F18007F8000000000FF807F8000001FF000000000FF00000000000000FC0000000000000003C0000 +0000001FC0000E01C00007E000000000007800000000000000001FF007FC0000001FF80000001E00 +FFC000000000000003FFFFFFFF800030238007F8000000000FF807F8000001FF000000000FF00000 +000000000FC0000000000000001C00000000000FF0000E01C0001FC00000000000F0000000000000 +00003FF00FF80000003FF80000001E00FFC000000000000001FFFFFFFF000038070007F800000000 +0FF807F8000001FF000000000FF00000000000000FC0000000000000001E000000000001FE000E01 +C000FE000000000001E000000000000000003FF00FF80000003FF00000000E00FF80000000000000 +00FFFFFFFE00001E0F0007F8000000000FF007F8000001FF000000000FF000000000000007C00000 +00000000000F0000000000007FE00E03C00FF8000000000003E000000000000000007FF00FF00000 +003FF00000001E00FF80000000000000007FFFFFFC00000FFE000FF8000000000FF007F8000001FE +000000000FF00000000000000FC000000000000000078000000000001FFE1E03C0FFE00000000000 +07C000000000000000007FF00FF00000003FF00000001C01FF80000000000000003FFFFFF8000007 +F8000FF8000000000FF007F8000001FE000000001FF00000000000000FC00000000000000003C000 +0000000003FFFE03FFFF000000000000078000000000000000007FE00FF00000003FF00000001C01 +FF80000000000000001FFFFFF000000000000FF8000000000FF00FF8000001FE000000001FF00000 +000000000FC00000000000000001E00000000000007FFE03FFF80000000000000F00000000000000 +00007FE00FF00000003FF00000003801FF80000000000000001FFFFFF000000000000FF800000000 +0FF00FF8000001FE000000001FF00000000000000FC00000000000000001F00000000000000FFF03 +FFC00000000000001E000000000000000000FFE00FF00000003FF00000007801FF80000000000000 +000FFFFFE000000000000FF8000000000FF00FF8000001FE000000001FE00000000000000FC00000 +000000000000F800000000000000FF03F0000000000000003C000000000000000000FFE00FF00000 +007FF00000007001FF000000000000000007FFFFC000000000000FF8000000000FF00FF8000001FE +000000001FE00000000000000FC0000000000000000078000000000000000F078000000000000000 +7C000000000000000000FFE007F80000007FF0000000E001FF000000000000000007FFFF80000000 +00000FF8000000000FF00FF8000001FE000000001FE00000000000000FC000000000000000003C00 +00000000000007078000000000000000F8000000000000000001FFC007F8000000FFF8000001E003 +FF000000000000000003FFFF8000000000000FF0000000000FF00FFC000001FE000000001FE00000 +000000000FC000000000000000001E0000000000000007070000000000000001F000000000000000 +0001FFC007FC000001FFFC000003C003FF000000000000000001FFFF0000000000000FF000000000 +0FF00FFFFC0001FE000000001FE00000000000000FC000000000000000000F000000000000000787 +0000000000000003E0000000000000000001FFC003FE000003FFFC0000078003FF00000000000000 +0001FFFE0000000000000FF0000000000FF00FFFFFFFC1FE000000001FE00000000000000FC00000 +0000000000000F80000000000000078F0000000000000007C0000000000000000003FF8003FF0000 +0FE7FE00000F0003FF000000000000000000FFFE0000000000000FF0000000000FF00FFFFFFFF1FE +000000001FE00000000000000FC0000000000000000007C0000000000000078F0000000000000007 +80000000000000000003FF8001FFC0001F03FF00001E0003FE0000000000000000007FFC00000000 +00000FF0000000000FF00FFFFFFFFBFE000000001FE00000000000000FC0000000000000000001E0 +000000000000078F000000000000001F80000000000000000003FE0000FFF800FE00FFC000780007 +FC0000000000000000007FF80000000000000FE0000000000FE00FFFFFFFFFFE000000001FC00000 +000000000FC0000000000000000001F0000000000000078E000000000000001E0000000000000000 +0003FC00007FFFFFF0007FF001F00007F80000000000000000003FF000000000000007E000000000 +0FE00FFFFFFFFFFC000000001FC00000000000000FC0000000000000000000FC000000000000038E +000000000000003C00000000000000000003E000001FFFFFC0001FFE0FE00007E000000000000000 +00000FC000000000000007C0000000000FC007FFFFFFFFFC000000000F800000000000000FC00000 +000000000000007E000000000000038E00000000000000F80000000000000000000000000007FFFE +000007FFFF000007C0000000000000000000000000000000000001800000000007800387FFFFFCF8 +0000000006000000000000000FC00000000000000000003F000000000000038E00000000000001F0 +0000000000000000000000000000FFF0000000FFF800000780000000000000000000000000000000 +000000000000000000000001FFFFF8000000000000000000000000000FC00000000000000000001F +80000000000003CE00000000000003E0000000000000000000000000000000000000000000000006 +0000000000000000000000000000000000000000000000000000000003FFE0000000000000000000 +000000000FC000000000000000000007C0000000000003FE0000000000000FC00000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC000000000000000000003F0000000000001FC +0000000000001F000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +0000000000000001F8000000000001FC0000000000003E0000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC0000000000000000000007E00000000000070000000000000FC00 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +1F00000000000000000000000001F000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC0000000000000000000000F80000000000000000000000007E0000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC00000000000000000000003E0000000000000 +00000000001F80000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +000000000000000001F800000000000000000000007E000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC000000000000000000000007E0000000000000000000000FC0000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +001F8000000000000000000003F00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000FE00000000000000000000FE000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000003F80000000000 +000000003F8000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000FE000000000000000001FF00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000003FE00000000000000007F8000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000FF0000000000000001FF0000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000001FF00000000000000FF800000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000007FC0000000 +00001FFE000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000FFE0000000000FFF00000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000001FFF80000003FFF8000000000 +000000000000000000000007C0000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +000000001FFFF9C0FFFFFC0000000000000000000000000003C0001FF07FE1C063FFC30083FE0000 +000FE01FF000FF0000020007F010700E00001F00100000000F800F803F801FE03FC0FF80FE01FC00 +000000000FC0000000000000000000000000000001FFFFFFFFFF8000000000000000000000000000 +07E0003FF8FFF3E0F3FFE781C7FF1E1E003FF07FF801FFC3800FFE1FF87FF87FE0E07FC03E038000 +1FF87FF07FE03FF07FF1FFE3FF03FE00000000000FC00000000000000000000000000000001FFFFF +FFF0000000000000000000000000000007E0007FFCFFF3F0F3FFE781E7FF9E1E007FF87FF803FFE7 +801FFE3FFC7FFCFFF0F1FFE03E0780003FFC7FF8FFF07FF8FFF9FFE3FF87FF00000000000FC00000 +00000000000000000000000000003FFFF00000000000000000000000000000000FF000FFFFFFE3F8 +F1FFC781E7FFDF3E00FFFC7FF003FFC7801FFC3FFE7FF8FFF9F3FFF07F07C0003FFEFFF9FFF8FFFC +FFF9FFC7FFCFFF00000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000FF000FC3FFF03F8F07F07C3EFEFCFFE00F87E7E0003F007801F807C3E0FC0FC +F9F3E1F07F07C0003F3FFFFFF9FCF87CFCF9F807E7CFCF00000000000FC000000000000000000000 +0000000000000000000000000000000000000000000000000FF000F818FF83FCF03E0783EFC7CFFC +00F83E7C0003F007801F00780C07C0F8F9F7E060FF0780003E1FFC7FF07DF818FCFFF807E18FC000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +1FF801F800FFE3FFF03E0783EFEFC7FC01F01FFFC003FF87801FF8780007C0F8F9F7C000FF878000 +3E3FFCFFE07FF000FFFBFF87FC0FF800000000000FC0000000000000000000000000000000000000 +000000000000000000000000000000001FF801F000FFE3FFF03E0783EFFF87F801F01F7FE003FFC7 +801FFCF8000780FFF9FFC000FF87C0003FFFFFFFE07FF0F8FFF9FFC3FF0FFE00000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000003FF801F000FFE3FF +F03E07C3EFFF83F801F01E7FF003FFC7801FFCF8000780FFF1FFC001FF87C0003FFEFFFFE03FF0FC +FFF9FFC1FF87FF00000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000003FFC00F000FFC3FFF03E07C3EFFF83F001F01F7FE003FF87801FFCF8000780FF +F1FFC001FFC7C0003FFCFFFFE07FF1FEFFF9FF80FFC1FF00000000000FC000000000000000000000 +0000000000000000000000000000000000000000000000003FFC00F809FC03FFF03E07C3EFFF83F0 +00F01F7E0003F007801F80F8000780FFF8FFC003FFC7C0003FF8FFFFE07FF0FEFFF9F8001FC0FF80 +000000000FE000000000000000000000000000000000000000000000000000000000000000000000 +7FFC00F81FFC03EFF03E07C3EFC7C1F000F83EFC0003F007C01F00780C07C0FDF8F3C063FFC7C000 +3FC0FDFFE07DF87EFDF9F0070FC41F80000000000FE0000000000000000000000000000000000000 +000000000000000000000000000000007FFE00FC3FFC03E7F03E07C3EF87C1F000F87E7C0003F007 +C01F007C1E0780F8F9F3E0F3FFE7C0003F00F87FF0FCF87EF8FBF00787CF8F80000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000007FFE007FFFFFF3E3 +F03E07E7EF87C1E0007FFC780003FFC7FE1FF87E3E07C0F879F3F3F7FFE7FF003E00F87FFFF8FFFE +F87FFFC7FFCFFF00000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000007C7E007FFCFFF3E3F03E03FFC783C1E0007FF8780001FFE7FF9FFE3FFE0780F8 +78F1FFE7C3E7FF803E00F87CFFF87FFEF87FFFE7FFCFFF00000000000FC000000000000000000000 +000000000000000000000000000000000000000000000000783E001FF8FFF3C1F01C01FFC78381E0 +003FF8780001FFE7FF9FFE1FFC0780F078F0FFE7C1E7FF801E00783C7FF03FFCF079FFE3FF87FF00 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +301C000FF07FF180F01C00FF030100E0001FE0300000FFC3FF1FFE0FF803007030607FC380C3FF00 +1C0070383FE01FFC6010FFC1FF03FE00000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000040000000000003800000000000 +00006003E000000000001F00000000000000000007800380000000003800F000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000FC00000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000FC00000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000FC000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000FC000000000000000000000000000000000000000000000000000000000000000000000 +7FFFFFFFFFFFFF39CF800008008087C0000000000000000000000000000000000000000200000000 +0000000000000E01EFFDFFFFFFFFFE00000000000FC0000000000000000000000000000000000000 +00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000FC00000 +0000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFF00000000000FC00000000000000000000000000000000000000000000000000000 +0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000FC000000000000000000000 +000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00 +0000000007C000000000000000000000000000000000000000000000000000000000000000000000 +1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFE7FF8000000000000180000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000001000000000 +000018000000000000000000000000200010003C0000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +>}imagemask +showpage diff --git a/macros/inrstex/inrsdoc/index.tex b/macros/inrstex/inrsdoc/index.tex new file mode 100644 index 0000000000..7b705d616a --- /dev/null +++ b/macros/inrstex/inrsdoc/index.tex @@ -0,0 +1,43 @@ + +\catcode`\|=\active %defines | as an active character in the entire document +{\obeylines \gdef|{\ttverbatim\spaceskip\ttglue\let|=\endgroup}} +%\def\ttspace{{\tt\hskip\ttglue}} + + +% indexing macros mods of texbook + + + +% ^ in non math mode are eaten up + +\def\specialhat{\ifmmode\def\next{^}\else\let\next=\xref\fi\next} +\def\xref{\relax} +\catcode`\^=\active \let ^=\specialhat + +\newswitch{silent} +\chardef\bslash=`\\ +\def\xrefswitch{\ifx\next|\let\next=\vxref % case 1 or 2, |arg| or |\arg| + \else\ifx\next\<\let\next=\anglexref % case 3, "\<arg>" means angle brackets + \else\let\next=\normalxref \fi\fi \next} % case 0, "{arg}" +\def\vxref|{\catcode`\\=\active \futurelet\next\vxrefswitch} +\def\vxrefswitch#1|{\catcode`\\=0 + \ifx\next\empty\def\xreftype{2}% + \def\next{{\tt\bslash\text}}% type 2, |\arg| + \else\def\xreftype{1}\def\next{{\tt\text}}\fi % type 1, |arg| + \edef\text{#1}\makexref} + +{\catcode`\|=0 \catcode`\\=\active |gdef\{@}} +\def\anglexref\<#1>{\def\xreftype{3}\def\text{#1}% + \def\next{\<\text>}\makexref} +\def\normalxref#1{\def\xreftype{0}\def\text{#1}\let\next=\text\makexref} +\def\makexref{{\def\space{ } + \xdef\writeit{\write\ind@file{!\text!\space\string\indpg\xreftype\space + \noexpand\number\pageno.}}\writeit} + \ifsilent\ignorespaces\else\next\fi} + + +\outer\def\indexingon{\openlistfile{ind}% file for index reminders + \def\xref{\futurelet\next\xrefswitch}} + + +\def\indexingoff{\closelistfile{ind} \def\xref{\relax}} diff --git a/macros/inrstex/inrsdoc/indsort b/macros/inrstex/inrsdoc/indsort Binary files differnew file mode 100644 index 0000000000..b94e70aa97 --- /dev/null +++ b/macros/inrstex/inrsdoc/indsort diff --git a/macros/inrstex/inrsdoc/indsort.c b/macros/inrstex/inrsdoc/indsort.c new file mode 100644 index 0000000000..93b9f4dd24 --- /dev/null +++ b/macros/inrstex/inrsdoc/indsort.c @@ -0,0 +1,113 @@ +/* +This reads a an unsorted index file *.ind and writes a sorted, and converted +*.sor index file +File Names are specialized to the INRSTeX reference book +... DOS version uses strncmpi() +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <alloc.h> +#include <ctype.h> + +#define NUL ((char)0) +#define BSLASH ((char)0x5c) +#define CR ((char)0x0d) +#define LF ((char)0x0a) +#define MAX 900 +#define CS 20 +#define SS 510 +#define PL 8 +/* type def */ + +typedef struct { + char cmp_str[CS]; + char *str; +} ind; + +/* the variables */ + + FILE *outfile; /* out file. */ + FILE *infile; /* input file */ + char in_buf[512]; /* input buffer */ + ind index[MAX]; + char work[512]; + int j, k, l, cp, in_len ; /* dummy vars */ + int mem_over, op; + +/* Comparison Function */ +int sortfcn(const void *a, const void *b) + { + return (strcmpi(a,b)); + } + + + + +/***** +* The main function. +input file name is masth.ind output is masth.sor ... for inrstex ref book +*****/ +void main() + {printf("\n INRSTeX index massage and sort. \n Input file is 'masth.ind'. \n Output file is 'masth.sor'.\n"); + infile = fopen( "masth.ind", "r"); + if (infile==0) printf("\n Sorry ... I can't find the index file \n `masth.ind` \n"); + else { + outfile = fopen( "masth.sor", "w" ); + j=0; while (j<MAX) {k=0; while (k<CS) {index[j].cmp_str[k]=' '; k++;} + j++; index[j].cmp_str[CS-1]=0; + } + mem_over=0; + cp=0; + while ((fgets(in_buf, 510, infile))&&(cp<MAX)) + { in_len=strlen(in_buf); + index[cp].str=malloc(in_len); + if (index[cp].str==0) {mem_over=1; + printf("\n Memory Overflow"); + break; + } + strncpy(index[cp].str, in_buf, SS-1); + j=0; k=0; + while ((j<CS-PL-1)&&(in_buf[k]!=LF)) + { if (isalpha(in_buf[k])) { + index[cp].cmp_str[j]=in_buf[k]; + j++; + } + k++; + } + if (j==5) {j=0; while (j<5) {index[cp].cmp_str[j]=' '; j++; } } + /* fix for single non-alphabetic commands */ + cp++; + } + qsort((void *) index, cp, sizeof(ind), sortfcn); + printf("\n %d index records were read and sorted. \n", cp); + op=0; + while (op<cp) + { + strncpy(work, index[op].str, SS-1); + if (work[0]=='!') + {fputc(BSLASH,outfile);fputc('2',outfile); + k=1; while (work[k]!='!') + { if ((work[k]=='*')&&(work[k+1]=='/')&&(work[k+2]=='*')) + {fputc(LF,outfile); k++;k++;} + else + {fputc(work[k],outfile); + if (work[k]==BSLASH) fputc('1',outfile); + } + k++; + } + + k++; while ((work[k]!=LF)&&(work[k]!=0)) + {fputc(work[k],outfile); k++;} + fputc(LF,outfile); + } + op++; + } + + fclose(infile); fclose(outfile); + } + } + + +
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/inrslogo.tex b/macros/inrstex/inrsdoc/inrslogo.tex new file mode 100644 index 0000000000..993abebdf9 --- /dev/null +++ b/macros/inrstex/inrsdoc/inrslogo.tex @@ -0,0 +1,58 @@ +%-*-tex-*- +%======== macros for the INRS address logo/letterhead ===== + +\def\ppa{\beginsegment \absoluteposition +\lvec h:.4 v:0 +\lvec h:.2 v:.8 +\lvec h:-.2 v:.8 +\pfill p:0 +\endsegment +} + +\def\ppb{\beginsegment \absoluteposition +\lvec h:.4 v:0 +\lvec h:.1 v:1.2 +\lvec h:-.3 v:1.2 +\pfill p:0 +\endsegment +} + +\def\inrslogo h:#1 v:#2 sc:#3 {\beginsegment +\penwidth .005 +\move h:#1 v:#2 +\unitscale #3 +\relative +\ppa +\move h:.48 v:0 +\ppa +\move h:.48 v:0 +\ppb +\endsegment} +\font\inrsaddfont = cmcsc10 +\font\eightrm = cmr8 +\def\inrsadd{\vbox{\hsize 5in \baselineskip=9pt \parskip=0pt + \leftline{\eightrm Universit\'e du Qu\'ebec} + \vskip 3pt + \leftline{\inrsaddfont Institut national de la recherche + scientifique} + \vskip 6pt + {\eightrm \obeylines \parindent=0pt + 3, place du Commerce \par + Ile-des-Soeurs\par + Verdun, Qu\'ebec\par + Canada \qquad H3E 1H6\par + T\'el\'ephone: \tele \par} + \vskip 6pt + \leftline{\inrsaddfont INRS-T\'el\'ecommunications} + }} + + +\def\inrslogoadd h:#1 v:#2 {\btg\inrslogo h:#1 v:#2 sc:.3 + \beginsegment + \move h:0 v:0 \tbox {\inrsadd} + \endsegment\etg} + +\def\inrsaddform{\titlepagestyle\finalversion + \inrslogoadd h:-.5 v:0 } + +\def\tele{(514) 765-7834} diff --git a/macros/inrstex/inrsdoc/inrssl.tex b/macros/inrstex/inrsdoc/inrssl.tex new file mode 100644 index 0000000000..d129346b86 --- /dev/null +++ b/macros/inrstex/inrsdoc/inrssl.tex @@ -0,0 +1,147 @@ +% PostScript slide form +% \genform Aug 1991 +% Toulson/Beebe PS driver +% ====== simple viewgraph box ======= +\catcode`\@=11 +\def\hviewbox{\beginsegment + \unitscale {\f@ormscale} + \slidelogo + \topform + \botform + \move h:0 v:.4 + \penwidth .05 + \lvec h:8.9 v:.4 + \lvec h:8.9 v:6.9 + \move h:0 v:.4 + \lvec h:0 v:6.9 + \move h:.15 v:6.9 + \larc r:.15 sd:90 ed:180 + \move h:.15 v:7.05 + \lvec h:8.75 v:7.05 + \move h:8.75 v:6.9 + \larc r:.15 sd:0 ed:90 + \endsegment} +% ======= Slide Utilities ====== +% Horizontal form +\newtoks\slidetitle +\newdimen\slhsize \newdimen\slvsize +\long\def\sltitle#1{\vglue .03\slvsize \global\slidetitle={#1} + \vbox to 0pt{\hsize=\slhsize \rightskip=.1\hsize plus 1fill + \def\cr{\endgraf}\leftskip= .1\hsize plus 1fill\gbfont\gbbaselines + \parskip=1ex \parindent=0pt#1\vss}} +\def\shk{\showthe\leftskip\showthe\rightskip} +\let\shk=\relax +\long\def\slidebox #1#2{\vbox to \slvsize{\hsize \slhsize + \grfont\parindent=0pt + \grbaselines\parskip=2.8ex \advance\rightskip by 0pt plus 1fil + \sltitle{#1}\vfill\advance\rightskip by .05\hsize + \advance\leftskip by .05\hsize + #2\vfill}} + +\def\bl{\beginlist \samplemark{$\bullet$}} % modifies default +\def\lb{\li {$\bullet$} } +\def\lc{\li {$\circ$} } +\def\last{\li {$\ast$} } +\def\hd#1{\vskip 1ex\vbox{\veryraggedright\hangindent1em\hangafter1 + \noindent\bigfont#1}\vskip 1ex } + + +% ===== slide building macros ======= +% A slide lives in either a textform or fullsize form. The defaault is +% Fullsize. Text form reduces the size and gives a chance to add background +% Material with the slide. + +\newif\iftextform +\gdef\inrsform{\message{<< INRSFORM >>}\input inrslogo\relax \gdef\slidelogo{\i@nrsform} + \gdef\topform{}\gdef\botform{}} +\gdef\i@nrsform{\inrslogo h:.2 v:0 sc:.25 + \move h:8.9 v:.1 \textref h:R v:C + \rstext d:0 sc:{\f@ormscale} t:{\bf INRS-T\'el\'ecommunications} } +\newtoks\topdata +\newtoks\botdata +\newtoks\slidedate +\gdef\genform{\message{<< General FORM >>} + \gdef\slidelogo{\topform}\gdef\topform{\move h:0 v:.15 \textref h:L v:C + \rstext d:0 sc:{\f@ormscale} t:{\borderfont\the\topdata} } + \gdef\botform{\move h:4.45 v:7.25 + \textref h:C v:C +\rstext d:0 sc:{\f@ormscale} t:{\borderfont \the\botdata\ -- \the\slidedate} }} + +\newcount\textfontscale % computed inside textform +\gdef\textform{\message{<< Text Size >>}\long + \gdef\comment##1//{\rm ##1}\textformtrue\gdef\slidescale{.578} + \textfontscale=\the\fullfontscale \relax + \multiply\textfontscale by 1000 + \divide\textfontscale by 1728 + \fontset scaled {\the\textfontscale} + \textformfonts + \let\borderfont=\txborderfont + \textpagestyle + \slvsize = 9.84cm \slhsize = 12.5cm + \gdef\tfb{\bigskip\filbreak}} +\newcount\fullfontscale % set in defaults +\gdef\fullform{\message{<< Full Size >>} + \long\gdef\comment##1//{}\textformfalse\gdef\slidescale{1} + \fontset scaled {\the\fullfontscale} + \fullformfonts + \let\borderfont = \fxborderfont + \finalversion + \documentstyle{ + \leftmargin=.6in + \nofooterstyle + \vfootersize=0pt } + \slvsize=17cm \slhsize=21.5cm + \let\tfb=\relax} + +\long\gdef\hhslide#1#2{\btg + \segmentscale {\slidescale} + \move h:0.2 v:.4 \textref h:L v:T + \rstext d:0 sc:{\f@ormscale} t:{\slidebox{#1}{#2}} + \move h:0 v:0 \hviewbox + \etg} +\gdef\formscale #1 {\gdef\f@ormscale{#1 }} +\gdef\smalldot{\setbox0=\hbox{\hskip .4in\fiverm.}\wd0=0pt\ht0=0pt\dp0=0pt\box0} +\long\gdef\hslide #1//#2//{\advance\slidenum by 1 \relax + \begingroup\tfb\documentstyle{\genpoint}\bf \let\hslide=\slideerr + \iftextform\centergraph{\hhslide{#1}{#2}}\bigskip \else + \btg + \move h:0 v:8.9 + \vtext {\hhslide{#1}{#2}} + \move h:7 v:8.8 + \etg + \smalldot\ejectpage\fi\endgroup} +% ====== Error forms ======== +% This attempts to find a misplaced // gracefully +\newcount\slidenum +\ifnum\language=0 \edef\s@lmiss{Probable Missing or Extra // in Slide Num. } + \else + \edef\s@lmiss{Probable Missing or Extra // in Slide Num. } + \fi +\gdef\slideerr{\message{<<\s@lmiss\the\slidenum>>}} + +% ====== TexGraph Defaults ======== +\ifundefined{textref} + \begingroup \catcode`\^=7 \input texgraph \endgroup \fi + +% ==== text form page style ===== +\gdef\textpagestyle{} + +% ====== Font Defaults ========= +\input spfont \relax +\gdef\textformfonts{\font\gffont= cmcsc10 scaled 667 } +\gdef\fullformfonts{\font\gffont = cmcsc10 scaled 1440 } +\fullfontscale = 2074 +\font\fxborderfont = cmbx10 scaled 1728 +\let\txborderfont = \tenbfx + +% ==== slide default ===== +\slidenum=0 +\gdef\gbfont{\bigfont} +\gdef\gbbaselines{\baselineskip = 2.8ex\lineskip=1pt\lineskiplimit=0pt} +\gdef\grfont{\bf} +\gdef\grbaselines{\baselineskip=2.8ex\lineskip=1pt\lineskiplimit=0pt} +\gdef\f@ormscale{1} +%====== end defaults ===== + +\catcode`\@=12 + diff --git a/macros/inrstex/inrsdoc/inrsunix.sh b/macros/inrstex/inrsdoc/inrsunix.sh new file mode 100644 index 0000000000..dd1f48d528 --- /dev/null +++ b/macros/inrstex/inrsdoc/inrsunix.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# INRSTeX +# +if [ $# = 1 ]; then + jobname=`/usr/bin/basename $1 .tex` + # rename auxiliary files -- see writunix.tex + /bin/mv $jobname.tag $jobname.tag~ 2>/dev/null + /bin/mv $jobname.toc $jobname.toc~ 2>/dev/null + /bin/mv $jobname.fig $jobname.fig~ 2>/dev/null + /bin/mv $jobname.tbl $jobname.tbl~ 2>/dev/null +fi +exec /usr/users/u1/mike/inrstex/virtex_mlb '&/usr/users/u1/mike/inrstex/inrs3_mlb' $* +
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/masth.ctg b/macros/inrstex/inrsdoc/masth.ctg new file mode 100644 index 0000000000..542a40b1ad --- /dev/null +++ b/macros/inrstex/inrsdoc/masth.ctg @@ -0,0 +1,7 @@ +\initcitetag {0} +\initcitetag {0} +\tag{[Knut84]}{1} +\tag{[Digi83]}{2} +\tag{[Amst84]}{3} +\tag{[Lesk76]}{4} +\lastcitetag {4} diff --git a/macros/inrstex/inrsdoc/masth.ind b/macros/inrstex/inrsdoc/masth.ind new file mode 100644 index 0000000000..ff9079a675 --- /dev/null +++ b/macros/inrstex/inrsdoc/masth.ind @@ -0,0 +1,762 @@ +!\aa, \AA! \indpg 14. +!\ae, \AE! \indpg 14. +!\copyright! \indpg 14. +!\dag! \indpg 14. +!\ddag! \indpg 14. +!{\it\$}! \indpg 14. +!{\it\&}! \indpg 14. +!\i! \indpg 14. +!\j! \indpg 14. +!\l, \L! \indpg 14. +!\o, \O! \indpg 14. +!\oe, \OE! \indpg 14. +!\P! \indpg 14. +!\S! \indpg 14. +!\ss! \indpg 14. +!\jobname! \indpg 20. +!\hprintoffset = <dimen>! \indpg 21. +!\vprintoffset = <dimen>! \indpg 22. +!\bye! \indpg 22. +!\done! \indpg 23. +!\draftversion! \indpg 23. +!\end! \indpg 23. +!\englishversion \ehyph! \indpg 23. +!\ehyph! \indpg 23. +!\finalversion! \indpg 23. +!\hyphenation{<exceptions>}! \indpg 23. +!\language [=] <integer>! \indpg 23. +!\marginnotestrue! \indpg 24. +!\marginnotesfalse! \indpg 24. +!\versionfrancaise \fhyph! \indpg 24. +!\fhyph! \indpg 24. +!DVIALW Command line options! \indpg 24. +!\hfuzz [=] <dimen>! \indpg 31. +!\overfullrule [=] <dimen>! \indpg 31. +!\vfuzz [=] <dimen>! \indpg 32. +!\raggedbottom! \indpg 32. +!\font\<fontname> [scaled <number>]! \indpg 34. +!\fivei! \indpg 34. +!\fiverm! \indpg 34. +!\fivebf! \indpg 34. +!\twelvepoint! \indpg 35. +!\tenpoint! \indpg 35. +!\ninepoint! \indpg 35. +!\eightpoint! \indpg 35. +!\bf! \indpg 35. +!\it! \indpg 35. +!\rm! \indpg 35. +!\tt! \indpg 35. +!\bigggfont! \indpg 35. +!\biggfont! \indpg 35. +!\bigfont! \indpg 35. +!\cheadfont! \indpg 35. +!\documentstyle{<font family>}! \indpg 36. +!\footerfont! \indpg 36. +!\footnotefont! \indpg 36. +!\headerfont! \indpg 36. +!\smallerfont! \indpg 36. +!\sheadfont! \indpg 36. +!\ssheadfont! \indpg 36. +!\sssheadfont! \indpg 36. +!\dsssheadfont! \indpg 36. +!\captionnumfont! \indpg 36. +!\captiontitlefont! \indpg 36. +!\captionbodyfont! \indpg 36. +!<units of measure>*/* cm em ex in*/* mu pt sp! \indpg 37. +!\newdimen\<dimen name>! \indpg 38. +!\newcount\<count name>! \indpg 38. +!\newskip\<skip or glue name>! \indpg 39. +!\<count name> [=] <integer, dimen, glue>! \indpg 39. +!\<dimen name> [=] < dimen, glue>! \indpg 39. +!\<skip or glue name> [=] <dimen>*/* [plus <dimen>] [minus<dimen>]! \indpg 39. +!\advance \<count, dimen, glue name> by [+ -]<count, dimen, glue>! \indpg 40. +!\multiply \<count, dimen, glue name> by [+ -]<integer>! \indpg 40. +!\divide \<count, dimen, glue name> by [+ -]<integer>! \indpg 40. +!\hfil \hfill! \indpg 42. +!\hfilneg! \indpg 42. +!\hss! \indpg 42. +!\medmuskip! \indpg 42. +!\newskip\<skip name>! \indpg 42. +!\newmuskip\<muskip name>! \indpg 42. +!\thickmuskip! \indpg 43. +!\thinmuskip! \indpg 43. +!\vfil \vfill! \indpg 43. +!\vfilneg! \indpg 43. +!\vss! \indpg 43. +!\discretionary{<prebreak text>}{<postbreak text>}{<nobreak text>}! \indpg 47. +!\endnarrowtext! \indpg 47. +!\everyparagraph [=] {<token string>}! \indpg 47. +!\hangafter [+ -] <integer>! \indpg 48. +!\hangindent [=] [+ -] <dimen>! \indpg 48. +!\hyphenatecapitals [=] <integer>! \indpg 48. +!\indent! \indpg 48. +!\leftskip [=] <dimen> [plus <dimen>] [minus <dimen>]! \indpg 48. +!\rightskip [=] <dimen> [plus <dimen>] [minus <dimen>]! \indpg 48. +!\looseness [=] [+ -] <integer>! \indpg 49. +!\noindent! \indpg 49. +!\obeylines! \indpg 49. +!\obeyspaces! \indpg 49. +!\par! \indpg 50. +!\paragraphcenterline! \indpg 50. +!\parindent [=] <dimen>! \indpg 50. +!\parshape <number of lines> <indent 1> <line length 1>*/* ... <indent n> <line length n>! \indpg 50. +!\parskip [=] <dimen>! \indpg 51. +!\pretolerance [=] <integer>! \indpg 51. +!\tolerance [=] <integer>! \indpg 51. +!\raggedright! \indpg 51. +!\ttraggedright! \indpg 51. +!\veryraggedright! \indpg 51. +!\beginttverbatim! \indpg 55. +!\bigskip! \indpg 55. +!\endttverbatim! \indpg 55. +!\enskip! \indpg 55. +!\hskip [+ -] <dimen> [plus <dimen>] [minus <dimen>]! \indpg 56. +!\kern [+ -] <dimen>! \indpg 56. +!\mkern [+ -] <decimal number>mu! \indpg 56. +!\mskip [+ -] <mudimen> [plus <mudimen>] [minus <mudimen>]! \indpg 56. +!\medskip! \indpg 56. +!\quad \qquad! \indpg 56. +!\smallskip! \indpg 56. +!\spacing {<decimal number>}! \indpg 56. +!\vglue [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>]! \indpg 56. +!\vskip [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>]! \indpg 56. +!\allowbreak! \indpg 57. +!\break! \indpg 57. +!\bigbreak! \indpg 57. +!\bye! \indpg 58. +!\discretionary{<pre break text>}{<post break text>}{<text>}! \indpg 58. +!\done! \indpg 58. +!\end! \indpg 58. +!\filbreak! \indpg 58. +!\eject! \indpg 58. +!\ejectcolumn! \indpg 58. +!\ejectpage! \indpg 58. +!\goodbreak! \indpg 58. +!\linebreak! \indpg 58. +!\medbreak! \indpg 58. +!\nobreak! \indpg 58. +!\penaltybreak{<penalty>}{<skip size>}! \indpg 59. +!\smallbreak! \indpg 59. +!\alpha {\rm A} A! \indpg 62. +!\beta {\rm B} B! \indpg 62. +!\gamma \Gamma {\mit\Gamma}! \indpg 62. +!\delta \Delta {\mit\Delta} ! \indpg 62. +!\epsilon {\rm E} E! \indpg 62. +!\varepsilon! \indpg 62. +!\zeta {\rm Z} Z! \indpg 62. +!\eta {\rm H} H! \indpg 62. +!\theta \Theta {\mit\Theta} ! \indpg 62. +!\vartheta! \indpg 63. +!\iota {\rm I} I! \indpg 63. +!\kappa {\rm K} K ! \indpg 63. +!\lambda \Lambda {\mit\Lambda} ! \indpg 63. +!\mu {\rm M} M ! \indpg 63. +!\nu {\rm N} N! \indpg 63. +!\xi \Xi {\mit\Xi} ! \indpg 63. +!\pi \Pi {\mit\Pi}! \indpg 63. +!\varpi! \indpg 63. +!\rho {\rm R} R! \indpg 63. +!\sigma \Sigma {\mit\Sigma}! \indpg 63. +!\tau {\rm T} T! \indpg 63. +!\upsilon \Upsilon {\mit\Upsilon}! \indpg 63. +!\phi \Phi {\mit\Phi}! \indpg 63. +!\varphi! \indpg 63. +!\chi {\rm X} X! \indpg 63. +!\psi \Psi {\mit\Psi}! \indpg 63. +!\omega \Omega {\mit\Omega}! \indpg 63. +!+! \indpg 63. +!-! \indpg 63. +!=! \indpg 63. +!\not=! \indpg 63. +!<! \indpg 63. +!\not<! \indpg 63. +!>! \indpg 63. +!\not>! \indpg 63. +!\aleph! \indpg 63. +!\amalg! \indpg 63. +!\angle! \indpg 63. +!\approx! \indpg 63. +!\not\approx! \indpg 63. +!\ast! \indpg 63. +!\asymp! \indpg 64. +!\backslash! \indpg 64. +!\bigcap! \indpg 64. +!\bigcirc! \indpg 64. +!\bigcup! \indpg 64. +!\bigodot! \indpg 64. +!\bigoplus! \indpg 64. +!\bigotimes! \indpg 64. +!\bigsqcup! \indpg 64. +!\bigtriangledown! \indpg 64. +!\bigtriangleup! \indpg 64. +!\biguplus! \indpg 64. +!\bigvee! \indpg 64. +!\bigwedge! \indpg 64. +!\bot! \indpg 64. +!\bowtie! \indpg 64. +!\bullet! \indpg 64. +!\cap! \indpg 64. +!\cdot! \indpg 64. +!\circ! \indpg 64. +!\clubsuit! \indpg 64. +!\cong! \indpg 64. +!\not\cong! \indpg 64. +!\coprod! \indpg 64. +!\cup! \indpg 64. +!\dagger! \indpg 64. +!\dashv! \indpg 64. +!\ddagger! \indpg 64. +!\diamondsuit! \indpg 64. +!\diamond! \indpg 64. +!\div! \indpg 64. +!\doteq! \indpg 64. +!\Downarrow! \indpg 64. +!\downarrow! \indpg 64. +!\ell! \indpg 64. +!\emptyset! \indpg 64. +!\equiv! \indpg 64. +!\not\equiv! \indpg 64. +!\exists! \indpg 64. +!\flat! \indpg 64. +!\forall! \indpg 64. +!\frown! \indpg 64. +!\ge! \indpg 64. +!\geq! \indpg 64. +!\not\geq! \indpg 64. +!\gg! \indpg 64. +!\not\gg! \indpg 64. +!\hbar! \indpg 64. +!\heartsuit! \indpg 64. +!\hookleftarrow! \indpg 64. +!\hookrightarrow! \indpg 64. +!\Im! \indpg 64. +!\imath! \indpg 64. +!\infty! \indpg 64. +!\int! \indpg 64. +!\in! \indpg 64. +!\not\in! \indpg 64. +!\jmath! \indpg 64. +!\Leftarrow! \indpg 64. +!\leftarrow! \indpg 64. +!\leftharpoondown! \indpg 64. +!\leftharpoonup! \indpg 64. +!\Leftrightarrow! \indpg 64. +!\leftrightarrow! \indpg 64. +!\le! \indpg 64. +!\leq! \indpg 64. +!\not\leq! \indpg 64. +!\ll! \indpg 64. +!\not\ll! \indpg 64. +!\Longleftarrow! \indpg 64. +!\longleftarrow! \indpg 64. +!\Longleftrightarrow! \indpg 64. +!\longleftrightarrow! \indpg 64. +!\longmapsto! \indpg 64. +!\Longrightarrow! \indpg 64. +!\longrightarrow! \indpg 64. +!\mapsto! \indpg 64. +!\mid! \indpg 64. +!\models! \indpg 64. +!\mp! \indpg 64. +!\nabla! \indpg 64. +!\natural! \indpg 64. +!\nearrow! \indpg 65. +!\nwarrow! \indpg 65. +!\neg! \indpg 65. +!\lnot! \indpg 65. +!\ni! \indpg 65. +!\owns! \indpg 65. +!\odot! \indpg 65. +!\oint! \indpg 65. +!\ominus! \indpg 65. +!\oplus! \indpg 65. +!\oslash! \indpg 65. +!\otimes! \indpg 65. +!\parallel! \indpg 65. +!\partial! \indpg 65. +!\perp! \indpg 65. +!\pm! \indpg 65. +!\preceq! \indpg 65. +!\not\preceq! \indpg 65. +!\prec! \indpg 65. +!\not\prec! \indpg 65. +!\prime! \indpg 65. +!\prod! \indpg 65. +!\propto! \indpg 65. +!\Re! \indpg 65. +!\Rightarrow! \indpg 65. +!\rightarrow! \indpg 65. +!\rightharpoondown! \indpg 65. +!\rightharpoonup! \indpg 65. +!\rightleftharpoons! \indpg 65. +!\setminus! \indpg 65. +!\sharp! \indpg 65. +!\simeq! \indpg 65. +!\not\simeq! \indpg 65. +!\sim! \indpg 65. +!\not\sim! \indpg 65. +!\smile! \indpg 65. +!\spadesuit! \indpg 65. +!\sqcap! \indpg 65. +!\sqcup! \indpg 65. +!\sqsubseteq! \indpg 65. +!\not\sqsubseteq! \indpg 65. +!\sqsupseteq! \indpg 65. +!\not\sqsupseteq! \indpg 65. +!\star! \indpg 65. +!\subseteq! \indpg 65. +!\not\subseteq! \indpg 65. +!\subset! \indpg 65. +!\not\subset! \indpg 65. +!\succeq! \indpg 65. +!\not\succeq! \indpg 65. +!\succ! \indpg 65. +!\not\succ! \indpg 65. +!\sum! \indpg 65. +!\supseteq! \indpg 65. +!\not\supseteq! \indpg 65. +!\supset! \indpg 65. +!\not\supset! \indpg 65. +!\surd! \indpg 65. +!\searrow! \indpg 65. +!\swarrow! \indpg 65. +!\times! \indpg 65. +!\top! \indpg 65. +!\triangleleft! \indpg 65. +!\triangleright! \indpg 65. +!\triangle! \indpg 65. +!\uplus! \indpg 65. +!\Uparrow! \indpg 65. +!\uparrow! \indpg 65. +!\Updownarrow! \indpg 65. +!\updownarrow! \indpg 65. +!\Vert! \indpg 65. +!\vert! \indpg 65. +!\vdash! \indpg 65. +!\lor! \indpg 65. +!\vee! \indpg 65. +!\land! \indpg 65. +!\wedge! \indpg 65. +!\wp! \indpg 65. +!\wr! \indpg 65. +!\big\Arrowvert! \indpg 66. +!\big\arrowvert! \indpg 66. +!\langle! \indpg 66. +!\rangle! \indpg 66. +!\big\bracevert! \indpg 66. +!\lbrace! \indpg 66. +!\rbrace! \indpg 66. +!\lbrack! \indpg 66. +!\rbrack! \indpg 66. +!\lceil! \indpg 66. +!\rceil! \indpg 66. +!\lfloor! \indpg 66. +!\rfloor! \indpg 66. +!\big\lgroup! \indpg 66. +!\big\rgroup! \indpg 66. +!\big\lmoustache! \indpg 66. +!\big\rmoustache! \indpg 66. +!\backslash! \indpg 66. +!$\left<delimiter> ...\right<delimiter>$! \indpg 67. +!\bigl! \indpg 67. +!\biggl! \indpg 67. +!\Biggl! \indpg 67. +!\bigr! \indpg 67. +!\Bigr! \indpg 67. +!\biggr! \indpg 67. +!\Biggr! \indpg 67. +!\arg! \indpg 68. +!\arccos! \indpg 68. +!\arcsin! \indpg 68. +!\arctan! \indpg 68. +!\cot! \indpg 68. +!\coth! \indpg 68. +!\cosh! \indpg 68. +!\cos! \indpg 68. +!\csc! \indpg 68. +!\det! \indpg 68. +!\deg! \indpg 68. +!\dim! \indpg 68. +!\exp! \indpg 68. +!\gcd! \indpg 68. +!\hom! \indpg 68. +!\inf! \indpg 68. +!\ker! \indpg 68. +!\lg! \indpg 68. +!\liminf! \indpg 68. +!\limsup! \indpg 68. +!\lim! \indpg 68. +!\ln! \indpg 68. +!\log! \indpg 68. +!\max! \indpg 68. +!\min! \indpg 68. +!\Pr! \indpg 68. +!\sec! \indpg 68. +!\sin! \indpg 68. +!\sinh! \indpg 68. +!\sup! \indpg 68. +!\tanh! \indpg 68. +!\tan! \indpg 68. +!\buildrel <superscript> \over <relation>! \indpg 68. +!\above.. \atop.. \over.. functions*/* {<parm1> \atop <parm2>}*/* {<parm1> \choose <parm2>}*/* {<parm1> \over <parm2>}*/* {<parm1> \atopwithdelims<left delim><right delim> <parm2>}*/* {<parm1> \overwithdelims<left delim><right delim> <parm2>}*/* {<parm1> \abovewithdelims<left delim><right delim>*/* <bar thickness> <parm2>}! \indpg 71. +!\silenttrue! \indpg 73. +!\bordermatrix{<top 0>&<top 1>&<top 2>&...&<top n>\cr*/* <side 1>&<first row>\cr*/* ...*/* <side m>&<last row>\cr}! \indpg 73. +!\cases{<first math>&<first condition>\cr*/* ...*/* <last math>&<last condition>\cr}! \indpg 74. +!\eqalign ...*/* \eqalign{ <left first row> &<right first row>\cr*/* ...*/* <left last row> &<right last row>\cr}*/* \eqalignno{<left first row> &<right first row>&<first eq.no>\cr*/* ...*/* <left last row> &<right last row>&<last eq.no>\cr}*/* \leqalignno{<left first row>&<right first row>&<first eq.no>\cr*/* ...*/* <left last row> &<right last row>&<last eq.no>\cr}! \indpg 74. +!\eqno <reference> \leqno <reference>! \indpg 76. +!\leftequationnumbering \rightequationnumbering! \indpg 76. +!\noalign {<text>}! \indpg 76. +!\openup <dimen>! \indpg 77. +!\over ... \under ...*/* \overline{<math>} \underline{<math>}*/* \overbrace{<math>} \underbrace{<math>}! \indpg 77. +!\dots ... \cdot \cdots \ldots \ddots! \indpg 77. +!\mathopen{<dimen or glue>}! \indpg 77. +!\matrix{<entry 11>&<entry 12>&...&<entry 1n>\cr*/* <second row>\cr*/* ...*/* <last row> \cr}*/* \pmatrix{<several rows>\cr}! \indpg 78. +!\phantom{<math>} \vphantom{<math>} \sphantom{<hlist>}! \indpg 78. +!\sqrt{<math>}! \indpg 78. +!\smash{<math>}! \indpg 78. +!\box{<named box>}! \indpg 82. +!\boxit{<line thickness>}{<border separation>}{<box, vlist>}! \indpg 82. +!\boxmaxdepth [=] <dimen>! \indpg 82. +!\copy{<named box>}! \indpg 82. +!\line{<horizontal list>}! \indpg 82. +!\centerline{<horizontal list>}! \indpg 82. +!\leftline{<horizontal list>}! \indpg 82. +!\rightline{<horizontal list>}! \indpg 82. +!\box dimensions ... \dp \ht \wd! \indpg 83. +!\dp<named box> [=] <dimen>*/* \ht<named box> [=] <dimen>*/* \wd<named box> [=] <dimen>! \indpg 83. +!<scale factor>\dp<named box>*/* <scale factor>\ht<named box>*/* <scale factor>\wd<named box>! \indpg 83. +!\everyhbox = {<token list>}! \indpg 83. +!\everyvbox = {<token list>}! \indpg 83. +!\hbox <box spec>{<horizontal list>}! \indpg 83. +!\vbox <box spec>{<vertical list>}! \indpg 83. +!<box spec>! \indpg 83. +!\vbox{\hsize [=] <dimen> <text>}! \indpg 84. +!\hrule [height <dimen>] [width <dimen>] [depth <dimen>]! \indpg 84. +!\vrule [height <dimen>] [width <dimen>] [depth <dimen>]! \indpg 84. +!\llap{<text>}! \indpg 84. +!\rlap{<text>}! \indpg 84. +!\lower<dimen><box>! \indpg 84. +!\raise<dimen><box>! \indpg 84. +!\setbox<named box> [=] <box>{<list>}! \indpg 85. +!\strut! \indpg 85. +!\unhbox{<named hbox>}! \indpg 85. +!\unhcopy{<named hbox>}! \indpg 85. +!\unvbox{<named vbox>}! \indpg 85. +!\unvcopy{<named vbox>}! \indpg 85. +!\vcenter{<vertical list>}! \indpg 85. +!\vsplit<named box> to <dimen>! \indpg 85. +!\splitmaxdepth! \indpg 85. +!\+<text>&<text> ... &<text>\cr! \indpg 96. +!\cleartabs! \indpg 96. +!\tabalign ... \cr! \indpg 96. +!\halign{<preamble>\cr <first row>\cr ... <last row>\cr}! \indpg 96. +!\hidewidth! \indpg 97. +!\ialign{<preamble>\cr <first row>\cr ... <last row>\cr}! \indpg 97. +!\multispan {<integer>}! \indpg 97. +!\noalign {<text>}! \indpg 98. +!\oalign{<first row>\cr ... &<last row>\cr}! \indpg 98. +!\omit! \indpg 98. +!\span! \indpg 98. +!\valign{<preamble>\cr <first column>\cr ... <last column>\cr}! \indpg 98. +!~! \indpg 99. +!\:! \indpg 99. +!\-! \indpg 99. +!\br{<rules..>} \er{<rules..>}! \indpg 100. +!\begintable ... \endtable! \indpg 100. +!\begintableformat ... \endtableformat! \indpg 100. +!\center \center{<argument>}! \indpg 101. +!\displaymath{<argument>}! \indpg 101. +!\everytable! \indpg 101. +!\fulltablerule{<dimen>}! \indpg 101. +!\left! \indpg 101. +!\math{<argument>}! \indpg 102. +!\midtabglue [=] <glue>! \indpg 102. +!\modifystrut{<original>}{<add to height>}{<add to depth>}*/*\mst = \modifystrut! \indpg 102. +!\right! \indpg 102. +!\sa{<text>}! \indpg 102. +!\sprule! \indpg 102. +!\tablespread = {<halign specification>}! \indpg 103. +!\tcs! \indpg 103. +!\thrule{<height>}! \indpg 103. +!\tr! \indpg 103. +!\tvrule{<width>}! \indpg 104. +!\use{<number of data columns>}! \indpg 104. +!\zerocenteredbox{<text>}*/* \zb = \zerocenteredbox! \indpg 104. +!\def\<def name> <parameter form>{<replacement text>}! \indpg 108. +!\gdef\<def name> <parameter form>{<replacement text>}! \indpg 109. +!\global! \indpg 109. +!\let\<def a> [=] \<def b>! \indpg 109. +!\long! \indpg 109. +!\outer! \indpg 109. +!\beginlist \bl! \indpg 114. +!\beginsublist \bsl! \indpg 114. +!\beginsubsublist \bssl! \indpg 114. +!\endlist \el! \indpg 114. +!\endsublist \esl! \indpg 114. +!\endsubsublist \essl! \indpg 114. +!\everylist [=] {<token list>}! \indpg 114. +!\everysublist [=] {<token list>}! \indpg 114. +!\everysubsublist [=] {<token list>}! \indpg 115. +!\item! \indpg 115. +!\itemitem! \indpg 115. +!\listitem <listitem mark>! \indpg 115. +!\loosenlist! \indpg 115. +!\samplemark{<listitem mark>}! \indpg 115. +!\tightenlist! \indpg 116. +!\listindent [=] <dimen>! \indpg 116. +!\listitemmarksize [=] <dimen>! \indpg 116. +!\listitemskip [=] <glue>! \indpg 116. +!\polistskip [=] <glue>! \indpg 116. +!\posublistskip [=] <glue>! \indpg 116. +!\posubsublistskip [=] <glue>! \indpg 116. +!\prlistskip [=] <glue>! \indpg 116. +!\prsublistskip [=] <glue>! \indpg 116. +!\prsubsublistskip [=] <glue>! \indpg 116. +!\sublistindent [=] <dimen>! \indpg 116. +!\subsublistindent [=] <dimen>! \indpg 116. +!\sublistitemskip [=] <glue>! \indpg 116. +!\subsublistitemskip [=] <glue>! \indpg 116. +!\everyfootnote = {<token list>}! \indpg 118. +!\footnote{<math mode mark>}{<text>}! \indpg 118. +!\footnotefont! \indpg 118. +!\footnoterule! \indpg 118. +!\up{<math mode mark>}! \indpg 118. +!\skip\footins [=] <dimen>! \indpg 118. +!\dimen\footins [=] <dimen>! \indpg 118. +!\sfootnote{<math mode mark>}{<text>}! \indpg 119. +!\beginmidinsert! \indpg 127. +!\beginpageinsert! \indpg 127. +!\begintopinsert! \indpg 127. +!\captionbox{<number text>}{<title>}! \indpg 127. +!\captionbody{<text>}! \indpg 127. +!\captionbodyon \captionbodyoff! \indpg 127. +!\captionbodyfont! \indpg 127. +!\captionnumfont! \indpg 128. +!\captiontitlefont! \indpg 128. +!\captionskip [=] <dimen>! \indpg 128. +!\captiontextfraction! \indpg 128. +!\ejectinserts! \indpg 128. +!\endmidinsert! \indpg 128. +!\endpageinsert! \indpg 128. +!\endtopinsert! \indpg 128. +!\figureform{<tag or number>}{<title>}{<figure box>}! \indpg 128. +!\figureinsert{<tag or number>}{<title>}{<figure box>}! \indpg 129. +!\figurelabel! \indpg 129. +!\rect <horizontal dimen> by <vertical dimen>! \indpg 129. +!\tableform{<tag or number>}{<title>}{<table>}! \indpg 129. +!\tableinsert{<tag or number>}{<title>}{<figure box>}! \indpg 129. +!\tablelabel! \indpg 130. +!\balancecolumnsize*/* [=] <column length> ! \indpg 132. +!\beginmulticolumnformat! \indpg 132. +!\endmulticolumnformat! \indpg 132. +!\ejectcolumn! \indpg 132. +!\ejectpage! \indpg 132. +!\firstcolumnoffset*/* [=] <dimen>! \indpg 133. +!\intercolumnsep*/* [=] {<token list>}! \indpg 133. +!\numberofcolumns*/* [=] <integer>! \indpg 133. +!\chead{<number or tag>}{<title>}! \indpg 137. +!\preludehead{<title>}! \indpg 137. +!\shead{<number or tag>}{<title>}! \indpg 137. +!\sshead{<number or tag>}{<title>}! \indpg 137. +!\ssshead{<number or tag>}{<title>}! \indpg 137. +!\dssshead{<title>}! \indpg 137. +!\Appendix! \indpg 137. +!\beginappendices \endappendices! \indpg 137. +!\beginprelude \endprelude! \indpg 138. +!\Chapter! \indpg 138. +!\chapterstartform = {<special pre chapter tests>}! \indpg 138. +!\<head type>headfont! \indpg 138. +!\Alphabetic{<integer>}! \indpg 138. +!\alphabetic{<integer>}! \indpg 138. +!\UpperRoman{<integer>}! \indpg 138. +!\chtagreplaceformat! \indpg 139. +!\shtagreplaceformat! \indpg 139. +!\prsheadskip [=] <glue>! \indpg 139. +!\posheadskip [=] <glue>! \indpg 139. +!\prssheadskip [=] <glue>! \indpg 139. +!\possheadskip [=] <glue>! \indpg 139. +!\prsssheadskip [=] <glue>! \indpg 139. +!\posssheadskip [=] <glue>! \indpg 139. +!\prdsssheadskip [=] <glue>! \indpg 139. +!\podsssheadskip [=] <glue>! \indpg 139. +!\preludeheadformat! \indpg 139. +!\cheadformat{<chapter>}{<text>}! \indpg 140. +!\gensheadformat{<font>}{<number>}{<text>}{<separator>}! \indpg 140. +!\preludheadformat{<title>}! \indpg 140. +!\autoeqnum! \indpg 142. +!\autotblnum! \indpg 142. +!\autofignum! \indpg 142. +!\<type>tagrefformat! \indpg 142. +!\<type>num! \indpg 142. +!\<type>tagreplaceformat! \indpg 142. +!\<type>numform! \indpg 142. +!\pagetagson! \indpg 142. +!\pagetagsoff! \indpg 142. +!{\silenttrue \auto...num{<tag>}}! \indpg 143. +!\aneq \aneqtag{<tag>}! \indpg 144. +!\autonumberingon! \indpg 145. +!\autonumberingoff! \indpg 145. +!\autoreferencingon! \indpg 145. +!\autoreferencingingoff! \indpg 145. +!\auto<type>num{<tag>}! \indpg 145. +!\inputtagfiles [=] {<input command><file name> ...}! \indpg 145. +!\newautonum{<type>}! \indpg 146. +!\newtag{<tag>}{<tag value>}! \indpg 146. +!\newttag{<tag>}{<tag value>}! \indpg 146. +!\newptag{<tag>}! \indpg 146. +!\numberbychapter! \indpg 146. +!\numberbysection! \indpg 146. +!\pagequietref{<tag>} \pqref{<tag>}! \indpg 146. +!\pageref{<tag>} \pref{<tag>}! \indpg 147. +!\pagetagson \pagetagsoff! \indpg 147. +!\quietref{<tag>} \qref{<tag>}! \indpg 147. +!\ref{<tag>}! \indpg 147. +!\silent{<text>}! \indpg 147. +!\specialnumberscontinuous! \indpg 147. +!\citenum! \indpg 151. +!\cite{<citation tag>}! \indpg 151. +!\citeform{<citation tag>}{<TeX macro form>}! \indpg 152. +!\citetagvalue! \indpg 152. +!\closecitationtagfile! \indpg 152. +!\initcitetag{<integer>}! \indpg 152. +!\inputciteformfiles*/* [=] { \inputwithcheck{<first form file>}*/* ...*/* \inputwithcheck{<last form file>} }! \indpg 152. +!\inputcitetagfiles*/* [=] { \inputwithcheck{<first tag file>}*/* ...*/* \inputwithcheck{<last tag file>} }! \indpg 153. +!\lastcitetag{<integer>}! \indpg 153. +!\makecitationlist! \indpg 153. +!\makelongcitationlist! \indpg 153. +!\openlistfile{<file extension>}! \indpg 156. +!\chtoc{<number>}{<title>}{<page number>}! \indpg 156. +!\chtocout! \indpg 157. +!\dssshtoc{<number>}{<title>}{<page number>}! \indpg 157. +!\intdssshtoc! \indpg 157. +!\dssshtocout! \indpg 157. +!\figtoc{<number>}{<title>}{<page number>}! \indpg 157. +!\figtocout! \indpg 157. +!\inputfigfiles! \indpg 157. +!\inputtblfiles! \indpg 157. +!\inputtocfiles! \indpg 158. +!\makefiglist! \indpg 158. +!\maketbllist! \indpg 158. +!\maketoclist! \indpg 158. +!\newtocfile! \indpg 158. +!\prtoc{<title>}{<page number>}! \indpg 158. +!\prtocout! \indpg 158. +!\shtoc{<number>}{<title>}{<page number>}! \indpg 159. +!\sshtoc{<number>}{<title>}{<page number>}! \indpg 159. +!\ssshtoc{<number>}{<title>}{<page number>}! \indpg 159. +!\intssshtoc! \indpg 159. +!\shtocout! \indpg 159. +!\sshtocout! \indpg 159. +!\ssshtocout! \indpg 159. +!\tbltoc<number>}{<title>}{<page number>}! \indpg 159. +!\tbltocout! \indpg 159. +!\tocbox{<indent>}{<number>}{<title>}{<pagenumber>}! \indpg 159. +!\tocfill! \indpg 160. +!\writelistfile{<file extension}{\string\..toc}{<number>}{<arg>}! \indpg 160. +!\folio! \indpg 162. +!\uppercase\folio! \indpg 162. +!\nopagenumberadvance! \indpg 162. +!\pagenumber [=] <new page number>! \indpg 162. +!\romanpagenumber [=] <new page number>! \indpg 163. +!\vheadersize = <dimen>! \indpg 163. +!\vfootersize = <dimen>! \indpg 163. +!\documentstyle! \indpg 163. +!\blankheaderstyle \blankfooterstyle! \indpg 163. +!\documentstyle{<list of style types>}! \indpg 163. +!\fullpagestyle! \indpg 163. +!\noheaderstyle \nofooterstyle! \indpg 164. +!\normalheaderstyle \normalfooterstyle! \indpg 164. +!\normalpagestyle! \indpg 164. +!\specialheaderstyle \specialfooterstyle! \indpg 164. +!\specialpagestyle! \indpg 164. +!\titlepagestyle! \indpg 164. +!\headertext [=] {<token list>}! \indpg 164. +!\footertext [=] {<token list>}! \indpg 164. +!\specialheadertext [=] {<token list>}! \indpg 164. +!\specialfootertext [=] {<token list>}! \indpg 164. +!\vheadersize [=] <dimen>! \indpg 165. +!\vfooterersize [=] <dimen>! \indpg 165. +!\documentstyle! \indpg 167. +!\documentstyle! \indpg 167. +!\houterpagesize! \indpg 167. +!\hpapersize! \indpg 167. +!\leftmarginsize! \indpg 167. +!\leftmarginskip! \indpg 167. +!\topmarginsize! \indpg 167. +!\topmarginskip! \indpg 167. +!\vouterpagesize! \indpg 167. +!\vpapersize! \indpg 167. +!\vouterpagesize! \indpg 169. +!\houterpagesize! \indpg 169. +!\vpapersize! \indpg 169. +!\hpapersize! \indpg 169. +!\vsize! \indpg 169. +!\hsize! \indpg 169. +!\<dimen name> [=] <dimen>! \indpg 169. +!\mag [=] <1000 times scale factor>! \indpg 170. +!\magstep<integer>! \indpg 170. +!\leftcolumnoffset! \indpg 171. +!\vcolumnsize! \indpg 171. +!\hcolumnsize! \indpg 171. +!\vinnerpagesize! \indpg 171. +!\hinnerpagesize! \indpg 171. +!\inputsubdocument{<file name>}! \indpg 175. +!\following\...hnum! \indpg 176. +!\subdocumentmacros{<macros for subdocument>}! \indpg 176. +!\beginabstract...\endabstract! \indpg 178. +!\title{<first row>\cr ... <last row>}! \indpg 178. +!\formatinrs! \indpg 178. +!\inrsreportstyle! \indpg 178. +!\move h:<..> v:<..>! \indpg 184. +!\lvec h:<..> v:<..>! \indpg 184. +!\clvec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..>! \indpg 185. +!\clv (<h1> <v1>) (<h2> <v2>) (<h3> <v3>)! \indpg 185. +!\penwidth <size>! \indpg 185. +!\linecap <integer>! \indpg 185. +!\linejoin <integer>! \indpg 185. +!\lpatt p:<pattern>! \indpg 185. +!\avec h:<..> v:<..>! \indpg 186. +!\cavec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..>! \indpg 186. +!\cav (<h1> <v1>) (<h2> <v2>) (<h3> <v3>) ! \indpg 186. +!\arrowheadtype t:<type>! \indpg 186. +!\arrowheadsize l:<length> w:<width>! \indpg 186. +!\arrowheadscale! \indpg 186. +!\unitscale <scale>! \indpg 187. +!\htext {<text>}! \indpg 189. +!\vtext {<text>}! \indpg 189. +!\rtext d:<degrees> t:{<text>}! \indpg 189. +!\rstext d:<degrees> sc:<scale> t:{<text>}! \indpg 189. +!\textref h:<L C R> v:<T C B>! \indpg 190. +!\lcir r:<radius>! \indpg 193. +!\arcc r:<radius> sd:<degrees> ed:<degrees>! \indpg 193. +!\arcn r:<radius> sd:<degrees> ed:<degrees>! \indpg 193. +!\pfill p:<fraction>! \indpg 193. +!\beginsegment! \indpg 197. +!\endsegment! \indpg 197. +!\unitscale <scale>! \indpg 197. +!\segmentscale <scale>! \indpg 197. +!\absoluteposition! \indpg 197. +!\relativeposition! \indpg 197. +!\input inrssl! \indpg 200. +!\fullform! \indpg 200. +!\textform! \indpg 200. +!\formscale <scale>! \indpg 200. +!\hslide <title> // <text> //! \indpg 201. +!\comment <text> //! \indpg 201. +!\inrsform! \indpg 201. +!\genform! \indpg 201. +!\topdata ={<text>}! \indpg 201. +!\botdata = {<b-text>}! \indpg 201. +!\slidedate = {<s-date>}! \indpg 201. +!\iftextform <...> \else <...> \fi! \indpg 201. +!\lb \lc \last! \indpg 201. +!\hd{<text>}! \indpg 201. +!\begintexgraph \btg! \indpg 202. +!\endtexgraph \etg! \indpg 202. +!\graphdim <units>! \indpg 202. +!\hgraphsize! \indpg 202. +!\hgraphskip! \indpg 202. +!\hpix <number>/<unit>! \indpg 202. +!\vgraphsize! \indpg 202. +!\vgraphskip! \indpg 202. +!\vpix <number>/<unit>! \indpg 202. diff --git a/macros/inrstex/inrsdoc/masth.sor b/macros/inrstex/inrsdoc/masth.sor new file mode 100644 index 0000000000..c856337082 --- /dev/null +++ b/macros/inrstex/inrsdoc/masth.sor @@ -0,0 +1,809 @@ +\2~ \indpg 99. +\2\1: \indpg 99. +\2+ \indpg 63. +\2\1- \indpg 99. +\2- \indpg 63. +\2= \indpg 63. +\2< \indpg 63. +\2> \indpg 63. +\2\1aa, \1AA \indpg 14. +\2\1above.. \1atop.. \1over.. functions + {<parm1> \1atop <parm2>} + {<parm1> \1choose <parm2>} + {<parm1> \1over <parm2>} + {<parm1> \1atopwithdelims<left delim><right delim> <parm2>} + {<parm1> \1overwithdelims<left delim><right delim> <parm2>} + {<parm1> \1abovewithdelims<left delim><right delim> + <bar thickness> <parm2>} \indpg 71. +\2\1absoluteposition \indpg 197. +\2\1advance \1<count, dimen, glue name> by [+ -]<count, dimen, glue> \indpg 40. +\2\1ae, \1AE \indpg 14. +\2\1aleph \indpg 63. +\2\1allowbreak \indpg 57. +\2\1Alphabetic{<integer>} \indpg 138. +\2\1alphabetic{<integer>} \indpg 138. +\2\1alpha {\1rm A} A \indpg 62. +\2\1amalg \indpg 63. +\2\1aneq \1aneqtag{<tag>} \indpg 144. +\2\1angle \indpg 63. +\2\1Appendix \indpg 137. +\2\1approx \indpg 63. +\2\1arccos \indpg 68. +\2\1arcc r:<radius> sd:<degrees> ed:<degrees> \indpg 193. +\2\1arcn r:<radius> sd:<degrees> ed:<degrees> \indpg 193. +\2\1arcsin \indpg 68. +\2\1arctan \indpg 68. +\2\1arg \indpg 68. +\2\1arrowheadscale \indpg 186. +\2\1arrowheadsize l:<length> w:<width> \indpg 186. +\2\1arrowheadtype t:<type> \indpg 186. +\2\1ast \indpg 63. +\2\1asymp \indpg 64. +\2\1autoeqnum \indpg 142. +\2\1autofignum \indpg 142. +\2\1autonumberingon \indpg 145. +\2\1autonumberingoff \indpg 145. +\2\1autoreferencingon \indpg 145. +\2\1autoreferencingingoff \indpg 145. +\2\1autotblnum \indpg 142. +\2\1auto<type>num{<tag>} \indpg 145. +\2\1avec h:<..> v:<..> \indpg 186. +\2\1backslash \indpg 66. +\2\1backslash \indpg 64. +\2\1balancecolumnsize + [=] <column length> \indpg 132. +\2\1beginabstract...\1endabstract \indpg 178. +\2\1beginappendices \1endappendices \indpg 137. +\2\1beginlist \1bl \indpg 114. +\2\1beginmidinsert \indpg 127. +\2\1beginmulticolumnformat \indpg 132. +\2\1beginpageinsert \indpg 127. +\2\1beginprelude \1endprelude \indpg 138. +\2\1beginsegment \indpg 197. +\2\1beginsublist \1bsl \indpg 114. +\2\1beginsubsublist \1bssl \indpg 114. +\2\1begintable ... \1endtable \indpg 100. +\2\1begintableformat ... \1endtableformat \indpg 100. +\2\1begintexgraph \1btg \indpg 202. +\2\1begintopinsert \indpg 127. +\2\1beginttverbatim \indpg 55. +\2\1beta {\1rm B} B \indpg 62. +\2\1bf \indpg 35. +\2\1big\1Arrowvert \indpg 66. +\2\1big\1arrowvert \indpg 66. +\2\1big\1bracevert \indpg 66. +\2\1bigbreak \indpg 57. +\2\1bigcap \indpg 64. +\2\1bigcirc \indpg 64. +\2\1bigcup \indpg 64. +\2\1bigfont \indpg 35. +\2\1biggfont \indpg 35. +\2\1bigggfont \indpg 35. +\2\1biggl \indpg 67. +\2\1Biggl \indpg 67. +\2\1biggr \indpg 67. +\2\1Biggr \indpg 67. +\2\1big\1lgroup \indpg 66. +\2\1bigl \indpg 67. +\2\1big\1lmoustache \indpg 66. +\2\1bigodot \indpg 64. +\2\1bigoplus \indpg 64. +\2\1bigotimes \indpg 64. +\2\1big\1rgroup \indpg 66. +\2\1bigr \indpg 67. +\2\1Bigr \indpg 67. +\2\1big\1rmoustache \indpg 66. +\2\1bigskip \indpg 55. +\2\1bigsqcup \indpg 64. +\2\1bigtriangledown \indpg 64. +\2\1bigtriangleup \indpg 64. +\2\1biguplus \indpg 64. +\2\1bigvee \indpg 64. +\2\1bigwedge \indpg 64. +\2\1blankheaderstyle \1blankfooterstyle \indpg 163. +\2\1bordermatrix{<top 0>&<top 1>&<top 2>&...&<top n>\1cr + <side 1>&<first row>\1cr + ... + <side m>&<last row>\1cr} \indpg 73. +\2\1botdata = {<b-text>} \indpg 201. +\2\1bot \indpg 64. +\2\1bowtie \indpg 64. +\2\1box dimensions ... \1dp \1ht \1wd \indpg 83. +\2\1boxit{<line thickness>}{<border separation>}{<box, vlist>} \indpg 82. +\2\1boxmaxdepth [=] <dimen> \indpg 82. +\2\1box{<named box>} \indpg 82. +\2<box spec> \indpg 83. +\2\1break \indpg 57. +\2\1br{<rules..>} \1er{<rules..>} \indpg 100. +\2\1buildrel <superscript> \1over <relation> \indpg 68. +\2\1bullet \indpg 64. +\2\1bye \indpg 22. +\2\1bye \indpg 58. +\2\1cap \indpg 64. +\2\1captionbodyfont \indpg 36. +\2\1captionbody{<text>} \indpg 127. +\2\1captionbodyon \1captionbodyoff \indpg 127. +\2\1captionbodyfont \indpg 127. +\2\1captionbox{<number text>}{<title>} \indpg 127. +\2\1captionnumfont \indpg 36. +\2\1captionnumfont \indpg 128. +\2\1captionskip [=] <dimen> \indpg 128. +\2\1captiontextfraction \indpg 128. +\2\1captiontitlefont \indpg 128. +\2\1captiontitlefont \indpg 36. +\2\1cases{<first math>&<first condition>\1cr + ... + <last math>&<last condition>\1cr} \indpg 74. +\2\1cavec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..> \indpg 186. +\2\1cav (<h1> <v1>) (<h2> <v2>) (<h3> <v3>) \indpg 186. +\2\1cdot \indpg 64. +\2\1center \1center{<argument>} \indpg 101. +\2\1centerline{<horizontal list>} \indpg 82. +\2\1Chapter \indpg 138. +\2\1chapterstartform = {<special pre chapter tests>} \indpg 138. +\2\1cheadfont \indpg 35. +\2\1cheadformat{<chapter>}{<text>} \indpg 140. +\2\1chead{<number or tag>}{<title>} \indpg 137. +\2\1chi {\1rm X} X \indpg 63. +\2\1chtagreplaceformat \indpg 139. +\2\1chtoc{<number>}{<title>}{<page number>} \indpg 156. +\2\1chtocout \indpg 157. +\2\1circ \indpg 64. +\2\1cite{<citation tag>} \indpg 151. +\2\1citeform{<citation tag>}{<TeX macro form>} \indpg 152. +\2\1citenum \indpg 151. +\2\1citetagvalue \indpg 152. +\2\1cleartabs \indpg 96. +\2\1closecitationtagfile \indpg 152. +\2\1clubsuit \indpg 64. +\2\1clvec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..> \indpg 185. +\2\1clv (<h1> <v1>) (<h2> <v2>) (<h3> <v3>) \indpg 185. +\2\1comment <text> // \indpg 201. +\2\1cong \indpg 64. +\2\1coprod \indpg 64. +\2\1copy{<named box>} \indpg 82. +\2\1copyright \indpg 14. +\2\1cosh \indpg 68. +\2\1cos \indpg 68. +\2\1coth \indpg 68. +\2\1cot \indpg 68. +\2\1<count name> [=] <integer, dimen, glue> \indpg 39. +\2\1csc \indpg 68. +\2\1cup \indpg 64. +\2\1dagger \indpg 64. +\2\1dag \indpg 14. +\2\1dashv \indpg 64. +\2\1ddagger \indpg 64. +\2\1ddag \indpg 14. +\2\1def\1<def name> <parameter form>{<replacement text>} \indpg 108. +\2\1deg \indpg 68. +\2\1delta \1Delta {\1mit\1Delta} \indpg 62. +\2\1det \indpg 68. +\2\1diamond \indpg 64. +\2\1diamondsuit \indpg 64. +\2\1dimen\1footins [=] <dimen> \indpg 118. +\2\1<dimen name> [=] < dimen, glue> \indpg 39. +\2\1<dimen name> [=] <dimen> \indpg 169. +\2\1dim \indpg 68. +\2\1discretionary{<pre break text>}{<post break text>}{<text>} \indpg 58. +\2\1discretionary{<prebreak text>}{<postbreak text>}{<nobreak text>} \indpg 47. +\2\1displaymath{<argument>} \indpg 101. +\2\1divide \1<count, dimen, glue name> by [+ -]<integer> \indpg 40. +\2\1div \indpg 64. +\2\1documentstyle{<list of style types>} \indpg 163. +\2\1documentstyle \indpg 167. +\2\1documentstyle \indpg 163. +\2\1documentstyle{<font family>} \indpg 36. +\2\1documentstyle \indpg 167. +\2\1done \indpg 58. +\2\1done \indpg 23. +\2\1doteq \indpg 64. +\2\1dots ... \1cdot \1cdots \1ldots \1ddots \indpg 77. +\2\1downarrow \indpg 64. +\2\1Downarrow \indpg 64. +\2\1dp<named box> [=] <dimen> + \1ht<named box> [=] <dimen> + \1wd<named box> [=] <dimen> \indpg 83. +\2\1draftversion \indpg 23. +\2\1dsssheadfont \indpg 36. +\2\1dssshead{<title>} \indpg 137. +\2\1dssshtoc{<number>}{<title>}{<page number>} \indpg 157. +\2\1dssshtocout \indpg 157. +\2DVIALW Command line options \indpg 24. +\2\1ehyph \indpg 23. +\2\1eightpoint \indpg 35. +\2\1ejectcolumn \indpg 132. +\2\1ejectcolumn \indpg 58. +\2\1eject \indpg 58. +\2\1ejectinserts \indpg 128. +\2\1ejectpage \indpg 132. +\2\1ejectpage \indpg 58. +\2\1ell \indpg 64. +\2\1emptyset \indpg 64. +\2\1end \indpg 58. +\2\1end \indpg 23. +\2\1endlist \1el \indpg 114. +\2\1endmidinsert \indpg 128. +\2\1endmulticolumnformat \indpg 132. +\2\1endnarrowtext \indpg 47. +\2\1endpageinsert \indpg 128. +\2\1endsegment \indpg 197. +\2\1endsublist \1esl \indpg 114. +\2\1endsubsublist \1essl \indpg 114. +\2\1endtexgraph \1etg \indpg 202. +\2\1endtopinsert \indpg 128. +\2\1endttverbatim \indpg 55. +\2\1englishversion \1ehyph \indpg 23. +\2\1enskip \indpg 55. +\2\1epsilon {\1rm E} E \indpg 62. +\2\1eqalign ... + \1eqalign{ <left first row> &<right first row>\1cr + ... + <left last row> &<right last row>\1cr} + \1eqalignno{<left first row> &<right first row>&<first eq.no>\1cr + ... + <left last row> &<right last row>&<last eq.no>\1cr} + \1leqalignno{<left first row>&<right first row>&<first eq.no>\1cr + ... + <left last row> &<right last row>&<last eq.no>\1cr} \indpg 74. +\2\1eqno <reference> \1leqno <reference> \indpg 76. +\2\1equiv \indpg 64. +\2\1eta {\1rm H} H \indpg 62. +\2\1everyfootnote = {<token list>} \indpg 118. +\2\1everyhbox = {<token list>} \indpg 83. +\2\1everylist [=] {<token list>} \indpg 114. +\2\1everyparagraph [=] {<token string>} \indpg 47. +\2\1everysublist [=] {<token list>} \indpg 114. +\2\1everysubsublist [=] {<token list>} \indpg 115. +\2\1everytable \indpg 101. +\2\1everyvbox = {<token list>} \indpg 83. +\2\1exists \indpg 64. +\2\1exp \indpg 68. +\2\1fhyph \indpg 24. +\2\1figtoc{<number>}{<title>}{<page number>} \indpg 157. +\2\1figtocout \indpg 157. +\2\1figureform{<tag or number>}{<title>}{<figure box>} \indpg 128. +\2\1figureinsert{<tag or number>}{<title>}{<figure box>} \indpg 129. +\2\1figurelabel \indpg 129. +\2\1filbreak \indpg 58. +\2\1finalversion \indpg 23. +\2\1firstcolumnoffset + [=] <dimen> \indpg 133. +\2\1fivebf \indpg 34. +\2\1fivei \indpg 34. +\2\1fiverm \indpg 34. +\2\1flat \indpg 64. +\2\1folio \indpg 162. +\2\1following\1...hnum \indpg 176. +\2\1font\1<fontname> [scaled <number>] \indpg 34. +\2\1footerfont \indpg 36. +\2\1footertext [=] {<token list>} \indpg 164. +\2\1footnotefont \indpg 36. +\2\1footnotefont \indpg 118. +\2\1footnote{<math mode mark>}{<text>} \indpg 118. +\2\1footnoterule \indpg 118. +\2\1forall \indpg 64. +\2\1formatinrs \indpg 178. +\2\1formscale <scale> \indpg 200. +\2\1frown \indpg 64. +\2\1fullform \indpg 200. +\2\1fullpagestyle \indpg 163. +\2\1fulltablerule{<dimen>} \indpg 101. +\2\1gamma \1Gamma {\1mit\1Gamma} \indpg 62. +\2\1gcd \indpg 68. +\2\1gdef\1<def name> <parameter form>{<replacement text>} \indpg 109. +\2\1ge \indpg 64. +\2\1genform \indpg 201. +\2\1gensheadformat{<font>}{<number>}{<text>}{<separator>} \indpg 140. +\2\1geq \indpg 64. +\2\1gg \indpg 64. +\2\1global \indpg 109. +\2\1goodbreak \indpg 58. +\2\1graphdim <units> \indpg 202. +\2\1halign{<preamble>\1cr <first row>\1cr ... <last row>\1cr} \indpg 96. +\2\1hangafter [+ -] <integer> \indpg 48. +\2\1hangindent [=] [+ -] <dimen> \indpg 48. +\2\1hbar \indpg 64. +\2\1hbox <box spec>{<horizontal list>} \indpg 83. +\2\1hcolumnsize \indpg 171. +\2\1hd{<text>} \indpg 201. +\2\1headerfont \indpg 36. +\2\1headertext [=] {<token list>} \indpg 164. +\2\1<head type>headfont \indpg 138. +\2\1heartsuit \indpg 64. +\2\1hfil \1hfill \indpg 42. +\2\1hfilneg \indpg 42. +\2\1hfuzz [=] <dimen> \indpg 31. +\2\1hgraphsize \indpg 202. +\2\1hgraphskip \indpg 202. +\2\1hidewidth \indpg 97. +\2\1hinnerpagesize \indpg 171. +\2\1hom \indpg 68. +\2\1hookleftarrow \indpg 64. +\2\1hookrightarrow \indpg 64. +\2\1houterpagesize \indpg 169. +\2\1houterpagesize \indpg 167. +\2\1hpapersize \indpg 167. +\2\1hpapersize \indpg 169. +\2\1hpix <number>/<unit> \indpg 202. +\2\1hprintoffset = <dimen> \indpg 21. +\2\1hrule [height <dimen>] [width <dimen>] [depth <dimen>] \indpg 84. +\2\1hsize \indpg 169. +\2\1hskip [+ -] <dimen> [plus <dimen>] [minus <dimen>] \indpg 56. +\2\1hslide <title> // <text> // \indpg 201. +\2\1hss \indpg 42. +\2\1htext {<text>} \indpg 189. +\2\1hyphenatecapitals [=] <integer> \indpg 48. +\2\1hyphenation{<exceptions>} \indpg 23. +\2\1ialign{<preamble>\1cr <first row>\1cr ... <last row>\1cr} \indpg 97. +\2\1iftextform <...> \1else <...> \1fi \indpg 201. +\2\1i \indpg 14. +\2\1imath \indpg 64. +\2\1Im \indpg 64. +\2\1indent \indpg 48. +\2\1inf \indpg 68. +\2\1infty \indpg 64. +\2\1in \indpg 64. +\2\1initcitetag{<integer>} \indpg 152. +\2\1inputciteformfiles + [=] { \1inputwithcheck{<first form file>} + ... + \1inputwithcheck{<last form file>} } \indpg 152. +\2\1inputcitetagfiles + [=] { \1inputwithcheck{<first tag file>} + ... + \1inputwithcheck{<last tag file>} } \indpg 153. +\2\1inputfigfiles \indpg 157. +\2\1input inrssl \indpg 200. +\2\1inputsubdocument{<file name>} \indpg 175. +\2\1inputtagfiles [=] {<input command><file name> ...} \indpg 145. +\2\1inputtblfiles \indpg 157. +\2\1inputtocfiles \indpg 158. +\2\1inrsform \indpg 201. +\2\1inrsreportstyle \indpg 178. +\2\1intdssshtoc \indpg 157. +\2\1intercolumnsep + [=] {<token list>} \indpg 133. +\2\1int \indpg 64. +\2\1intssshtoc \indpg 159. +\2\1iota {\1rm I} I \indpg 63. +\2\1item \indpg 115. +\2\1itemitem \indpg 115. +\2\1it \indpg 35. +\2{\1it\1$} \indpg 14. +\2{\1it\1&} \indpg 14. +\2\1j \indpg 14. +\2\1jmath \indpg 64. +\2\1jobname \indpg 20. +\2\1kappa {\1rm K} K \indpg 63. +\2\1ker \indpg 68. +\2\1kern [+ -] <dimen> \indpg 56. +\2\1lambda \1Lambda {\1mit\1Lambda} \indpg 63. +\2\1land \indpg 65. +\2\1langle \indpg 66. +\2\1language [=] <integer> \indpg 23. +\2\1lastcitetag{<integer>} \indpg 153. +\2\1lb \1lc \1last \indpg 201. +\2\1lbrace \indpg 66. +\2\1lbrack \indpg 66. +\2\1lceil \indpg 66. +\2\1lcir r:<radius> \indpg 193. +\2\1Leftarrow \indpg 64. +\2\1leftarrow \indpg 64. +\2\1leftcolumnoffset \indpg 171. +\2$\1left<delimiter> ...\1right<delimiter>$ \indpg 67. +\2\1leftequationnumbering \1rightequationnumbering \indpg 76. +\2\1leftharpoondown \indpg 64. +\2\1leftharpoonup \indpg 64. +\2\1left \indpg 101. +\2\1leftline{<horizontal list>} \indpg 82. +\2\1leftmarginsize \indpg 167. +\2\1leftmarginskip \indpg 167. +\2\1leftrightarrow \indpg 64. +\2\1Leftrightarrow \indpg 64. +\2\1leftskip [=] <dimen> [plus <dimen>] [minus <dimen>] \indpg 48. +\2\1le \indpg 64. +\2\1leq \indpg 64. +\2\1let\1<def a> [=] \1<def b> \indpg 109. +\2\1lfloor \indpg 66. +\2\1lg \indpg 68. +\2\1lim \indpg 68. +\2\1liminf \indpg 68. +\2\1limsup \indpg 68. +\2\1linebreak \indpg 58. +\2\1linecap <integer> \indpg 185. +\2\1line{<horizontal list>} \indpg 82. +\2\1linejoin <integer> \indpg 185. +\2\1listindent [=] <dimen> \indpg 116. +\2\1listitem <listitem mark> \indpg 115. +\2\1listitemmarksize [=] <dimen> \indpg 116. +\2\1listitemskip [=] <glue> \indpg 116. +\2\1llap{<text>} \indpg 84. +\2\1ll \indpg 64. +\2\1l, \1L \indpg 14. +\2\1ln \indpg 68. +\2\1lnot \indpg 65. +\2\1log \indpg 68. +\2\1long \indpg 109. +\2\1Longleftarrow \indpg 64. +\2\1longleftarrow \indpg 64. +\2\1longleftrightarrow \indpg 64. +\2\1Longleftrightarrow \indpg 64. +\2\1longmapsto \indpg 64. +\2\1Longrightarrow \indpg 64. +\2\1longrightarrow \indpg 64. +\2\1looseness [=] [+ -] <integer> \indpg 49. +\2\1loosenlist \indpg 115. +\2\1lor \indpg 65. +\2\1lower<dimen><box> \indpg 84. +\2\1lpatt p:<pattern> \indpg 185. +\2\1lvec h:<..> v:<..> \indpg 184. +\2\1magstep<integer> \indpg 170. +\2\1mag [=] <1000 times scale factor> \indpg 170. +\2\1makecitationlist \indpg 153. +\2\1makefiglist \indpg 158. +\2\1makelongcitationlist \indpg 153. +\2\1maketbllist \indpg 158. +\2\1maketoclist \indpg 158. +\2\1mapsto \indpg 64. +\2\1marginnotestrue \indpg 24. +\2\1marginnotesfalse \indpg 24. +\2\1math{<argument>} \indpg 102. +\2\1mathopen{<dimen or glue>} \indpg 77. +\2\1matrix{<entry 11>&<entry 12>&...&<entry 1n>\1cr + <second row>\1cr + ... + <last row> \1cr} + \1pmatrix{<several rows>\1cr} \indpg 78. +\2\1max \indpg 68. +\2\1medbreak \indpg 58. +\2\1medmuskip \indpg 42. +\2\1medskip \indpg 56. +\2\1mid \indpg 64. +\2\1midtabglue [=] <glue> \indpg 102. +\2\1min \indpg 68. +\2\1mkern [+ -] <decimal number>mu \indpg 56. +\2\1models \indpg 64. +\2\1modifystrut{<original>}{<add to height>}{<add to depth>} +\1mst = \1modifystrut \indpg 102. +\2\1move h:<..> v:<..> \indpg 184. +\2\1mp \indpg 64. +\2\1mskip [+ -] <mudimen> [plus <mudimen>] [minus <mudimen>] \indpg 56. +\2\1multiply \1<count, dimen, glue name> by [+ -]<integer> \indpg 40. +\2\1multispan {<integer>} \indpg 97. +\2\1mu {\1rm M} M \indpg 63. +\2\1nabla \indpg 64. +\2\1natural \indpg 64. +\2\1nearrow \indpg 65. +\2\1neg \indpg 65. +\2\1newautonum{<type>} \indpg 146. +\2\1newcount\1<count name> \indpg 38. +\2\1newdimen\1<dimen name> \indpg 38. +\2\1newmuskip\1<muskip name> \indpg 42. +\2\1newptag{<tag>} \indpg 146. +\2\1newskip\1<skip name> \indpg 42. +\2\1newskip\1<skip or glue name> \indpg 39. +\2\1newtag{<tag>}{<tag value>} \indpg 146. +\2\1newtocfile \indpg 158. +\2\1newttag{<tag>}{<tag value>} \indpg 146. +\2\1ni \indpg 65. +\2\1ninepoint \indpg 35. +\2\1noalign {<text>} \indpg 98. +\2\1noalign {<text>} \indpg 76. +\2\1nobreak \indpg 58. +\2\1noheaderstyle \1nofooterstyle \indpg 164. +\2\1noindent \indpg 49. +\2\1nopagenumberadvance \indpg 162. +\2\1normalheaderstyle \1normalfooterstyle \indpg 164. +\2\1normalpagestyle \indpg 164. +\2\1not\1approx \indpg 63. +\2\1not\1cong \indpg 64. +\2\1not\1equiv \indpg 64. +\2\1not\1geq \indpg 64. +\2\1not\1gg \indpg 64. +\2\1not= \indpg 63. +\2\1not< \indpg 63. +\2\1not> \indpg 63. +\2\1not\1in \indpg 64. +\2\1not\1leq \indpg 64. +\2\1not\1ll \indpg 64. +\2\1not\1preceq \indpg 65. +\2\1not\1prec \indpg 65. +\2\1not\1simeq \indpg 65. +\2\1not\1sim \indpg 65. +\2\1not\1sqsubseteq \indpg 65. +\2\1not\1sqsupseteq \indpg 65. +\2\1not\1subseteq \indpg 65. +\2\1not\1subset \indpg 65. +\2\1not\1succeq \indpg 65. +\2\1not\1succ \indpg 65. +\2\1not\1supseteq \indpg 65. +\2\1not\1supset \indpg 65. +\2\1numberbychapter \indpg 146. +\2\1numberbysection \indpg 146. +\2\1numberofcolumns + [=] <integer> \indpg 133. +\2\1nu {\1rm N} N \indpg 63. +\2\1nwarrow \indpg 65. +\2\1oalign{<first row>\1cr ... &<last row>\1cr} \indpg 98. +\2\1obeylines \indpg 49. +\2\1obeyspaces \indpg 49. +\2\1odot \indpg 65. +\2\1oe, \1OE \indpg 14. +\2\1oint \indpg 65. +\2\1omega \1Omega {\1mit\1Omega} \indpg 63. +\2\1ominus \indpg 65. +\2\1omit \indpg 98. +\2\1o, \1O \indpg 14. +\2\1openlistfile{<file extension>} \indpg 156. +\2\1openup <dimen> \indpg 77. +\2\1oplus \indpg 65. +\2\1oslash \indpg 65. +\2\1otimes \indpg 65. +\2\1outer \indpg 109. +\2\1overfullrule [=] <dimen> \indpg 31. +\2\1over ... \1under ... + \1overline{<math>} \1underline{<math>} + \1overbrace{<math>} \1underbrace{<math>} \indpg 77. +\2\1owns \indpg 65. +\2\1pagenumber [=] <new page number> \indpg 162. +\2\1pagequietref{<tag>} \1pqref{<tag>} \indpg 146. +\2\1pageref{<tag>} \1pref{<tag>} \indpg 147. +\2\1pagetagsoff \indpg 142. +\2\1pagetagson \indpg 142. +\2\1pagetagson \1pagetagsoff \indpg 147. +\2\1paragraphcenterline \indpg 50. +\2\1parallel \indpg 65. +\2\1parindent [=] <dimen> \indpg 50. +\2\1par \indpg 50. +\2\1parshape <number of lines> <indent 1> <line length 1> + ... <indent n> <line length n> \indpg 50. +\2\1parskip [=] <dimen> \indpg 51. +\2\1partial \indpg 65. +\2\1penaltybreak{<penalty>}{<skip size>} \indpg 59. +\2\1penwidth <size> \indpg 185. +\2\1perp \indpg 65. +\2\1pfill p:<fraction> \indpg 193. +\2\1phantom{<math>} \1vphantom{<math>} \1sphantom{<hlist>} \indpg 78. +\2\1phi \1Phi {\1mit\1Phi} \indpg 63. +\2\1P \indpg 14. +\2\1pi \1Pi {\1mit\1Pi} \indpg 63. +\2\1pm \indpg 65. +\2\1podsssheadskip [=] <glue> \indpg 139. +\2\1polistskip [=] <glue> \indpg 116. +\2\1posheadskip [=] <glue> \indpg 139. +\2\1possheadskip [=] <glue> \indpg 139. +\2\1posssheadskip [=] <glue> \indpg 139. +\2\1posublistskip [=] <glue> \indpg 116. +\2\1posubsublistskip [=] <glue> \indpg 116. +\2\1prdsssheadskip [=] <glue> \indpg 139. +\2\1preceq \indpg 65. +\2\1prec \indpg 65. +\2\1preludehead{<title>} \indpg 137. +\2\1preludeheadformat \indpg 139. +\2\1preludheadformat{<title>} \indpg 140. +\2\1pretolerance [=] <integer> \indpg 51. +\2\1prime \indpg 65. +\2\1Pr \indpg 68. +\2\1prlistskip [=] <glue> \indpg 116. +\2\1prod \indpg 65. +\2\1propto \indpg 65. +\2\1prsheadskip [=] <glue> \indpg 139. +\2\1prssheadskip [=] <glue> \indpg 139. +\2\1prsssheadskip [=] <glue> \indpg 139. +\2\1prsublistskip [=] <glue> \indpg 116. +\2\1prsubsublistskip [=] <glue> \indpg 116. +\2\1prtocout \indpg 158. +\2\1prtoc{<title>}{<page number>} \indpg 158. +\2\1psi \1Psi {\1mit\1Psi} \indpg 63. +\2\1quad \1qquad \indpg 56. +\2\1quietref{<tag>} \1qref{<tag>} \indpg 147. +\2\1raggedbottom \indpg 32. +\2\1raggedright \indpg 51. +\2\1raise<dimen><box> \indpg 84. +\2\1rangle \indpg 66. +\2\1rbrace \indpg 66. +\2\1rbrack \indpg 66. +\2\1rceil \indpg 66. +\2\1rect <horizontal dimen> by <vertical dimen> \indpg 129. +\2\1ref{<tag>} \indpg 147. +\2\1Re \indpg 65. +\2\1relativeposition \indpg 197. +\2\1rfloor \indpg 66. +\2\1rho {\1rm R} R \indpg 63. +\2\1Rightarrow \indpg 65. +\2\1rightarrow \indpg 65. +\2\1rightharpoondown \indpg 65. +\2\1rightharpoonup \indpg 65. +\2\1right \indpg 102. +\2\1rightleftharpoons \indpg 65. +\2\1rightline{<horizontal list>} \indpg 82. +\2\1rightskip [=] <dimen> [plus <dimen>] [minus <dimen>] \indpg 48. +\2\1rlap{<text>} \indpg 84. +\2\1rm \indpg 35. +\2\1romanpagenumber [=] <new page number> \indpg 163. +\2\1rstext d:<degrees> sc:<scale> t:{<text>} \indpg 189. +\2\1rtext d:<degrees> t:{<text>} \indpg 189. +\2\1samplemark{<listitem mark>} \indpg 115. +\2\1sa{<text>} \indpg 102. +\2<scale factor>\1dp<named box> + <scale factor>\1ht<named box> + <scale factor>\1wd<named box> \indpg 83. +\2\1searrow \indpg 65. +\2\1sec \indpg 68. +\2\1segmentscale <scale> \indpg 197. +\2\1setbox<named box> [=] <box>{<list>} \indpg 85. +\2\1setminus \indpg 65. +\2\1sfootnote{<math mode mark>}{<text>} \indpg 119. +\2\1sharp \indpg 65. +\2\1sheadfont \indpg 36. +\2\1shead{<number or tag>}{<title>} \indpg 137. +\2\1shtagreplaceformat \indpg 139. +\2\1shtoc{<number>}{<title>}{<page number>} \indpg 159. +\2\1shtocout \indpg 159. +\2\1sigma \1Sigma {\1mit\1Sigma} \indpg 63. +\2\1silent{<text>} \indpg 147. +\2{\1silenttrue \1auto...num{<tag>}} \indpg 143. +\2\1silenttrue \indpg 73. +\2\1simeq \indpg 65. +\2\1sim \indpg 65. +\2\1S \indpg 14. +\2\1sinh \indpg 68. +\2\1sin \indpg 68. +\2\1skip\1footins [=] <dimen> \indpg 118. +\2\1<skip or glue name> [=] <dimen> + [plus <dimen>] [minus<dimen>] \indpg 39. +\2\1slidedate = {<s-date>} \indpg 201. +\2\1smallbreak \indpg 59. +\2\1smallerfont \indpg 36. +\2\1smallskip \indpg 56. +\2\1smash{<math>} \indpg 78. +\2\1smile \indpg 65. +\2\1spacing {<decimal number>} \indpg 56. +\2\1spadesuit \indpg 65. +\2\1span \indpg 98. +\2\1specialfootertext [=] {<token list>} \indpg 164. +\2\1specialheadertext [=] {<token list>} \indpg 164. +\2\1specialheaderstyle \1specialfooterstyle \indpg 164. +\2\1specialnumberscontinuous \indpg 147. +\2\1specialpagestyle \indpg 164. +\2\1splitmaxdepth \indpg 85. +\2\1sprule \indpg 102. +\2\1sqcap \indpg 65. +\2\1sqcup \indpg 65. +\2\1sqrt{<math>} \indpg 78. +\2\1sqsubseteq \indpg 65. +\2\1sqsupseteq \indpg 65. +\2\1ssheadfont \indpg 36. +\2\1sshead{<number or tag>}{<title>} \indpg 137. +\2\1sshtoc{<number>}{<title>}{<page number>} \indpg 159. +\2\1sshtocout \indpg 159. +\2\1ss \indpg 14. +\2\1sssheadfont \indpg 36. +\2\1ssshead{<number or tag>}{<title>} \indpg 137. +\2\1ssshtoc{<number>}{<title>}{<page number>} \indpg 159. +\2\1ssshtocout \indpg 159. +\2\1star \indpg 65. +\2\1strut \indpg 85. +\2\1subdocumentmacros{<macros for subdocument>} \indpg 176. +\2\1sublistindent [=] <dimen> \indpg 116. +\2\1sublistitemskip [=] <glue> \indpg 116. +\2\1subseteq \indpg 65. +\2\1subset \indpg 65. +\2\1subsublistitemskip [=] <glue> \indpg 116. +\2\1subsublistindent [=] <dimen> \indpg 116. +\2\1succeq \indpg 65. +\2\1succ \indpg 65. +\2\1sum \indpg 65. +\2\1sup \indpg 68. +\2\1supseteq \indpg 65. +\2\1supset \indpg 65. +\2\1surd \indpg 65. +\2\1swarrow \indpg 65. +\2\1tabalign ... \1cr \indpg 96. +\2\1tableform{<tag or number>}{<title>}{<table>} \indpg 129. +\2\1tableinsert{<tag or number>}{<title>}{<figure box>} \indpg 129. +\2\1tablelabel \indpg 130. +\2\1tablespread = {<halign specification>} \indpg 103. +\2\1tanh \indpg 68. +\2\1tan \indpg 68. +\2\1tau {\1rm T} T \indpg 63. +\2\1tbltoc<number>}{<title>}{<page number>} \indpg 159. +\2\1tbltocout \indpg 159. +\2\1tcs \indpg 103. +\2\1tenpoint \indpg 35. +\2\1textform \indpg 200. +\2\1textref h:<L C R> v:<T C B> \indpg 190. +\2\1+<text>&<text> ... &<text>\1cr \indpg 96. +\2\1theta \1Theta {\1mit\1Theta} \indpg 62. +\2\1thickmuskip \indpg 43. +\2\1thinmuskip \indpg 43. +\2\1thrule{<height>} \indpg 103. +\2\1tightenlist \indpg 116. +\2\1times \indpg 65. +\2\1title{<first row>\1cr ... <last row>} \indpg 178. +\2\1titlepagestyle \indpg 164. +\2\1tocbox{<indent>}{<number>}{<title>}{<pagenumber>} \indpg 159. +\2\1tocfill \indpg 160. +\2\1tolerance [=] <integer> \indpg 51. +\2\1topdata ={<text>} \indpg 201. +\2\1top \indpg 65. +\2\1topmarginsize \indpg 167. +\2\1topmarginskip \indpg 167. +\2\1triangle \indpg 65. +\2\1triangleleft \indpg 65. +\2\1triangleright \indpg 65. +\2\1tr \indpg 103. +\2\1tt \indpg 35. +\2\1ttraggedright \indpg 51. +\2\1tvrule{<width>} \indpg 104. +\2\1twelvepoint \indpg 35. +\2\1<type>numform \indpg 142. +\2\1<type>num \indpg 142. +\2\1<type>tagrefformat \indpg 142. +\2\1<type>tagreplaceformat \indpg 142. +\2\1unhbox{<named hbox>} \indpg 85. +\2\1unhcopy{<named hbox>} \indpg 85. +\2\1unitscale <scale> \indpg 187. +\2\1unitscale <scale> \indpg 197. +\2<units of measure> + cm em ex in + mu pt sp \indpg 37. +\2\1unvbox{<named vbox>} \indpg 85. +\2\1unvcopy{<named vbox>} \indpg 85. +\2\1Uparrow \indpg 65. +\2\1uparrow \indpg 65. +\2\1updownarrow \indpg 65. +\2\1Updownarrow \indpg 65. +\2\1uplus \indpg 65. +\2\1up{<math mode mark>} \indpg 118. +\2\1uppercase\1folio \indpg 162. +\2\1UpperRoman{<integer>} \indpg 138. +\2\1upsilon \1Upsilon {\1mit\1Upsilon} \indpg 63. +\2\1use{<number of data columns>} \indpg 104. +\2\1valign{<preamble>\1cr <first column>\1cr ... <last column>\1cr} \indpg 98. +\2\1varepsilon \indpg 62. +\2\1varphi \indpg 63. +\2\1varpi \indpg 63. +\2\1vartheta \indpg 63. +\2\1vbox <box spec>{<vertical list>} \indpg 83. +\2\1vbox{\1hsize [=] <dimen> <text>} \indpg 84. +\2\1vcenter{<vertical list>} \indpg 85. +\2\1vcolumnsize \indpg 171. +\2\1vdash \indpg 65. +\2\1vee \indpg 65. +\2\1versionfrancaise \1fhyph \indpg 24. +\2\1Vert \indpg 65. +\2\1vert \indpg 65. +\2\1veryraggedright \indpg 51. +\2\1vfilneg \indpg 43. +\2\1vfil \1vfill \indpg 43. +\2\1vfooterersize [=] <dimen> \indpg 165. +\2\1vfootersize = <dimen> \indpg 163. +\2\1vfuzz [=] <dimen> \indpg 32. +\2\1vglue [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>] \indpg 56. +\2\1vgraphsize \indpg 202. +\2\1vgraphskip \indpg 202. +\2\1vheadersize [=] <dimen> \indpg 165. +\2\1vheadersize = <dimen> \indpg 163. +\2\1vinnerpagesize \indpg 171. +\2\1vouterpagesize \indpg 167. +\2\1vouterpagesize \indpg 169. +\2\1vpapersize \indpg 169. +\2\1vpapersize \indpg 167. +\2\1vpix <number>/<unit> \indpg 202. +\2\1vprintoffset = <dimen> \indpg 22. +\2\1vrule [height <dimen>] [width <dimen>] [depth <dimen>] \indpg 84. +\2\1vsize \indpg 169. +\2\1vskip [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>] \indpg 56. +\2\1vsplit<named box> to <dimen> \indpg 85. +\2\1vss \indpg 43. +\2\1vtext {<text>} \indpg 189. +\2\1wedge \indpg 65. +\2\1wp \indpg 65. +\2\1wr \indpg 65. +\2\1writelistfile{<file extension}{\1string\1..toc}{<number>}{<arg>} \indpg 160. +\2\1xi \1Xi {\1mit\1Xi} \indpg 63. +\2\1zerocenteredbox{<text>} + \1zb = \1zerocenteredbox \indpg 104. +\2\1zeta {\1rm Z} Z \indpg 62.
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/masth.sta b/macros/inrstex/inrsdoc/masth.sta new file mode 100644 index 0000000000..ad16d476fd --- /dev/null +++ b/macros/inrstex/inrsdoc/masth.sta @@ -0,0 +1,32 @@ +\chstatus//preface//0//3// +\chstatus//Intro//0//-4// +\chstatus//descom//1//7// +\chstatus//cont//2//10// +\chstatus//start//3//17// +\chstatus//bas//4//25// +\chstatus//over//5//30// +\chstatus//fonts//6//33// +\chstatus//dimnum//7//37// +\chstatus//glue//8//41// +\chstatus//parcont//9//44// +\chstatus//spac//10//52// +\chstatus//break//11//57// +\chstatus//matsym//12//60// +\chstatus//mateq//13//69// +\chstatus//basbox//14//79// +\chstatus//align//15//87// +\chstatus//defs//16//106// +\chstatus//lists//17//111// +\chstatus//footnot//18//117// +\chstatus//figtbl//19//120// +\chstatus//mulcol//20//131// +\chstatus//shead//21//134// +\chstatus//auto//22//141// +\chstatus//cite//23//148// +\chstatus//toc//24//154// +\chstatus//pagsty//25//161// +\chstatus//pagsiz//26//166// +\chstatus//subdoc//27//172// +\chstatus//docsty//28//177// +\chstatus//graph//29//179// +\chstatus//index//30//203// diff --git a/macros/inrstex/inrsdoc/masth.tex b/macros/inrstex/inrsdoc/masth.tex new file mode 100644 index 0000000000..43da2a348f --- /dev/null +++ b/macros/inrstex/inrsdoc/masth.tex @@ -0,0 +1,54 @@ +%-*-tex-*- +%texhelp upper level master +\tracingstats=1 +\inputsubdocument{thcover} %coverpage +\input helphdr %POSTSCRIPT +\input status +\openstatusfile +%\finalversion +\hfuzz=5pt +\autonumberingon +\indexingon +\openlistfile{fig} +\openlistfile{toc} +\opencitationtagfile +\marginnotesfalse +\inputsubdocument{thp2} % preface, toc, intro, descriptive conv ** +\inputsubdocument{thcont} % control characters 3 ** +\marginnotestrue +\inputsubdocument{thstart} % starting stopping 4** +\marginnotesfalse +\inputsubdocument{thbas} % basic ideas 5** +\inputsubdocument{thover} % overfull boxes ** +\inputsubdocument{thfonts} % fonts 6** +\inputsubdocument{thdimnum} % dimensions, numbers 7** +\inputsubdocument{thglue} % glue 8** +\inputsubdocument{thparcon} % paragraph control 8+ +\inputsubdocument{thspac} % spacing and skipping 9** +\inputsubdocument{thbreak} % various breaks 10 ** +\inputsubdocument{thmatsym} % mathematics symbols12** +\inputsubdocument{thmateq} % mathematic equation setup13** +\inputsubdocument{thbasbox} % basic box commands14 ** +\inputsubdocument{thalign} % basic align 15 ** +\inputsubdocument{thdefs} % simple definitions 16 ** +\inputsubdocument{thlists} % list commands17** +\inputsubdocument{thftnote} % footnotes ... ** +\inputsubdocument{thfigtbl} % figure table boxes 20 ** +\inputsubdocument{thmulcol} % multicolumn format 21 ** +\inputsubdocument{thshead} % section heads 18 ** +\marginnotestrue +\inputsubdocument{thauto} % autonumbering 19 ** +\marginnotesfalse +\inputsubdocument{thcite} % citation lists ** +\inputsubdocument{thtoc} % toc, tof, .... ** +\inputsubdocument{thpagsty} % page, header, footer styles23 ** +\inputsubdocument{thpagsiz} % page sizes and magnification 22 ** +\inputsubdocument{thsubdoc} % texing parts of doc 24 ** +\inputsubdocument{thdocsty} % Document styles +\inputsubdocument{thgraph} % TeXGraph +\inputsubdocument{thindex} % Command index ... Appendix A +\closecitationtagfile +\closelistfile{toc} +\indexingoff +\done + diff --git a/macros/inrstex/inrsdoc/masth_chap b/macros/inrstex/inrsdoc/masth_chap new file mode 100644 index 0000000000..9d686c8dd1 --- /dev/null +++ b/macros/inrstex/inrsdoc/masth_chap @@ -0,0 +1,32 @@ +tex thcover +tex thp2 +tex thcont +tex thstart +tex thbas +tex thover +tex thfonts +tex thdimnum +tex thglue +tex thparcon +tex thspac +tex thbreak +tex thmatsym +tex thmateq +tex thbasbox +tex thalign +tex thdefs +tex thlists +tex thftnote +tex thfigtbl +tex thmulcol +tex thshead +tex thauto +tex thcite +tex thtoc +tex thpagsty +tex thpagsiz +tex thsubdoc +tex thdocsty +tex thgraph +tex thindex + diff --git a/macros/inrstex/inrsdoc/mastoc.tex b/macros/inrstex/inrsdoc/mastoc.tex new file mode 100644 index 0000000000..e7e0738b94 --- /dev/null +++ b/macros/inrstex/inrsdoc/mastoc.tex @@ -0,0 +1,19 @@ +%-*-tex-*- +\subdocumentmacros{ + \input helphdr +} +\tenpoint +\romanpagenumber = 2 +\inputtocfiles = {\inputwithcheck{masth.toc}} +\righttocindent = 5em +\beginprelude +\begingroup +\def\ftn{}%footnote problem +\def\cr{ }%\cr print problem +\let\twelvett=\tentt % ugh! +\preludehead{Table of Contents} +\maketoclist +\endgroup +\ejectpage +\endprelude +\done diff --git a/macros/inrstex/inrsdoc/mastps b/macros/inrstex/inrsdoc/mastps new file mode 100644 index 0000000000..aa660fdc61 --- /dev/null +++ b/macros/inrstex/inrsdoc/mastps @@ -0,0 +1,31 @@ +dvips thcover +dvips thp2 +dvips thcont +dvips thstart +dvips thbas +dvips thover +dvips thfonts +dvips thdimnum +dvips thglue +dvips thparcon +dvips thspac +dvips thbreak +dvips thmatsym +dvips thmateq +dvips thbasbox +dvips thalign +dvips thdefs +dvips thlists +dvips thftnote +dvips thfigtbl +dvips thmulcol +dvips thshead +dvips thauto +dvips thcite +dvips thtoc +dvips thpagsty +dvips thpagsiz +dvips thsubdoc +dvips thdocsty +dvips thgraph +dvips thindex diff --git a/macros/inrstex/inrsdoc/mjf.tex b/macros/inrstex/inrsdoc/mjf.tex new file mode 100644 index 0000000000..2d7cd9f578 --- /dev/null +++ b/macros/inrstex/inrsdoc/mjf.tex @@ -0,0 +1,11 @@ +%-*-tex-*- + +\def\mjf { \par + {\it + \vskip .25in + \centerline {Michael J. Ferguson} + \vskip .15 in + \centerline {INRS-T\'el\'ecommunications} + \vskip .15in + \centerline {Montr\'eal} + \vskip 1 in }\par } % Author header for Michael J. Ferguson diff --git a/macros/inrstex/inrsdoc/pagdiag.tex b/macros/inrstex/inrsdoc/pagdiag.tex new file mode 100644 index 0000000000..f1aa440c5f --- /dev/null +++ b/macros/inrstex/inrsdoc/pagdiag.tex @@ -0,0 +1,120 @@ +%-*-tex-*- +% diagram of a page +\def\gbox h:#1 v:#2 pw:#3 {\beginsegment + \penwidth {#3} + \lvec h:{#1} v:0 + \lvec h:{#1} v:{#2} + \lvec h:0 v:{#2} + \lvec h:0 v:0 + \endsegment } + +\def\vlabel l:#1 t:#2 fr:#3 {\beginsegment + \realmult{#1}{#3}{\hvh} + \move h:0 v:{\hvh} + \textref h:C v:C \htext{$\bullet$} + \lvec h:.1 v:{\hvh} \textref h:L v:C + \htext{#2} + \move h:0 v:{\hvh} + \avec h:0 v:0 + \move h:0 v:{\hvh} + \avec h:0 v:{#1} + \endsegment} + +\def\vllabel l:#1 t:#2 fr:#3 {\beginsegment + \realmult{#1}{#3}{\hvh} + \move h:0 v:{\hvh} + \textref h:C v:C \htext{$\bullet$} + \lvec h:-.1 v:{\hvh} \textref h:R v:C + \htext{ #2} + \move h:0 v:{\hvh} + \avec h:0 v:0 + \move h:0 v:{\hvh} + \avec h:0 v:{#1} + \endsegment} + + +\def\hlabel l:#1 t:#2 fr:#3 {\beginsegment + \realmult{#1}{#3}{\hvh} + \move h:{\hvh} v:0 + \textref h:C v:C \htext{$\bullet$} + \lvec h:{\hvh} v:.1 \textref h:C v:T + \move h:{\hvh} v:.11 \htext{#2} + \move h:{\hvh} v:0 + \avec h:0 v:0 + \move h:{\hvh} v:0 + \avec h:{#1} v:0 + \endsegment} + +\def\hvlabel l:#1 t:#2 fr:#3 {\beginsegment + \realmult{#1}{#3}{\hvh} + \move h:{\hvh} v:0 + \textref h:C v:C \htext{$\bullet$} + \lvec h:{\hvh} v:.1 \textref h:R v:C + \move h:{\hvh} v:.11 \vtext{#2} + \move h:{\hvh} v:0 + \avec h:0 v:0 + \move h:{\hvh} v:0 + \avec h:{#1} v:0 + \endsegment} + + +\def\htrlabel l:#1 t:#2 {\beginsegment + \move h:-.2 v:0 + \avec h:0 v:0 + \move h:{#1} v:0 \relativeposition \move h:.12 v:0 + \textref h:L v:C \htext{#2} + \absoluteposition + \avec h:{#1} v:0 + \endsegment} + +\def\htllabel l:#1 t:#2 {\beginsegment + \move h:-.12 v:0 + \textref h:R v:C \htext{#2} + \avec h:0 v:0 + \move h:{#1} v:0 \relativeposition \move h:.2 v:0 + \absoluteposition + \avec h:{#1} v:0 + \endsegment} + +\def\pagdiag sc:#1 {\btg \segmentscale {#1} \eighttt + \arrowheadsize l:.08 w:.025 + \gbox h:4.7 v:6 pw:.025 % paper + \move h:.6 v:.7 + \gbox h:3.5 v:4 pw:.01 %outerpage + \gbox h:3.5 v:.4 pw:.02 %header + \move h:.6 v:4.3 + \gbox h:3.5 v:.4 pw:.02 %footer + \move h:.8 v:1.1 + \gbox h:3.1 v:3.2 pw:.02 %inner + \move h:1.2 v:0 \vlabel l:.7 t:{\1topmarginsize} fr:.5 + \move h:1 v:.7 \vlabel l:.4 t:{\1vheadersize} fr:.5 + \move h:.6 v:1.3 \htrlabel l:.2 t:{\1firstcolumnoffset} + \move h:3.9 v:1.3 \htllabel l:.2 t:{\1firstcolumnoffset} + \move h:0 v:1.9 \hvlabel l:.6 t:{\1leftmarginsize } fr:.5 + \move h:.6 v:2.3 \hlabel l:3.5 t:{\1houterpagesize} fr:.25 + \move h:.8 v:2.7 \hlabel l:3.1 t:{\vbox{ + \hbox{\1hinnerpagesize} + \vskip 1pt + \hbox{ (computed)}}} + fr:.25 + \move h:1 v:4.3 \vlabel l:.4 t:{\1vfootersize} fr:.5 + \move h:2.32 v:.7 \vllabel l:4 t:{\1vouterpagesize} fr:.25 + \move h:2.43 v:1.1 \vlabel l:3.2 t:{\vbox{ + \hbox{\1vinnerpagesize} + \vskip 1pt + \hbox{ (computed)}}} + fr:.8 + \move h:0 v:5.1 \hlabel l:4.7 t:{\1hpapersize} fr:.5 + \move h:4.4 v:0 \vllabel l:6 t:{\1vpapersize } fr:.92 + \etg} + +%\def\1{\char'134} +%\centergraph{\pagdiag sc:.8 } + +%\done + + + + + +
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/psalm23.tex b/macros/inrstex/inrsdoc/psalm23.tex new file mode 100644 index 0000000000..6faf7313bb --- /dev/null +++ b/macros/inrstex/inrsdoc/psalm23.tex @@ -0,0 +1,11 @@ +\beginnarrowtext 1in +\eightpoint +\obeylines +The lord is my shepherd, I shall not want; +He makes me lie down in green pastures, +He leads me beside still waters; +He restores my soul. +\endnarrowtext +\done + +
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/secthead.tex b/macros/inrstex/inrsdoc/secthead.tex new file mode 100644 index 0000000000..da1558c568 --- /dev/null +++ b/macros/inrstex/inrsdoc/secthead.tex @@ -0,0 +1,223 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + + +% ========== Section, Chapter Headings =========== +% These macros have several parts, +% -- The format of the heading. +% -- The automatic numbering. +% -- The writing of a list file for automatic table of contents. +% -- The referencing in the text ... ie reference number styles. + + +% ======== Counter allocation and Number styles ========= +%========= Autonumbering allocations and styles for sections ... ==== +% Allocate the counters for the chapters, sections, figures, etc. +% These counters are updated globally. +\newcount\chnum %\chnum=0 \def\chnumform{\the\chnum} +\newcount\shnum %\shnum=0 \def\shnumform{\the\shnum} +\newcount\sshnum %\sshnum=0 \def\sshnumform{\the\sshnum} +\newcount\ssshnum %\ssshnum=0 \def\ssshnumform{\the\ssshnum} + +% ======== autonumbering options and styles ========== +% The following stay unchanged for different numbering options +\def\chtagrefformat{\chnumform} +\def\chtagreplaceformat{\Chapter \chtagrefformat} + +\def\numberbychapter{\s@pecialnumberresetlevel=2 + \def\shtagreplaceformat{\shtagrefformat} + \def\sshtagreplaceformat{\sshtagrefformat} + \def\ssshtagreplaceformat{\ssshtagrefformat} + \def\shtagrefformat{\chnumform.\shnumform} %section + \def\sshtagrefformat{\chnumform.\shnumform.\sshnumform} %subsection + \def\ssshtagrefformat{\chnumform.\shnumform.\sshnumform %subsubsection + .\ssshnumform} + \def\Prerefform{\chnumform.} + \def\Postrefform{}} + +\def\numberbysection{\s@pecialnumberresetlevel=3 + \def\shtagreplaceformat{\shtagrefformat.} + \def\sshtagreplaceformat{\sshtagrefformat} + \def\ssshtagreplaceformat{\ssshtagrefformat} + \def\shtagrefformat{\shnumform} %section + \def\sshtagrefformat{\shnumform.\sshnumform} %subsection + \def\ssshtagrefformat{\shnumform.\sshnumform %subsubsection + .\ssshnumform} + \def\Prerefform{\shnumform.} + \def\Postrefform{}} + +\def\specialnumberscontinuous{\def\Prerefform{} + \def\Postrefform{} + \s@pecialnumberresetlevel=1} + + +% This macro resets the counters for equations, figures, etc. +% depending on the header level. +% #1 - header level 1=chapter +% 2=section +% 3=subsection +% 4=subsubsection +% \a@utonumberresetlevel = 1 sequential numbering +% 2 chapter numbering +% 3 section numbering +% 4 subsection numbering, etc. +\newcount\s@pecialnumberresetlevel \s@pecialnumberresetlevel=1 +\def\updatespecialnumbers#1{ + \ifnum #1 < \s@pecialnumberresetlevel + \the\s@presetlist + \fi} + + +% ============ Section head format styles and List generation ======= +% +% The calling format is +% \s<ss>head{<number>}{<Title>} +% Subsequent lines are indented one quad more than the size of the <number> +% There is an autonumbering/autoreferencing feature in these macros. +% If the autonumber switch +% is true, then the first argument represents a tag instead of a number. + +% \nosheadbreak is used when multiple heads start a section +\newif\ifs@headbreak \s@headbreaktrue +\def\nosheadbreak{\s@headbreakfalse} + + +% ========= Section heading command forms ======== +% #1 top skip +% #2 bottom skip +% #3 font +% #4 <number> +% #5 <text> +% #6 table of contents command form +% #7 <item>, placed between <number> and <text> + +\newskip\prsheadskip %\prsheadskip= 6ex plus 2ex minus 2ex +\newskip\posheadskip %\posheadskip= 2ex +\newskip\prssheadskip % \prssheadskip= 5ex plus 1.8ex minus 1.8ex +\newskip\possheadskip %\possheadskip= 2ex +\newskip\prsssheadskip %\prsssheadskip= 3ex plus 1ex minus 1ex +\newskip\posssheadskip %\posssheadskip= 2ex +\newskip\prdsssheadskip %\prdsssheadskip= 3ex plus 1ex minus 1ex +\newskip\podsssheadskip %\podsssheadskip= 2ex + +%this is the format form for those that want to perform radical surgery +%the parameters must be as shown and will have that meaning +% #1 font (=#3); #2 number (=#4) ; #3 <text> (=#5); #4 number/text sep (=#7) +% check on \t@agtext suppresses space when there is no number +\def\gensheadformat#1#2#3#4{\ifx\t@agtext\empty\setbox0=\hbox{}\else + \setbox0=\hbox{#1#2#4}\fi + \vbox{\veryraggedright \normalbaselines + \hangindent 1\wd0 \hangafter 1\noindent #1\unhbox0 #3}} + + +\def\g@head#1#2#3#4#5#6#7{\ifs@headbreak \goodbreak \vskip #1\else + \removelastskip\fi + \s@headbreaktrue + \toks0={#5}%prevents expansion inside title + \writeterm{<#4}{ }{\the\toks0>} + \gensheadformat{#3}{#4}{#5}{#7} + \nobreak + \writelistfile{toc}{#6}{#4}{#5} + \vskip #2 \vskip -\parskip} + +\newtoks\sectionname \newtoks\sectionnumtag +\def\sheadmark{\mark{\the\sectionname}} % defaults to title +\def\innershead #1#2{\sectionnumtag = {#1} \sectionname = {#2} + \ifautonumber + \global\advance \shnum by 1 + \global\sshnum=0 + \global\ssshnum=0 + \updatespecialnumbers{2} + \newtag{#1}{\shtagrefformat} + \edef\t@agtext{\shtagreplaceformat} + \else + \edef\t@agtext{#1} + \fi + \sheadmark %sections are marked for header titles + \g@head{\prsheadskip}{\posheadskip + }{\sheadfont}{\t@agtext}{#2}{\shtocout + }{\quad}} +\def\innersshead #1#2{\ifautonumber + \global\advance \sshnum by 1 + \global\ssshnum=0 + \updatespecialnumbers{3} + \newtag{#1}{\sshtagrefformat} + \edef\t@agtext{\sshtagreplaceformat} + \else + \edef\t@agtext{#1} + \fi + \g@head{\prssheadskip}{\possheadskip + }{\ssheadfont}{\t@agtext}{#2}{\sshtocout + }{\quad}} +\def\innerssshead #1#2{\ifautonumber + \global\advance \ssshnum by 1 + \updatespecialnumbers{4} + \newtag{#1}{\ssshtagrefformat} + \edef\t@agtext{\ssshtagreplaceformat} + \else + \edef\t@agtext{#1} + \fi + \g@head{\prsssheadskip}{\posssheadskip + }{\sssheadfont}{\t@agtext}{#2}{\ssshtocout + }{\quad}} +\def\innerdssshead #1{\g@head{\prdsssheadskip}{\podsssheadskip + }{\dsssheadfont}{}{#1}{\dssshtocout}{}} +\outer\def\shead#1#2{\innershead{#1}{#2}} +\outer\def\sshead#1#2{\innersshead{#1}{#2}} +\outer\def\ssshead#1#2{\innerssshead{#1}{#2}} +\outer\def\dssshead#1{\innerdssshead{#1}} + +% ======== chead ========== +% The chapter head has a different format entirely +\newtoks\chaptername + +%this is the form of the present chapter head +%parameters are #1 is the title text \cheadfont, \chtagreplaceformat + +%\def\Chapter{Chapter } see English/french titles + +% indicates if chapters exist ... default is that they do not +% the first call to a \chead sets it true ... or it may be done in the style. +\newif\ifnochapter %\nochaptertrue + + +\def\cheadformat#1#2{\vglue 2.5cm + \line{$\vcenter{\hbox{\cheadfont + #1 + \vrule height 3ex depth 1ex width 0pt + }}\hss + \vcenter{\halign{&\cheadfont\hss + ##\vrule height 3ex depth 1ex width 0pt\cr + #2\crcr}}$} + \vskip 2.5cm} +\def\chapterstartform{} +\def\chead#1#2{\numberbychapter\nochapterfalse + \ifautonumber + \global\advance\chnum by 1 + \global\shnum=0 + \global\sshnum=0 + \global\ssshnum=0 + \newtag{#1}{\chtagrefformat} + \updatespecialnumbers{1} + \edef\t@agtext{\chtagreplaceformat} + \else + \edef\t@agtext{#1} + \fi + \chaptername={#2} % for term write only ... includes \cr + \writeterm{<\t@agtext}{ }{\the\chaptername>} + \chaptername={\def\cr{ }#2} + \chapterstartform % here so both the number and title set + \titlepagestyle + \cheadformat{\t@agtext}{#2} % format of chead + \writelistfile{toc}{\chtocout}{\t@agtext}{#2} + } + +% ========== Toc Out Forms =========== +% actually set in inrsdef.tex + +%\def\shtocout{\string\shtoc} +%\def\sshtocout{\string\sshtoc} +%\def\ssshtocout{\string\ssshtoc} +%\def\dssshtocout{\string\dssshtoc} +%\def\chtocout{\string\chtoc} diff --git a/macros/inrstex/inrsdoc/status.tex b/macros/inrstex/inrsdoc/status.tex new file mode 100644 index 0000000000..1037b44691 --- /dev/null +++ b/macros/inrstex/inrsdoc/status.tex @@ -0,0 +1,28 @@ +%-*-tex-*- +% Status commands for each chapter. +% these write out the chapter code, page number, and previous chapter number. + +\marginnotesfalse +\hfuzz=5pt + + +\newwrite\docstatus +\def\openstatusfile{\immediate\openout\docstatus=\jobname.sta} +\def\closestatusfile{\closeout\docstatus} +\def\writestatus#1{\immediate\write + \docstatus{\string\chstatus//#1//\the\chnum//\the\pageno//}} +\def\chstatus//#1//#2//#3//{\expandafter\def\csname#1:\endcsname{\chnum=#2 + \pagenumber=#3}} +\def\getstatus#1{\csname#1:\endcsname} + +\def\chcode#1{\subdocumentmacros{\input helphdr \bookstyle + \input masth.sta + \autonumberingon + \input masth.tag + \getstatus{#1} + \def\chcode##1{} + \def\writestatus##1{} + \indexingon + } + \writestatus{#1}} + diff --git a/macros/inrstex/inrsdoc/thalign.tex b/macros/inrstex/inrsdoc/thalign.tex new file mode 100644 index 0000000000..436874708d --- /dev/null +++ b/macros/inrstex/inrsdoc/thalign.tex @@ -0,0 +1,1002 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{align} + +\def\cqu{} + +\chapterhead{align}{BASIC ALIGNMENT} +Since letters in most fonts are variable width, the only sure way to ensure +that words, numbers or vertical rules line up is to tell \tex\ to put them in +the right place. Old ways of placing text on the editor's screen will not +work. The basic way of doing this in \tex\ is through the alignment commands. + +The most common use of alignment commands is to make tables, but the uses go +well beyond this. For instance, the |\eqalign| for display mathematics is +built using the basic |\halign| command. + + +{\it Plain} \tex\ provides two basic alignment formats. The first is the +|tabbing| form that is very similar to tabs on a typewriter, and the second is +the more basic |\halign| form. In fact the |tabbing| form is built from the +basic |\halign|. + +\intex\ supplies a set of commands for building tables, especially those +involving lines (commonly called vertical and horizontal rules). +The intent of these commands is to produce tables that are +easy to specify and that look, on the editing screen, somewhat like the final +product. The commands are built from the |\halign| and preserve all +the power of this basic command. They commands are discussed in +Section~\ref{intable}. + +Details on the basic uses of the |\halign| +can be found in the chapter on alignment in the \texbook\ and +examples of \intex\ tables and uses in the \tex\ Example Book \dots\ to be published. + +\shead{aligncomlist}{Command List} +The command list in this section is organized into |tabbing|, |\halign|, and +\intex\ |table| commands. The |\halign| commands are useful in the |table| +form. +\bigbreak +\centerline{\sssheadfont Tabbing Commands} +\nobreak +\begintwocolumn +\pla|\+ ... \cr| +\pla|\cleartabs| +\pla|\settabs <integer> \columns| +\pla|\tabalign ...\cr| +\endthreecolumn +\bigbreak +\centerline{\sssheadfont Plain \tex\ halign Commands} +\begintwocolumn +\pri|&| +\pri|#| +\pri|\cr| +\pri|\halign| +\pla|\hidewidth| +\pla|\ialign| +\pla|\multispan| +\pri|\noalign| +\pla|\oalign| +\pri|\omit| +\pla|\openup| +\pri|\span| +\ext|\strut| +\pri|\tabskip| +\pri|\valign| +\endthreecolumn +\bigbreak + +\centerline{\sssheadfont \intex\ Table Commands} +\begintwocolumn +\ext\vrt +\ext|"| +\ext|\|\vrt +\ext|~| +\ext|\:| +\ext|\-| +\ext|\br \er| +\ext|\begintable| +\ext|\begintableformat| +\ext|\endtable| +\ext|\endtableformat| +\ext|\center| +\ext|\displaymath| +\ext|\everytable| +\ext|\fulltablerule| +\ext|\left| +\ext|\math| +\ext|\midtabglue| +\ext|\modifystrut \mst| +\ext|\right| +\ext|\sa| +\ext|\sprule| +\ext|\tablespread| +\ext|\tcs| +\ext|\thrule| +\ext|\tr| +\ext|\tvrule| +\ext|\use| +\ext|\zerocenteredbox \zb| +\endthreecolumn + +\shead{tabbing}{Tabs for Alignment} +\tex\ supplies a format that behaves similarly, but not identically, to {\it +tabs} on an ordinary typewriter. The |\settabs <integer> \columns| sets tabs so +that there are |<integer>| number of columns across the page. Once set, these +{\it tabs} stay set until changed or leaving the group in which they were +defined. \tex\ uses the command |\+| to indicate the beginning of a row, the +|&| to indicate the {\bf next} column, and the |\cr| to indicate the end of +the row. If the text for one column is too wide for that column it will spill +over into the next. If it spills, and there is text in the next column, they +will superimpose. An example is given below. +\begintt +\settabs 3 \columns +\+This is text in the first Column &THIS IS TEXT IN THE + SECOND COLUMN & This is text in the third column \cr +\+First Column &&Third Column\cr +\endtt +which gives +\settabs 3 \columns +\+This is text in the first Column &THIS IS TEXT IN THE + SECOND COLUMN & This is text in the third column \cr +\+First Column &&Third Column\cr +Note the mess in the first row. The second is better formed. For some simple +tables, without rules or lines. This may be the simplest way. + +If a line starts with the form +\begintt +\settabs\+<sample first column>& ... &<sample last column>\cr +\+<first real text row>\cr + ... +\endtt +then \tex\ will set the tabs as indicated by the sample row, and will not +actually print it in the text. To use this, look ahead in the table and find +the widest fields. These, and some extra space, can be used to set the tabs. + + +The tabbing format is even more versatile than this. Suppose that there are 2 +tabs set. If the input row |\+ ... \cr| has a third or more |&|, then this +new tab is added to the set of tabs. Furthermore, the command |\cleartabs| +will remove all tabs to the right of the current one, in effect making it the +last one in a row. The result is that it is possible to set tabs that change +from row to row. For example +\begintt +\+\cleartabs +This text &is to the &left and \cr +\+ &this row lines up with the ``is'' \cr +\+ & &but this one with the ``left'' \cr +\+ &\cleartabs This &row sets new tabs \cr +\+ & &so this lines up with ``row''\cr +\endtt +gives the following +\+\cleartabs +This text &is to the &left and \cr +\+ &this row lines up with the ``is'' \cr +\+ & &but this one with the ``left'' \cr +\+ &\cleartabs This &row sets new tabs \cr +\+ & &so this lines up with ``row''\cr + +Note the tab location change in the fourth row. Indentation of computer +programs is relatively simple with these mechanisms. + + + +\shead{halignform}{The {\twelvett \string\halign } } +The fundamental alignment command, which is in fact +used to build the {\it tabbing} commands in the previous +section and the \intex\ {\it table} commands in the next, +is the |\halign| . +While inside an |\halign|, \tex\ is in {\it +internal horizontal mode}. This means that text may be centered or justified +by the appropriate use of the infinite glues such as |\hss|. It also means +that |$...$|, |\math|, or |\displaymath| are required +to switch, perhaps back, into math mode. + +A |<preamble>\cr|, terminated by the first |\cr|, describes the pattern +of the alignment. This pattern is used for every row of the alignment but +there are a set of commands |\span|, |\multispan|, and |\omit| that +allow for the skipping or merging of several adjacent columns. This makes it +easy to have text that spans several columns. Finally, {\bf between} +each column, +there is the provision for placing |\tabskip| glue. This glue allows the +entire set of columns to stretch or shrink to fill the page as desired. Some +special variants of |\halign| such as |\ialign|, force the |\tabskip| +glue to be zero. + +Detailed use of the |\halign| and its associated commands will be found in +the \texbook\ with examples in the \tex\ Example Book. The command +descriptions in Section~\ref{aligncomforms} give some insight into their use. + +\shead{intable}{\intex\ Table Commands} +\intex\ supplies a set of commands designed to reduce the pain in making +tables. The major intent of the commands is to make have the tables being +designed appear on the editor screen in a reasonable manner. Although the +commands appear to avoid the basic |\halign| commands and forms of |\cr|, +|&|, and |#|, their insertion in the tables are not precluded by the +structure. The loss by doing this will be some readability but the gain is +flexibility. + +The \intex\ table commands really use two different types of columns: {\it +rule} columns for insertion (or omission) of vertical rules and {\it data} +columns +for the insertion of normal data entries. Generally it is assumed that every +data column is separated by a {\it rule} column. In addition, \intex\ +requires that there be a rule column at the left and right hand sides. +\intex\ makes the insertion or omission of a vertical rule or column as +simple as placing a |"| or a \vrt\ in the text. + +A now classic table for demonstrating the table making skills of a set of +macros is shown below. This is reported in the \texbook\ and originally was +found in [\cite{[Lesk76]}]. The resulting table is {\bf not} +identical to that in the \texbook. It is, however, very close. + +\centerline{ +\begintable +\begintableformat +\center " \center " \center +\endtableformat +\br{} \sa{Dividend} "\sa{Dividend} "\sa{Dividend} \er{} %sample line +\- +\br{\:|} \use{3} AT\&T Common Stock \er{|} +\- +\br{\:|} Year | Price | Dividend \er{|} +\- +\br{\:|} 1971 | 41--54 | \$2.60 \er{|} +\- +\br{\:|} ~~~2 | 41--54 | ~2.70 \er{|} +\- +\br{\:|} ~~~3 | 46--55 | ~2.87 \er{|} +\- +\br{\:|} ~~~4 | 40--53 | ~3.24 \er{|} +\- +\br{\:|} ~~~5 | 45--52 | ~3.40 \er{|} +\- +\br{\:|} ~~~6 | 51--59 | ~~.95\rlap* \er{|} +\- +\br{\:}\use{3} \left{* (first quarter only)} +\endtable +} + +This table is given by the following: +\begingroup \eightpoint +\begintt +\centerline{ +\begintable +\begintableformat +\center " \center " \center +\endtableformat +\br{} \sa{Dividend} "\sa{Dividend} "\sa{Dividend} \er{} %sample line +\- +\br{\:|} \use{3} AT\&T Common Stock \er{|} +\- +\br{\:|} Year | Price | Dividend \er{|} +\- +\br{\:|} 1971 | 41--54 | \$2.60 \er{|} +\- +\br{\:|} ~~~2 | 41--54 | ~2.70 \er{|} +\- +\br{\:|} ~~~3 | 46--55 | ~2.87 \er{|} +\- +\br{\:|} ~~~4 | 40--53 | ~3.24 \er{|} +\- +\br{\:|} ~~~5 | 45--52 | ~3.40 \er{|} +\- +\br{\:|} ~~~6 | 51--59 | ~~.95\rlap* \er{|} +\- +\br{\:}\use{3} \left{* (first quarter only)} +\endtable +} +\endtt +\endgroup +The basic structure of the table is given by this example. A +|\begintable... \endtable| pair delineates it, while the row format is +defined inside the pair |\begintableformat... \endtableformat|. +The entirely optional {\it sample row}, immediately after the +|\endtableformat| forces all +three columns the same width. This use the fact that +|Dividends| was the largest word which was then put in a {\it +sample} command |\sa{..}| in each of the three columns. This row, which is +invisible in the final table effectively set the width of the columns. The +|~| is a space that is exactly the width of a number. Thus the data is lined +up in the desired way. The \vrt\ are separators that insert vertical rules or +lines and also allow spaces to be ignored after the data in a column. This +makes the columns look nicer and more readable. Other details about this +table will be apparent later. + + +The \intex\ table commands have been designed to be most useful when the following +conventions are obeyed: +\beginlist +\li {\bull} A rule column is defined in the table format +using a |"|. Successive data columns are separated by a rule column. +The actual rule is inserted in the text with a \vrt\ or omitted with a +|"| rather than being put in the format. +\li {\bull} A rule column is appended to each end of the table format +statement. In general this means that there is a rule column on both sides of +the table. The actual insertion or not of the rule is very easy. +\li {\bull} Struts for maintaining row height are inserted in each row rather +than in the table format. +\endlist + +The commands make it very easy to include struts, and insert or omit rules as +needed. In fact it is no more difficult than inserting a |&| in the +appropriate place. The advantage of following this discipline is that partial +horizontal lines (rules) are quite easy, as is the exact vertical placement +of items in different data columns. + +The basic format for building a table is +\begintt +\begintable +<special table forms> +\begintableformat +<table format> +\endtableformat +<first row> + ... +<last row> +\endtable +\endtt +Each row has the form +\begintt +\br{<..>} <item> | <item> " <item> ... | <item> \er{<..>} +\endtt +where the \vrt\ means to put in a vertical rule and the |"| means to leave it +out of the corresponding rule column. +The |\br{..}| and |\er{..}| signify the beginning and end of the row +respectively. The |\br{..}| and |\er{..}| are intended for rules and/or +struts if needed. For instance a |\br{\:|\vrt|}| indicates that this line has a +standard strut |\:| and a standard vrule. The |\br{\: height 2pt}| +indicates that this row has no strut but that the initial vrule has a height +of 2pt. The strut could just as easily been put in the |\er{\:}| instead. +The form |\br{}| or |\br{"}| indicates a row with no initial strut or vrule. + +\intex\ supplies a second flavour of vrule that is user definable. The +command |\|\vrt\ may be used in exactly the same way as \vrt. The {\it +insides} of the |\|\vrt\ are defined by redefining a command |\sprule|, a {\it +special rule}. + +An \intex\ table format is a template for the table, and corresponds to the +normal {\it preamble} in an |\halign|. In fact any valid |\halign| preamble +may be used in the table format, as long as the |#| are replaced by |##|. +However, \intex\ adds a rule column to the beginning and end of the {\bf format} +list for +beginning and terminating rules. Thus a repeating field specification, which +is indicated by an (extra) |&| in the format should +{\bf not} start at a vrule indicator or the result will be two adjacent rules. + +Simple column formats are indicated by the use of the commands |\left|, +|\center|, |\right|, |\math|, and |\displaymath|. The two |\..math| forms are +{\bf never} used alone but rather in conjunction with the first three. +These forms are {\bf always} separated\footnote{\dagger}{In fact any field +of the form |&<optional stuff>##<optional stuff>&| is acceptable.} + by |"|, which allows for, but does not put in, a +vertical rule. +The simplest table format, and probably the most useful is +\begintt +\begintableformat +&\center +\endtableformat +\endtt +This is a repeating format, as indicated by the |&|, and thus allows for any +number of columns. The data in each column is centered. + +Another simple table format example is +\begintt +\begintableformat +\left " \right " \math\center +\endtableformat +\endtt +This table would have three data columns; the first data column +is ordinary text, left +justified; the second data column is right justified text; and the last +data column is centered mathematics. Each data column is separated by a rule +column indicated by |"|. \intex\ will add rule columns to the left and right +hand ends of the specification. +The commands |\right|, |\left|, and |\center| insert the appropriate glues and +spacing at the both sides of the column. The width of this spacing |\tcs|, +the {\it table column separation}, is a |dimen|. This may be modified if +desired for all tables by putting it in the |\everytable| token list or for a +specific table by placing it in the +|<special table forms>|. + +The following is a repeating column specification: +\begintt +\begintableformat +\left " \right " &\math\center +\endtableformat +\endtt +This is identical to the previous one except that the data column format +and the implicit rule column added by \intex, +|\math\center|~|"|, is repeated indefinitely. +For almost all tables, the only |&| that +should appear in the table format is that indicating the start of a repeating +field. + +Horizontal rules are specified by |\-| for the standard |\tr| width rule. An +hrule the full width of the table should appear all by itself on a line +between an |\er| and the following |\br|, or immediately after the table +format. Other |\noalign| commands may be inserted as desired. +A partial horizontal rule is specified using an |\msp|, the special \intex\ +version of the multispan, and the |\-|. + +\intex\ does place some restrictions on the automatic insertion of tabskip glue. +Hopefully these will be minor. \intex\ sets the initial and final tabskip +glues to 0pt. This should create no problems. A parameter |\midtabglue| may +be modified. This is set just after the first rule column and is turned off +at the last rule column. Finally |\tablespread = {to <dimen>}| will force +the table to be |<dimen>| wide, assuming there is +enough tabskip glue +available. + +The following set of commands produce the rather contrived table on the +following page. +\begingroup +\eightpoint +\beginttverbatim +\1centerline{ +\1begintable +\1begintableformat + &\1center +\1endtableformat +\1- +\1br{\1:|} \1use{6} XYZABC \1er{|\1mst{\1:}{3pt}{3pt}\1rlap{ \1it ** i}} +\1- +\1br{\1:|} \1use{3} XYZ | \1use{3} ABC \1er{|\1mst{\1:}{2pt}{2pt}} +\1- +\1br{\1:|} X | Y | Z | A | B | C \1er{|} +\1- +\1br{\1:|} 372.466 | 493.7 " 45 | 124 \1| 489 | 280 \1er{|} +\1- +\1br{\1:|} 372.40~ | 493.7 | 45 | 124 | 489 | 280 \1er{|} +\1br{|} " " | \1use{3}\1- \1er{|} +\1br{\1:|} 372.~~~ | 493.7 | 45 | 124 | 489 | 280 \1er{|\1rlap{ \1it ** ii}} +\1- +\1br{\1:|} \1use{2} | 832 | abc | 774 |$\1int$\1er{|\1mst{$\1int$}{0pt}{3pt}} +\1br{|} \1use{2}\1zb{XY/A} |\1use{4}\1- \1er{|} +\1br{\1:|} \1use{2} | qrr | aaa | 799 | \1er{|\1rlap{ \1it ** iii}} +\1- +\1endtable} +\endttverbatim +\endgroup + +The actual table is +$$ +\centerline{ +\begintable +\begintableformat + &\center +\endtableformat +\- +\br{\:|} \use{6} XYZABC \er{|\mst{\:}{3pt}{3pt}\rlap{ \it ** i}} +\- +\br{\:|} \use{3} XYZ | \use{3} ABC \er{|\mst{\:}{2pt}{2pt}} +\- +\br{\:|} X | Y | Z | A | B | C \er{|} +\- +\br{\:|} 372.466 | 493.7 " 45 | 124 \| 489 | 280 \er{|} +\- +\br{\:|} 372.40~ | 493.7 | 45 | 124 | 489 | 280 \er{|} +\br{|} " " | \use{3}\- \er{|} +\br{\:|} 372.~~~ | 493.7 | 45 | 124 | 489 | 280 \er{|\rlap{ \it ** ii}} +\- +\br{\:|} \use{2} | 832 | abc | 774 | $\int$\er{|\mst{$\int$}{0pt}{3pt}} +\br{|} \use{2}\zb{XY/A} |\use{4}\- \er{|} +\br{\:|} \use{2} | qrr | aaa | 799 | \er{|\rlap{ \it ** iii}} +\- +\endtable +} +$$ +This example +illustrates the power and flexibility of the commands. +Row {\it i} shows the +modification of the standard strut, which is 2.5ex high and .9ex deep, by +changing the height and depth. The |\mst| is used again in row {\it iii} +where some extra space is added at the bottom of the integral sign, but not +at the top. The |\mst| takes three arguments or parameters. The first is the +character from which the strut is derived, the second is the additional +space on the top of the character and the third is on the bottom. The first two +rows of this table had additional space at both the top and bottom while the +``integral'' row had changes only at the bottom. This fine tuning of tables +can improve their visual form immensely. Row {\it iii} demonstrates the use +of a |\zb| or ``zero-centered box'' for putting items in the center of +larger boxes. This row with the |\zb| has {\bf no} struts. In addition, the +|\zb| boxes are centered and have zero height and depth. This means that they +take up no vertical space so that a partial horizontal line or rule may be +inserted. This is done with the |\use{4}\-| which tells \intex\ to use 4 +(data) columns for the horizontal rule. + +Many variations exist. The commands available in \intex\ for +tables are described in the following section. + + +\shead{aligncomforms}{Command Forms} +The command forms in this section are organized under three different +headings, tabbing, basic |\halign|, and \intex\ table commands. + +\dssshead{Tabbing Commands} +\beginblockmode +\pla\@|\+<text>&<text> ... &<text>\cr| +\nbr +This is the command for entering a line of text in the {\it tab} format. The +|<text>| in each column is optional and will spill over into the next column +if there is no room. If there are $n$ tabs set, all |&| beyond the $n$ will +set tabs at the location they appear in the text. The |\cr| terminates the +line. See Section \ref{tabbing} for examples. + +\mbr +\pla\@|\cleartabs| +\nbr +This command clears tabs to the right of the current one, on all subsequent +lines. See Section \ref{tabbing} for examples. + +\mbr +\pla\@|\tabalign ... \cr| +\nbr +This is a non |\outer| form of |\+| and can be used in definitions. +\endblockmode + + +\dssshead{Basic {\tentt \string\halign } Command Forms} +\beginblockmode +\pla\@|\halign{<preamble>\cr <first row>\cr ... <last row>\cr}| +\nbr +This is the basic alignment command. It is necessary to be in (internal) +vertical or display math mode to use it. +The |<preamble>| describes a template or +form for interpreting the text fields in following rows. Each field in an +|\halign| is like an individual |\hbox| whose size is calculated by \tex. +Between each of these field boxes is |\tabskip| glue that is allowed to +stretch or shrink in order to vary the overall size of the alignment. An +example of a preamble that creates three columns, the first left justified, +the second centered and the third right justified is +\begintt +<preamble> --> #\hss &\hss #\hss&\hss # +\endtt +The |#| shows where the text in that particular column should be placed, with +respect to the glue, and the |&| indicates the end of the field. +\begintt +$$ +\halign{#\hss &\hss #\hss&\hss #\cr + This particular & example & will give the text \cr + shown &below in its& \TeX\ form.\cr + It &could &have had mathematics, $x^y$ too.\cr} +$$ +\endtt +will in fact produce, as promised, +$$ +\halign{#\hss &\hss #\hss&\hss #\cr + This particular & example & will give the text \cr + shown &below in its& \TeX\ form.\cr + It &could &have had mathematics, $x^y$ too.\cr} +$$ +The |$$...$$| is a convenient way of centering the |\halign|. + +If the preamble has an extra |&| in its definition, then \tex\ pretends +that the pattern between +the extra |&| and the |\cr| is repeated an infinite number of times. This +means that it is quite easy to define a single |\halign| that can be used +even when the number of columns is unknown. If the |<preamble>| above were +replaced by |&<preamble>|, then the entire sequence of left, center, right +justified columns would be repeated. + + + +\mbr +\pla\@|\hidewidth| +\nbr +This command is used to allow an entry in an alignment field to stick out the +side of the field. If it is used on both sides, of an entry, the width of the +column is unaffected by that field. This is used when column widths +should be determined by the data entries and not the titles. It is probably +not to useful in a pure \intex\ table format. + + + +\mbr +\pla\@|\ialign{<preamble>\cr <first row>\cr ... <last row>\cr}| +\nbr +This is identical to an |\halign| except that the |\tabskip| glue has been +preset to be zero. + +\mbr +\pla\@|\multispan {<integer>}| +\nbr +This effectively combines the |<integer>| number of columns into one column +and leaves the simple |#| template or pattern. Note that any implicit spacing +at the edges of the column is lost. + +\mbr +\pri\@|\noalign {<text>}| +\nbr +This will place the |<text>| between this and the following row of an +alignment. It must be the first token after the |\cr|. It has many uses +including placing horizontal separator lines in tables. + +\mbr +\pla\@|\oalign{<first row>\cr ... &<last row>\cr}| +This creates a vertical list of the elements in each of the rows. There is +only {\bf one} element allowed in each row. For instance +\begintt +$$ +\oalign{this\cr is\cr a\cr vertical\cr list\cr} +$$ +\endtt +gives +$$ +\oalign{this\cr is\cr a\cr vertical\cr list\cr} +$$ +Note that there are no struts in the rows. + +\mbr +\pri\@|\omit| +\nbr +If |\omit| is the first token after the |&|, or the replacing |\span|, then +the template pattern for that field is replaced with the simple |#|. Any +tabskip glue is left intact. + +\mbr +\pri\@|\span| +\nbr +This command in the text fields of an |\halign| can be used to replace the +|&|. When this is done, the template or formats of the +adjacent columns are butted against each other and results in both data +fields placed in a box of the combined size of both columns, including any +tabskip glue. This command in the preamble field of an |\halign| will cause +the following command to be expanded. \intex\ uses this to transfer the +information in format field to the actual |\halign| of the table. + + + +\mbr +\pri\@|\valign{<preamble>\cr <first column>\cr ... <last column>\cr}| +\nbr +This is the vertical equivalent of the |\halign|. +\endblockmode + +\dssshead{\intex\ Table Command Forms} +\beginblockmode +\ext\vrt +\nbr +This command will put a vertical rule of width |\tr| at the point indicated. +It should be used only in the text rows and not in the format. The |"| should +be used to represent a rule column in the format. This command removes spaces to its left or, equivalently to the +right of the item in the previous data column. + +\silent{\@{\char'42}} +\mbr +\ext|"| +\nbr +In text rows this is used to leave the vertical rule out of a rule column. In +the format it is used to indicate the existence of a rule column. As a matter +of style, \intex\ data columns should always be separated by a rule column. +If there is no rule, this is indicated in the text rows by using |"| instead +of \vrt. This command removes spaces to its left or, equivalently to the +right of the item in the previous data column. + +\mbr +\ext|\|\vrt +\nbr +This command is used in text rows to insert a rule that has been defined by +the command name |\sprule|. The default for this rule is a thick vertical +rule. + +\mbr +\ext\@|~| +\nbr +This is used to force a space exactly the width of the numerals ``0''. +Since all numerals are the same width, this enables the lining up of +numeric data. If it is used in text mode in a table, it will still {\it tie} but +the space will be slightly larger than outside tables. + +\mbr +\ext\@|\:| +\nbr +This command puts a strut of height 2.5ex and depth .9ex. A strut is an +invisible vrule of width 0pt. Thus the definition of |\:| is +|\vrule height 2.5ex depth .9ex width 0pt|. A |\:| may be modified in place +by putting a new height, depth or width {\bf immediately} after it. +This command removes spaces to its left or, equivalently to the +right of the item in the previous data column. + + +\mbr +\ext\@|\-| +\nbr +This command draws a horizontal line across the table. If it is used between +rows it draws a line the entire width of the table. If it used in a data +column, it draws a line the width of the column. +It is commonly used in conjunction with |\use|. The commands +|\use{3}\-| will draw a horizontal line across 3 columns. + +\mbr +\ext\@|\br{<rules..>} \er{<rules..>}| +\nbr +These two commands are used at the beginning and end of row respectively. +Since \intex\ places a rule column at the beginning and end of each table the +|<rules..>| are put into those columns. This information includes struts for +spacing, such as |\:| or \vrt for the entry of a vertical rule. +|\er| removes spaces to its left or, equivalently to the +right of the item in the previous data column. + +\mbr +\ext\@|\begintable ... \endtable| +\nbr +This is the command that is used to begin a table. It starts a group and +must have a corresponding |\endtable|. There is a corresponding |\everytable| +token list. + +\mbr +\ext\@|\begintableformat ... \endtableformat| +\nbr +This command starts the format definition of the table. It must have an +associated |\endtableformat|. \intex\ searches for this +|\endtableformat| {\bf before} +actually processing the format information. Disaster ensues if it is not +there. {\bf \intex\ adds a rule column to the beginning and the end of all +formats.} A valid format is given below +\begingroup +\begintt +\begintableformat +\center " &\right " \hss A.B ## \hss " \center &X##X& \math\left +\endtableformat +\endtt +\endgroup +Note that the |##| must always appear as a pair rather than as single |#| in +the ordinary |\halign| preamble. The |"| indicates a rule column. The |&| +before the |\right| indicates that the format from this point to the end, +including the {\bf additional} rule column inserted by \intex\ will be +infinitely repeated. The |&X##X&| indicates a column with an |X| on either +side of the data position. If an |"| were put in this position in the row, a +column of |XX| would result. + +The simplest format, and perhaps the most useful is +\begingroup +\begintt +\begintableformat +&\center +\endtableformat +\endtt\endgroup +which results in a potentially infinite number of centered data columns +separated by rule columns. If any individual data item needs a different +format, the use of a |\left{data}| or similar form may be used. + +\mbr +\ext\@|\center \center{<argument>}| +\nbr +The first form of |\center| is used in a table format statement to create a +centered data column. The second form is used in the data position of a data +column to override the column format given in the format statement. Thus if +the column format were |\center|, an entry of |\left{<text>}| would put the +|<text>| at the left of the column. If the format entry were |\math\left| +then a data column entry of |\center{<text>}| would center the |<text>| in +the column but would still be in mathematics mode. An entry of +|\omit\center{<text>}| would center the data, remove the mathematics mode, +{\bf and} remove the spacing at both sides of the data entry. This latter +aspect would not show up with |\center| but would with |\left| or |\right|. + + +\mbr +\ext\@|\displaymath{<argument>}| +\nbr +In the table format, this command must be used with one of |\center|, |\right|, or +|\left|, or any other valid data column specification. For example, +a data column where the input data needs to be +in display mathematics format and then right justified is given by +|\displaymath\right|. + +In the text rows, this command will take the |<argument>| and put it in +display mathematics format. It will not affect the table format specification +of |\right|, |\left| or |\center|. + + +\mbr +\ext\@|\everytable| +\nbr +This is a token list of commands that should be executed for every table. +For instance +\begintt +\everytable ={\ninepoint} +\endtt +will make very table with |\ninepoint| fonts. + + + +\mbr +\ext\@|\fulltablerule{<dimen>}| +\nbr +This draws a horizontal line across the width of the entire table of +thickness |<dimen>|. |\tr| is used in vertical rules for widths and should be +used here. For instance |\fulltablerule{2.5\tr}| will draw a horizontal line +2.5 times the thickness of the vertical rule given by \vrt which has the +width |\tr|. + +\mbr +\ext\@|\left| +\nbr +This command behaves identically to |\center| but {\bf left} justifies the data +entry. See |\center| for more details. + + +\mbr +\ext\@|\math{<argument>}| +\nbr +This command is similar to |\displaymath| except that it sets up a normal +text mathematics mode. Thus |\math{\alpha}| is equivalent to |$\alpha$|. In a +table format, it is used in conjunction with the |\center|, |\right|, and +|\left|. Thus |\math\center| produces a data column in text mathematics mode. + +\mbr +\ext\@|\midtabglue [=] <glue>| +\nbr +Changing the |<glue>| value of this parameter will insert tabskip glue into +the internal columns in the table. The first and last column tabskip +glues are set to 0pt plus 1fill. This is really only useful in conjunction with +|\tablespread| when it is required that a table stretch to a bigger size. + +\mbr +\ext\@|\modifystrut{<original>}{<add to height>}{<add to depth>} +\mst = \modifystrut| +\nbr +|\modifystrut| and its abbreviation |\mst| will create and insert a strut +that is |<add to height>| higher and |<add to depth>| lower. These latter are +dimensions and may be negative. The |<original>| may be a strut or a complete +expression. |<original>| could even be a duplication of the row, +as long as the row contained no explicit |&| characters and excluding the +|\br| and |\er|. However, the arguments of the |\br| and |\er| could be +included. + + +\mbr +\ext\@|\right| +\nbr +This command behaves identically to |\center| but {\bf right} justifies the data +entry. See |\center| for more details. + + +\mbr +\ext\@|\sa{<text>}| +\nbr +This command creates an empty box of zero height and depth with the width of +the natural width of |<text>|. It is, in effect, a horizontal strut and is used to +create columns that have the minimum width as others in the table, without +measuring. It was used to make a sample line in the {\it AT\&T} table in +Section~\ref{intable}. + +\mbr +\ext\@|\sprule| +\nbr +This is the name of the command that is inserted in a rule column by the +command |\|\vrt. It is usually a rule but in fact is unrestricted. It is +initially definded as a vrule of width |2.5\tr|. + + +\mbr +\ext\@|\tablespread = {<halign specification>}| +\nbr +This is a token list that can include any specification that is valid for an +|\halign|, or equivalently a box. See Chapter~\ref{basbox} for details. A +simple example is when a table is supposed to be exactly 8cm --- assuming that +its natural width is less. Then a |\tablespread = {to 8cm}|, added just +after the |\begintable|, along with the +default tabskip glue, will produce it. An example is the {\it AT\&T} table at +the beginning of the section. +$$ +\centerline{ +\begintable +\tablespread = {to 8cm} +\begintableformat +\center " \center " \center +\endtableformat +\br{} \sa{Dividend} "\sa{Dividend} "\sa{Dividend} \er{} %sample line +\- +\br{\:|} \use{3} AT\&T Common Stock \er{|} +\- +\br{\:|} Year | Price | Dividend \er{|} +\- +\br{\:|} 1971 | 41--54 | \$2.60 \er{|} +\- +\br{\:|} ~~~2 | 41--54 | ~2.70 \er{|} +\- +\br{\:|} ~~~3 | 46--55 | ~2.87 \er{|} +\- +\br{\:|} ~~~4 | 40--53 | ~3.24 \er{|} +\- +\br{\:|} ~~~5 | 45--52 | ~3.40 \er{|} +\- +\br{\:|} ~~~6 | 51--59 | ~~.95\rlap* \er{|} +\- +\br{\:}\use{3} \left{* (first quarter only)} +\endtable +} +$$ + + + +\mbr +\ext\@|\tcs| +\nbr +This dimension is the spacing inserted to the left and right of every data +column by \intex\ through the use of the |\left|, |\center| and |\right| +commands. It may be modified by |\tcs = <new dimen>|. + +\mbr +\ext\@|\thrule{<height>}| +\nbr +This command is used to insert a horizontal rule of thickness |<height>| +across an entire data column. The command |\use{3}\thrule{2.5\tr}| will +insert a horizontal line across three data columns, and omit the intervening +vertical rules, if any. + +\mbr +\ext\@|\tr| +\nbr +This dimension is the basic table line dimension, being the width of vertical +lines and the height of horizontal lines (rules). It defaults to the +natural width and height of \tex\ vrules and hrules, namely .4pt. It may be +modified by |\tr = <new dimen>|. + +\mbr +\ext\@|\tvrule{<width>}| +\nbr +This is a vertical line or rule with width |<width>|. The default value of +|<width>|, which is a dimen, is |\tr|. + +\mbr +\ext\@|\use{<number of data columns>}| +\nbr +This command effectively merges the next +|<number of data columns>| into one and uses the format or template of the +{\bf last} one. Thus if the last template is |\center|, then +|\use{4} Table| will put |Table| in the center of these four columns. If the +last column had a |\left| format but it was still desired to center |Table| +then |\use{4} \center{Table}| will do the job. This is \intex's version of +|\multispan| especially tailored to the idea of rule and data columns. + +\mbr +\ext\@|\zerocenteredbox{<text>} + \zb = \zerocenteredbox| +\nbr +|\zerocenteredbox| and its abbreviation |\zb| will take the |<text>| and put +it in a box, centered, and of zero height and depth. It automatically checks +modes so that it will work correctly even with display math templates. It is +used to place rows of data so that they are visually between data entries in +other columns. For instance, the following table had its last two rows done +this way. + +\bigbreak +\centerline{ +\begintable +\begintableformat + \left"&\center +\endtableformat +\fulltablerule{2.5\tr} +\br{\:\|} \| \use{5} SERVICE \er{\|} +\br{\|} \| \use{5}\- \er{\|} +\br{\:\|}CANONICAL\| Fully | Dynamic | Complete | Switched | Switched \er{\|} +\br{\:\|}NETWORK \|Connected|Allocation|Broadcast | Complete |Broadcast \er{\|} +\br{\:\|} \| | | | Broadcast| \er{\|} +\fulltablerule{3\tr}%--------------------------------------------------------- +\br{\:\|} Fully \| | | | | \er{\|} +\br{\|} \|\zb{$v$} |\zb{$v$} | \zb{$v$} |\zb{$(N-1)v$}|\zb{$(N-1)v$}\er{\|} +\br{\:\|}Connected\| | | | | \er{\|} +\- %-------------------------------------------------------------------------- +\br{\:\|}Simplex Tree\| | | | | \er{\|} +\br{\|} \|\zb{$v/(N-1)$}|\zb{$v$}|\zb{$v/(N-1)$}|\zb{$v$}|\zb{$v$}\er{\|} +\br{\:\|}Collection\| | | | | \er{\|} +\fulltablerule{2.5\tr} %------------------------------------------------------ +\endtable +} + + + +and is given by +\begingroup \eightpoint +\beginttverbatim +\1centerline{ +\1begintable +\1begintableformat + \1left"&\1center +\1endtableformat +\1fulltablerule{2.5\1tr} +\1br{\1:\1|} \1| \1use{5} SERVICE \1er{\1|} +\1br{\1|} \1| \1use{5}\1- \1er{\1|} +\1br{\1:\1|}CANONICAL\1| Fully | Dynamic | Complete | Switched | Switched \1er{\1|} +\1br{\1:\1|}NETWORK \1|Connected|Allocation|Broadcast | Complete |Broadcast \1er{\1|} +\1br{\1:\1|} \1| | | | Broadcast| \1er{\1|} +\1fulltablerule{3\1tr}%--------------------------------------------------------- +\1br{\1:\1|} Fully \1| | | | | \1er{\1|} +\1br{\1|} \1|\1zb{$v$} |\1zb{$v$}|\1zb{$v$}|\1zb{$(N-1)v$}|\1zb{$(N-1)v$}\1er{\1|} +\1br{\1:\1|}Connected\1| | | | | \1er{\1|} +\1- %-------------------------------------------------------------------------- +\1br{\1:\1|}Simplex Tree\1| | | | | \1er{\1|} +\1br{\1|} \1|\1zb{$v/(N-1)$}|\1zb{$v$}|\1zb{$v/(N-1)$}|\1zb{$v$}|\1zb{$v$}\1er{\1|} +\1br{\1:\1|}Collection\1| | | | | \1er{\1|} +\1fulltablerule{2.5\1tr} %------------------------------------------------------ +\1endtable +} +\endttverbatim +\endgroup +\ejectpage + +\endblockmode +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thauto.tex b/macros/inrstex/inrsdoc/thauto.tex new file mode 100644 index 0000000000..f21b5973ce --- /dev/null +++ b/macros/inrstex/inrsdoc/thauto.tex @@ -0,0 +1,379 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{auto} +\marginnotestrue + +\def\cqu{\cquote{Words are sensible signs necessary for +understanding.}{Concerning Human Understanding, Book III, Chap. II, +John~Locke (1632-1704)}} + + +\chapterhead{auto}{AUTONUMBERING\cr REFERENCING\cr and TAGGING} +\intex\ provides facilities for automatic numbering and referencing of +chapters, sections, equations, figures, and tables. +Both the number of a chapter, equation, \dots\ and its page may be +referenced. +In addition there are +general features for defining your own special numbers and tags. For +instance, it is possible to obtain a new number for, say problem exercises, +by just calling |\newautonum{ex}|. This will create all the commands +necessary for referencing, resetting, and autoincrementing these numbers. + +Chapters, sections, subsections, {\it etc}, are also autonumbered and can be +referenced through tags. For instance this chapter has the tag |auto|. To +insert the value of the tag in the text, it is only necessary to type +|\ref{auto}|, which in this case gives \ref{auto} without any extra braces +brackets or periods. +Details of creating tags for chapters and sections are discussed in +Chapter~\ref{shead} starting on page \pref{shead}. + +\intex\ also supplies facilities for automatically numbering and creating +paper or journal citations (sometimes called confusingly, at least here, {\it +references}). These are discussed in Chapter \ref{cite}, page \pref{cite}. +The facilities for creating lists of tables or figures are found in Chapter +\ref{toc} starting on page \pref{toc}\footnote{\dagger}{One must be careful +not to overdo an easily used facility.}. + +\shead{autocomlist}{Command List} +\begintwocolumn +\ext|\aneq| +\ext|\aneqtag| +\ext|\autonumberingon| +\ext|\autonumberingoff| +\ext|\autoreferencingon| +\ext|\autoreferencingoff| +\ext\@|\autoeqnum| +\ext\@|\autotblnum| +\ext\@|\autofignum| +\ext|\auto<type>num| +\ext|\inputtagfiles| +\ext|\newautonum| +\ext|\newtag| +\ext|\numberbychapter| +\ext|\numberbysection| +\ext|\Prerefform| +\ext|\Postrefform| +\ext|\pageref \pref| +\ext|\pagequietref \pqref| +\ext|\pagetagsoff| +\ext|\pagetagson| +\ext|\quietref \qref| +\ext|\ref| +\ext|\silent| +\ext|\specialnumberscontinuous| +\ext\@|\<type>tagrefformat| +\ext\@|\<type>num| +\ext\@|\<type>tagreplaceformat| +\ext\@|\<type>numform| +\endthreecolumn + +\shead{tagcon}{Tagging Conventions} +Such items as section heads, equations, figures, and tables may be given +symbolic ``tags'' so that references to them will be correct even if there +are deletions, insertions, or shufflings. ``Normal'' tags refer to the +section, equation, or figure numbers while ``page'' tags refer to the page +where the item occurred. Page tags are turned on with the \@|\pagetagson| +command and turned off with \@|\pagetagsoff|. The default is |\pagetagsoff|. + +The tagging system within \intex\ is designed to work best when the +autonumbering features are on. +It is designed so that both forward and +backward references are possible. This is done by saving the tags in a file +while \tex\ is processing. The next time the document is processed, the use +of the command |\autonumberingon| or +|\autoreferencingon| will bring in the latest version of the tag +file. As tags are generated, the new definitions and values replace the old +ones. When there is a reference to a tag that has not +yet been (newly) defined, the old value is used. To guarantee that the tag +references are correct, the document should be processed twice. This, of +course is only necessary on the ``final'' version. + + +All tags, whether they are for chapters, sections, equations, citations, +or specials +{\bf must be unique within the entire document}. This allows for the value of +a tag, which is usually a number, may be referred to by |\ref{<tag>}| +or |\quietref{<tag>}| and the page number where it occurred by +|\pref{<tag>}| or |\pqref{<tag>}|, no +matter the type being tagged. The quiet forms of the refs do not create +margin notes and do not check to see if a tag actually exists. Thus both +|\qref{<tag>}| and |\pqref{<tag>}| will give an error +if |<tag>| does not exist. +The quiet forms {\bf must} be used inside section heads and are recommended +whenever the ref is passed as a parameter to som other command. +The tag value does not have +any additional brackets or braces around it. For instance, if an equation was +given a tag of |theq|, and that was eventually given the value of 2.11 where +the first number is the section or chapter and the second is the equation +number, then |\ref{theq}| would insert 2.11 into the text. To obtain ``Eq. +(2.11)'' in the text it is necessary to type |``Eq. (\ref{theq})''|, the +(\dots) being put in explicitly. + +In almost all instances, the actual tag is generated automatically by the +autonumbering forms. However, the |\newtag{<tag>}{<tagvalue>}| command will +create a tag with the name |<tag>| and the value |<tagvalue>| for |\ref| and +the current page number for |\pref|. + +Sometimes it is necessary to create the tag +{\it silently, ie} without any trace in the text. Although |\newtag| does not insert +into the text, |\auto...num| does. The commands + \@|{\silenttrue \auto...num{<tag>}}| will cause the +|\...num| to increment but nothing will be placed in the text. T +his is preferred +to |\silent{<text>}|. +Note that |{\silenttrue <text>}| will normally put the |<text>| in the +document. + +\shead{refformats}{Tag Insertion Formats} +When a new tag and auto number is created, there are a number of reference +forms for that tag that are also created. These are +\begintt +\<type>tagrefformat +\<type>tagreplaceformat +\<type>numform +\endtt +The first governs the format of the initial replacement of the |<tag>| when +it created. The default in |\newautonum{<type>}| is to make it the same as +|\<type>tagrefformat|. The second,|\<type>tagrefformat| is the format for inserting +the tag value when it is actually referred to in the text. +The third |\<type>numform| is set initially equal to +|\the\<type>num|, the value of the counter corresponding to |<type>|. This +may be modified if something other than simple arabic numerals are wanted. +|\newautonum{<type>}| defines +|\<type>tagrefformat| to be equivalent to +``|\Prerefform \<type>numform \Postrefform|''. +The commands |\Prerefform| and |\Postrefform| +are defined by |\numberbysection|, |\numberbychapter| and modified when +inside Appendices. + +\shead{validtag}{Valid Tag Forms} +Any character except the following ``|\ $ % & _ ^ { } "| \vrt'' are +valid as, and within tags. + +\shead{numcon}{Numbering Conventions} +There are basically two types of autonumbers in \intex, those that deal with +chapters, sections, subsections, subsubsections, and appendices, and the {\it +special} ones defined for equations, tables, figures, or any created +especially for that document. + +Associated with every autonumber is a {\it count} with the name |\<type>num|. +For instance the count associated with equations is |\eqnum| and that with +subsections is |\sshnum|. However, when the number is actually inserted +into the text, it is not the raw number that is inserted, but rather some +formatted version. The formatting appends to the basic count, either nothing, +or the numbers corresponding the chapter or section where the number was +first created. The actual formatting depends upon what type of numbering +format is in force. + +For instance, for a document with chapters, the ordinary convention is to +number the specials as +``|<chapter number>.<special number>|''. If +the document has sections but no chapters, and if |\numberbysection| has been +called, the format is ``|<section number>.<special number>|''. The default in +\intex\ is neither of these but is continuous numbering. +This means that the +specials have the form ``|<special number>|'' and are not reset, except in +appendices, throughout the document. Continuous numbering of specials is +forced by |\specialnumberscontinuous|. + +Appendices are treated specially. The specials are reset upon entering an +appendix, and the reference formats always include the appendix number. The +appendix number is usually an uppercase roman letter, although other formats +are possible. + +\shead{autocomforms}{Command Forms} +\beginblockmode +\ext\@|\aneq \aneqtag{<tag>}| +\nbr +These commands are specials for use in display math mode to create equation +numbers. They increment the equation counter |\eqnum|, and insert either a +left or right hand equation number as appropriate, with the equation number +{\bf surrounded} by brackets like (|<num>|). This is provided to reduce the +amount of typing required. The |\aneqtag{<tag>}| also creates a |<tag>| +possible reference. + +\mbr +\ext\@|\autonumberingon| +\nbr +This command turns automatic numbering on. It brings in the tag file with name +|\jobname.tag|, if it exists, and opens a new version for writing the tags +generated by that \tex\ processing run. The |\jobname| is the file name of +the \tex\ file {\bf without} the normal |.tex| extension. +No errors will result if this command is called several times. + +\mbr +\ext\@|\autonumberingoff| +\nbr +This command turns automatic numbering off and closes the tag file. +\intex\ defaults to |\autonumberingoff|. + +\mbr +\ext\@|\autoreferencingon| +\nbr +This command turns automatic referencing on. It brings in the tag file with name +|\jobname.tag|, if it exists. A |\ref{<tag>}| will result in the +|<tagvalue>| being put in the text. A |\pref{<tag>}| will result in the page +number where |<tag>| was last defined being put in the text. +No errors will result if this command is called several times. +\intex\ defaults to referencing being active but does not automatically bring +in a |.tag| file. + +\mbr +\ext\@|\autoreferencingingoff| +\nbr +This command turns referencing off. +Both |\ref{<tag>}| and |\pref{<tag>}| will result in the +|<tag>| being put in the text. + + +\mbr +\ext\@|\auto<type>num{<tag>}| +\nbr +This is the basic command for incrementing the |<type>| number and creating a +tag for that number with the tag name of |<tag>| and the tag value of the +number in the correct format given the numbering form in force. \intex\ +defines three basic types, |eq| for equations, |fig|, for figures, and |tbl| +for tables. The tag is written to the |.tag| file. + +\mbr +\ext\@|\inputtagfiles [=] {<input command><file name> ...}| +\nbr +In some cases it may be useful to bring in a file or list of files +of tags other than those in +|\jobname.tag|. |\inputtagfiles| is a |<token list>| of commands of the type +given. +For instance the master file for this book was called |th.tex| +while the file for this chapter was called |thauto.tex|. If +|\autonumberingon| is called when \tex ing this chapter by itself, the tag +file brought in will have the name |thauto.tag|. To use the |th.tag| file it +is only necessary to put +\begintt +\inputtagfiles = {\inputwithcheck{th.tag} } in the chapter file. +\endtt + + +\mbr +\ext\@|\newautonum{<type>}| +\nbr +This command creates all the necessary commands for using and referring to +the autonumber of |<type>|. The |<type>|s defined by \intex\ are |eq|, |fig|, +and |tbl|, corresponding to equations, figures, and tables respectively. It +is recommended, but not required that |<type>| be restricted to 3 or fewer +characters. This allows for a consistent use of |<type>| as the extension of +list file used for eventually creating a table of items for the table of +contents part of a document. +For instance, the equation numbering was created with |\newautonum{eq}|. This +created the counter |\eqnum|, and the +commands |\eqnumform|, |\eqtagreplaceformat|, and |\eqtagrefformat|. Any of +these can be changes at will. However, care must be taken if consistent +numbering formats is to be maintained. + +\mbr +\ext\@|\newtag{<tag>}{<tag value>}| + +\ext\@|\newttag{<tag>}{<tag value>}| + +\ext\@|\newptag{<tag>}| +\nbr +This creates a (normal) tag with reference name |<tag>| and value +|<tag value>| and a page tag with the reference name|<tag>| and the current +page value. These +tags are written out to the |.tag| file if it is open. Page tags will get +lost if they are produced inside a box that is never inserted in the text. +This occurs for {\bf all} text inside a |\silent{<text>}|. +|\newttag{<tag>}{<tag value>}| creates and writes a normal tag while +|\newptag{<tag>}| creates and writes a page tag. + +\mbr +\ext\@|\numberbychapter| +\nbr +This command will cause {\it specials} to be reset at the beginning of each +new {\bf chapter}, and to append the {\bf chapter} number to any tag reference and to the +original tag replacement. + +\mbr +\ext\@|\numberbysection| +\nbr +This command will cause {\it specials} to be reset at the beginning of each +new {\bf section}, and to append the {\bf section} number to any tag reference and to the +original tag replacement. + + +\mbr +\ext\@|\pagequietref{<tag>} \pqref{<tag>}| +\nbr +This is a putting the page number in the text that corresponds to any +|<tag>| +that has been previously +defined. It does not attempt to create a margin note nor does it +check to see if the |<tag>| is valid. This allows the +reference to be used in such places as section heads, titles, captionboxes. +In fact it {\bf must} be used in {\bf any} place where the surrounding text is +written to a special file or the terminal. +Page references {\bf are always from the previous version.} + + +\mbr +\ext\@|\pageref{<tag>} \pref{<tag>}| +\nbr +This is the basic command for inserting the +page number corresponding to any |<tag>| that has been previously +defined. Page references {\bf are always from the previous version.} + +\mbr +\ext\@|\pagetagson \pagetagsoff| +\nbr +These commands turn page tags on and off respectively. The default is off. +It is important to wait until the page containing the item is actually output +before turning off page tags. The page tags are actually generated when the +page is output \dots\ not before. + + +\mbr +\ext\@|\quietref{<tag>} \qref{<tag>}| +\nbr +This is a putting the |<tagvalue>| in the text that corresponds to any +|<tag>| +that has been previously +defined. It does not attempt to create a margin note nor does it +check to see if the |<tag>| is valid. This allows the +reference to be used in such places as section heads, titles, captionboxes. +In fact it {\bf must} be used in {\bf any} place where the surrounding text is +written to a special file or the terminal. + + + +\mbr +\ext\@|\ref{<tag>}| +\nbr +This is the basic command for inserting the +|<tagvalue>| for any |<tag>| that has been previously +defined. + + +\mbr +\ext\@|\silent{<text>}| +\nbr +This command expands the |<text>| inside a |vbox|, but without ever having it +enter the document. This is a way to call out a |\figureinsert| in order to +create the normal tags and list files without it actually appearing in the text. +{\bf Page tags will not be created in this case.} +Note that tags defined inside a |\silent| {\it may} not appear in the +margin. The actual mechanism used is +|\setbox0 = \vbox{<text>}|. See Chapter~\ref{basbox} for more details on +|box| commands. + +\mbr +\ext\@|\specialnumberscontinuous| +\nbr +This command will prevent the {\it special} numbers from being reset at any +point in the document, except appendices. A reference to a {\it special} number +tag will result in the value of the appropriate counter with no section or +chapter numbers added. {\bf All special numbers are treated the same way.} + + +\endblockmode + +\ejectpage +\marginnotesfalse +\done diff --git a/macros/inrstex/inrsdoc/thbas.tex b/macros/inrstex/inrsdoc/thbas.tex new file mode 100644 index 0000000000..4dfc9e1afa --- /dev/null +++ b/macros/inrstex/inrsdoc/thbas.tex @@ -0,0 +1,220 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{bas} +\def\testhrule{\hrule} +\def\testvrule{\vrule} +\def\cqu{\cquote{Once a ``question'' is perfectly understood, we +must free it of every conception superfluous to its meaning \dots}{ + Rules for the Direction of the Mind, Rule XIII, +Ren\'e~Descartes (1596-1650)}} + +\chapterhead{bas}{BASIC IDEAS\cr and\cr TERMINOLOGY} +This chapter introduces some more terminology used in \tex\ and \intex. These +are {\it boxes, glue, dimensions, modes, penalties, groups, tokens, token lists, +definitions, macros, assignments} and {\it parameters}. + +\shead{boxes}{Boxes} + +\vbox{\hrule\hbox{\vrule\vbox{\hsize=\hcolumnsize +\tex\ can be imagined as assembling boxes, in various {\it modes}, +much in the same way that a child +builds a castle. +Pages are formatted by glueing together such boxes. This page has some of the +component boxes outlined so you can see them. In fact this paragraph +is surrounded by a box that is made up by \tex's page paragraph builder, +when it pastes together a page. However this process starts from the bottom +up. First \hh{l}\hh{e}\hh{t}\hh{t}\hh{e}\hh{r}\hh{s} are glued together +horizontally to make the word \hh{letters}. Then all the words in a paragraph +are glued together, with appropriate +interword spacing, in a single long line. Finally this long line is broken +into page-width lines in the nicest way. +}\vrule}\hrule} + +A {\it horizontal} box, one with a {\it horizontal list} such as the +words in a paragraph, is an |\hbox|. A +{\it vertical} box, for example the one that contains the +vertical list of |\hbox|es for the lines, +is called a |\vbox|. +The most important |\vbox| for \tex\ is the one that is used to collect the +lines that make up the page. This is box 255, and it is on this box that the +page builder works. There are, in fact, 256 boxes available to use. Some of +these have been already used by |plain| or an extension package. + + +\shead{glue}{Glue} +Boxes are not the whole story. Between boxes there is {\it glue}. This glue +can stretch or shrink and is stretched or shrunk in order to make a list of +boxes inside another, such as words on a line, evenly fill out the line. This +is how words are right justified on a line. When there is not enough stretch +or shrink available, \tex\ complains about an {\it underfull} or {\it +overfull} box. Overfull boxes are indicated on the document with an ugly +black vertical line at the end of the offending box. Underfull boxes cause +error messages and the glue is stretched beyond its limits. +When glue is inserted, it shows up as blanks or white space. +More detail on glue will be found in Chapter~\ref{dimnum}. + +\let\testhrule=\relax +\let\testvrule=\relax + +\shead{dimensions}{Dimensions} +Boxes have dimensions that consist of a |<decimal number>| and a two letter +unit of measurement such as |in| for inches or |cm| for cm. Thus ``2.54cm'' +is another way of saying ``1in''. When \tex\ is processing some text looking +for a dimension, it reads the next two letters after a number and attempts to +interpret this as a unit of measure, whether or not there is a space or non +letter following. More details on dimensions will be found in +Chapter~\ref{dimnum}. + +\shead{modes}{Modes} +When \TeX\ is +putting together a horizontal list of boxes, such as characters in a line, +it is said to be in the {\it horizontal} mode. The result of working on a +{\it horizontal} list of boxes is a {\it horizontal} box. + +If \TeX\ is putting together +boxes {\bf inside} another {\it horizontal} box, it is in the {\it internal} {\it horizontal} mode. +Lines are assembled as a {\it vertical} list to create {\it vertical} boxes. When +assembling {\it vertical} list of boxes to makeup a page, \TeX\ is said to be in +{\it vertical} mode. When processing a {\it vertical} list of boxes to make up a +{\it vertical} box it is in the {\it internal vertical} mode. \tex's page builder is in +action when \tex\ is in {\it vertical} mode. When in {\it internal \it vertical} mode it is +not. In fact this is about the {\bf only} difference between the two +modes.\footnote{\ddagger}{This was not the case in \tex78.} + +\TeX\ has two other modes, {\it mathematics} mode, and {\it display mathematics} +mode. It is in these modes that mathematical equations, subscripts, and +superscripts are produced. You {\bf cannot} create subscripts and superscripts +in non {\it mathematics} mode. {\it Mathematics} mode is used to imbed {\it mathematics} +or mathematical symbols amongst normal text. {\it Display mathematics} will +create a displayed equation. + +For the most part \tex\ will flip from one mode to another automatically when +it meets a command that should occur in one of the specific +modes. + +\shead{penalties}{Penalties} +\tex\ does its work by assigning {\it penalties} to various visually +disturbing aspects of the page. It then tries to make the total of these +penalties as low as possible, and when it happens, confidently declares that +the best possible job has been done. Sometimes the results are not as nice as +either you or \tex\ would like. \tex\ not liking it means that there was no +feasible way to do things, such as build a paragraph, or break a page without +violating the norms of good taste as embodied in such things as glue +stretching badness on a line. The result is {\it underfull} or {\it overfull} +boxes. In some cases, the result is just plain awful. \tex\ has about 40 +parameters, and the various extensions many more. Any of these may be changed +to improve a given situation. In fact, since \tex\ actually assigns penalties +based on the context or state of a page, the penalty approach will +theoretically satisfy any objective. Difficulties arise in choosing the +penalties to match your objectives and upon obtaining a consensus on +objectives. The playing with penalties is an advanced occupation. + +\shead{grouping}{Grouping} +One of the most important ideas in \tex, is that of a {\it group}. +Commands in \intex\ of the form |\begin... \end...|, +the inside of boxes and fields in an |\halign| always +form a {\it group}. The |{...}| also form a group {\bf unless they are +being used to determine the parameters for a definition}. + +A {\it group} allows for an action to be restricted to a small locality, +and to easily revert to the previous form when going outside the group. For +instance, this paragraph is set in roman type. The command |\bf| \bf causes +everything after it to appear in bold face type until there is something like +a |\rm| \rm to return it back to normal. However if the |\bf| were placed +inside a group, the effect of the command will be undone when leaving the +group {\bf without} you having to remember what to undo. To insert some +{\bf bold face type} in the midst of roman type just enclose it in a group +like |{\bf bold face type}| and the roman will magically reappear after the +group. + +Both |{...}| and the |\begingroup...\endgroup| pairs define groups. The +major difference is that the text inside |{...}| is absorbed by \tex\ +immediately as a single entity while the passing through a |\begingroup| just +causes \tex\ to note that it has gone into another level of grouping. + +Braces |{...}| are most useful to define parameter groups for definitions +For instance the command |\sqrt{<math expression>}| uses the |{...}| to +determine exactly what should be under the square root sign. They are also +useful for short groups within the body of the text. + +However, for major, long groups the |\begingroup...\endgroup| pair should +be used. +For instance, in \intex, |\beginappendices| begins a group which is +ended when you say |\endappendices|. While inside that group special +changes to the format of equation numbers and section references are +occurring. When the group is left, these are undone. In fact, in \intex, any +command that has the form |\begin...| will enter a group and have a +corresponding |\end...| associated with it that must be used to properly +leave the group. + +While \tex\ is still reading commands, before it has settled down to actually +doing its work, braces and |\begingroup...\endgroup| pairs do not need to +match. This is a perfectly valid grouping +|{...\begingroup...}...\endgroup|. +In fact |{ ...\endgroup| is not a valid grouping. +When the information in the \tex\ commands get finally +deep down inside \tex, all groups are the same and if a group is opened it +must eventually be closed. This is possible because of the special way that +\tex\ destroys braces while it is digesting commands. \tex\ never destroys +|\begingroup...\endgroup| pairs. + +\shead{tokenlists}{Tokens and Token Lists} +When \tex\ reads your file, it {\bf immediately} changes the input characters +{\it tokens}. In this sense a command like |\begingroup| is a {\bf single} +token. A {\it token list} is simply a list of tokens. One of the features of +\tex\ that is used in \intex\ is the named {\it token list}. For instance, +\intex\ defines the token list |\chaptername| to be the chapter name. This +chapter has a name +\begintt +\chaptername = {Basic Ideas\cr and\cr Terminology} +\endtt +Note that there are |\cr| in this list that do not give any trouble. To +insert the contents of a {\it token list} into the text, the command +|\the\chaptername| is used. The following +\begingroup +\chaptername = {Basic Ideas\cr and\cr Terminology} +$$ +\centerline{\vbox{\halign{\strut\hss #\cr + \the\chaptername \cr}}} +$$ +\endgroup +is obtained by +\begintt +\centerline{\vbox{\halign{\strut\hss #\cr + \the\chaptername \cr}}} +\endtt +\def\mjf{Michael J. Ferguson} + +\shead{defsintro}{Definitions or Macros} +Both \tex\ and \intex\ let the user define their own commands. These are of +the form |\<name>| and are single tokens. The terms {\it definitions} and +{\it macros} are to be considered identical. If for some reason your name +occurs frequently in your text, the following would make typing easier: +\begintt +\def\mjf{Michael J. Ferguson} +\endtt +would allow for ``\mjf, \mjf, \mjf'' to be inserted in the text by merely typing +``|\mjf, \mjf, \mjf|''. More details on definitions will be found in +Chapter~\ref{defs} and in the \texbook. + +All the internal \intex\ macro definitions have an {\tt @} as the second +letter. Since an {\tt @} is not normally allowed in definition names there is +no danger that you will inadvertently redefine a command that is used by +\intex\ but is not found in the command index (following page \pref{index}). + + +\shead{assignments}{Assignments and Parameters} +{\it Parameters} in \tex\ and \intex\ are used to keep and allow modification +of such things as page sizes, list spacing, or page margins. They are all +modified by +\begintt +\<parameter name> [=] <new value> +\endtt +where the ``|=|'' is optional. For example +\begintt +\houterpagesize = 8in +\endtt +will change the width of the page to eight inches. + +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thbasbox.tex b/macros/inrstex/inrsdoc/thbasbox.tex new file mode 100644 index 0000000000..86f7b6d2e9 --- /dev/null +++ b/macros/inrstex/inrsdoc/thbasbox.tex @@ -0,0 +1,383 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{basbox} + +\def\cqu{} + +\chapterhead{basbox}{BASIC\cr BOX\cr COMMANDS} +\TeX 's major preoccupation is to make +boxes. This chapter discusses the basic commands that create and use boxes. +Boxes can be acquired, measured, split, copied, and squashed. \tex\ allows +almost anything that can be done on a page to be done inside a box. + +\shead{boxcom}{Command List} +\beginthreecolumn +\pri|\box| +\ext|\boxit| +\pri|\boxmaxdepth| +\pri|\copy| +\pla|\centerline| +\pri|\dp| +\pri|\everyhbox| +\pri|\everyvbox| +\pri|\hbox| +\pri|\ht| +\pri|\hrule| +\pla|\leftline| +\pla|\line| +\pla|\llap| +\pri|\lower| +\pla|\newbox| +\pri|\raise| +\pla|\rightline| +\pla|\rlap| +\pri|\setbox| +\ext|\strut| +\pri|\unhbox| +\pri|\unhcopy| +\pri|\unvbox| +\pri|\unvcopy| +\pri|\vbox| +\pri|\vcenter| +\pri|\vrule| +\pri|\vsplit| +\pri|\vtop| +\pri|\wd| +\ext|\zerocenteredbox| +\endthreecolumn + +\shead{boxtype}{Vertical and Horizontal Boxes} +There are two kinds of boxes, horizontal and vertical. This +differentiation is only one of {\it use}, not of quality. All boxes have a +height |\ht|, width |\wd|, and depth |\dp|, and reference point. +The reference point is at the left hand end of the {\it baseline} of the box. + +\boxexample +\noindent +Horizontal lists of boxes are lined up along their baselines. Vertical lists +of boxes are lined up along their reference points. + + + +The major difference is that +an |\hbox| contains a {\it horizontal} list of commands and boxes and +assembles these on a horizontal line while a +|\vbox| contains vertical list of commands and boxes and assembles them on +top of each other in a vertical list. + +While inside a horizontal box, \tex\ is said to be in {\it internal} +horizontal mode. This is the mode that is wanted when there is some centering +or other coercive placement of text on a line required. +The inside of a vertical box is known as {\it internal vertical mode}. Almost +anything that can be done on a page can also be done inside a vertical box. +The {\bf width} of a |\vbox| is determined in the following way: if the mode +inside the box is never changed from +vertical, the box width is the {\it natural} width of the material inside; if +the mode in the box changes to either horizontal or mathematics, the width of +the box is the current value of |\hsize|. If it has not been changed, +|\hsize| will probably be the width of a page. The mode in the box will be +changed to horizontal if there is either mathematics or ordinary text placed +in the box without first being enclosed in an |\hbox| such as a +|\centerline|. + +One box is very special, namely box 255. This box is the page building box +and only material in this box is acted upon by the page builder and breaker. +When \tex\ is in this box, it is said to be in (non-internal) {\it vertical} +mode. +Although only box 255 can be worked upon by the page builder, other boxes can +be split, using rules similar to the page builder by the |\vsplit| command. +It is possible then to accumulate text in a long vertical box for future +splitting when the length of the box is known. A newbox is acquired by +|\newbox|. +Text is placed in a box using +the |\setbox| command and removed using any one of a number of |\box|, +|\copy| or |\unvbox| commands, with various effects on the box contents. +Boxes may be superimposed by forcing their height, depth, and width to be +zero, making sure there is appropriate internal glue to allow the contents to +spill out and prevent overfull boxes. The commands |\rlap| and |\llap| allow +for horizontal superposition of |\hboxes|. As might be expected, the effects +can be interesting. + +Box registers are numbered from 0 to 255. +|\newbox\<box name>| allocates an unused box number +and assigns it the symbolic name |\<box name>| which now +can be used wherever there is a need for a box number. + +The following example does not result in an overfull +box and illustrates a number of the commands in this section. The intent is +to acquire a box, put a character into it, coerce its size down to a point, +and then to move it around so that the result is an overlapping pattern of +the character. The result is + \newbox\testbox + \setbox\testbox = \vbox{\hbox{$\bigodot$\hss}\vss} + \dp\testbox=0pt \ht\testbox=0pt \wd\testbox=0pt + \centerline{.\copy\testbox \lower1ex\copy\testbox + \hskip .5em \lower1ex\copy\testbox} +\vskip .25in +It is obtained, with accompanying explanation, by +\begintt + + \newbox\testbox %allocates a newbox called \testbox + \setbox\testbox = \vbox{\hbox{$\bigodot$\hss}\vss} + % sets the box \testbox to be a \vbox -- the \vss + % and \hss prevent the overfull box + \dp\testbox=0pt \ht\testbox=0pt \wd\testbox=0pt + % the size of \testbox is now 0 -- the \vss and + % \hss above leave the reference point in the upper + % lefthand corner + \centerline{.\copy\testbox \lower1ex\copy\testbox + \hskip .5em \lower1ex\copy\testbox} + % the . is for reference --- the centerline puts it + % in the middle of the page +\endtt + + + + +\shead{boxcomforms}{Command Forms} +\beginblockmode +\pri\@|\box{<named box>}| +\nbr +This command takes the |<named box>|, whether a |\vbox| or +|\hbox|, and places it at that point in the present list. The resulting +|<named box>| is now empty. + +\mbr +\ext\@|\boxit{<line thickness>}{<border separation>}{<box, vlist>}| +\nbr +|\boxit| takes the box, or vertical list and puts a box around it with a +border separated from the |<box>| by |<border separation>| and a having a +thickness of |<line thickness>|. For example + +\centerline{\boxit{2pt}{3pt}{\hbox{Center}}} +is given by +\begintt +\centerline{\boxit{2pt}{3pt}{\hbox{Center}}} +\endtt + +\mbr +\pri\@|\boxmaxdepth [=] <dimen>| +\nbr +This sets the maximum box depth to |<dimen>|. If the natural depth of the box +is greater than |<dimen>|, the box is raised (increasing its natural height) +until the depth does equal |<dimen>|. + +\mbr +\pri\@|\copy{<named box>}| +\nbr +This takes the |<named box>| and puts it in the present list. The box +contents are {\bf not} destroyed. + + +\mbr +\pla\@|\line{<horizontal list>}| +\nbr +\pla\@|\centerline{<horizontal list>}| +\nbr +\pla\@|\leftline{<horizontal list>}| +\nbr +\pla\@|\rightline{<horizontal list>}| +\nbr +|\line| is an |\hbox| the same size as |\hsize|, the natural size of the +enclosing box such as a page. |\leftline|, |\centerline|, |\rightline| +respectively take the |<horizontal list>| and force it to the left, middle, +and right parts of the box. +|\line| is identical to |\hbox to \hsize{<horizontal list>}|. |\leftline| is +|\line{<horizontal list>\hss}|, |\centerline| is |\line{\hss<horizontal +list>\hss}|, and |\rightline| is |\line{\hss<horizontal list>}|. + +\mbr +\pri\@|\box dimensions ... \dp \ht \wd| +\nbr +\pri\@|\dp<named box> [=] <dimen> + \ht<named box> [=] <dimen> + \wd<named box> [=] <dimen>| +\nbr +The commands |\dp \ht \wd| refer to the depth, height, and depth of the +|<named box>|. The form above sets the |<named box>| to these dimensions. + + +\mbr +\pri\@|<scale factor>\dp<named box> + <scale factor>\ht<named box> + <scale factor>\wd<named box>| +\nbr +These forms are all valid |<dimen>| and can be used when ever a |<dimen>| is +valid. For instance |\hsize = .378\wd\testbox| is a valid assignment for +|\hsize| as long as |\testbox| is a valid box number. These forms are useful +for some types of arithmetic. + + +\mbr +\pri\@|\everyhbox = {<token list>}| +\nbr +\pri\@|\everyvbox = {<token list>}| +\nbr +This command inserts the |<token list>| as the first set of commands whenever +an |\hbox| or |\vbox|, respectively is entered by \tex. + +\mbr +\pri\@|\hbox <box spec>{<horizontal list>}| +\nbr +\pri\@|\vbox <box spec>{<vertical list>}| +\nbr +These insert |\hbox| and |\vbox| respectively, according to the |<box spec>| +and containing the |<... list>|. The |<box spec>| is a specification sequence +for the box. + +\mbr +\pri\@|<box spec>| +\nbr +The |<box spec>| is one of the following: +\nbr +\bshortcomlist +\noalign{\vskip -\lastskip} +| to <dimen>|&this sets a +|\hbox| to width |<dimen>| or a |\vbox| to height |<dimen>| ; if |<dimen>| is +|\hsize|, the box is the natural width of the surrounding box or page \cr +|<nothing>|&this lets the box take on its natural width or height\cr +\eshortcomlist + +\pri\@|\vbox{\hsize [=] <dimen> <text>}| +\nbr +This creates a |\vbox| with a specified horizontal dimension. {\bf This box +will accept almost anything that can be put on a page including display +mathematics, |\centerline|, and ordinary text.} It is the basic mechanism for +creating boxes that look like pages for future pasting up into a +page.\footnote{\dagger}{This replaces the |\hbox par <dimen>{<...>}| in +\tex78.} + +\mbr +\pri\@|\hrule [height <dimen>] [width <dimen>] [depth <dimen>]| +\nbr +\pri\@|\vrule [height <dimen>] [width <dimen>] [depth <dimen>]| +\nbr +These commands create lines of the specified height, width, and depth. Any or +all of the parameters may be omitted. The |\vrule| is used in {\it horizontal} +mode and the |\hrule| is used in {\it vertical} mode. If there is no +dimension given the {\it rule} is the natural size of the enclosing box. For +instance, on a page the enclosing box is the page itself. Thus +\begintt +\par +\hrule +\endtt +gives +\par +\hrule +a line across the entire page. Rules are used to make the lines in the +|\boxit| macro earlier in this section. + +\mbr +\pla\@|\llap{<text>}| +\nbr +\pla\@|\rlap{<text>}| +\nbr +These commands allow |<text>| to be superimposed on the text around it. +The |\rlap| creates a box of width 0pt and forces the |<text>| out to the +right. |\llap| does the same thing but to the left. Thus |\rlap{A}$\odot$| and +|A\llap{$\odot$}| give the same result namely \rlap{A}$\odot$, and +A\llap{$\odot$} respectively. This is a way to put text into either margin. + + +\mbr +\pri\@|\lower<dimen><box>| +\nbr +\pri\@|\raise<dimen><box>| +\nbr +These commands work only in {\it (internal) horizontal} mode. They lower or +raise the |<box>| by the |<dimen>|. An example of their use was illustrated +in the previous section. + +\mbr +\pri\@|\setbox<named box> [=] <box>{<list>}| +\nbr +This is the basic command for putting contents in a |<named box>|. The +|<box>| is any valid |\hbox| or |\vbox| including a |<box spec>| if desired. +The |<list>| is either vertical or horizontal depending upon the box type. + +\mbr +\ext\@|\strut| +\nbr +|\strut| is a |\vrule| of zero width, +with height and depth for normal baseline spacing in the current font point +size family. It is useful +in |\vbox{\hsize <dimen> \strut <text> \strut}|. The two |\strut|s will +ensure correct spacing when boxes of this sort are stacked upon each other. + + +\mbr +\pri\@|\unhbox{<named hbox>}| +\nbr +\pri\@|\unhcopy{<named hbox>}| +\nbr +\pri\@|\unvbox{<named vbox>}| +\nbr +\pri\@|\unvcopy{<named vbox>}| +\nbr +These commands take the contents of the |<named box>|, remove the outer box, +unset the internal glue, and put it in the list at this point. The |..box| +forms destroy the contents of the box and leave it |void|, while the |..copy| +forms do not. + +\mbr +\pri\@|\vcenter{<vertical list>}| +\nbr +This command works in {\it math} or {\it display math} mode only. It creates +a |vbox| out of the |<vertical list>| and sets the reference baseline in the +center of the resultant box. It is used for centering expressions in display +mathematics. + +\mbr +\pri\@|\vsplit<named box> to <dimen>| +\nbr +A new |vbox| with height |<dimen>| and maximum depth +\@|\splitmaxdepth| is created from the contents of |<named box>|. Any remains are left in +the |<named box>|. This is useful for some simple multicolumn forms. + + +\mbr +\pri|\vtop <box spec>{<vertical list>}| +\nbr +This command creates a |vbox| with the baseline reference of that box +being the baseline of the {\bf first box} in the |<vertical list>|. This is +useful in the following way. This quotation + +\centerline{\veryraggedright + \vtop{\hsize 1.8in The plans of the diligent lead + surely to abundance, but every + one that is hasty comes only to + want.} + \hss + \vtop{\hsize 1.8in This quotation comes from {\it Proverbs + 21, Verse 5}. It suggests care.} + } +is given by +\begintt +\centerline{\veryraggedright + \vtop{\hsize 1.8in The plans of the diligent lead + surely to abundance, but every + one that is hasty comes only to + want.} + \hss + \vtop{\hsize 1.8in This quotation comes from {\it Proverbs + 21, Verse 5}. It suggests care.} + } +\endtt +Note that these are lined up on the first rows. + +\mbr +\ext|\zerocenteredbox {<text>}| +\nbr +This creates an |hbox| of zero height and depth with the width of the +|<text>|. Thus a +|\zerocenteredbox{\bf point}| gives \zerocenteredbox{\bf point}\ with the +placement as shown. The reference point of the box is at the center of the +text which effectively lowers it to the baseline. +This command is intended for use in making tables. See +Chapter~{\ref{align}} for more details. + +\endblockmode + +\ejectpage +\done +
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thbreak.tex b/macros/inrstex/inrsdoc/thbreak.tex new file mode 100644 index 0000000000..029a603627 --- /dev/null +++ b/macros/inrstex/inrsdoc/thbreak.tex @@ -0,0 +1,60 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{break} + +\def\cqu{} + +\chapterhead{break}{BREAKS\cr and\cr NOBREAKS} +\tex\ controls the breaking of lines and pages by the judicious insertion of +penalties, both positive and negative. A negative penalty will encourage +a break +and a positive penalty will inhibit it. The commands in this chapter either +inhibit or cause breaks. In addition, most of them have some form of vertical +skip. All but |\linebreak| are intended to be used in vertical mode. In all +cases, the use of a |\...break| in horizontal mode will first cause a change +to (internal) vertical mode where the penalty will be applied. A penalty of +$\pm$10000 is the same as $\pm$ infinity. + +\shead{breakcoms}{Command Forms} +Since the commands generally do not take parameters, the command list is +being dispensed with. +\bshortcomlist +\pla\@|\allowbreak|&no penalty for a break \dots\ |\penalty 0|\cr +\pla\@|\break|&causes a break \dots\ |\penalty 10000|\cr +\pla\@|\bigbreak|&encourages break and vskips the maximum of the +|\bigskipamount| and the |\lastskip| \dots\ |\penalty -200| \dots\ skip is +\quad\hbox to .25in{\vbox{\hrule width .25in\bigbreak\hrule}} \cr +\pla\@|\bye|&terminates a document and vertical |fill|s the page\cr +\pri|\discretionary|&a discretionary break or hyphen. The form is +\@|\discretionary{<pre break text>}{<post break text>}{<text>}|. If +there is a break, the |<pre break text>| goes on the first line and the +|<post break text>| goes on the second line. If there is nobreak, the +|<text>| is used.\cr +\ext\@|\done|&terminates a document and vertical |fill|s the page and does +some tests on groups used in \intex. \cr +\ext\@|\end|&terminates a document without doing any fill on the last page\cr +\pla\@|\filbreak|&encourages a break with |\penalty -200| and vertical |fils| +the page. It is useful for address lists where it is desirable not to split +an individual address at a page boundary\cr +\pla\@|\eject|&causes a column or page break but does not vertical |fill| the +page. Its use usually causes underfull boxes.\cr +\ext\@|\ejectcolumn|&causes a column break (equivalent to a page break in single +column) and vertical |fills| the page\cr +\ext\@|\ejectpage|&causes a page break and vertical |fills| the page \dots\ in +multicolumn this will cause a new page, not just a new column\cr +\pla\@|\goodbreak|&encourages a break \dots\ |\penalty -200|\cr +\ext\@|\linebreak|&forces a line break in horizontal mode {\bf and} |fils| the + line forcing the words to the left side of the line\cr +\pla\@|\medbreak|&encourages break and vskips the maximum of the + |\medskipamount| and the |\lastskip| \dots\ |\penalty -100| \dots\ skip is + \hbox to .25in{\vbox{\hrule width.25in\medbreak\hrule}} \cr +\pla\@|\nobreak|&does not allow a break \dots\ |\penalty 10000|\cr +\ext|\penaltybreak|&form \@|\penaltybreak{<penalty>}{<skip size>}| \dots\ + this is a generalization of |\medbreak| allowing arbitrary penalties and skip + sizes\cr +\pla\@|\smallbreak|&encourages break and vskips the maximum of the +|\smallskipamount| and the |\lastskip| \dots\ |\penalty -50| \dots\ skip is +\hbox to .25in{\vbox{\hrule width .25in\smallbreak\hrule}} \cr +\eshortcomlist +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thcite.tex b/macros/inrstex/inrsdoc/thcite.tex new file mode 100644 index 0000000000..4196f2a4d6 --- /dev/null +++ b/macros/inrstex/inrsdoc/thcite.tex @@ -0,0 +1,251 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{cite} + +\def\cqu{\cquote{Always verify your references.}{Martin~Joseph~Routh +(1755-1854)} +} + +\chapterhead{cite}{CITATIONS\cr or REFERENCE\cr LISTS} +\intex\ provides facilities for automatic numbering and creation of {\it +citation } or {\it reference} lists. The listing format supported +is that of the IEEE, which numbers citations sequentially in the +order that they are called out in the document. For short lists (about 40-60 +citations), the actual citation forms may be in random order. For very long +lists, the citation form file must be ordered in the same manner as the +citations should appear in the document. Page referencing for citations is +not supported. + +\shead{citcomlist}{Command List} +\begintwocolumn +\ext|\citenum| +\ext|\cite| +\ext|\citeform| +\ext|\citetagvalue| +\ext|\closecitationtagfile| +\ext|\initcitetag{<integer>}| +\ext|\inputciteformfiles| +\ext|\inputcitetagfiles| +\ext|\lastcitetag{<integer>}| +\ext|\makecitationlist| +\ext|\makelongcitationlist| +\endthreecolumn + +\shead{makecite}{Making Citations} +A citation is made in a document using a +format such as |[\cite{<citation tag>}]| where the |<citation tag>| may be of +any valid tag form (see Section~{\ref{validtag}}, page \pref{validtag}). +If a |\cite| is used in internal vertical mode, for example in a section or +chapter head title, then the margin notes will disappear. If it used in any +field that may become a tag, then disaster will occur. This latter should +never happen. +When the first |\cite| is called, the citation tag file is opened +automatically and tag generated for this citation, and the +numerical value is placed in the text. Subsequently, a |\cite| +will +define a new tag if it is the first time it has been called and place the +numerical value in the text. The command |\citeref{<tag>}| will place the +numerical value of the citation in the text but will neither open the +citation tag file if it is closed nor define a new tag if it is undefined. +If a citation is to be defined but the value should not be put in the text, +then +|{\silenttrue \cite{<citation tag>}}| should be used. + + +The actual citation forms are maintained in a separate file whose +default name is |\jobname.cfm|. The command |\makecitationlist| +does not require that the citation forms in the |.cfm| file be in the same +order and may include citation forms that are not even used. However, +because of limitations on \tex's internal memory, the maximum number of +citations in a |.cfm| file used by |\makecitationlist| +is limited to approximately 40 to 60. If \tex\ runs out of memory it is +necessary to use |\makelongcitationlist| instead. When using this command, +the |.cfm| file may be of any length but the citation forms must be in the +correct order, and include only those actually cited in the document. +This must be done by some program external to \intex. + + +The citation form command in the |.cfm| file is +|\citeform{<citation tag>}{<TeX citation form macro>}|. The +|<TeX citation form macro>| is of any form but will usually be a special +|\listitem|. The actual number of the particular citation being written is +held in the command |\citetagvalue|. This command should be placed at that +place in the |<TeX citation form macro>| where the citation number should +appear. + +The first call to the |\cite| command will open the |\jobname.ctg| file where +the tags for the citations are stored. +Then +|\initcitetag{<integer>}| where |<integer>| is one less than the lowest +number in the citation list is written. This number allows for several +independent citation lists to exist in a single document, for instance at the +end of each chapter. When the file is closed, either with a +|\makecitationlist| or a |\closecitationtagfile|, an +|\lastcitenum{<integer>}| is written. The |<integer>| is the current value of +the |\citenum|. + +To make a citation list the following is required: +\beginttverbatim +\1beginlist % citations are usually listitems ... should be group +\1frenchspacing % suppresses extra space after periods +<initial macros \1ejectpage, make Reference header + and set up list> +\1makecitationlist % or \1makelongcitationlist +\1endlist +\endttverbatim +The actual list of macros is inserted, in order by |\makecitationlist| or +by |\makelongcitationlist|. The latter must be used if there are too many +citations for \tex's memory. In that case the |\jobname.cfm| file must be +sorted and contain only those citations actually used. +These commands automatically close the |\jobname.ctg| file, if it is open. + +\shead{prelcite}{Prelude Citations} +Occasionally citations appear in the prelude of a document, sometimes +through a +section head and hence in the table of contents. +Usually the citation numbers should be those that occur later in the text +rather than the ones that would occur naturally. +The |\cite| in the prelude causes the citation tag file to open prematurely +and the |\citenum| to be incremented incorrectly. To get around this problem, +use the following procedure: +\begintt +\begingroup % limits effect to initial section +\inputwithcheck{<filename>.ctg} %inputs the .ctg file if it exists +\let\cite=\citeref % cites only refer now +<text with \cites> +\endgroup % where you want citations to behave normally +\endtt + + +\shead{citecomforms}{Command Forms} +\beginblockmode +\ext\@|\citenum| +\nbr +|\citenum| is the counter that holds the current largest citation number +used. This number is equal to or larger than that set by +|\initcitetag{<integer>}|. + +\mbr +\ext\@|\cite{<citation tag>}| +\nbr +This command places the citation number, corresponding to the +|<citation tag>| in the text, without any surrounding brackets or braces. +If the |<citation tag>| has not been defined, or if it was defined for a +previous citation list, the |\citenum| is increased by one, and a tag is +created with that new value. Multiple citations may be called in a single +place by |[\cite{<citetag1>}, \cite{<citetag2>}, ...]|. However, there is +{\it no} sorting capability so that the numbers may appear out of sequential +order. The first |\cite| opens the citation tag file. +|{\silenttrue \cite{<citetag>}}| will define and increment the citation +counter but will not insert the citation value in the text. + +\mbr +\ext\@|\citeform{<citation tag>}{<TeX macro form>}| +\nbr +This is the form that must be used in the file |\jobname.cfm| +file that actually contains the list of citations. The |<citation tag>| is +the same on used in the text when the citation is called out. The +|<TeX macro form>| is the \tex\ macro that will actually be inserted into the +reference list. This must contain all the information needed to produce the +final form of the citation. Since the actual citation number is being +supplied by \intex, it is necessary to include the \tex\ command +|\citetagvalue| in the place required in the text. For instance, if the +|\listitem| command was being used as the basic form, and if the citation tag +were |[Knut84]|, then an appropriate |\citeform| for the \texbook\ would be +\begintt +\citeform{[Knut84]}{\listitem \citetagvalue D.E. Knuth, + {\bf \TeX book}, {\it Addison Wesley Pub. Co.}, 1984} +\endtt + + +\mbr +\ext\@|\citetagvalue| +\nbr +This command contains, at the time of a |\citeform| execution, the number of +that particular citation. + + +\mbr +\ext\@|\closecitationtagfile| +\nbr +This closes the |\jobname.ctg| file, if it is open. Since the |.ctg| +file is closed +automatically whenever |\makecitationlist| is called, this command is seldom +used. + +\mbr +\ext\@|\initcitetag{<integer>}| +\nbr +This command is written into the |.ctg| file when it is opened. It +establishes the minimum value of |\citenum| for this list. The actual +reference value is determined by subtracting this value from the +|<tagvalue>|. + + + +\mbr +\ext\@|\inputciteformfiles + [=] { \inputwithcheck{<first form file>} + ... + \inputwithcheck{<last form file>} }| +\nbr +This is a token list of files, each prefaced by +|\inputwithcheck|, that contain the citations for a particular citation +list. The command |\inputwitcheck| determines whether the file exists +before trying to open it. The default is |\inputwithcheck{\jobname.cfm}|. + + + +\ext\@|\inputcitetagfiles + [=] { \inputwithcheck{<first tag file>} + ... + \inputwithcheck{<last tag file>} }| +\nbr +This is a token list of files, each prefaced by +|\inputwithcheck|, that contain the citation tags for a particular citation +list. The command |\inputwitcheck| determines whether the file exists +before trying to open it. The default is |\inputwithcheck{\jobname.ctg}|. +The |\jobname.ctg| file contains the tags for the citation list. +These tags are in order of call out and numbered +sequentially. It also includes the |\initcitetag| command. + +\mbr +\ext\@|\lastcitetag{<integer>}| +\nbr +This command is written into the |.ctg| file when it is +closed either by a |\closecitationtagfile| or a +|\makecitationlist|. It is used to reset |\citenum| when using successive +independent +citation lists. + + + +\mbr +\ext\@|\makecitationlist| +\nbr +This command reads in the |\jobname.cfm| file. It then reads the +|\jobname.ctg| file and converts the list of citation tags into +a correctly ordered list of citations. The citation forms in the +|\jobname.cfm| file may be in any order and may include ones that are not +used. +Any formatting control commands such as +|\beginlist ... \endlist| must be placed around it. + + +\mbr +\ext\@|\makelongcitationlist| +\nbr +This command reads in the |\jobname.cfm| file and assigns citation numbers +to the citation forms in the order that they appear. Errors from those +indicated by the |\citetagvalue| are reported. + The citation forms in the +|\jobname.cfm| file {\bf must be in the same order as called out in the +document and include only those that are actually used.} +Any formatting control commands such as +|\beginlist ... \endlist| must be placed around it. + + +\endblockmode +\ejectpage + +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thcont.tex b/macros/inrstex/inrsdoc/thcont.tex new file mode 100644 index 0000000000..5659f92ec1 --- /dev/null +++ b/macros/inrstex/inrsdoc/thcont.tex @@ -0,0 +1,224 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{cont} + +\def\cqu{\cquote{The life is so short, the craft so long to learn.}{Aphorisms, +Hippocrates (460-400~BC)} +} + + +\chapterhead{cont}{SPECIAL CHARACTERS\cr and\cr ACCENTS} +This chapter discusses {\it special characters}, both those that are single +keys (usually) on the terminal but are used for special purposes +and those, non mathematics, that end up in the final text as +single characters. An example of the first is the |{| used for grouping (see +Chapter~\ref{bas} information on {\it grouping}) and an example of the latter is the copyright sign +\copyright\ that is obtained by typing |\copyright|. For special mathematics +symbols see Chapter~\ref{matsym}. + +Section~\ref{controluse} discusses the special characters that do not +normally print and are used by \tex\ and \intex\ for control purposes. +Section~\ref{controlprint} tells how to print them in the text. + +A second set of special use characters, usually single keys, +are really single character commands to \tex\ +and \intex. Their behaviour varies depending on the circumstances. In most +cases, they can be used with little or no thought. Occasionally errors in use +might cause some confusion. For instance, in \intex\ the ``\vrt'' is +interpreted as a vertical bar or rule in normal text and mathematics, but as a +column separator with a vertical rule while building tables using \intex's +|\begintable...\endtable| commands. The complete set of these commands for +\intex\ is given in Section~\ref{activechar}. + + +The rest of this chapter discusses the second class of special {\it text} +characters, and the means of inserting them in the text. +Section~\ref{specialtextsymbols} shows how to obtain such interesting +characters as the British Pound ``{\it\$}'' paragraph symbol ``\P''. +Quotes, both English ``\dots'' and French +{\language = 1 \ldq\dots\rdq} are discussed in +Section~\ref{quotes}. +Accents +on ordinary text letters are in Section~\ref{ordaccent} and on mathematics in +Section~\ref{mathaccent}. + + + +\shead{controluse}{Control Characters - Meaning} +\tex\ and \intex\ have reserved the following control characters for the uses +indicated. None of these characters will be actually printed in the text. +\bshortcomlist +|\|&escape character \dots starts + all control and command sequences \cr +|{}|&grouping brackets \cr +\% &indicates the end of a line in a \TeX\ file. Anything after the + \%\ will be ignored by \TeX\ while processing the file. This is used + for comments. \cr +|\@|&superscript sign\cr +|_|&subscript sign\cr +|&|&alignment character used to align characters from line to line\cr +|$|&\it mathematics mode indicator\cr +|$<expression>$|&{\it mathematics} mode start and end \cr +|$$<expression>$$|&{\it display mathematics} mode \dots start and end \cr +|#|¶meter indicator for definitions and in alignment preambles\cr +|~|&the {\it tie} character \dots\ really an unbreakable space between words. +For instance, the space between the initials in D.E. Knuth allows the last +name to be split from the initials at the end of the line. The sequence +|D.E.~Knuth| will leave the space but not allow the break.\cr +\eshortcomlist + + +\shead{controlprint}{Control Characters - Printing} +The control characters +\begintt + { } # $ % & _ \ ~ ^ +\endtt +\ls +are obtained by the control sequences +\begintt + $\{$ $\}$ \# \$ \% \& \_ + $\backslash$ \^{ } \~{ } +\endtt +\ls +respectively, +except as accents. The last two are actually +obtained by ``accenting'' a space. +In mathematics the ``~\^{ }~'' and the ``~\~{ }~'' must be obtained using +the mathematic accents (see Section~\ref{mathaccent}) +as |\hat{ }| or |\tilde{ }|. +The net effect of this is that all characters are available in any mode. + +\shead{activechar}{\intex\ Special Characters} +\intex\ special characters are all active --- meaning that they +are single character control sequences. The complete list is +given below. They are used for specifying column separators +in tables. +\bshortcomlist +\vrt&this is a \vrt\ in normal text, a \vrt\ {\it Rel} in mathematics (see +Chapter~\ref{matsym}). While making a table inside \intex\ +|\begintable ... \endtable|, the \vrt\ is a vertical rule or line column +that is used to separate data columns and {\bf must +not be used in mathematics inside tables -- use |\vrt|} + (see Chapter~\ref{align}).\cr +|"|&the double quote should not be used in ordinary text. \intex\ will give +you a gentle reminder to either |``| or |''|. It will then put the " in the +text. The |"| is used while making tables for indicating a rule column where +the rule is omitted.\cr +\eshortcomlist + +\shead{specialtextsymbols}{Special Text Symbols} +\tex\ supplies a number of special symbols that can be used in ordinary text, +and some admonitions about those that should not. There are three kinds of +dashes in normal typeset material and \tex\ supplies all three. They are +- -- --- and are produced by |-| |--| and |---| respectively. They are known +officially as the {\it dash, endash,} and {\it emdash}. They are used as +hyphens, word separators, and idea separators, respectively. +These are recognized by \tex\ as {\it ligatures}. Although the English +ligatures such as ``ff'' and ``ffi'' are recognized by \tex, most in other +languages are not.\footnote{\dagger}{However, it is easy to modify \tex\ so +that it does recognize those ligatures. Meanwhile, it is necessary to live +with the mechanism given.} +These require +special symbols. In addition there are special symbols such as +\copyright\ and \dots\ that are also useful. +Here is a list supplied by {\it plain} +\bshortcomlist +\@|\aa, \AA|& the \aa\ and \AA \cr +\@|\ae, \AE|& the ligature \ae\ or \AE \cr +\@|\copyright|&the copyright symbol \copyright \cr +\@|\dag|& the dagger \dag. The math mode |$\dagger$| looks similar but + incorporates the spacing of a binary operator. \cr +\@|\ddag|& the double dagger \ddag. The math mode + |$\ddagger$| looks similar but incorporates the + spacing of a binary operator. \cr + |\dots|&dots in text \dots\ like so \cr +\@|{\it\$}|&the nonobvious British Pound {\it\$} \cr %indexing problem with $ +\@|{\it\&}|&the script ampersand {\it\&} \cr +\@|\i|&the dotless \i\ for use in \^\i \cr +\@|\j|&the dotless \j\ for use in \^\j \cr +\@|\l, \L|&the \l\ and \L \cr +\@|\o, \O|&the \o\ and \O \cr +\@|\oe, \OE|&the ligature \oe\ or \OE \cr +\@|\P|&the paragraph symbol \P \cr +\@|\S|&the section symbol \S \cr +\@|\ss|&the \ss \cr +\eshortcomlist + + +\shead{quotes}{Opening and Closing Quotes} +The ``double quote'', |"| on the keyboard {\bf should not be used}, +except in its accent form |\"| to be described later in +Section~{\ref{ordaccent}} on accents. +For the |\englishversion| of \intex, opening {\bf double} quotes may be obtained either +with the |``| in plain or using |\ldq|. The closing {\bf double} +quotes may be obtained +similarly using the |''| or the |\rdq|. When |\versionfrancaise| is in force, +|\ldq| and |\rdq| when used like so |\ldq guillemets\rdq|\footnote{\ddagger}{This is the best we can +do with the present fonts} will give {\language=1 \ldq guillemets\rdq}. +Note that the |\rdq| is an ordinary command that will delete spaces following +it. + + +\shead{ordaccent}{Ordinary Accents} +The ordinary accents supplied in {\it plain} are for the occasional insertion +of a foreign language in English text. The mechanisms are complete, and the +accents are quite well placed, but the method of obtaining them from +keyboards with special characters is not built in. In \tex, the accent always +precedes the letter accented. Thus |\'ecole| gives \'ecole, and |fran\c cais| +gives fran\c cais. Note the annoying space after the |\c| in the word. This +form of input reduces the readability of the text. Agreement is needed to +obtain a consistent multi-language format. + +The following is a list of the ordinary accents in \tex\ specified by {\it +plain}. +\bshortcomlist +|\`<char>|&accent grave as in \`a\cr +|\'<char>|&accent acute as in \'e \cr +|\^<char>|&circumflex or ``hat'' as in \^o \cr +|\"<char>|¨aut as in \"o \cr +|\~<char>|&tilde as in \~n \cr +|\=<char>|&long vowel as in \=o \cr +|\.<char>|&dot accent as in \.a \cr +|\b|\]|<char>|&accent bar-under as in \b d, note space \] \cr +|\c|\]|<char>|&accent cedilla as in \c c, note space \] \cr +|\d|\]|<char>|&accent dot-under as in \d o, note space \] \cr +|\u|\]|<char>|&accent breve as in \u o, note space \] \cr +|\v|\]|<char>|&``check'' as in \v o \cr +|\H|\]|<char>|&long Hungarian umlaut as in \H o\cr +|\t|\]|<char><char>|&tie-after accent as in \t ao\cr +\eshortcomlist + + +\shead{mathaccent}{Accents on Mathematical Symbols} +Placing accents on mathematical symbols requires a certain amount of care. +{\it Plain} \tex\ gives an extra set of commands that are to be used for characters in +mathematics mode. All of the following should be used when in mathematics +mode. Note the required space \], in almost all cases. +\begingroup \descrwd=2in +\bshortcomlist +|<char>'|& the prime as in $x'$ \cr +|<char>''|& the double prime as in $x''$ \cr +|\acute|\]|<char>|&as in $\acute x$ \cr +|\bar|\]|<char>|&as in $\bar x$ \cr +|\breve|\]|<char>|&as in $\breve x$ \cr +|\check|\]|<char>|&as in $\check x$ \cr +|\dot|\]|<char>|&as in $\dot x$ \cr +|\ddot|\]|<char>|&as in $\ddot x$ \cr +|\grave|\]|<char>|&as in $\grave x$\cr +|\hat|\]|<char>|&as in $\hat x$ \cr +|\tilde|\]|<char>|&as in $\tilde x$ \cr +|\vec|\]|<char>|&as in $\vec x$ \cr +|\widehat|\]|<char>[<char>][<char>]|& as in $\widehat{x},\widehat{xy}, + \widehat{xyz}$\cr +|\widetilde|\]|<char>[<char>][<char>]|& as in $\widetilde{x},\widetilde{xy}, + \widetilde{xyz}$\cr +\eshortcomlist +\endgroup +When using these in a technical paper or report, it is probably better to +make a short definition for the accented character. This will reduce typing +and facilitate the changing the style {\t consistently} throughout the paper. +It is a very simple form of {generic typesetting}. + +\ejectpage +\done + diff --git a/macros/inrstex/inrsdoc/thcover.tex b/macros/inrstex/inrsdoc/thcover.tex new file mode 100644 index 0000000000..241014d1c4 --- /dev/null +++ b/macros/inrstex/inrsdoc/thcover.tex @@ -0,0 +1,57 @@ +%-*-tex-*- + +\paperstyle +\leftmargin=1.75in +\topmargin=1.5in +\fullpagestyle +\vglue 1in +\centerline{\vbox{\hsize=8cm\biggfont \baselineskip=22pt\paragraphcenterline + THE INRS\TeX\ REFERENCE BOOK}} +\vskip 1in +\def\mjf { \par + {\it + \vskip .25in + \centerline {Michael J. Ferguson} + \vskip .15 in + \centerline {INRS-T\'el\'ecommunications} + \vskip .15in + \centerline {Montr\'eal} + \vskip 1 in }\par } % Author header for Michael J. Ferguson +\mjf +\centerline{Rapport technique de l'INRS-T\'el\'ecommunications no. 84-19 +(r\'evision, juillet 1991)} +\vskip .5in +\centerline{\biggfont +Les Publications +INRS\kern.1em--T\'el\'ecommunications, +Montr\'eal} +\vskip 1in +\beginnarrowtext .5in +\noindent \eightpoint +This is a DRAFT version of an introduction to INRS\TeX\ and to \TeX\ in +general. All suggestions for improvements will be greatly welcome. +\endnarrowtext +\bigskip +\beginnarrowtext .5in +\veryraggedright \parindent=0pt +Copyright \copyright\ Michael J. Ferguson, +INRS-T\'el\'ecommunications, all rights reserved. + +\bigskip + +\TeX\ is +copyright by the American Mathematical Society. INRS\TeX\ is +copyright by INRS\kern.1em--T\'el\'ecommunications and Michael~J.~Ferguson. +\endnarrowtext +\ejectpage +\vglue 2in +\titlepagestyle +\beginnarrowtext 1in +\paragraphcenterline +{\bf} This version of the INRS\TeX\ REFERENCE BOOK is +produced using a PostScript Laser Printer using a modified version DVIALW +developed by +INRS-T\'el\'ecommunications. +\endnarrowtext +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thdefs.tex b/macros/inrstex/inrsdoc/thdefs.tex new file mode 100644 index 0000000000..1fb841aea4 --- /dev/null +++ b/macros/inrstex/inrsdoc/thdefs.tex @@ -0,0 +1,160 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{defs} + +\def\cqu{\cquote{If names are not correct, language will not be in accordance +with the truth of things.}{Confucius}} + +\chapterhead{defs}{SIMPLE\cr DEFINITIONS\cr or MACROS} +\tex\ makes it easy to invent definitions to make your typing job easier. +This chapter describes the simplest form of definitions. More complex +definitions and some of the subtleties are found in the \texbook. + +This chapter also introduces the idea that definitions can be modified by +such primitive commands as |\outer|, |\long|, and |\global|. + +Simple definitions consist of those that have zero or more arguments and that +do not use advanced commands such as |\futurelet|, |\aftergroup|, + |\edef|, |\catcode|, |\bgroup|, |\egroup|, |\afterassignment|. +These +commands and their use may be found in the \texbook\ and the definition +package that actually is used to develop {\it plain} or \intex. + +If you wish to write complex definitions, please see the warning at the end +of this chapter. + + +\shead{defcomlist}{Command List} +\beginthreecolumn +\pri|\def| +\pla|\gdef| +\pri|\global| +\pri|\let| +\pri|\long| +\pri|\outer| +\endthreecolumn + +\shead{defcomforms}{Command Forms} +\beginblockmode +\pri\@|\def\<def name> <parameter form>{<replacement text>}| +\nbr +This is the basic command for creating new definitions or, as they are +sometimes called, {\it macros}. The |<def name>| is the name given to +the definition and {\bf must} consist of letters, upper or lower case only. +The |<parameter form>| is the form for which \tex\ is looking after it sees +the |\<def name>| in the text. Parameters in the |<parameter form>| are +indicated by |#<integer>| where |<integer>| is from 1 to 9, in {\bf order}. +\tex\ then puts the parameter values that it found into the +|<replacement text>| and then puts that text in the place of |\<def name>| +and all of the parameters that it has eaten while filling in the +|<parameter form>|. Some examples follow: + +\dssshead{Simple Replacements --- No Parameters} +These are the simplest form of definitions. In this case there are no +parameters and the |<replacement text>| directly replaces the +|\<def name>|\]\dots\]. The \]\dots\] is there to emphasize that all the +blanks after the |\<def name>| are eaten by \tex. +Suppose that the sequence $\alpha\beta\gamma$ kept occurring in the text. Then +|\abg\|\] defined by |\def\abg{$\alpha\beta\gamma$}| +\def\abg{$\alpha\beta\gamma$} will produce \abg\ in its place. +In this example the |<replacement text>| is +|$\alpha\beta\gamma$|. A second example is the problem of putting {\it italic +correction\/} in the text, keeping the italic inside the group defined by the +|{...}|. The |<replacement text>| then should be |{\it italic correction\/}| +including the braces. Thus the correct definition, if |\itc| is to be the +|<def name>|, is +|\def\itc{{\it italic correction\/}}|. + +\dssshead{Simple Replacements --- Simple Parameter List} +These definitions have the |<parameter form>| of |#1|, |#1#2|, \dots, +|#1#2...#9|. An example is |\def\up#1{$^{#1}$}|. When |\up| is used, the next +{\it token}, either a character, command, or entire group inside a |{...}| is +absorbed as |#1| and put into the position of |#1| in the replacement text. +Thus |\up{**}| becomes |$^{**}$| which is then put in the text in +place of the entire |\up{**}|. +Note that |**| and not |{**}| is the parameter for |\up|. +The |{...}| were used to delimit |**| so that \tex\ +knew that both of them together should be |#1|. ``Thus|\up{**}|'' +gives ``Thus\up{**}''. + +Note that a definition made inside a group only lasts as long as the group +lasts. At that point the definition becomes what it was previous to the +group. + +\mbr +\pla\@|\gdef\<def name> <parameter form>{<replacement text>}| +\nbr +This is identical to |\global\def| and can be used in exactly the same way as +|\def|. The major difference is that a |\<def name>| defined with a |\gdef| +does {\bf not} disappear at the end of the group in which it is defined. + +\mbr +\pri\@|\global| +\nbr +The command |\global| will cause either the definition, assignment, or +definition equivalence (|\let|) to be global, {\it ie} not disappear at the +end of the group. This should be used with care and sparingly. + +\mbr +\pri\@|\let\<def a> [=] \<def b>| +This command makes the command |\<def a>| be equivalent to, both in +|<parameter form>| and |<replacement text>|, +as |\<def b>| at the time that the +|\let| is called. This command is very useful for such things as +|\let\sheadfont = \twelvess|. It should be used with care or a circle of +definitions may be produced. + +\mbr +\pri\@|\long| +\nbr +A |\def| may be preceded by a |\long| to give a |\long\def|. When this is +done the parameters |#1| \dots\ may contain either |\par| or, equivalently, +blank lines. Without the |\long|, a |\par| in a |#1| will cause an error. +This is a safety feature to allow \tex\ to isolate errors before the origin +is completely lost. |\long| should be used with extreme care. + +\mbr +\pri\@|\outer| +\nbr +A |\def| may be preceded by |\outer| to give an |\outer\def|. A definition +so preceded may {\it not} be used in any other definition. Again this is a +safety feature to catch errors before it is too late. For example, all of +the section head definitions in \intex, |\shead| and its relatives, are +declared |\outer|. + +It is possible to have a |\outer\long\global\def|. +\endblockmode + +\shead{defwarning}{WARNING --- Clever Definitions} +It is possible tell \tex\ very complex things. The danger and difficulty for +debugging increases dramatically as you start to exercise fine control over +how \tex\ processes the text. + +The simplest extension to the forms above is to use the fact that the +|<parameter form>| can include tokens other than |#<integer>|. This +additional freedom allows for the input of parameters without requiring that +they be placed in |{...}|. + +The second level of extension is to use the various +|\if... \else ... \fi| forms to control the actual text that will be placed +in the text and even the placing of definitions inside definitions. + +The next level of complexity arises when the macro builder attempts to +control when \tex\ expands the various definitions and macros that make up +the |<parameter forms>| and the |<replacement text>|. For instance, this must +be done when writing out both the page number and the section number while +accumulating information for making a table of contents. This requires extreme +care. + +The final level of complexity occurs when the macro writer attempts to +control how, and when \tex\ tokenizes its input. +Doing this correctly requires exquisite care. For instance, conditionally +modifying the catcodes of input on the fly will prevent that input from +being passed as a parameter to a macro. \tex\ tokenizes once and forever. +Although making a character active for an entire document is +relatively simple, flipping it back and forth is error prone. + + + +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thdimnum.tex b/macros/inrstex/inrsdoc/thdimnum.tex new file mode 100644 index 0000000000..d176512ace --- /dev/null +++ b/macros/inrstex/inrsdoc/thdimnum.tex @@ -0,0 +1,141 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{dimnum} + +\def\cqu{\cquote{Number the simplest and most universal idea}{ +Concerning Human Understanding, Book II, Chap. XVI, +John~Locke (1632-1704)}} + + +\chapterhead{dimnum}{DIMENSIONS\cr NUMBERS\cr and GLUE} +\tex\ is very concerned with the sizes of boxes and letters and the amount of +freedom to place letters, lines and boxes on a page. Along with the normal +page numbers, \intex\ keeps track of, among others, chapters, sections, +subsections and equation numbers. This means that \tex\ has {\it dimensions, +numbers}, or {\it counters}, and {\it glue}. This chapter introduces the +valid units of measure and the forms for glue. +\shead{dimcomlist}{Command List} +\beginthreecolumn +\pri|\advance| +\pri|\multiply| +\pri|\divide| +\pri\@|<units of measure> + cm em ex in + mu pt sp| +\pla|\newcount| +\pla|\newdimen| +\pla|\newskip| +\endthreecolumn + +\shead{dimensions}{Dimensions} +A dimension, or |<dimen>|, consists of a +|[+ -]<decimal number><unit of measure>|. +The |<decimal number>| can be an integer, (called a {\it number} +in the \texbook), or include a decimal point and a decimal +fraction. The plus or minus signs are optional. + +{\TeX} recognizes English, Metric, Printers, and font relative +|<units of measure>|. +Some examples, but not all, are +\bshortcomlist + |cm|&{centimeters \dots\ meters are unknown}\cr + |em|&{the width of an ``M'' in the current font}\cr + |ex|&{the height of an ``x'' in the current font}\cr + |in|&{inches \dots\ feet and yards are unknown}\cr + |mu|&{math units, there are 18 to an |em| \dots\ used only in math mode}\cr + |pt|&{72.2666 points to an inch}\cr + |sp|&scaled points \dots\ \tex's internal measure. There are 16384 |sp| to a |pt|\cr + |<scale factor>\dp<box number>|&the depth of box |<box number>| scaled by + |<scale factor>|\cr + |<scale factor>\ht<box number>|&the height of box |<box number>| scaled by + |<scale factor>|\cr + |<scale factor>\wd<box number>|&the width of box |<box number>| scaled by + |<scale factor>|\cr +\eshortcomlist +The last three are dimensions, which may be scaled, of boxes and the previous +two, |em| and |ex| are relative to a font. This means that a change in the +font will automatically cause these values to change. Most measurements, +involving spacing should be font dependent. |sp|, scaled points are \tex's +internal dimension measure. All \tex\ arithmetic involving dimensions is done +with integers. + +\sshead{dimalloc}{Dimension Allocation} +\tex\ has 256 registers available for storing dimensions. These are named +internally using integers from 0 to 255. However, both {\it plain} and +\intex\ use some of the 256. To obtain a new one, use +\@|\newdimen\<dimen name>|. \tex\ will assign the next free dimension register +to the name |\<dimen name>|. For instance \intex\ uses this mechanism to +obtain a dimension for the horizontal and vertical dimensions +of the outer page, namely |\houterpagesize| and |\vouterpagesize| +respectively. If you only want to use a dimension register within a single +macro definition, then |\dimen0| to |\dimen9| are available. + +\shead{numbers}{Numbers or Integers} +\tex\ supplies 256 integer registers or counters. A number of these +are already used. For instance |\count0|, the |0| counter is used for +page numbering. +To obtain a new count use \@|\newcount\<count name>|. + +\shead{glue}{Glue and Skips} +Glue is the basis for spacing. It consists of three components, a nominal +size, a stretch and a shrink. The general form of glue is |<nominal dimen> +[plus <stretch dimen>] [minus <shrink dimen>]|. The |<nominal dimen>| is required +in all glue assignments but the stretch and shrink are optional. If they are +not specified, they are set to zero. The use of stretch and shrink glue +is used for creating ragged right borders on a page. + +To obtain a new glue variable, use \@|\newskip\<skip or glue name>|. Specified +glues are used for skips, and spacing. For instance, the skip at the end of a +list in \intex\ is just one of many allocated for various spacings in \tex\ + +\shead{assigndim}{Assignments: Giving dimensions, counts, and skips values} +The general form of counter, dimension, and glue assignments are +\beginblockmode +\mbr +\@|\<count name> [=] <integer, dimen, glue>| +\nbr +The assignment result is always an |<integer>|. +\mbr +\@|\<dimen name> [=] < dimen, glue>| +\nbr +The assignment result is always a |<dimen>|. + +\mbr +\@|\<skip or glue name> [=] <dimen> + [plus <dimen>] [minus<dimen>]| +\nbr +The assignment result is always a |<glue>|. +\endblockmode +The quantities in the |[...]| are optional. Neither the square |[ ]| nor angle +brackets |< >| are typed. If a dimension variable is made equal to a glue +variable, the stretch and shrink parts of the glue variable are lost. If a +counter or integer is made equal to a dimension, the fractional part of the +dimension is lost. + +\shead{arithmetic}{Arithmetic with Dimensions, Numbers and Glue} +\tex\ supplies three commands for doing arithmetic with dimensions and such. +Addition, and subtraction are handled by |\advance|, multiplication by an +integer by |\multiply|, and division by an integer by |\divide| + +\beginblockmode +\mbr +\@|\advance \<count, dimen, glue name> by [+ -]<count, dimen, glue>| +\nbr +The result is of the appropriate type, |<count>, <dimen>| or |<glue>| with +extra parameters set to zero. + +\mbr +\@|\multiply \<count, dimen, glue name> by [+ -]<integer>| +\nbr +All parts of the |<glue>| are multiplied by the integer. + +\@|\divide \<count, dimen, glue name> by [+ -]<integer>| +\nbr +All parts of the |<glue>| are divided by the integer. + +There is another way to effect arithmetic. This is to note that the +|\wd|, |\ht|, and |\dp| can take scale factors. Thus multiplication of +dimensions is possible if the required dimension is acquired by a box. +\endblockmode +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thdocsty.tex b/macros/inrstex/inrsdoc/thdocsty.tex new file mode 100644 index 0000000000..e21f22c16c --- /dev/null +++ b/macros/inrstex/inrsdoc/thdocsty.tex @@ -0,0 +1,66 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{docsty} + +\def\cqu{} + +\chapterhead{docsty}{DOCUMENT\cr STYLES} +\intex\ supplies a number of general and specialized document styles. It is +also easy to create others within the basic structure given. +The two basic styles supported by \intex\ is the (default) |\paperstyle| and +the |\bookstyle| of which this is an example. Different styles are usually +distinguished by different header/footer conventions, appendix placement and +numbering, and perhaps default fonts. + +In addition to the page changes, a few special commands exist that are +introduced in the various styles. Since the |\paperstyle| the \intex\ +default, all the |\title|, and abstract commands defined for that are +available, and will work, for {\bf all} styles. + +\shead{paperstyle}{Paperstyle} +|\paperstyle| is the default style for \intex\. There will be no messages +indicating that you are using this style. This style is designed for 8.5in +by 11in paper, |\tenpoint| fonts, no header, and a footer that consists of +the page number centered at the bottom in this style ``- 6 -'', where 6 would +have been the page number. In addition to the normal features mentioned +previously, there is a |\title| command and a +|\beginabstract...\endabstract| pair. + +The description of the commands are: + +\beginblockmode +\ext\@|\beginabstract...\endabstract| +\nbr +This command should enclose the entire abstract. The abstract font is the +|\smaller| font and both sides are indented. The text is automatically +prefaced by ``Abstract:'' in English and ``Sommaire:'' in French. + +\mbr +\ext\@|\title{<first row>\cr ... <last row>}| +\nbr +If the total length of the title is more than one line it is automatically +broken into multiple lines with each line centered. However, if |\cr| are +included as part of the title text, the lines will be broken there and +centered. The title font, called |\titlefont| is |\bigfont|. +\endblockmode + +\shead{inrsstyle}{INRS Report Style} +This style is very similar to the basic |\paperstyle|. The only addition is a +set of commands that create a cover. This style is called with either +\@|\formatinrs| or \@|\inrsreportstyle|. The title, report date, author list, +and report number are token lists. The actual cover is made with the command +|\faitepagetitre|. An example of complete cover page is +\begintt +\formatinrs +\titrederapport = {INRS\TeX REFERENCE BOOK} +\numeroderapport = {84-19} +\datederapport = {juin 1984} +\auteursderapport = {Michael J. Ferguson} +\faitepagetitre +\ejectpage +\done +\endtt + +\ejectpage + +\done diff --git a/macros/inrstex/inrsdoc/thfigtbl.tex b/macros/inrstex/inrsdoc/thfigtbl.tex new file mode 100644 index 0000000000..66a0f58fce --- /dev/null +++ b/macros/inrstex/inrsdoc/thfigtbl.tex @@ -0,0 +1,417 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{figtbl} + +\def\cqu{\cquote{Example is always more efficacious than precept.}{Rasselas, +Samuel~Johnson (1709-1784)} +} + + +\chapterhead{figtbl}{FIGURE\cr and\cr TABLE INSERTS} +\vskip 0pt plus 20pt +\intex\ supplies two basic commands |\figureform| and |\tableform| +that places figures in the current position, writes to the appropriate files +for the generation of +lists of figures and tables, and +does automatic numbering if +|\autonumberingon|. The commands |\figureinsert| and |\tableinsert| +are identical except that the figure is put in place only if there is room on +the current page. Otherwise, it is placed at the top of the following page. + +\intex\ also provides three commands for delayed insertion +of text. These are |\begintopinsert|, |\beginmidinsert|, and |\beginpageinsert|, which will +place the text at the top of the page, in place if there is room, or take the +full next page, respectively. These commands are terminated, by an +|\endtopinsert|, |\endmidinsert| and |\endpageinsert| respectively. + +Finally, |\ejectinserts| forces deferred figures or tables to be printed so +that they do not spill over into following chapters. This may be necessary, +for example, before a set of appendices. + +\begingroup \hfuzz=20pt +\shead{figtblcomlist}{Command List} +\beginthreecolumn +\ext|\beginmidinsert| +\ext|\beginpageinsert| +\ext|\begintopinsert| +\ext|\captionbox| +\ext|\captionnumfont| +\ext|\captiontextfraction| +\ext|\captiontitlefont| +\ext|\captionbodyfont| +\ext|\captionbody| +\ext|\captionbodyon| +\ext|\captionbodyoff| +\ext|\centergraph| +\ext|\centerplotfile| +\ext|\ejectinserts| +\ext|\endmidinsert| +\ext|\endpageinsert| +\ext|\endtopinsert| +\ext|\figureform| +\ext|\figureinsert| +\ext|\figurelabel| +\ext|\rect| +\ext|\tableform| +\ext|\tableinsert| +\ext|\tablelabel| +\ext|\topcaptiontrue| +\ext|\topcaptionfalse| +\endthreecolumn +\endgroup + +\shead{figures}{Possible Figures -- \tex Graph} +\intex\ supplies a |\rect <hdim> by <vdim>| that will put an empty rectangle +in the position of the actual figure. The addition of +\tex Graph allows for the insertion of actual figures. A \tex Graph figure +may be centered using |\centergraph{<figure>}|. An external plot file, may be +placed in position by the use of |\centerplotfile{<filename>}|. Both these +commands use information supplied by \tex Graph to determine the amount of +space to leave. All files must be processed to be \tex Graph compatible. For +details on \tex Graph, see ``An Introduction to \tex Graph''. + +\shead{caption}{Figure and Table Captions} +\intex\ supplies a number of facilities for captions. A specific example is +given as Figure~\ref{dummyfig}. The caption is broken down into four parts. +The first is the {\bf Fig.} whose value is determined by |\figurelabel| that +is language dependent. The second part is the number that may or may not be +automatically generated. These font of these first two parts is determined by +|\captionnumfont|. The second and third parts are the caption title and +caption body respectively. The caption title will appear in the list of +figures while the caption body will not. |\captiontitlefont| and +|\captionbodyfont| determine the fonts of these latter two sections +respectively. \intex\ defaults both these to |\rm| at the moment. + +|\captionbodyon|, which is the default, allows the |\captionbody| to be +printed. +However the command |\captionbodyoff| will turn off the +printing of everything inside a |\captionbody|. This is done when the list of +figures or tables are made using a |\makefiglist| or |\maketbllist| +although it is not really necessary as the |\captionbody| is not +even written out to a list file. Finally +if |\topcaptiontrue|, the caption is placed above the figure while if it is +false, the default, it is placed below. + +\shead{deferredinserts}{Deferred Inserts} +\intex\ supplies\footnote{\dagger}{The commands in this section are +essentially {\it plain} commands. They have been renamed to maintain +consistency with the |\begin...| and |\end...| conventions of \intex.} +commands of the form |\begin<type>insert| and corresponding +|\end<type>insert|. These commands form a group and take the |<text>| between +the |\begin...| and |\end...| and insert it, or defer it as the spacing +warrants. A |<type>| of |top| will put the |<text>| at the top of the current +page, if there is room, or on the next page if there is not. |mid| will put +it at the location it is called out, if there is room, or at the top of the +next page if there is not. |page| will reserve the entire next page for the +|<text>|. + +\shead{figtablex}{Deferred Figures or Table Inserts} +The basic command |\figureform| takes three parameters, the figure number or tag, +the figure caption, and the figure itself as described in +Section~\ref{figures}. It places the figure in the text at the present +position whether there is room or not. Usually the desirable effect is to +defer the figure until the following page if there is not enough room on the +present one. The command |\figureinsert| does just that. +The following command will insert the figure as shown. Autonumbering is on. +\begingroup +\let\captionnumfont = \twelvebfxsca +\let\captiontitlefont = \twelvess +\let\captionbodyfont=\tenss +\figureinsert{dummyfig}{This is not a very + Exciting Figure \captionbody{-- It does show though it is + entirely possible to use the font freedom to create a less + than pleasing final result. The group here prevents this + disaster from spreading.}}{\rect 4cm by 6cm} +\endgroup +\beginttverbatim +\1begingroup +\1let\1captionnumfont = \1twelvebfxsca % scaled 10pt +\1let\1captiontitlefont = \1twelvess +\1let\1captionbodyfont=\1tenss +\1figureinsert{dummyfig}{This is not a very + Exciting Figure \1captionbody{-- It does show though it is + entirely possible to use the font freedom to create a less + than pleasing final result. The group here prevents this + disaster from spreading.}}{\1rect 4cm by 6cm} +\1endgroup +\endttverbatim +The spacing between the figure and the caption is determined by the value of +|\captionskip|. If new values are desired, these are produced by +|\captionskip = <dimen>|. + +Figure~\ref{target} uses the facilities of \tex Graph and a deferred +insert. +Assume that |\target| is the graphics description for the +figure. The figure is called out here. +\ifundefined{textref} + \begingroup \catcode`\^=12 \input texgraph \endgroup \fi +\let\dmess=\message +\def\target{\btg \unitscale .5 + \move h:2 v:2 + \lcir r:1.5 \pfill p:.7 + \lcir r:1 \pfill p:.5 + \lcir r:.5 \pfill p:.3 + \move h:4 v:4 + \etg} +\figureinsert{target}{This is a + Figure Insertion Involving Graphics}{\centergraph{\target}} +The commands were +\beginttverbatim +\1def\1target{\1btg \1unitscale .5 + \1move h:2 v:2 + \1lcir r:1.5 \1pfill p:.7 + \1lcir r:1 \1pfill p:.5 + \1lcir r:.5 \1pfill p:.3 + \1move h:4 v:4 + \1etg} +\1figureinsert{target}{This is a + Figure Insertion Involving Graphics}{\1centergraph{\1target}} +\endttverbatim +\tex Graph commands are documented in ``texgraph.doc''. + + + +The format of the |\tableform| and |\tableinsert| commands + is the same with the last argument +replaced by the table itself or an |\input{<filename>}| that would bring +in the file. The ``Fig.'' in the caption is in the command |\figurelabel|. +There is an equivalent |\tablelabel|. + +\shead{fullpagefig}{Full Page Figure/Table Inserts} +Full page figure/table inserts are complicated by the need to position the +caption differently if the figure/table exists or not. The following is used +for a full page figure if there is no figure and the caption is required at +the bottom of the page. +\begintt +\beginpageinsert +\captionskip = 0pt plus 1 fill % pushes caption to bottom of page +\figureform{<tag or number>}{<title>}{} % note empty last parameter +\endpageinsert +\endtt +If there is a figure, it will be placed at the top of the page and +the caption, a |\captionskip| below it. The commands for this are +\begintt +\beginpageinsert +\figureform{<tag or number>}{<title>}{<figure>} +\endpageinsert +\endtt +Tables are inserted similarly. + +To insert a table or figure vertically on a page, \tex Graph must be used. + +\shead{figcomp}{Complications and Unusual Cases} +Insertions are not without there complications. The following problems can +occur: +\beginlist +\li $\bullet$ Two or more figure insertions reverse their order: This will +occur when there is room to insert the second figure called out but not the +first. {\bf Solutions(?):} call them out in different order; use +|\figureform| to force the insertion and accept the consequences; make the +figures smaller. +\li $\bullet$ A figure has one or two lines of text below it: This will +happen if the inserted figure is almost a full page. It is even possible to +have an almost blank page preceding it. {\bf Solution:} Change the +|\figureinsert| to an full page insert as described in +Section~\ref{fullpagefig}. +\li $\bullet$ Two full page figures in row are really parts 1 and 2 of the +same figure: This is complication both with the automatic numbering of the +figures and the list of figures. The solution is somewhat complicated. +Only the numbering problem is considered here. See Chapter~\ref{auto} +for the details on autonumbering. {\bf Solution:} +\begintt +\silent{\autofignum{<figtag>}} +\begingroup +\autonumberingoff +\beginpageinsert +\figureform{\ref{<figtag>}(a)}{<part (a) caption>}{<fig a>} +\endpageinsert +\beginpageinsert +\figureform{\ref{<figtag>}(b)}{<part (b) caption>}{<fig a>} +\endpageinsert +\endgroup +\endtt +\li $\bullet$ Figures from a previous chapter or section spill over into the +next: {\bf Solution:} Follow the last figure with |\ejectinserts|. If a new +page is required, follow this by |\ejectpage|. + +\endlist + + + +\shead{figtblcomforms}{Command Forms} +\beginblockmode +\ext\@|\beginmidinsert| +\nbr +\ext\@|\beginpageinsert| +\nbr +\ext\@|\begintopinsert| +\nbr +These basic deferred text insertion commands start a group and define the +beginning of |<text>| that will be inserted either in place or at the top of +the next page if there is no room, on the entire next page, or at the top of +the page respectively. + +\mbr +\ext\@|\captionbox{<number text>}{<title>}| +\nbr +This command is used for captioning figures or tables. If the |<number text>| +plus the |<title>| is shorter than +|\captiontextfraction| of the size of the enclosing box or +page, the two are centered. If the total is greater, the title is put in a box, +in ragged format and will be automatically broken if it takes more than the +one line. The spacing is always one. |\captiontextfraction| is defaulted to +0.8. +The captionbox is used in both |\figureform| and |\tableform| but is +available for other captioning as necessary. + +\mbr +\ext\@|\captionbody{<text>}| +\nbr +This command is optionally placed in title field of a caption. it is used to +write an essay about a figure or table that you do not want to turn up in the +list of figures or tables. It is printed if |\captionbodyon| and is not +printed if |\captionbodyoff|. |\captionbodyon| is the default. The +|\captionbody| is {\bf not} written out to the |.fig| or |.tbl| file. + +\mbr +\ext\@|\captionbodyon \captionbodyoff| +\nbr +|\captionbodyon| allows a |\captionbody| text to be output -- +|\captionbodyoff| prevents it. The default in normal text is |\captionbodyon| +but in lists of figures or tables produced by |\makefiglist| or +|\maketbllist| is |\captionbodyoff|. + + + +\mbr +\ext\@|\captionbodyfont| +\nbr +This command sets font of the body of the caption of a Figure or Table. +The material affected by this font will not appear in a list of tables or +figures. +The default is the same as current active font. + + +\mbr +\ext\@|\captionnumfont| +\nbr +This command sets font of the herald {\bf Fig.} and the number. +It is set in a consistent way as part of the document font specification in a +font family. The default is the same as the |\ssheadfont|. + +\mbr +\ext\@|\captiontitlefont| +\nbr +This command sets font of the title of a Figure or Table. +The default is the same as current active font. + + + + + +\mbr +\ext\@|\captionskip [=] <dimen>| +\nbr +This command sets the spacing between the figure/table and the following +|\captionbox|. It is assigned |0pt plus 1fill| to force the caption box to the +bottom of the page for a full page figure. + + +\mbr +\ext\@|\captiontextfraction| +\nbr +This value controls the fraction of the width of the page that will be used +to determine whether the caption text is set as a single line or as several +lines. It is defined in {\tt inrsdef.tex} as |\def\captiontextfraction{0.8}|. + +\mbr +\ext\@|\ejectinserts| +\nbr +This command forces out all of the inserts, be they footnotes or deferred +figures and leaves the position at the end of the last insert. If a new page +is desired, the |\ejectinserts| should be followed by an |\ejectpage|. + + +\mbr +\ext\@|\endmidinsert| +\nbr +\ext\@|\endpageinsert| +\nbr +\ext\@|\endtopinsert| +\nbr +These commands terminate their respective |\begin..insert| and close the +group. + + +\mbr +\ext\@|\figureform{<tag or number>}{<title>}{<figure box>}| +\nbr +This is the basic command for inserting and captioning space for a figure in +a document. If |autonumbering| is on, the |<tag or number>| becomes the tag +for the figure for in text reference. The actual text inserted in the figure +caption is |\figurelabel<figure number>| where the |<figure number>| is +computed determined from the tag value. For instance ``|\ref{dummyfig}|'' gives +``\ref{dummyfig}''. If autonumbering is off, the text of the +|<tag or number>| is inserted. The |<figure box>| should take up the same +amount of space as the actual figure, less captions. If the |.fig| file is +open, the |\figtoc| command with its |<number>|, |<title>| and +|<page number>| arguments are written to it. + +\mbr +\ext\@|\figureinsert{<tag or number>}{<title>}{<figure box>}| +\nbr +This is equivalent to +\begintt +\beginmidinsert +\figureform{<tag or number>}{<title>}{<figure box>}| +\endmidinsert +\endtt +The effect is to place the figure at the present location, if there is enough +room on the page, or defer it to the top of the next page if there is not. +See Section~\ref{figcomp} for complications. + +\mbr +\ext\@|\figurelabel| +\nbr +This command is defined to give the text that precedes the |<figure number>| +in the caption. In \intex\ this is ``\figurelabel''. This is modified by +redefining it with a |\def\figurelabel {<new label>}|. + +\mbr +\ext\@|\rect <horizontal dimen> by <vertical dimen>| +\nbr +This creates a line boxed rectangle with the dimensions given and then places +it in a |\centerline|. + +\mbr +\ext\@|\tableform{<tag or number>}{<title>}{<table>}| +\nbr +This command is almost identical to |\figureform| except that the |listfile| +is |.tbl|, the prenumber caption, which is ``\tablelabel'' is +defined by the command |\tablelabel|, +and the final argument will usually be the actual table. + +\mbr +\ext\@|\tableinsert{<tag or number>}{<title>}{<figure box>}| +\nbr +This is equivalent to +\begintt +\beginmidinsert +\tableform{<tag or number>}{<title>}{<figure box>}| +\endmidinsert +\endtt +The effect is to place the table at the present location, if there is enough +room on the page, or defer it to the top of the next page if there is not. +See Section~\ref{figcomp} for complications. + + +\mbr +\ext\@|\tablelabel| +\nbr +This command is defined to be the prestring to the table number. It defaults +to ``\tablelabel''. This is modified by +redefining it with a |\def\tablelabel {<new label>}|. + +\endblockmode +\ejectpage +\done diff --git a/macros/inrstex/inrsdoc/thfonts.tex b/macros/inrstex/inrsdoc/thfonts.tex new file mode 100644 index 0000000000..1f90834fe9 --- /dev/null +++ b/macros/inrstex/inrsdoc/thfonts.tex @@ -0,0 +1,155 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{fonts} +\def\cqu{} + + +%======== Special fonts for this chapter ======== + +\chapterhead{fonts}{FONTS} +\intex\ has available to it a large number of fonts.\footnote{\dagger}{The +ease of availability of different fonts is determined by the power of the +local {\tt texprint} program. A ``font manager'' to find obscure fonts is a +necessity if a wide range of fonts are needed \dots\ or desired.} +Fonts are available as members of a ``family'' or individually. +Font families consist of various styles (normal) Roman, Boldface, +Italic, Slanted, and Mathematics symbols at the different point sizes. + +\shead{fontfamily}{Fonts in a Font Family} +A font family consists of a number of fonts and mathematical symbols that +have been chosen to satisfy the size requirements of sub and subsub scripts. +The family sizes available are +{\twelvepoint |\twelvepoint|}, {\tenpoint |\tenpoint|}, +{\ninepoint |\ninepoint|}, +and +{\eightpoint |\eightpoint|}.\footnote{\ddagger}{In \tex\ there are 72.26666 points to the inch (about 28.45 points to the +cm).} +To call a specific style of font in a font +family it is necessary to use the simple abbreviation of |\rm| for roman, +|\it| for text italic, |\sl| for slanted, |\bf| for bold, and |\tt| for a +fixed spacing typewriter like font. |\tt| is in the tenpoint typewriter font. +In addition, a font family has three {\it big} fonts called respectively, +|\bigfont|, |\biggfont|, and |\bigggfont|. These are all roman fonts and are +approximately 1.2, 1.44, and 1.78 times the basic family point size. There is +also a {\smallerfont smallerfont} that is called through |\smallerfont|. +These fonts are all changed when the point size family is changed. + +\shead{documentfonts}{Document Font} +\intex\ has the important idea of a {\it document} and along with it a +{\it document font family}. +This is the +default font for the document and the basis of the sizes of the fonts found +in the headers, footers, section heads, or footnotes among others. For +example the section head font is called |\sheadfont| and is only changed when +the document font family is changed and not by merely calling a point size +family. +The change in the document font is made naming a particular {\tt <point size +font family>} {\bf as an argument} of a |\documentstyle| command. For +instance +|\documentstyle{\twelvepoint}| would create a document with the +text twelve point Roman. +The fonts for +chapter and section heads, footnotes, headers, and footers would +also be appropriately modified. This +feature means that you could run |\eightpoint| text through several sections +without modifying the section head fonts. On the other hand, a change in +document font will change the entire document and can be done at any time or +even within a group. + +|\documentstyle{\tenpoint}| set the document font set of this book to tenpoint. + +\font\fivermsca=cmr5 scaled 2074 +\shead{specialfonts}{Additional Fonts} +A new font, assuming that it exists, must first be defined and then called. +For example, |\font\fivermsca = cmr5 scaled 2074| {\bf defines} a five point +Roman font magnified by 2.074, or to about 10 points. The ``5 point'' is its +design size. To call the font, use |\fivermsca|, usually inside a group to +limit its effect. For instance ``{\fivermsca this was produced by}'' the +following ``|{\fivermsca this was produced by}|''. Note that a scaled five +point font is wider than a ten point form. The command is + +\beginblockmode +\mbr +\ext\@|\font\<fontname> [scaled <number>]| +\nbr +This defines a new font with the name |\<fontname>|. The scaling is optional. +The scale values are 4 digit integers, 1000 times greater than the nominal +size. Thus |\font\fvx = ambx5 scaled 1000| is identical to +|\font\fvx = ambx5|. To actually use the font, the command |\<fontname>| is +called. +\endblockmode +Some examples are as follows: +\font\tensc=cmcsc10 +\font\twelvess=cmss12 +\font\eighteenrm=cmr17 +\font\tendu=cmdunh10 +\font\tenu=cmu10 +\font\sixrm=cmr6 +\font\sixbf=cmbx6 +\begingroup +\lineskip=3pt +\bshortcomlist +\ext\@|\fivei|&{\fivei Five point math italic}\cr +\ext\@|\fiverm|&{\fiverm Five point Roman}\cr +\ext\@|\fivebf|&{\fiverm Five point bold}\cr +|\font\sixrm=cmr6|&{\sixrm Six point Roman}\cr +|\font\sixbf=cmbx6|&{\sixbf Six point Bold}\cr +|\font\eighteenrm=cmr17|&{\eighteenrm Eighteen (Seventeen?) point Roman}\cr +|\font\tendu=cmdunh10|&{\tendu Ten point Dunhill}\cr +|\font\twelvess=cmss12|&{\twelvess Twelve point special San Serif}\cr +|\font\tenu=cmu10|&{\tenu Ten point unslanted italic}\cr +\eshortcomlist +\endgroup +Note that |\fivei| is a mathematics italic font. In this font the space has +been defined to have zero width and the character set is different than that +found in a typical Roman type font. + +\def\lb{\hfil\break} +\shead{fontcomlist}{Command Forms} +The four complete point size families are +\bshortcomlist +\ext\@|\twelvepoint|&{\twelverm Calls the twelvepoint font family}\cr +\ext\@|\tenpoint|&{\tenrm Calls the tenpoint font family}\cr +\ext\@|\ninepoint|&{\ninerm Calls the ninepoint font family}\cr +\ext\@|\eightpoint|&{\eightrm Calls the eightpoint font family}\cr +\eshortcomlist + +\dssshead{Point Size Relative Fonts} +\begingroup +\veryraggedright +\bshortcomlist +\ext\@|\bf|&{\bf Bold in current font family (tenpoint)}\cr +\ext\@|\it|&{\eightpoint \it Italic in current font family (eightpoint)}\cr +\ext\@|\rm|&{\eightrm Roman in current font family (eightpoint)}\cr +%\ext\@|\sl|&{\eightpoint \sl Slanted in current font family (eightpoint)}\cr +\ext\@|\tt|&{\eightpoint\tt Typewriter in current font family (eightpoint)} \cr +\ext\@|\bigggfont|&{\eightpoint \bigggfont Biggg font in current (eightpoint)}\cr +\ext\@|\biggfont|&{\eightpoint \biggfont Bigg font in current (eightpoint)}\cr +\ext\@|\bigfont|&{\eightpoint \bigfont Big font in current (eightpoint)}\cr +\ext\@|\cheadfont|&{\cheadfont chapterhead in current (tenpoint)}\cr +\ext\@|\documentstyle{<font family>}|& Sets document font family to {\tt <font family>}\cr +\ext\@|\footerfont|&{footerfont of current document font}\cr +\ext\@|\footnotefont|&{\footnotefont footnote font (family) of current document font} \cr +\ext\@|\headerfont|&{header font of current document font}\cr +\ext\@|\smallerfont|&{\smallerfont this is smaller relative to tenpoint}\cr +\ext\@|\sheadfont|&{\sheadfont Section head font of current document font}\cr +\ext\@|\ssheadfont|&{\ssheadfont Subsection head font of current document font}\cr +\ext\@|\sssheadfont|&{\sssheadfont Subsubsection head font of current document font}\cr +\ext\@|\dsssheadfont|&{\dsssheadfont Diminished section head font of current document font}\cr +\ext\@|\captionnumfont|&{\captionnumfont Caption label and number font of + current document font}\cr +\ext\@|\captiontitlefont|&{\captiontitlefont Caption title font of + current document font}\cr +\ext\@|\captionbodyfont|&{\captionbodyfont Caption body font of + current document font}\cr + +\eshortcomlist +\endgroup + +\shead{newfontfam}{New Font Families} +It is easy to produce a new font family that is compatible with \intex\--- +just modify the |\tenpoint| definition that is in the {\tt +inrsfont.tex} file. + +\ejectpage +\done diff --git a/macros/inrstex/inrsdoc/thftnote.tex b/macros/inrstex/inrsdoc/thftnote.tex new file mode 100644 index 0000000000..c0bb431036 --- /dev/null +++ b/macros/inrstex/inrsdoc/thftnote.tex @@ -0,0 +1,104 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{footnot} +\def\cqu{} + +{\catcode`\?=7 +\global\def\ftn{$\sphantom{\cheadfont S}?\ddagger$} +} +\autonumberingon + +\chapterhead{footnot}{FOOTNOTES\ftn} +\sfootnote{\ddagger}{This really should not have been footnoted. However to + obtain the correct placement of the $\ddagger$, + |$\sphantom{\cheadfont S}^\ddagger$| was actually used. This footnote leads +to a large number of problems. It will show up in the automatic listing of +the table of contents and the header text. To prevent this, the +|\let\ftn=\relax| is placed immediately after the |\chapterhead| and +just before |\maketoclist| produces the table of contents. +} +\let\ftn=\relax +\intex\ supplies a simple but powerful +footnote\footnote{\dagger}{For making footnotes like this, even with +imbedded mathematics, {\it ie} $\int_0^{\infty} g(x)dx$, or {\bf font} +changes.} +capability. This replaces the |\footnote| command in {\it plain}. {\bf Do not +use |\footnote| in |\title| or any of the section head commands.} +The footnote will get lost. If you must footnote a title or section +head, then use |\up{<mark>}| where you call out the footnote and |\sfootnote| +with the same |<mark>| in the vertical list of the surrounding {\bf page}. +For those of you who wish to change the default formats there is an +|\everyfootnote={<token list>}| that will be inserted at the beginning of +every footnote list. +\shead{footnotcomlist}{Command List} +\begintwocolumn +\pla|\dimen\footins| +\ext|\everyfootnote| +\ext|\footnote| +\ext|\footnotefont| +\pla|\footnoterule| +\pla|\skip\footins| +\ext|\sfootnote| +\ext|\up| +\endthreecolumn + +\shead{footnotcomforms}{Command Forms} +\beginblockmode +\ext\@|\everyfootnote = {<token list>}| +\nbr +The |<token list>| is inserted before every footnote list. It could be used, +for instance, to change the spacing between lines or any other default +feature that is found undesirable. + +\mbr +\ext\@|\footnote{<math mode mark>}{<text>}| +\nbr +The |<math mode mark>| is the marker that is placed +on the word that is being footnoted. Note that it is in {\bf math mode}. This +command should be used only in (internal) horizontal mode. +If the footnote gets lost for some reason, use the |\up{<math mode mark>}| at +the appropriate place in the text and |\sfootnote| with the same +|<math mode mark>|. The |\sfootnote| should be in the vertical list of the +main page. +\mbr +\ext\@|\footnotefont| +\nbr +The footnote font (really an entire family) +\dots it is set when the document font +is set or specifically. +\mbr +\pla\@|\footnoterule| +\nbr +The footnote line at the bottom of a page. This is modified by redefining it +through a |\def\footnoterule{<new definition>}|. +\mbr +\ext\@|\up{<math mode mark>}| +This command superscripts the |<math mode mark>| to the preceding character. +It assumes that the current font family is active. Since the +|\cheadfont| in the title is much bigger than the default |\tenpoint| of this +book, |{\cheadfont FOOTNOTES\up{\ddagger}}| would look like this +{\cheadfont FOOTNOTES\up{\ddagger}}. + +\mbr +\pla\@|\skip\footins [=] <dimen>| +\nbr +This sets the initial skip before the first +footnote to |<dimen>|. +\mbr +\pla\@|\dimen\footins [=] <dimen>| +\nbr +This sets the maximum height allowed for +footnotes to |<dimen>|. If this maximum height is exceeded, the footnotes spill over to the +next page. It is set in \intex\ at 10in. + +\mbr +\ext\@|\sfootnote{<math mode mark>}{<text>}| +\nbr +This should be used for footnotes that appear in the vertical mode. It is +necessary if the original footnote to be called out is too deep inside +vertical boxes. An example of this is the |\title|, the various section and +chapter heads, and the |\captionbox| in a |\figureinsert| or |\tableinsert|. +It should not be used in either horizontal or internal vertical mode. +\endblockmode +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thglue.tex b/macros/inrstex/inrsdoc/thglue.tex new file mode 100644 index 0000000000..f47503b8eb --- /dev/null +++ b/macros/inrstex/inrsdoc/thglue.tex @@ -0,0 +1,125 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{glue} +\def\cqu{} + +\chapterhead{glue}{GLUE -- REVISITED} +Glue is the binder that lets \tex\ do its job. This chapter discusses some +preset forms of glue and their uses. Along with glue parameters there are a +number of special commands for inserting glue. The most interesting have +different degrees of infinity, namely |\hfil|, |\hfill|, |\hfilneg|, |\hss|, +and their vertical counterparts. + +Because of the special spacing requirements of mathematics, \tex\ defines +skips and spacing that are valid in mathematics mode only. Examples are the +are the special preset |mu| glues of |\thickmuskip|, +|\medmuskip|, |\thinmuskip|. +The |\newskip| and |\newmuskip| commands allocate skip (or really glue) +or muskip registers respectively for special uses. For example the specific +glues surrounding section heads are held in glue registers. + +It should be noted that the various |\...muskip| do not cause horizontal +spacing in math mode by themselves. They are used with |\mskip| to actually +cause the insertion of the glue. + + +\shead{gluecomlist}{Command List} +\beginthreecolumn +\pla|\hfil \hfill| +\pla|\hfilneg| +\pla|\hss| +\pla|\medmuskip| +\pla|\newskip| +\pla|\newmuskip| +\pla|\thickmuskip| +\pla|\thinmuskip| +\pla|\vfil \vfill| +\pla|\vfilneg| +\pla|\vss| +\endthreecolumn + + +\shead{gluecomform}{Command Forms} +\beginblockmode +\pla\@|\hfil \hfill| +\nbr +\pla\@|\hfilneg| +\nbr +\pla\@|\hss| +\nbr +%\tracingall \tracingonline=0 +These are all various forms of horizontal (or math) mode commands that insert +infinite quantities of glue. |\hfil|, |\hfill|, |\hfilneg|, and |\hss| insert +|plus 1fil|, |plus 1fill|, |minus 1fil|, and |plus 1fil minus 1fil|. +The first two are {\it stretch} glues, the third is {\it shrink} glue and the +last is both. It +should be noted that when \tex\ tries to stretch or shrink glue values, they +vary according to their value. If there exists both |fil| and finite value +glue in a box or line, then all the stretch if it is |plus| glue +or shrink if it is |minus| glue will be in +the section with the |fil| glue. If there is |fill| glue and either |fil| or +finite glue, then all the stretch or shrink will be in the |fill| sections. +Similarly with |filll| glue, which is not supplied in as readily usable form. +The difference in behaviour between |\hfil| and |\hss| is that |\hss| glue +will allow the contents of a box to spill outside without resulting in an +overfull box while |\hfil| will only fill or push contents to the edge of the +box. The major use for these glues are to center or to force stuff to either +edge of a box. For instance this +\begintt +\line{\vrule \hfil one \hfil two \hfil three + \hfill four \hfil five \hfil six + \hfill seven \hfil eight \hfil nine\vrule} +\endtt +gives + +\line{\vrule \hfil one \hfil two \hfil three + \hfill four \hfil five \hfil six + \hfill seven \hfil eight \hfil nine\vrule} + + + +\mbr +\pla\@|\medmuskip| +\nbr +This is a preset |mu| glue. |\medmuskip = 4mu plus 2mu minus 4mu| for use +with |\mskip|. This is \hbox{\strut\vrule$\mskip\medmuskip$\vrule}. + + +\mbr +\pla\@|\newskip\<skip name>| +\nbr +This assigns a new skip or glue register to the name |\<skip name>|. Glue +values may be assigned to it by |\<skip name> [=] <glue>|. + +\mbr +\pla\@|\newmuskip\<muskip name>| +\nbr +This assigns a new muskip or muglue register to the name |\<muskip name>|. Glue +values may be assigned to it by |\<muskip name> [=] <muglue>|. + +\mbr +\pla\@|\thickmuskip| +\nbr +This is a preset |mu| glue. |\thickmuskip = 5mu plus 5mu| for use +with |\mskip|. This is \hbox{\strut\vrule$\mskip\thickmuskip$\vrule}. + + +\mbr +\pla\@|\thinmuskip| +\nbr +This is a preset |mu| glue. |\thinmuskip = 3mu| for use +with |\mskip|. This is \hbox{\strut\vrule$\mskip\thinmuskip$\vrule} + + +\mbr +\pla\@|\vfil \vfill| +\nbr +\pla\@|\vfilneg| +\nbr +\pla\@|\vss| +\nbr +These are the vertical analogues to the infinite horizontal glues and act in +much the same manner. See the section on |\hfil ...|. +\endblockmode +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thgraph.tex b/macros/inrstex/inrsdoc/thgraph.tex new file mode 100644 index 0000000000..6cb4f0cb67 --- /dev/null +++ b/macros/inrstex/inrsdoc/thgraph.tex @@ -0,0 +1,1288 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{graph} +\def\cqu{} + + +\chapterhead{graph}{\TeX Graph} + + + +The graphics package that is a part of \intex\ +adds the following +capabilities +\bl +\li $\bullet$ The production of a complete paper/report requiring no +additional insertions (except perhaps colour photographs if required). + +\li $\bullet$ The ability to insert a file, for example a plot or halftone, +in Encapsulated PostScript Format (EPSF), and to automatically leave enough +space in the text. + +\li $\bullet$ The mixing of a vector graphics and \TeX\ +text. In fact \TeX\ text may now be printed at any arbitrary angle. + +\el + +The package requires a sensible PostScript driver. The basic requirements +for the driver are as follows: +\bl +\lb The |\special| commands and the other information in the .dvi file are +processed in the order they are found in the .dvi file. This is necessary +in order to be able to rotate tables and arbitrary text \dots\ among other +things. +\lb The driver does not perform PostScript {\tt save} and {\tt restore} +commands around |\special| commands. +\lb The driver uses the code {\tt ps:} is used to signal a file name and +the code {\tt ps::} to signal inline code. +\lb The driver sets the {\tt currentpoint} before entering a |\special|. +\el + +\shead{gcomlist}{Command List - \TeX Graph} +\begintwocolumn +\ext|\absoluteposition| +\ext|\absolutescale| +\ext|\arcc| +\ext|\arcn| +\ext|\arrowheadscale| +\ext|\arrowheadsize| +\ext|\arrowheadtype| +\ext|\avec| +\ext|\beginsegment| +\ext|\beginTeXgraph \btg| +\ext|\cavec| +\ext|\cav| +\ext|\centergraph| +\ext|\centerplotfile| +\ext|\clvec| +\ext|\clv| +\ext|\endsegment| +\ext|\endTeXgraph \etg| +\ext|\graphdim| +\ext|\hgraphsize| +\ext|\hgraphskip| +\ext|\hpix| +\ext|\htext| +\ext|\includefile| +\ext|\incscfile| +\ext|\incscmvfile| +\ext|\larc| +\ext|\lcir| +\ext|\linecap| +\ext|\linejoin| +\ext|\lpatt| +\ext|\lvec| +\ext|\move| +\ext|\penwidth| +\ext|\relativeposition| +\ext|\relativescale| +\ext|\rstext| +\ext|\rtext| +\ext|\segmentscale| +\ext|\unitscale| +\ext|\vgraphsize| +\ext|\vgraphskip| +\ext|\vpix| +\ext|\vtext| +\endtwocolumn + +\shead{plotfile}{The Inclusion of Encapsulated PostScript} +All the commands that are used to include encapsulated PostScript files +read the {\tt Boundingbox} and leave enough space in the text for the +graphics. The {\tt Boundingbox} may be at either the beginning or the end +of the file. However, if the {\tt Boundingbox} is at the the end, it might +take \TeX\ some time to read the entire file to find it. + +The simplest command for including a graphics file is +$$ +|\centerplotfile{<file name>}|. +$$ +For instance the (old) IEEE Communications Society +logo was brought in simply by saying +\beginttverbatim \ninepoint \tt +\1medskip +\1hrule +\1centerplotfile{ieeelogo.ps} +\1hrule +\1medskip +\endttverbatim +right here. +\medskip +\hrule +\centerplotfile{ieeelogo.ps} +\hrule +\medskip +The |\hrule| commands were put in to show how much space was left by \TeX +Graph. +A slightly more complicated example illustrating both rotation and scaling +is given below. +\bigskip +\hrule +\centergraph{ \btg + \incscfile f:{ieeelogo.ps} sc:.3 d:45 + \etg} +\hrule +\bigskip +The code for this is +\beginttverbatim +\1hrule +\1centergraph{ \1btg + \1incscfile f:{ieeelogo.ps} sc:.3 d:45 + \1etg} +\1hrule +\endttverbatim + +Notice that the computation of the space to leave was incorrect. This is +due to the difficulty in performing the computations for obtaining the +bounding box for an arbitrarily rotated and scaled figure. + +The most general +inclusion command is |\incscmvfile| which allows for arbitrary scaling, +rotation, and offset. Finally, the rotation, scaling, and placement may be +applied around any of the nine text box reference points described in +Section~\ref{tgraph}. + + +\shead{tforms}{\TeX Graph Basics} +\TeX Graph has a number of capabilities that range from primitive to +powerful. The following list of classes is for reference only. More detail +will follow with examples in the various sections to follow. This section may +be omitted on first reading. +\dssshead{\TeX Graph Classes} +\bl +\lb Drawing primitives consist of commands for circles, +circular arcs, line vectors, vectors with arrowheads, spline curves, spline +curves with arrowheads, line dotting commands, and various shades of gray +for fills. + +\lb There are commands for changing whether the distances specified +are to be interpreted absolutely, with respect to an origin or relatively +with respect to the present position. + +\lb There is a command to change the (pen)width of the drawn lines +and to change the interpreted scale of the units of distance. + +\lb There is a command to change the default units. However, since +arbitrary scaling of units is allowed, this command is of limited use except +for those that visualize distances in different dimensions. The dimensions +available are those available in \intex. + +\lb There is a ``graphical segment'' which can be +placed at any specific location. Distances inside a graphical segment are +interpreted with respect to the segment origin. The distances inside a +segment may be either relative or absolute with respect to the segment +origin. There is a {\it segment scale} which allows for segments to be scaled +relatively with respect to an overall graph. + +\lb Text, with all the capabilities of \intex\ may be written +at any arbitrary angle. + +\lb \TeX Graph keeps track of the maximum extent of a graph. These +are available after the graph is terminated in the variables |\hgraphsize| +and |\vgraphsize|. |\hgraphskip| and |\vgraphskip| will cause a horizontal or +vertical skip of the appropriate graphsize. {\bf Unfortunately, these values +may be incorrect for a number of reasons. } These are +\bsl +\li $\circ$ Text may stick out the edge of the graph. +\li $\circ$ A circle or arc center is outside the main graph area. +\li $\circ$ The visible part of a circle or arc may be too far to the right. +\li $\circ$ A vertical segment may have inadvertently reset the maximum +positions. +\esl +In some cases it may be necessary to make a fake move to the lower right hand +corner of a graph to tell \TeX Graph the correct size \dots\ after you have +seen a preliminary version and know what it should be. + +\lb All of \TeX's definitional capabilities are available. These +can be used to replace a complex structure by a single command or +to change the surface syntax of \TeX Graph. + +\lb Explicit use of grouping in \TeX Graph, through $\{ \}$, or +|\begingroup|, |\endgroup| pairs is not allowed. This will foul up the +positional record keeping inside. Groups may be produced only through the +use of segments, namely the |\beginsegment|, |\endsegment| pair. +\el + + +\shead{tgraph}{Simple \TeX Graphics} +\TeX Graph will allow for rather sophisticated graphics. You can use the +definition capabilities of \intex\ to create libraries of symbols +for future use. + +Directions in \TeX Graph are described as horizontal, {\tt h:}, increasing +from left to right across the page and vertical, {\tt v:}, increaseing from +top to bottom {\bf down} the page. Thus the fundamental directions are +$$ +\centergraph{\btg + \move h:.3 v:.3 + \avec h:3 v:.3 + \move h:.3 v:.3 + \avec h:.3 v:2 + \textref h:C v:C + \move h:1.5 v:.15 \htext{Horizontal -- {\tt h:<number>}} + \move h:.15 v:1 \vtext{Vertical -- {\tt v:<number>}} + \etg} +$$ +\TeX Graph capabilities will be introduced slowly. +The following diamond box +$$ +\centergraph{ + \btg + \move h:0 v:.5 % moves penup to (0,.5) + \lvec h:.5 v:0 % draws a line to (.5,0) + \lvec h:1 v:.5 + \lvec h:.5 v:1 + \lvec h:0 v:.5 + \textref h:C v:C % sets the reference point in center of text. + \move h:.5 v:.5 + \htext {$\sum_{i=1}^n \rho_n$} % horizontal text box + \etg} +$$ +was put in place with +\beginttverbatim \ninepoint \tt +$$ % a convenient way to use displaymath spacing +\1centergraph{ + \1beginTeXgraphics % also known as \1btg + \1move h:0 v:.5 % moves penup to (0,.5) + \1lvec h:.5 v:0 % draws a line to (.5,0) + \1lvec h:1 v:.5 + \1lvec h:.5 v:.1 + \1lvec h:0 v:.5 + \1textref h:C v:C % sets the reference point in the center. + \1move h:.5 v:.5 + \1htext {$\1sum_{i=1}^n \1rho_n$} % horizontal text box + \1endTeXgraphics % also known as \1etg + } +$$ +\endttverbatim + +The command |\centergraph{<...>}| uses the information about plot size to +center the graphics horizontally and to leave enough room vertically. + +Arguments for all \TeX Graph primitive commands are delimited by spaces. +The units of the dimensions are implicit, but changable. The default is +inches. Thus {\tt h:<number>} is the distance in the horizontal (to right) +and {\tt v:<number>} is the distance in the vertical (down) direction. The +locations are absolute distances with respect to an origin in the upper left +hand corner. + +\shead{vecforms}{Simple Vector Forms} +This introduces some baisc drawing commands. There {\bf must} be +either a space or an +end of line after each {\tt <coordinate>}\]. The dimensional units are +implicit. We usually use {\tt <..>} instead of the less economical {\tt +<coordinate>}. +\beginblockmode +\ext\@|\move h:<..> v:<..>| +\nbr +This is a move from the current position to the coordinates given by +{\tt h:<..> v:<..>}. The pen is up. It may be used to move the current +reference point or to describe a boundary when creating a filled polygon. + +\mbr\ext\@|\lvec h:<..> v:<..>| +\nbr +This draws a line from the current position to {\tt h:<..> v:<..>}. + +\mbr\ext\@|\clvec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..>| +\nbr +This draws a Bezier spline curve from the current point to {\tt h3:<..> +v3:<..>} with respect to the control points {\tt h1:<..> v1:<..>} and +{\tt h2:<..> v2:<..>}. These curves are very versatile and can create many +effects, including loops, by varying the control points. + +\mbr\ext\@|\clv (<h1> <v1>) (<h2> <v2>) (<h3> <v3>)| +\nbr +This command is identical to |\clvec| but with a less verbose syntax. +\endblockmode + +Lines may be either solid of various widths, or dotted with custom +patterns. In addition the ends of the lines may be of different shapes and +joined with different defaults. In most cases you will not have to change +the defaults in \TeX Graph but the capability is there. + +\beginblockmode +\ext\@|\penwidth <size>| +\nbr +This sets the width of the pen or line in the current units. The default is +is .015 (in). + +\mbr\ext\@|\linecap <integer>| +\nbr +This sets the end shapes of the lines using PostScript notation. The +default is 1 or a round cap. A value of 0 is a butt cap with the line cut +off square exactly to its length. A value of 2 is a square cap with the +line extended by a square cap the thikness of half its width. For narrow +lines the difference is negligible. + +\mbr\ext\@|\linejoin <integer>| +\nbr +This sets the form in which lines join (PostScript notation). The default +is 1 which corresponds to a round line join. A value of 0 is a mitre or +pointed join while a value of 2 is a beveled or flattened join. For thin +lines the differences are negligible. + +\mbr\ext\@|\lpatt p:<pattern>| +\nbr +This sets the dotting pattern of the line in PostScript notation. The +default is a solid line described by |{[]}|. The simplest form is |{[a]}| +where the line is black for {\tt a} pixels and white for 1. |{[a b]}| would +mean {\tt a} pixels black followed by {\tt b} pixels white. A specification +of |[a1 b1 a2 b2]| would be a cyclic pattern with the line black for the +{\tt a?} pixels and white for the corresponding {\tt b?}. + +\endblockmode + +\TeX Graph alos supplies lines with arrowheads. These may be combined +dotting patterns given above but a decision will have to be made as to +whether you want the arrowhead itself dotted. +There are +three styles of arrowheads + \btg \move h:0 v:-.05 \avec h:.3 v:-.05 + \arrowheadtype t:O + \avec h:.6 v:-.05 + \arrowheadtype t:F + \avec h:.9 v:-.05 + \etg \hgraphskip\ +triangle {\tt T}, open {\tt O}, +and filled {\tt F}. The size may also be varied. There are no restriction on +the direction of the arrows. The commands are + +\beginblockmode +\ext\@|\avec h:<..> v:<..>| +\nbr +This draws a vector with an arrow head from the current position to +{\tt h:<..> v:<..>}. + +\mbr\ext\@|\cavec h1:<..> v1:<..> h2:<..> v2:<..> h3:<..> v3:<..>| +\nbr\ext\@|\cav (<h1> <v1>) (<h2> <v2>) (<h3> <v3>) | +\nbr +These are the spline versions of the vectors with arrowheads. + +\mbr\ext\@|\arrowheadtype t:<type>| +\nbr +The {\tt <type>} is {\tt T O F} for triangle, open, or filled respectively. + +\mbr\ext\@|\arrowheadsize l:<length> w:<width>| +\nbr +The {\tt<length>} and {\tt<width>} are in the current units. The default +is 0.16in by 0.04in. This size is {\tt independent} of the current scales. +This prevents arrowheads from disappearing as a graph is scaled. + +\mbr\ext\@|\arrowheadscale| +This makes the arrowheadsize sensitive to the segment and unit scales in +force when it is called. It is not global but is affected by the grouping +imposed by |\beginsegment| and |\endsegment| pairs. + +\endblockmode + +For most applications, the |\arrowheadsize| and the |\arrowheadscale| +will not be needed. + +The following example of a (partial) block diagram uses these commands. +$$ +\centergraph{\btg + \move h:0 v:.3 + \avec h:.5 v:.3 + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +This was produced by the following: +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1move h:0 v:.3 + \1avec h:.5 v:.3 % arrow vector leading into box + \1move h:.5 v:.6 % moves to lower lefthand corner of box + \1lvec h:.5 v:0 % four sides + \1lvec h:1.5 v:0 + \1lvec h:1.5 v:.6 + \1lvec h:.5 v:.6 + \1etg} +\endttverbatim + +We can change the type of arrowhead on this and all subsequent arrow vectors +by adding adding |\arrowheadtype t:O| before the |\avec ...| to give +$$ +\centergraph{\btg + \move h:0 v:.3 + \arrowheadtype t:F % changes default filled + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +This was produced by +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1move h:0 v:.3 + \1arrowheadtype t:F % changes default filled + \1avec h:.5 v:.3 % arrow vector leading into box + \1move h:.5 v:.6 % moves to lower lefthand corner of box + \1lvec h:.5 v:0 % four sides + \1lvec h:1.5 v:0 + \1lvec h:1.5 v:.6 + \1lvec h:.5 v:.6 + \1etg} +\endttverbatim + +\beginblockmode +\ext\@|\unitscale <scale>| +\nbr +This command causes all subsequent units in this or enclosed segments to be +scaled by the {\tt <scale>}. Thus |\unitscale 2.54| would have the effect +of changing a figure where the units were originally in inches to be in +centimetres. +\endblockmode + + +Thus the entire graph is reduced to half size by adding |\unitscale .5|\] at +the very beginning. +$$ +\centergraph{\btg + \unitscale .5 + \move h:0 v:.3 + \arrowheadtype t:F % changes default filled + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +Note that the arrowhead has not changed in size. The commands to do this are +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1unitscale .5 % causes all subsequent units to be multiplied + % by .5 + \1move h:0 v:.3 + \1arrowheadtype t:F % changes default filled + \1avec h:.5 v:.3 % arrow vector leading into box + \1move h:.5 v:.6 % moves to lower lefthand corner of box + \1lvec h:.5 v:0 % four sides + \1lvec h:1.5 v:0 + \1lvec h:1.5 v:.6 + \1lvec h:.5 v:.6 + \1etg} +\endttverbatim +If the arrowhead size needed to be reduced in the same scale it is necessary +to add |\arrowheadscale| after the |\unitscale| and before the first +arrowvector. Thus we get +$$ +\centergraph{\btg + \unitscale .5 % causes all subsequent units to be multiplied + % by .5 + \move h:0 v:.3 + \arrowheadscale % makes arrowhead size sensitive to scalings. + \arrowheadtype t:F % changes default filled + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +This is produced by +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1unitscale .5 % causes all subsequent units to be multiplied + % by .5 + \1move h:0 v:.3 + \1arrowheadscale % makes arrowhead size sensitive to scalings. + \1arrowheadtype t:F % changes default filled + \1avec h:.5 v:.3 % arrow vector leading into box + \1move h:.5 v:.6 % moves to lower lefthand corner of box + \1lvec h:.5 v:0 % four sides + \1lvec h:1.5 v:0 + \1lvec h:1.5 v:.6 + \1lvec h:.5 v:.6 + \1etg} +\endttverbatim + +Finally we have an example with dotted Bezier splines. +$$ +\centergraph{ \btg \lpatt p:{[20 30 20]} + \lvec h:0 v:2 + \move h:0 v:0 + \lpatt p:{[20 20 10 10]} + \cav (1 1) (2 1) (3 0) + \lpatt p:{[20 20]} + \move h:4 v:1 + \cav (0 2) (5 2) (1 1) + \etg + } +$$ + +which was given by +\beginttverbatim +\1centergraph{ \1btg \1lpatt p:{[20 30 20]} + \1lvec h:0 v:2 + \1move h:0 v:0 + \1lpatt p:{[20 20 10 10]} + \1cav (1 1) (2 1) (3 0) + \1lpatt p:{[20 20]} + \1move h:4 v:1 + \1cav (0 2) (5 2) (1 1) + \1etg + } +\endttverbatim +This is off center because the width computation includes the (5 2) control +point of the Bezier curve. + +\sshead{text}{Text in Graphs} +All text within \TeX Graph is actually typeset by \TeX. Since \TeX\ does +this so beautifully, it seems counter productive to do it otherwise. The +commands for including text at various angles are + +\beginblockmode +\ext\@|\htext {<text>}| +\nbr +This puts the text in a horizontal |\hbox| running from left to right. + +\mbr\ext\@|\vtext {<text>}| +\nbr +This puts the text in a vertical |\hbox| going upwards. + +\mbr\ext\@|\rtext d:<degrees> t:{<text>}| +\nbr +This puts text in an |\hbox| with an arbitrary rotation of {\tt <degrees>}. + +\mbr\ext\@|\rstext d:<degrees> sc:<scale> t:{<text>}| +\nbr +This puts text in an |\hbox| with an arbitrary rotation of {\tt <degrees>} +and scale {\tt <scale>}. + +\endblockmode + +Text is placed in an |\hbox|. This box is located at the point in the graph +where the |\?text| command is called. +In order to make the exact placement of the +box in a graph easier, the box is actually oriented at any one of nine +reference points. The command is + +\beginblockmode +\ext\@|\textref h:<L C R> v:<T C B>| +\nbr +The choices of {\tt L C R} are Left, Center, and Right respectively in the +horizontal and vertical positions. +\endblockmode + +The nine +choices are shown below: +\medskip +\def\bul{\htext {$\bullet$} } +\def\tref{\beginsegment + \textref h:C v:C + \lvec h:1 v:0 \bul + \lvec h:2 v:0 \bul + \lvec h:2 v:.5 \bul + \lvec h:2 v:1 \bul + \lvec h:1 v:1 \bul + \lvec h:0 v:1 \bul + \lvec h:0 v:.5 \bul + \lvec h:0 v:0 \bul + \move h:1 v:.5 \bul + \endsegment} +\def\tlabels{\textref h:R v:C %left hand labels + \htext{ h:L v:T } \lvec h:.2 v:0 \avec h:.6 v:.4 + \move h:0 v:.9 \htext{ h:L v:C } \avec h:.6 v:.9 + \move h:0 v:1.8 \htext{ h:L v:B } \lvec h:.2 v:1.8 \avec h:.6 v:1.4 + \textref h:L v:C %right hand labels + \move h:3.2 v:0 \htext{ h:R v:T } \lvec h:3 v:0 \avec h:2.6 v:.4 + \move h:3.2 v:.9 \htext{ h:R v:C } \avec h:2.6 v:.9 + \move h:3.2 v:1.8 \htext{ h:R v:B } \lvec h:3 v:1.8 \avec h:2.6 v:1.4 + \textref h:C v:B % Center Top + \move h:1.6 v:0 \htext{ h:C v:T } \move h:1.6 v:.05 + \avec h:1.6 v:.4 + \textref h:L v:C % Center Center + \move h:2.0 v:.7 \htext{ h:C v:C } \lvec h:1.85 v:.7 + \avec h:1.6 v:.9 + \textref h:C v:T % Center Bottom + \move h:1.6 v:1.8 \htext{ h:C v:B } \move h:1.6 v:1.75 + \avec h:1.6 v:1.4 + } +\medskip +\centergraph{\btg \unitscale .7 + \arrowheadsize l:.08 w:.02 \arrowheadtype t:O + \tlabels + \move h:.6 v:.4 \tref + \etg} +\medskip +These reference points move with the box as it is rotated or scaled. + +As an example we add the following $\rho=\sum_{i=1}^{n}\rho_i$ to the +center of the block diagram used previously to give +$$ +\centergraph{\btg + \move h:1.0 v:.3 % moves to center of box + \textref h:C v:C % sets text reference to dead center + \htext {$\rho=\sum_{i=1}^{n}\rho_i$} % puts in text + \move h:0 v:.3 + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +The commands to do this are +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1move h:1.0 v:.3 % moves to center of box + \1textref h:C v:C % sets text reference to dead center + \1htext {$\1rho=\1sum_{i=1}^{n}\1rho_i$} % puts in text + \1move h:0 v:.3 + \1avec h:.5 v:.3 % arrow vector leading into box + \1move h:.5 v:.6 % moves to lower lefthand corner of box + \1lvec h:.5 v:0 % four sides + \1lvec h:1.5 v:0 + \1lvec h:1.5 v:.6 + \1lvec h:.5 v:.6 + \1etg} +\endttverbatim + +Arbitrary rotation of text or graphics |\rtext|. +This example uses |\rtext d:45 t:<text>| in place of the |\htext|. +$$ +\centergraph{\btg + \move h:1.0 v:.3 % moves to center of box + \textref h:C v:C % sets text reference to dead center + \rtext d:45 t:{$\rho=\sum_{i=1}^{n}\rho_i$} % puts in text + \move h:0 v:.3 + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ +Note that the text spills out over the edges of the box. There is no +guarantee that the text will fit in the box. +In fact if we take the +horizontal example and add a |\unitscale .7 \arrowheadscale| the following +results: +$$ +\centergraph{\btg + \unitscale .7 + \arrowheadscale + \move h:1.0 v:.3 % moves to center of box + \textref h:C v:C % sets text reference to dead center + \htext {$\rho=\sum_{i=1}^{n}\rho_i$} % puts in text + \move h:0 v:.3 + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ + +Note that the font is not scaled. If we use |\rstext d:0 sc:.8 t:<...>| we +get +$$ +\centergraph{\btg + \unitscale .7 + \arrowheadscale + \move h:1.0 v:.3 % moves to center of box + \textref h:C v:C % sets text reference to dead center + \rstext d:0 sc:.8 t:{$\rho=\sum_{i=1}^{n}\rho_i$} + \move h:0 v:.3 + \avec h:.5 v:.3 % arrow vector leading into box + \move h:.5 v:.6 % moves to lower lefthand corner of box + \lvec h:.5 v:0 % four sides + \lvec h:1.5 v:0 + \lvec h:1.5 v:.6 + \lvec h:.5 v:.6 + \etg} +$$ + + +\shead{vertgraph}{Rotated Graphics and Text} +It is possible to place graphics or text at any arbitrary direction +on a page. It is only +necessary to include it in a |\vtext| for vertical or an |\rtext| for an +arbitrary rotation. However, it should be remembered that +the reference point is that position on the page where the |\?text| was +entered {\bf and} that the text/graphics goes at the appropriate angle. +The following shows a +simple table angled on the page. To do this correctly, requires that you +discover the size of the table. + +\def\sample{ + \btg + \lvec h:1 v:0 + \incscfile f:ieeelogo.ps sc:.25 d:0 + \lvec h:0 v:.5 + \htext{\begintable + \begintableformat + &\center + \endtableformat + \- + \br{\:|}\use{3} PROJECT --- Squidget Forms \er{|} + \- + \br{\:|} Milestone | Due | Projected \er{|} + \- + \br{\:|} A | Aug. 94 | Jan. 95 \er{|} + \- + \br{\:|} B | Dec. 94 | Dec. 95 \er{|} + \- + \br{\:|} A | Jan. 95 | ? \er{|} + \- + \endtable} + \etg} + +$$ +\centergraph{ + \btg + \lvec h:0 v:1 % sets origin + \rtext d:45 t:{\sample} + \lvec h:2 v:2 % sets size of graph ... + \etg} +$$ + +This was done with the following set of commands. Note that a |\def| was used +to make the construction easier to follow. |\lvec| was used rather than +|\move| in order to make the origin movements visible. +\beginttverbatim \ninepoint \tt +\1def\1sample{ + \1btg + \1lvec h;1 v:0 + \1incscfile f:ieeelogo.ps sc:.25 d:0 + \1lvec h:0 v:.5 + \1htext{\1begintable + \1begintableformat + &\1center + \1endtableformat + \1- + \1br{\1:|}\1use{3} PROJECT --- Squidget Forms \1er{|} + \1- + \1br{\1:|} Milestone | Due | Projected \1er{|} + \1- + \1br{\1:|} A | Aug. 94 | Jan. 95 \1er{|} + \1- + \1br{\1:|} B | Dec. 94 | Dec. 95 \1er{|} + \1- + \1br{\1:|} A | Jan. 95 | ? \1er{|} + \1- + \1endtable} + \1etg} +\endttverbatim + +\beginttverbatim \ninepoint \tt +\1medskip +\1centergraph{ + \1btg \1textref h:C v:C + \1lvec h:0 v:1 % sets origin + \1rtext d:45 t:{\1sample} + \1lvec h:2 v:2 % sets size of graph ... + \1etg} +\1medskip +\endttverbatim +In fact, this example was first +done as a separate file to learn the appropriate dimensions and then inputted +in the appropriate place. + +\sshead{arcs}{Circles, Arcs and Fills} +\TeX Graph uses the circle, arc, and fill commands of PostScript to +produce curves. PostScript uses a polygonal fill on the {\bf inside} of the +curve. This means that the direction of the arcs are important. + +The commands are +\beginblockmode +\ext\@|\lcir r:<radius>| +\nbr +This is a circle with the center at the current loaction and a radius of +size {\tt <radius>} in the current dimensions. + +\mbr\ext\@|\arcc r:<radius> sd:<degrees> ed:<degrees>| +\nbr +This is an ``unstroked''arc, ie equivalent to a |\move| in the counter +clockwise direction from {\tt sd:<..>} to {\tt ed:<..>}. If this is used in +a fill, the center of the circle is the beginning of the path. + +\mbr\ext\@|\arcn r:<radius> sd:<degrees> ed:<degrees>| +\nbr +This is the same as |\arcc| except that it is counter clockwise. + +\mbr\ext\@|\pfill p:<fraction>| +\nbr +This completes a path a fills the path with a shade of gray with {\tt p:0} +being black and {\tt p:1} being white. +\endblockmode + +The angles are in the directions shown here. +$$ +\centergraph{ + \btg \unitscale .7 + \move h:1 v:2 + \avec h:1 v:0 + \move h:0 v:1 + \avec h:2 v:1 + \move h:1 v:2.05 \textref h:C v:T \htext{$90^\circ$} + \move h:0 v:1 \textref h:R v:C \htext{$180^\circ$ } + \move h:1 v:-.05 \textref h:C v:B \htext{$270^\circ$} + \move h:2 v:1 \textref h:L v:C \htext{ $0^\circ,\ 360^\circ$ } + \etg} +$$ + +\def\fillbox #1 {\move h:.4 v:0 + \beginsegment + \absoluteposition + \lvec h:.5 v:0 + \lvec h:.5 v:.5 + \lvec h:0 v:.5 + \pfill p:{#1} + \move h:.25 v:.55 \textref h:C v:T \htext{#1} + \endsegment + \move h:.4 v:0 % for symmetry + } + +Some shades of gray are as follows: +$$ +\centergraph{ +\btg +\relativeposition +\fillbox 0 +\fillbox .1 +\fillbox .2 +\fillbox .3 +\fillbox .4 +\move h:-4 v:.8 +\fillbox .5 +\fillbox .6 +\fillbox .7 +\fillbox .8 +\fillbox .9 +\etg} +$$ + +An example of a use of arcs and fill is given below. +$$ +\centergraph{\btg + \arcc r:2 sd:0 ed:45 + \pfill p:.5 + \arcc r:1 sd:0 ed:45 + \pfill p:1 % fills the inside with white + \move h:2 v:1.5 % to leave enough space + \etg} +$$ + +This logo is given by +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg + \1arcc r:2 sd:0 ed:45 + \1pfill p:.5 + \1arcc r:1 sd:0 ed:45 + \1pfill p:1 % fills the inside with white + \1move h:2 v:1.5 % to leave enough space + \1etg} +\endttverbatim +This shows that a fill of ``white'' (1) is opaque and obliterates the black +or gray underneath. Note the single line of dots from the origin. Apparently +there is some roundoff. This strategy is necessary in PostScript filling. + + +\shead{seg}{Advanced \TeX Graphics and Segments} +The most important advanced feature of \TeX Graph is the graphical segment. +These are delimited by |\beginsegment| |\endsegment| pairs. They are used to +create graphical items that can be placed at any specific location in a +graph. This capability, combined with \TeX's ability to create definitions +allows for the creation of libraries of symbols. {\bf Segments are the only +groups that should be used within a} |\btg| |\etg| {\bf +pair.}\footnote{!}{This is almost true. Groups may be used freely within +the argument of either an |\??text|.} A simple example of the use +of this facility was the definition of a |\fillbox| to create the box with +the fill pattern shown in Section~\ref{arcs}. The definition was + +\beginttverbatim \ninepoint \tt +\1def\1fillbox #1 {\1move h:.4 v:0 + \1beginsegment + \1absoluteposition + \1lvec h:.5 v:0 + \1lvec h:.5 v:.5 + \1lvec h:0 v:.5 + \1pfill p:{#1} + \1move h:.25 v:.55 \1textref h:C v:T \1htext{#1} + \1endsegment + \1move h:.4 v:0 % for symmetry + } +\endttverbatim + +The relative position in outside the segment allows the boxes to be placed +beside each other with even spacing and no additional instructions. + +Each segment has a {\it segment reference point}. This is the location in +the enclosing segment or |\btg| |\etg|, which is really just a special +segment. {\bf Absolute positions} within a segment are actually relative to +the {\it segment reference point}. Relative positions are relative. +The three +boxes below +$$ + \centergraph{\btg \relativeposition + \fillbox .3 + \fillbox .5 + \fillbox .7 + \etg} +$$ +were produced by +\beginttverbatim \ninepoint \tt +\1medskip + \1centergraph{\1btg \1relativeposition + \1fillbox .3 + \1fillbox .5 + \1fillbox .7 + \1etg} +\1medskip +\endttverbatim +Note that the space after the |#1| in the definition for |\fillbox| means +that the numbers are delimited by implicit space at the end of the line. If +this space had been left out, only the first digit in each of the pattern +numbers would have been read and the other would have been printed at some +odd place on the page. + +\sshead{segscale}{Segment Scaling} +There are several scaling parameters that can be used with segments. In +addition to the |\unitscale| there is a |\segmentscale|. Roughly speaking the +|\segmentscale| is used to change the scale of the present and all enclosed +segments while the |\unitscale| is used to set the nominal size of segment +object. The major difference between the two is that segment scales +accumulate while unitscales do not. An example is obtained using the +|\fillbox| in a segment. The following three boxes illustrate the effect. +$$ +\centergraph{\btg \unitscale .3 % changes units + \segmentscale 2 % doubles scale of all enclosed segments + % actual scale is .3*2=.6 + \fillbox .5 + \move h:.8 v:0 % moves to right beyond box + \beginsegment + \unitscale .5 % now unit scale is .5 + \segmentscale .7 % reduces scale by .5 -- actual scale is + % .5*2*.7=.7 + \fillbox .7 + \move h:.8 v:0 + \beginsegment + \unitscale 1 + \segmentscale .8 % actual scale is 1*2*.7*.8=1.12 + \fillbox .9 + \endsegment + \endsegment + \etg} +$$ + +This example should be studied carefully. The actual commands that produced +it are +\beginttverbatim \ninepoint \tt +\1centergraph{\1btg \1unitscale .3 % changes units + \1segmentscale 2 + % doubles scale of all enclosed segments + % actual scale is .3*2=.6 + \1fillbox .5 + \1move h:.8 v:0 % moves to right beyond box + \1beginsegment + \1unitscale .5 % now unit scale is .5 + \1segmentscale .7 + % reduces scale by .5 -- actual scale is + % .5*2*.7=.7 + \1fillbox .7 + \1move h:.8 v:0 + \1beginsegment + \1unitscale 1 + \1segmentscale .8 % actual scale is 1*2*.7*.8=1.12 + \1fillbox .9 + \1endsegment + % actual scale is back to .5*2*.7=.7 + \1endsegment + % actual scale is back to .3*2=.6 + \1etg} +\endttverbatim +Note how the segment scale accumulates while the unitscale does not. Note +also that the scale reverts to that of the enclosing segment after an +|\endsegment|. + +It is possible to prevent a segment from being affected by the external +segment scales by inserting the command |\absolutescale|. This is used for +symbols that you wish to have the same size no matter the actual scale of the +graph. + +\sshead{segsum}{Segment Command Summaries} +The following is a list of some of the important points concerning segments: +\beginblockmode +\ext\@|\beginsegment| +\nbr +This begins a graphical segment and a group. All locations within a segment +are relative to the origin of the segment. + +\mbr\ext\@|\endsegment| +\nbr +This terminates a segment and the group. The current location upon leaving +a segment is the segment origin. + +\mbr\ext\@|\unitscale <scale>| +\nbr +The {\tt <scale>} multiplies the present segment and all +enclosed segments unless they have their own |\unitscale|. A |\unitscale| may +be changed at any time within a segment. + +\mbr\ext\@|\segmentscale <scale>| +\nbr +The {\tt <scale>} affects the present segment and all +enclosed segments unless that segment is protected by an |\absolutescale|. +Unlike |\unitscale|, the |\segmentscale| accumulates by multiplying the +current scale value. +The actual scale used for interpreting position numbers is the +product of all of the enclosing segmentscales times the presently active +unitscale. + +\mbr\ext\@|\absoluteposition| +\nbr +All coordinates are to be interpreted with respect to the current origin. +This will either be the graph origin or the origin of the current segment. + +\mbr\ext\@|\relativeposition| +\nbr +Coordinate positions are interpreted relative to the previous position. If +the previous command was the drawing of an arc or circle, +the previous position is +the center of the circle. +\endblockmode + + + +\shead{slides}{Slide Making} +A specialized set of commands along with appropriate templates exist to +create a transparency. All slides are ``horizontal''. |\fullform| slides +take up an entire 8.5 by 11~in. page and are intended for display. +|\textform| slides are reduced for text. A |\comment <text> //| command is +given that is suppressed when the |\fullform| is used but is printed when +|\textform| is used. The text in the slides uses a general scaled font +family in the file |spfont.tex|. This family is basically a scaled set of +|\tenpoint| fonts. An example is given below: + + + +There are two basic forms, the INRS form and a General form. An example of +the |\inrsform| is given by + + +\textform +\formscale .7 + +\beginmidinsert +\inrsform + +\hslide HOW TO MAKE SLIDES WITH \intex// +\hd{Preliminaries} +\bl +\lb Input the macro package with {\tt \1input inrssl.tex}. +\lc Decide whether {\tt \1fullform} or {\tt \1textform}. +\last Decide whether {\tt \1inrsform} or {\tt \1genform}. +\el +\hd{Making it.} +\bl +\lb Use {\tt \1hslide <title>// <body> //}. +\lb Use {``//''} as the delimiter. +\el +// +\endmidinsert + +\beginttverbatim +\1input inrssl % brings in the slide macros +\1textform % sets textform and size +\1formscale .7 % further reduces the size of slide by .7 +\1beginmidinsert +\1inrsform % sets the inrs form +\1hslide HOW TO MAKE SLIDES WITH \1intex// +\1hd{Preliminaries} +\1bl +\1lb Input the macro package with {\1tt \1 1input inrssl.tex}. +\1lc Decide whether {\1tt \1 1fullform} or {\1tt \1 1textform}. +\1last Decide whether {\1tt \1 1inrsform} or {\1tt \1 1genform}. +\1el +\1hd{Making it.} +\1bl +\1lb Use {\1tt \1 1hslide <title>// <body> //}. +\1lb Use {``//''} as the delimiter. +\1el +// +\1endmidinsert +\endttverbatim + +\beginmidinsert +\topdata = {General Engineering Inc.} +\botdata = {An Important Presentation} +\slidedate = {Jan. 1, 2000} +\genform % this calls the general form that uses these token registers + +\hslide This is the title \cr Split here // +\hd{This is an internal header} +\bl +\lb A listitem starting with a bullet. +\lc A listitem starting with a circle. +\last A listitem starting with an asterisk. +\el +// % the // terminates a slide + +\comment +It is possible to add a comment to the bottom of the slide which +only shows up when the slide is printed in textform. A comment is +terminated with a {//} // +\endmidinsert + +This second slide was given by +\beginttverbatim +\1topdata = {General Engineering Inc.} +\1botdata = {An Important Presentation} +\1slidedate = {Jan. 1, 2000} +\1genform % the general form that uses these token strings + +\1hslide This is the title \1cr Split here // +\1hd{This is an internal header} +\1bl +\1lb A listitem starting with a bullet. +\1lc A listitem starting with a circle. +\1last A listitem starting with an asterisk. +\1el +// % the // terminates a slide + +\1comment +It is possible to add a comment to the bottom of the slide which +only shows up when the slide is printed in textform. A comment is +terminated with a {//} // +\endttverbatim + + +Arbitrary graphics may be included in a slide using normal \TeX Graph +commands. However, the included graphics may not scale correctly when +moving from |\fullform| to |\textform|. Under these conditions is is +necessary to include the test |\iftextform <....> \else <...> \fi| to +switch between the modes. + + +The basic commands in the slide package + +\beginblockmode +\ext\@|\input inrssl| +\nbr +This command will bring in the INRS\TeX\ slide macro package. + +\mbr\ext\@|\fullform| +\nbr +This chooses the full size form intended for creating the transparency. Any +|\comment| is suppressed. + +\mbr\ext\@|\textform| +\nbr +This chooses the text size of the slide and does not suppress the +|\comment| text. + +\mbr\ext\@|\formscale <scale>| +\nbr +The entire slide, text, internal graphics, and border, is scaled +by the {\tt <scale>} factor. This is done by directly by PostScript. + +\mbr\ext\@|\hslide <title> // <text> //| +This is the basic command for making a slide. The title is terminated with +a // and the slide body is also terminated with a //. + +\mbr\ext\@|\comment <text> //| +This is a comment text which is printed in |\textform| but suppressed in +|\fullform|. + +\mbr\ext\@|\inrsform| +This will give the standard \INRS\ format with its logo on the top and +nothing on the bottom. Text on the bottom may be added using |\botdata| and +|\slidedate|. + +\mbr\ext\@|\genform| +\nbr +This is a completely general form where only the border is set. + +\mbr\ext\@|\topdata ={<text>}| +This is printed in the |\borderfont| which is the same as the current slide +body font. It is printed on the top line above the border with a current +position at the left hand corner. + +\mbr\ext\@|\botdata = {<b-text>}| +\mbr\ext\@|\slidedate = {<s-date>}| +\nbr +These two token strings are printed on the bottom line centered and +separated by a --, ie as |<b-text> - <s-date>|. + +\mbr\ext\@|\iftextform <...> \else <...> \fi| +\nbr +This is a switch that allows for different actions between fullform and +textform. |\textform| is .578=1/1.728 the size of |\fullform|. + +\mbr\ext\@|\lb \lc \last| +\nbr +These are three short forms for use in listitems starting with $\bullet$, +$\circ$, and {\tt *} respectively. + +\mbr\ext\@|\hd{<text>}| +\nbr +This gives a ``header'' inside a slide. It is equivalent to a |\dssshead| +in normal text. +\endblockmode + + +\shead{grcomform}{Some Additional Command Forms -- \TeX Graph} +\beginblockmode +\ext\@|\begintexgraph \btg| +\nbr +This begins \TeX Graph. It will bring in the \TeX Graph macros the first +time it is called. It starts a group and a |\vbox|. + +\mbr\ext\@|\endtexgraph \etg| +\nbr +Finishes \TeX Graph. It terminates the group started by |\btg|. + +\mbr\ext\@|\graphdim <units>| +\nbr +This sets the default units of \TeX Graph. Any valid \TeX\ |<unit>| is +valid such as {\tt in, cm, pt,} or {\tt bp}. The current default is {\tt +in}. + +\mbr\ext\@|\hgraphsize| +\nbr +This maximum horizontal excursion of the graph as computed by \TeX Graph. +It is a dimension. + +\mbr\ext\@|\hgraphskip| +\nbr +This actually |\hskip \hgraphsize|. + +\mbr\ext\@|\hpix <number>/<unit>| +\nbr +This is the horizontal resolution in pixels/unit. The default is +{\tt 300/in}. + + +\mbr\ext\@|\vgraphsize| +\nbr +This maximum vertical excursion of the graph as computed by \TeX Graph. +It is a dimension. + +\mbr\ext\@|\vgraphskip| +\nbr +This actually |\vskip \vgraphsize|. + + +\mbr\ext\@|\vpix <number>/<unit>| +\nbr +This is the vertical resolution in pixels/unit. The default is +{\tt 300/in}. + +\endblockmode +\ejectpage + +\done diff --git a/macros/inrstex/inrsdoc/thindex.tex b/macros/inrstex/inrsdoc/thindex.tex new file mode 100644 index 0000000000..56664fd4d5 --- /dev/null +++ b/macros/inrstex/inrsdoc/thindex.tex @@ -0,0 +1,29 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{index} + +\def\cqu{\cquote{LEXICOGRAPHER: A writer of dictionaries, a harmless +drudge.}{Dictionary [1755], Samuel~Johnson (1709-1784)} +} + +\mark{} +\chnum=0 +\def\chnumform{\Alphabetic{\the\chnum}} +\def\Chapter{APPENDIX } +\def\rightheadertext{\line{\hss + APPENDIX A: \botmark\rlap{\ssheadfont\qquad\folio}}} +\def\leftheadertext{\line{\llap{\ssheadfont\folio + \qquad}APPENDIX A: \firstmark\hss}} +\chead{index}{COMMAND INDEX} +This Appendix contains an alphabetical list of the commands of \intex, with +some information about their syntax and parameters, and the page in the book +where they are more fully explained. +\long\def\indpg #1.{\mark{{\tt \text}}\quad {\it #1}\par\filbreak} +{\obeyspaces \long\global\def\2#1 {\xdef\text{#1}#1 }} +\vskip 4.8ex +\eightpoint +\beginttverbatim +\input masth.sor +\endttverbatim + +\done diff --git a/macros/inrstex/inrsdoc/thlists.tex b/macros/inrstex/inrsdoc/thlists.tex new file mode 100644 index 0000000000..40e388a2f4 --- /dev/null +++ b/macros/inrstex/inrsdoc/thlists.tex @@ -0,0 +1,281 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{lists} +\def\cqu{} + + + +\chapterhead{lists}{LISTS} +{\it Plain} \tex\ supplies two commands for lists, |\item|, and |\itemitem|, +that create list items with indentations of one and two times the paragraph +indentation respectively. \intex\ supplies a complete set of commands for +three levels of lists. In addition, spacing of list items may be controlled +by either tightening or loosening the list item spacing. The basic set of +commands specify the beginning and end of a |list|, |sublist|, and +|subsublist|. All items in a list are introduced by |\listitem| or its +abbreviation |\li|. + +The commands for making lists are given first and the list of the various +glues for spacing is given in Section \ref{listparms}. + +\shead{listcomlist}{Command List -- Making Lists} +\begintwocolumn +\ext|\beginlist \bl| +\ext|\beginsublist \bsl| +\ext|\beginsubsublist \bssl| +\ext|\everylist| +\ext|\everysublist| +\ext|\everysubsublist| +\ext|\endlist \el| +\ext|\endsublist \esl| +\ext|\endsubsublist \essl| +\pla|\item| +\pla|\itemitem| +\ext|\listitem \li| +\ext|\loosenlist| +\ext|\samplemark| +\ext|\tightenlist| +\endthreecolumn + +\shead{maklist}{Making Lists} +Lists and their associated items can appear in either vertical or internal +vertical mode. They also work in multicolumn format and in conjunction with +|\narrowtext|. In \intex\ the type of list is specified and not the actual +list item. All list items, whether they appear in a list or a subsublist are +called the same way. As elsewhere in \intex, every |\begin..list| must have +an accompanying |\end..list|. Each |\begin..list ... \end..list| matching +pair form a {\it group}; thus it is possible to change the fonts or any other +parameter and that change affects only the present group and all of its +internal groups. This is an important benefit of designating lists instead of +list items. The main text of a list is indented a fixed amount and the list +item herald, if it exists, is placed one quad to the left of the main text. + +\intex\ also supplies three token lists |\everylist|, |\everysublist|, and +|\everysubsublist|. These are token lists the contents of which are emptied +inside the list group every time the corresponding |\begin...list| is called. +These may be used for changing the list indentations, fonts, or individual +item skips. Anything done in an outer list is of course valid in the sub +lists. For instance if the list indent was required to be one inch and the +list spacing to be 1 then +\begintt +\everylist = {\listindentsize = 1in \spacing{1}} +\endtt +would do the job. + +The list commands can be used as the basis of specialized lists such as +citation references. + +Things to note about lists are +\beginlist +\li $\bullet$ There are three levels of lists, {\it lists}, + {\it sublists}, and {\it subsublists}. +\beginsublist +\eightpoint +\li $\circ$ A list, sublist, subsublist starts a group. + The group localizes the effect of changes. +\li $\clubsuit$ List items are indicated in the same way at + all levels. +\li $\diamond$ Display mathematics is acceptable within lists. + This is an example. + $$ + \oint_{\vert z\vert < 1} {e^{-kz} \over (1-z)} dz + $$ +It can also have a second paragraph that is a part of this +item. This paragraph could even have a narrowed portion +\beginnarrowtext .5in +\tenpoint \it \noindent +Wise men lay up knowledge but the babbling +of a fool brings ruin near. +\bf Proverbs Ch.~10, Vs.~14 +\endnarrowtext +\li $\bullet$ It is possible to tighten the list here + but it would not do much good as this is the last + subitem. +\endsublist +\li NOTE: The {\it Note:} herald is so large that it sticks {\bf into} + the actual list item. This can be seen on this line. +\li $\star$ This is a more normal size herald. +\endlist +\ejectpage + +The previous list is actually produced by +\begintt +\beginlist +\li $\bullet$ There are three levels of lists, {\it lists}, + {\it sublists}, and {\it subsublists}. +\beginsublist +\eightpoint +\li $\circ$ A list, sublist, subsublist starts a group. + The group localizes the effect of changes. +\li $\clubsuit$ List items are indicated in the same way at + all levels. +\li $\diamond$ Display mathematics is acceptable within lists. + This is an example. + $$ + \oint_{\vert z\vert < 1} {e^{-kz} \over (1-z)} dz + $$ +It can also have a second paragraph that is a part of this +item. This paragraph could even have a narrowed portion +\beginnarrowtext .5in +\tenpoint \it \noindent +Wise men lay up knowledge but the babbling +of a fool brings ruin near. +\bf Proverbs Ch.~10, Vs.~14 +\endnarrowtext +\li $\bullet$ It is possible to tighten the list here + but it would not do much good as this is the last + subitem. +\endsublist +\li NOTE: The {\it Note:} herald is so large that it sticks + {\bf into} the actual list item. This can be seen + on this line. +\li $\star$ This is a more normal size herald. +\endlist +\endtt +The command |\samplemark{<list item mark>}| can be used to +create a list where the |\listitemmarksize| is one |\enspace| larger than the +sample mark and the |\listindent|, |\sublistindent|, and +|\subsublistindent| +{\bf inside} the same group are modified accordingly. + + +\shead{makcomforms}{Command Forms -- Making Lists} +\beginblockmode +\ext\@|\beginlist \bl| +\nbr +This begins a list, starts a group, +and should always have a matching |\endlist|. +|\bl| is an approved abbreviation of |\beginlist|. + + +\mbr\ext\@|\beginsublist \bsl| +\nbr +This begins a sublist, starts a group, +and should always have a matching |\endsublist|. +A sublist may exist without a surrounding list. +|\bsl| is an approved abbreviation of |\beginsublist|. + + +\mbr\ext\@|\beginsubsublist \bssl| +\nbr +This begins a subsublist, starts a group, +and should always have a matching |\endsubsublist|. +A subsublist may exist without a surrounding list or sublist. +|\bssl| is an approved abbreviation of |\beginsubsublist|. + + +\mbr\ext\@|\endlist \el| +\nbr +These commands terminate a list and its associated group. +|\el| is an approved abbreviation for |\endlist| + +\mbr\ext\@|\endsublist \esl| +\nbr +These commands terminate a sublist and its associated group. +|\esl| is an approved abbreviation for |\endsublist| + +\mbr\ext\@|\endsubsublist \essl| +\nbr +These commands terminate a subsublist and its associated group. +|\essl| is an approved abbreviation for |\endsubsublist| + + +\mbr +\ext\@|\everylist [=] {<token list>}| +\nbr +The |<token list>| is inserted in the front of the list by the |\beginlist|. +It is inserted soon enough to affect the list item parameters, and all +parameters of the sublists and subsublists but too late to affect the prelist +spacing. + +\mbr +\ext\@|\everysublist [=] {<token list>}| +\nbr +The |<token list>| is inserted in the front of the sublist by the +|\beginsublist|. +It is inserted soon enough to affect the list item parameters, and all +parameters of the subsublists but too late to affect the presublist +spacing. + +\mbr +\ext\@|\everysubsublist [=] {<token list>}| +\nbr +The |<token list>| is inserted before the subsublist by the +|\beginsubsublist|. +It is inserted soon enough to affect the list item parameters +but too late to affect the presubsublist +spacing. + + +\mbr\pla\@|\item| +\nbr +This is similar to |\listitem| but does not need to be surrounded by a list. +It always indents by the |\parindent|. + +\mbr\pla\@|\itemitem| +\nbr +This is similar to |\listitem| but does not need to be surrounded by a list. +It always indents by twice the |\parindent|. + + +\mbr\ext\@|\listitem <listitem mark>|\]| \li| +\nbr +This is the normal way to designate a list item. The |<listitem mark>| is the first +string of characters after the |\listitem| and is terminated by blank, \]. +The |<listitem mark>| is placed to the left of the first character in the +list item with a total width of |\listitemmarksize|. At least one |\enspace| +exists between the end of the |<listitem mark>| and the first character in +the list item. If the |<listitem mark>| is larger than the space allotted, It +will stick {\bf into} the list item. +A list item continues until the list ends or a new list item begins. + +\mbr\ext\@|\loosenlist| +\nbr +This command {\bf loosens} the spacing between list items in the present and +all enclosed lists by a factor of 4 = 1/.25. It will undo a single +|\tightenlist| at the same level. +\mbr +\ext\@|\samplemark{<listitem mark>}| +\nbr +This command is used to create lists with marks that may be of quite different +size than that assumed by the defaults. All marks and indents contained in +the same list and sublists will be changed. This command {\bf must} be used +before the first list item to affect the present list. +The |\listitemmarksize| is one |\enspace| larger than the +sample mark and the |\listindent|, |\sublistindent|, and |\subsublistindent| +{\bf inside} the same group are modified accordingly. + +\mbr\ext\@|\tightenlist| +\nbr +This command {\bf tightens} the spacing between list items in the present and +all enclosed lists by a factor of .25 = 1/4. It will undo a single +|\loosenlist| at the same level. +\endblockmode + +\shead{listparms}{Command Forms -- List Spacing Parameters} +All of the parameters are set via assignments such as +|\...skip [=] <glue, dimen>|. +Their use should be obvious from their names. Note that |\pr...| is the skip +that {\it precedes} and |\po...| is {\it post} the |list| in question. +For example, |\prsublistskip| is the skip that occurs before the start of a +|sublist| and |\posublistskip| that which follows. Where a |list|, |sublist|, +and/or |subsublist| start or finish at the same place, the maximum skip is +chosen. +\medbreak +\begintwocolumn +\ext\@|\listindent [=] <dimen>| +\ext\@|\listitemmarksize [=] <dimen>| +\ext\@|\listitemskip [=] <glue>| +\ext\@|\polistskip [=] <glue>| +\ext\@|\posublistskip [=] <glue>| +\ext\@|\posubsublistskip [=] <glue>| +\ext\@|\prlistskip [=] <glue>| +\ext\@|\prsublistskip [=] <glue>| +\ext\@|\prsubsublistskip [=] <glue>| +\ext\@|\sublistindent [=] <dimen>| +\ext\@|\subsublistindent [=] <dimen>| +\ext\@|\sublistitemskip [=] <glue>| +\ext\@|\subsublistitemskip [=] <glue>| +\endthreecolumn +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thmateq.tex b/macros/inrstex/inrsdoc/thmateq.tex new file mode 100644 index 0000000000..e894a666e9 --- /dev/null +++ b/macros/inrstex/inrsdoc/thmateq.tex @@ -0,0 +1,480 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{mateq} + +\def\cqu{\cquote{Having got our equations, we must proceed to +carry out such operatins as we have neglected, taking care never to multiply +when we can divide}{Rules for the Direction of the Mind, Rule XX, +Ren\'e~Descartes (1596-1650)}} + +\chapterhead{mateq}{MATHEMATICS:\cr EQUATION\cr SETUP} +\tex\ makes the typesetting of the most difficult expressions relatively +easy. This chapter lists and shows examples of the special forms supplied by +{\it plain}. For the finer points of mathematic equation setup, the reader is +referred to the \texbook~[\cite{[Knut84]}]. For more advanced mathematics macro +and accenting capabilities, the AMS\tex~[\cite{[Amst84]}] package is +recommended. + +\intex\ supplies all that is in {\it plain} plus +\beginlist +\li $\bullet$ an autonumbering feature, using |\aneq|, |\aneqtag|, or |\autoeqnum| +for equations, +\li $\bullet$ a |\math| and |\displaymath| +for those who don't like |$|, +\li $\bullet$ a +|\leftequationnumbering| and |\rightequationnumbering| that will magically +shift all the equation numbers from the side specified by the form, +\li $\bullet$ and a |\mathopen| command that will cause aligned equations to increase +their spacing. +\endlist + + +The two basic commands |\math| and |\displaymath| can be used to invoke either +scriptstyle or displaystyle mathematics in running text. For instance +|\math{\sum_0^n}| gives \math{\sum_0^n} while |\displaymath{\sum_0^n}| gives +\displaymath{\sum_0^n}. + +In addition there is a tagging mechanism that enables the +symbolic referencing of equations, both forward and backward. + + + +\shead{eqcoms}{Command List} +\begintwocolumn +\hfuzz = 20pt %temporary +\pla|\abovewithdelims| +\pla|\atop| +\pla|\atopwithdelims| +\ext|\aneq \aneqtag| +\ext|\autoeqnum| +\pla|\bordermatrix| +\pla|\cases| +\pla|\cdot| +\pla|\cdots| +\pla|\choose| +\pla|\ddots| +\ext|\displaymath| +\pla|\eqalign| +\pla|\eqalignno| +\pla|\eqno| +\pla|\ldots| +\ext|\leftequationnumbering| +\pla|\leqno| +\pla|\leqalignno| +\ext|\math| +\ext|\mathopen| +\pla|\matrix| +\pri|\noalign| +\pla|\openup| +\pla|\over| +\pla|\overbrace| +\pla|\overline| +\pla|\overwithdelims| +\pla|\phantom| +\pla|\pmatrix| +\ext|\rightequationnumbering| +\pla|\smash| +\ext|\sphantom| +\pla|\sqrt| +\pla|\underbrace| +\pla|\underline| +\pla|\vphantom| +\endthreecolumn + +\shead{eqbasics}{Mathematic Equation Basics} +To put some mathematics, either symbols or expressions, in running text you +must surround them by a pair of single |$| like |$<expression>$|. An example +is |$x^y$| gives $x^y$. Mathematics in running text will be broken at the end +of line at spaces in the expression. To prevent a break but preserve a space +insert the tie |~| into the expression. Thus |$x~=~y+1$|, giving $x~=~y+1$ +will prevent a break around the $=$ sign. To obtain display equations use +form +\begintt +$$ +<display mathematics forms> +$$ +\endtt +There should be {\bf no} blank lines or |\par| within +|<display mathematics>|. Mysterious errors will result. To have a +display expression end a sentence, the last character before the equation +number should be a period. + +Superscripting and subscripting can occur only in mathematics mode. The |\@| +is the superscript character and |_| is the subscript character. The braces +|{<super,subscript characters>}| are necessary to tell \tex\ what material +goes where. The example below shows the result of different use of braces. + +$$ +2^xyz_uvw : 2^{xyz}_{uvw} : 2^{xyz_uvw} : 2^{xyz_{uvw}}. +$$ +is given by +\begintt +$$ +2^xyz_uvw : 2^{xyz}_{uvw} : 2^{xyz_uvw} : 2^{xyz_{uvw}}. +$$ +\endtt + +Finally, in commands that produce alignments, the |&| is used to separate +items and the |\cr| to end a line. Examples of their use will be found in +such commands as |\matrix| and |\eqalign|. Equation numbers are put in using +either the automatic numbering commands |\aneq|, |\aneqtag|, |\autoeqnum|, or +the normal manual numbering forms |\eqno| for right hand numbers or |\leqno| +for lefthand numbers. + + + + +\shead{mateqcomforms}{Command Forms} +This is a list of commands that are given in {\it plain}, along with some +examples and the form of the parameters for their use. +\beginblockmode + +\mbr +\pla\@|\above.. \atop.. \over.. functions + {<parm1> \atop <parm2>} + {<parm1> \choose <parm2>} + {<parm1> \over <parm2>} + {<parm1> \atopwithdelims<left delim><right delim> <parm2>} + {<parm1> \overwithdelims<left delim><right delim> <parm2>} + {<parm1> \abovewithdelims<left delim><right delim> + <bar thickness> <parm2>}| +\nbr +These forms are all used for putting |<parm1>| on top of |<parm2>| as might +happen in a fraction. The difference between them is that |\atop| puts no +line or bar between the |<parms>| while |\over| does, and |\choose| puts in +no bar but does enclose the |<parms>| in large parens as is normally done in +a binomial coefficient. The forms |\...delims| allow for the specifcation of +delimiters around the |<parms>| that may be different than parens. Finally +the |<bar thickness>| in the |\abovewithdelims| allows for the thickness of +the line or bar between the |<parms>| to be a specified |<dimen>|. As an +example +$$ +{37 \over 45} : {n \atop \alpha} : {10 \choose r} +: {f(x) \overwithdelims\{\} g(y)} +: {\alpha \atopwithdelims][ \beta} +: {209 \abovewithdelims\langle\rangle 2pt h(y)} +$$ +is given by +\begintt +$$ +{37 \over 45} : {n \atop \alpha} : {10 \choose r} +: {f(x) \overwithdelims\{\} g(y)} +: {\alpha \atopwithdelims][ \beta} +: {209 \abovewithdelims\langle\rangle 2pt h(y)} +$$ +\endtt +\mbr +\ext|\aneq \aneqtag{<tag>}| +\nbr +\ext|\autoeqnum{<tag>}| +\nbr +When |autonumbering| is on these commands will automatically number +equations. |\aneq| and |\aneqtag{<tag>}| inserts a bracketed equation number +in the correct place in the equation depending on whether it is an +|\eqalign|, |\eqalignno|, or |\leqalignno|. The |\autonumeq{<tag>}| inserts a +number without brackets. The |<tag>| allows for references to the equation. + +If |autonumbering| is off, the |\aneq| results in nothing and the two forms +with |<tag>| insert the |<tag>| --- without the |< >| of course. + +For example, |autonumbering| is on, +$$ +x \equiv y \aneq +$$ +is given by +\begintt +$$ +x \equiv y \aneq +$$ +\endtt +and +$$ +\eqalignno{ f(x)&\approx K x^{-3/2} & (\autoeqnum{eqfx}.a) \cr + &\approx 0 \qquad x \gg 0 & (\ref{eqfx}.b) \cr} +$$ +is given by +\begintt +$$ +\eqalignno{ f(x)&\approx K x^{-3/2} & (\autoeqnum{eqfx}.a) \cr + &\approx 0 \qquad x \gg 0 & (\ref{eqfx}.b) \cr} +$$ +\endtt +The |eqfx| is the equation tag. However, the +tag for |eqfx| does not make it to the margin! A better way to do this, and +one that guarantees that the tag for |eqfx| makes it to the margin is as +follows: +\begintt +{\silenttrue \autoeqnum{eqfx}} +$$ +\eqalignno{ f(x)&\approx K x^{-3/2} & (\ref{eqfx}.a) \cr + &\approx 0 \qquad x \gg 0 & (\ref{eqfx}.b) \cr} +$$ +\endtt +The \@|\silenttrue| turns on a switch in |\autoeqnum{<...>}| that prevents it +from writing out its value. +In this case, the |\autoeqnum{<...>}| is in vertical mode +so that the tag for |eqfx| will now make it to the margin. +The command |\ref{eqfx}| will produce the +(equation) number corresponding to |eqfx|. This construction allows +both lines of the equation to have the same main equation number. + +\mbr +\pla\@|\bordermatrix{<top 0>&<top 1>&<top 2>&...&<top n>\cr + <side 1>&<first row>\cr + ... + <side m>&<last row>\cr}| +\nbr +The |\bordermatrix| places parens around the |<rows>| in the same way as +|\pmatrix| and then places the |<top i>| items above and the |<side i>| items +to the left hand side outside the parens. Thus +$$ +\bordermatrix{ R\backslash C& Col 1 & Col 2 & Col 3 \cr + Row 1 & a & b & c \cr + Row 2 &\sum_{\ell=1}^n & & \alpha \cr + Row 3 & v=0 &\gamma & 1000.0\cr} +$$ +is given by +\begintt +$$ +\bordermatrix{ R\backslash C& Col 1 & Col 2 & Col 3 \cr + Row 1 & a & b & c \cr + Row 2 &\sum_{\ell=1}^n & & \alpha \cr + Row 3 & v=0 &\gamma & 1000.0\cr} +$$ +\endtt + +\mbr +\pla\@|\cases{<first math>&<first condition>\cr + ... + <last math>&<last condition>\cr}| +\nbr +This allows for a very simple way of stacking a set of possibilities in an +equation and putting a large brace on the left hand side. The |<...math>| is +the mathematics, and is in display math mode, and the |<...condition>| +is the condition and is in internal horizontal mode \dots\ not +math mode. Thus +$$ +G(x) = \cases{\vert x\vert & for $x<0$ \cr + x^2 & for $x\ge 0$ \cr} +$$ +is given by +\begintt +$$ +G(x) = \cases{\vert x\vert & for $x<0$ \cr + x^2 & for $x\ge 0$ \cr} +$$ +\endtt +\mbr +\pla\@|\eqalign ... + \eqalign{ <left first row> &<right first row>\cr + ... + <left last row> &<right last row>\cr} + \eqalignno{<left first row> &<right first row>&<first eq.no>\cr + ... + <left last row> &<right last row>&<last eq.no>\cr} + \leqalignno{<left first row>&<right first row>&<first eq.no>\cr + ... + <left last row> &<right last row>&<last eq.no>\cr}| +\nbr +All three of these commands allow for a list of equations, or expressions to +be aligned on a {\bf single} point within the expression. This is usually a +relation such as $=$ or $\gg$ although any point is possible. The +|\eqalignno| and |\leqalignno| have an extra field at the end of each row for +an equation number, which will be printed on the right for the former and on +the left for the latter. Note that in both cases the actual |<eq.no>| field +appears on the right. Any of the |<left ...>| or |<right ...>| or +|<... eq.no.>| may be omitted. +A major difference between |\eqalign| and |\eqalignno| is that the latter +always is as wide as the page while the former is its natural width. +|\openup<dimen>|, immediately after the opening |$$|, +is used to increase the spacing between the lines of an +|\eqalign| or its relatives by |<dimen>|. A font relative +|<unit of measure>| such as |ex| is recommended with |1ex| to start. +To obtain a lefthand equation number with +|\eqalign|, or ordinary display mathematics, use |\leqno|. + +\intex\ supplies automatic equation numbering and ways of having a document +change from left to right hand equation numbering or vice versa. See +|\lefhandequationnumbering| and |\righthandequationnumbering|. +For automatic equation numbering use |\autoeqnum{tag}|, |\aneq| and +|\aneqtag|. + +An example of an |\eqalign| is +$$ +\eqalign{F(x) &=\int_{-\infty}^x H(y)dy \cr + &=x^{3/2} \cr + G(z) &\ll 1 \cr} + \eqno (12) +$$ +which is given by +\begintt +$$ +\eqalign{F(x) &=\int_{-\infty}^x H(y)dy \cr + &=x^{3/2} \cr + G(z) &\ll 1 \cr} + \eqno (12) +$$ +\endtt +Notice the equation number is centered on the right hand side. An example +for |\eqalignno| is +$$ +\openup 1ex +\eqalignno{F(x) &=\int_{-\infty}^x H(y)dy \cr + &=x^{3/2} &(2.i)\cr +\noalign{and} + G(z) &\ll 1 &(2.ii)\cr} +$$ +is given by +\begintt +$$ +\openup 1ex +\eqalignno{F(x) &=\int_{-\infty}^x H(y)dy \cr + &=x^{3/2} &(2.i)\cr +\noalign{and} + G(z) &\ll 1 &(2.ii)\cr} +$$ +\endtt +The use of |\noalign {<text>}| places the |and| at the margin and maintains +the alignment of the $=$ and $\ll$. This technique will not work with +|\eqalign| because it does not necessarily take up the full width of the page. +Note again the placement of the equation numbers. + +\mbr +\pri\@|\eqno <reference> \leqno <reference>| +\nbr +|\eqno| and |\leqno| are used to put an equation |<reference>|, usually a +number, at the right or left hand side, respectively, of an equation. It can +be used with any display mathematics except |\[l]eqalignno|. + +\mbr +\ext\@|\leftequationnumbering \rightequationnumbering| +\nbr +These commands when used with the auto equation numbering commands |\aneq|, +|\aneqtag{<tag>}| or |\autoeqnum{<tag>}| will result in completely left or +right hand equation numbers whether |\eqalignno| or +|\leqalignno| is used. However |\eqno| and |\leqno| still result in right and +left hand equation numbers respectively.\footnote{\dagger}{These defaults are +subject to negotiation and change. It is quite easy to make the equation +sides independent of |\eqno| and |\leqno|.} + + + +\mbr +\pri\@|\noalign {<text>}| +\nbr +This is used in mathematics to insert text that you want at the left hand +margin between lines in an |\eqalignno| or |\leqalignno|. See the +|\eqalignno| example. + +\mbr +\pla\@|\openup <dimen>| +\nbr +This is used in display mathematics |$$\openup ... $$| to increase spacing +between lines in an |\eqalign|, |\eqalignno|, or |\leqalignno|. The dimension +should be |<decimal number>ex| for font size independence. It does not work +with |\cases| or |\matrix|. + +\mbr +\pri\@|\over ... \under ... + \overline{<math>} \underline{<math>} + \overbrace{<math>} \underbrace{<math>}| +\nbr +These commands put lines and braces on top or under the |<math>| expressions. +Thus +$$ +\overline{\alpha\beta\gamma} : \underline{2^x_y} : +\underbrace{\overbrace{H(x)=u+g(x,y)}} +$$ +is given by +\begintt +$$ +\overline{\alpha\beta\gamma} : \underline{2^x_y} : +\underbrace{\overbrace{H(x)=u+g(x,y)}} +$$ +\endtt + + +\mbr +\pla\@|\dots ... \cdot \cdots \ldots \ddots| +\nbr +These produce dots of various flavours. Thus +$$ +[\cdot] : [\cdots] : [\ldots] : [\ddots] +$$ +are given by +\begintt +$$ +[\cdot] : [\cdots] : [\ldots] : [\ddots] +$$ +\endtt +\mbr +\ext\@|\mathopen{<dimen or glue>}| +\nbr +This will cause all of the horizontal alignments, such as |\eqalign|, +|\eqalignno|, |\halign|, |\cases|, |\matrix|, |\bordermatrix|, |\pmatrix|, +and the table macros within the {\bf group} to be spread apart by +|<dimen or glue>|. Its effect on tables with rules or lines is probably +undesirable. {\bf It should be used only within a group such as that implied +by |$$ ... $$|.} + +\mbr + + +\mbr +\pla\@|\matrix{<entry 11>&<entry 12>&...&<entry 1n>\cr + <second row>\cr + ... + <last row> \cr} + \pmatrix{<several rows>\cr}| +\nbr +The |\matrix| entry allows for the production of matrices or arrays with an +arbitrary number of rows and columns. Thus +$$ +\left\{ + \matrix{ a & b & c \cr + \sum_{\ell=1}^n & & \alpha \cr + v=0 &\gamma & 1000.0\cr} +\right\} +$$ +is given by +\begintt +$$ +\left\{ + \matrix{ a & b & c \cr + \sum_{\ell=1}^n & & \alpha \cr + v=0 &\gamma & 1000.0\cr} +\right\} +$$ +\endtt +Note that the braces |{..}| were in addition to the rows generated by +|\matrix|. |\pmatrix| is identical to |\left( \matrix{<rows>\cr} \right)|. +This just saves the placement of the braces. + + +\mbr +\pla\@|\phantom{<math>} \vphantom{<math>} \sphantom{<hlist>}| +\nbr +|\phantom| builds a box the same size as |<math>| but prints a blank. +|\vphantom| is a box of the same height and depth as |<math>| but of zero +width \dots\ a custom made strut. |\sphantom| is used when +strange expansions such as messages create errors using a |\vphantom|. +All three are used for controlling spacing. + +\mbr +\pla\@|\sqrt{<math>}| +\nbr +This puts a square root sign around a |<math>| expression. Thus |$\sqrt{2}$| +gives $\sqrt{2}$. + +\mbr +\pla\@|\smash{<math>}| +\nbr +This leaves the |<math>| expression in a box of height and depth zero. It is +useful for certain kinds of superposition. + +\endblockmode +\ejectpage + + + +\done diff --git a/macros/inrstex/inrsdoc/thmatsym.tex b/macros/inrstex/inrsdoc/thmatsym.tex new file mode 100644 index 0000000000..a2e575d2c1 --- /dev/null +++ b/macros/inrstex/inrsdoc/thmatsym.tex @@ -0,0 +1,419 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{matsym} + + +\def\cqu{\cquote{{\leftskip=0ptplus1fill\def\\% +{\endgraf}Yet what are all such gaieties to me\\Whose thoughts are full of +indices and surds?\\$x^2+7x+53$\\ $\displaystyle={11\over3}$.\\ }}{ +Four~Riddles, Lewis~Carroll (1832-1898)}} + + +\chapterhead{matsym}{MATHEMATICS:\cr SYMBOLS\cr FONTS} +\tex\ supplies a vast array of mathematical symbols, both in fixed and +extensible forms. For the most part, the symbols mentioned are available only +in mathematics mode. Other symbols that are useful in +regular text mode have been listed in Section \ref{specialtextsymbols} +This chapter describes the symbols available. These +symbols can be used in any font size that is on the system. Although it is +possible to build your own symbols from simpler ones, it takes a little care +to make sure that they are the correct size for all possible uses. + +\shead{mathfonts}{Ordinary Fonts in Mathematics} +The mathematics symbol font contains characters that are very similar to +to text italic font. The major difference is the spacing. {\it For instance} is +in ordinary italic but $For\ instance$, is in math italic and was invoked with +|$For\|\]|instance$|, where |\|\] forces the space. +However, it is an easy matter to put +roman or {\bf bold} letters in mathematics by just using +|$x={\bf the\ spot}$| to obtain $x={\bf the\ spot}$. The real fun +comes with something like the following: + +\def\xbf{{\vec{\bf x}}} +$$ \xbf = 2^{\xbf^\xbf} $$ +which is given by +\begintt +\def\xbf{{\vec{\bf x}}} +$$ +\xbf = 2^{\xbf^\xbf} +$$ +\endtt +Note that the bold face is scaled correctly up into the superscripts. The +extra $\{\ldots\}$ are necessary so that the third |\xbf| will look like a +single token to the second |\@|. + +\shead{mathtypes}{Mathematical Symbol Types} +Some symbols, even though they may look the same are given different command +sequences in \tex. The reason for this is that their use demands different +spacing and line breaking when in mathematics mode. +For this reason there are four mathematics symbols for a vertical +bar $\mid$, namely |\mid|, |\left\vert|, |\right\vert|, and |\vert|. The +first is a {\it relation} -- called {\it Rel} -- like the $=$; the second +and third are opening and +closing brackets like ( and ) --- \tex\ calls these {\it openings} and {\it +closings}; and the last is an {\it ordinary} --- called {\it Ord} --- symbol +like $\infty$. Two other types are {\it large operators} --- called {\it Op} +--- like $\sum$ and {\it binary operators} --- called {\it Bin} --- like $+$. +Finally there is the {\it punctuation} --- called {\it Punct} --- like the +period. + +\shead{greekletters}{Greek Letters} +All the Greek letters are of type {\it Ord}. They are all assumed to be in +mathematics mode. + +\bshortcomlist +\@|\alpha {\rm A} A|&$\alpha$ A $A$ \cr +\@|\beta {\rm B} B|&$\beta$ B $B$\cr +\@|\gamma \Gamma {\mit\Gamma}|&$\gamma$ $\Gamma$ ${\mit\Gamma}$ \cr +\@|\delta \Delta {\mit\Delta} |&$\delta$ $\Delta$ ${\mit\Delta}$ \cr +\@|\epsilon {\rm E} E|&$\epsilon$ E $E$ \cr +\@|\varepsilon|&$\varepsilon$\cr +\@|\zeta {\rm Z} Z|&$\zeta$ Z $Z$ \cr +\@|\eta {\rm H} H|&$\eta$ H $H$ \cr +\@|\theta \Theta {\mit\Theta} |&$\theta$ $\Theta$ $\mit\Theta$ \cr +\@|\vartheta|&$\vartheta$ \cr +\@|\iota {\rm I} I|&$\iota$ I $I$ \cr +\@|\kappa {\rm K} K |&$\kappa$ K $K$ \cr +\@|\lambda \Lambda {\mit\Lambda} |&$\lambda$ $\Lambda$ $\mit\Lambda$ \cr +\@|\mu {\rm M} M |&$\mu$ M $M$ \cr +\@|\nu {\rm N} N|&$\nu$ N $N$ \cr +\@|\xi \Xi {\mit\Xi} |&$\xi$ $\Xi$ $\mit\Xi$ \cr + |o {\rm O} O|&$o$ O $O$ \cr +\@|\pi \Pi {\mit\Pi}|&$\pi$ $\Pi$ $\mit\Pi$ \cr +\@|\varpi|&$\varpi$\cr +\@|\rho {\rm R} R|&$\rho$ R $R$\cr +\@|\sigma \Sigma {\mit\Sigma}|&$\sigma$ $\Sigma$ $\mit\Sigma$ \cr +\@|\tau {\rm T} T|&$\tau$ T $T$ \cr +\@|\upsilon \Upsilon {\mit\Upsilon}|&$\upsilon$ $\Upsilon$ $\mit\Upsilon$ \cr +\@|\phi \Phi {\mit\Phi}|&$\phi$ $\Phi$ $\mit\Phi$ \cr +\@|\varphi|&$\varphi$ \cr +\@|\chi {\rm X} X|&$\chi$ X $X$ \cr +\@|\psi \Psi {\mit\Psi}|&$\psi$ $\Psi$ $\mit\Psi$\cr +\@|\omega \Omega {\mit\Omega}|&$\omega$ $\Omega$ $\mit\Omega$\cr +\eshortcomlist + +\shead{caligraphic}{Calligraphic Capitals} +These look like ${\cal A} \ldots{\cal Z}$ and are obtained in math mode by +the construction |{\cal <capital letter>}| while in math +mode. + +\shead{opsrels}{Ords, Operators, and Relations} +The following is a composite list of the symbols of +type ordinary, relation and operator supplied by +{\it plain}. The type is specified along with the symbol. The meaning of the +type abbreviations has been given in Section \ref{mathtypes}. +\medbreak +\beginmulticolumnformat +\hfuzz=20pt +\parindent=0pt +\def\bin{\leavevmode\hbox to 30pt{\it Bin\hss}} +\def\ord{\leavevmode\hbox to 30pt{\it Ord\hss}} +\def\rel{\leavevmode\hbox to 30pt{\it Rel\hss}} +\def\op{\leavevmode\hbox to 30pt{\it Op\hss}} +\intercolumnsep = {\hskip 3em} +\numberofcolumns = 2 +\obeylines +\bin\hbox to 20pt{$+$\quad\hss}\@|+| +\bin\hbox to 20pt{$-$\quad\hss}\@|-| +\rel\hbox to 20pt{$=$\quad\hss}\@|=| +\rel\hbox to 20pt{$\not=$\quad\hss}\@|\not=| |\ne| |\neq| +\rel\hbox to 20pt{$<$\quad\hss}\@|<| +\rel\hbox to 20pt{$\not<$\quad\hss}\@|\not<| +\rel\hbox to 20pt{$>$\quad\hss}\@|>| +\rel\hbox to 20pt{$\not>$\quad\hss}\@|\not>| +\ord\hbox to 20pt{$\aleph$\quad\hss}\@|\aleph| +\ord\hbox to 20pt{$\amalg$\quad\hss}\@|\amalg| +\ord\hbox to 20pt{$\angle$\quad\hss}\@|\angle| +\rel\hbox to 20pt{$\approx$\quad\hss}\@|\approx| +\rel\hbox to 20pt{$\not\approx$\quad\hss}\@|\not\approx| +\bin\hbox to 20pt{$\ast$\quad\hss}\@|\ast| or * +\rel\hbox to 20pt{$\asymp$\quad\hss}\@|\asymp| +\ord\hbox to 20pt{$\backslash$\quad\hss}\@|\backslash| +\op\hbox to 20pt{$\bigcap$\quad\hss}\@|\bigcap| +\bin\hbox to 20pt{$\bigcirc$\quad\hss}\@|\bigcirc| +\op\hbox to 20pt{$\bigcup$\quad\hss}\@|\bigcup| +\op\hbox to 20pt{$\bigodot$\quad\hss}\@|\bigodot| +\op\hbox to 20pt{$\bigoplus$\quad\hss}\@|\bigoplus| +\op\hbox to 20pt{$\bigotimes$\quad\hss}\@|\bigotimes| +\op\hbox to 20pt{$\bigsqcup$\quad\hss}\@|\bigsqcup| +\bin\hbox to 20pt{$\bigtriangledown$\quad\hss}\@|\bigtriangledown| +\bin\hbox to 20pt{$\bigtriangleup$\quad\hss}\@|\bigtriangleup| +\op\hbox to 20pt{$\biguplus$\quad\hss}\@|\biguplus| +\op\hbox to 20pt{$\bigvee$\quad\hss}\@|\bigvee| +\op\hbox to 20pt{$\bigwedge$\quad\hss}\@|\bigwedge| +\ord\hbox to 20pt{$\bot$\quad\hss}\@|\bot| +\rel\hbox to 20pt{$\bowtie$\quad\hss}\@|\bowtie| +\bin\hbox to 20pt{$\bullet$\quad\hss}\@|\bullet| +\bin\hbox to 20pt{$\cap$\quad\hss}\@|\cap| +\bin\hbox to 20pt{$\cdot$\quad\hss}\@|\cdot| +\bin\hbox to 20pt{$\circ$\quad\hss}\@|\circ| +\ord\hbox to 20pt{$\clubsuit$\quad\hss}\@|\clubsuit| +\rel\hbox to 20pt{$\cong$\quad\hss}\@|\cong| +\rel\hbox to 20pt{$\not\cong$\quad\hss}\@|\not\cong| +\op\hbox to 20pt{$\coprod$\quad\hss}\@|\coprod| +\bin\hbox to 20pt{$\cup$\quad\hss}\@|\cup| +\bin\hbox to 20pt{$\dagger$\quad\hss}\@|\dagger| +\rel\hbox to 20pt{$\dashv$\quad\hss}\@|\dashv| +\bin\hbox to 20pt{$\ddagger$\quad\hss}\@|\ddagger| +\ord\hbox to 20pt{$\diamondsuit$\quad\hss}\@|\diamondsuit| +\balancecolumnsize = 470pt +\bin\hbox to 20pt{$\diamond$\quad\hss}\@|\diamond| +\bin\hbox to 20pt{$\div$\quad\hss}\@|\div| +\rel\hbox to 20pt{$\doteq$\quad\hss}\@|\doteq| +\rel\hbox to 20pt{$\Downarrow$\quad\hss}\@|\Downarrow| +\rel\hbox to 20pt{$\downarrow$\quad\hss}\@|\downarrow| +\ord\hbox to 20pt{$\ell$\quad\hss}\@|\ell| +\ord\hbox to 20pt{$\emptyset$\quad\hss}\@|\emptyset| +\rel\hbox to 20pt{$\equiv$\quad\hss}\@|\equiv| +\rel\hbox to 20pt{$\not\equiv$\quad\hss}\@|\not\equiv| +\ord\hbox to 20pt{$\exists$\quad\hss}\@|\exists| +\ord\hbox to 20pt{$\flat$\quad\hss}\@|\flat| +\ord\hbox to 20pt{$\forall$\quad\hss}\@|\forall| +\ord\hbox to 20pt{$\frown$\quad\hss}\@|\frown| +\rel\hbox to 20pt{$\geq$\quad\hss}\@|\ge| \@|\geq| +\rel\hbox to 20pt{$\not\geq$\quad\hss}\@|\not\geq| +\rel\hbox to 20pt{$\gg$\quad\hss}\@|\gg| +\rel\hbox to 20pt{$\not\gg$\quad\hss}\@|\not\gg| +\ord\hbox to 20pt{$\hbar$\quad\hss}\@|\hbar| +\ord\hbox to 20pt{$\heartsuit$\quad\hss}\@|\heartsuit| +\rel\hbox to 20pt{$\hookleftarrow$\quad\hss}\@|\hookleftarrow| +\rel\hbox to 20pt{$\hookrightarrow$\quad\hss}\@|\hookrightarrow| +\ord\hbox to 20pt{$\Im$\quad\hss}\@|\Im| +\ord\hbox to 20pt{$\imath$\quad\hss}\@|\imath| +\ord\hbox to 20pt{$\infty$\quad\hss}\@|\infty| +\op\hbox to 20pt{$\int$\quad\hss}\@|\int| +\rel\hbox to 20pt{$\in$\quad\hss}\@|\in| +\rel\hbox to 20pt{$\not\in$\quad\hss}\@|\not\in| +\ord\hbox to 20pt{$\jmath$\quad\hss}\@|\jmath| +\rel\hbox to 20pt{$\Leftarrow$\quad\hss}\@|\Leftarrow| +\rel\hbox to 20pt{$\leftarrow$\quad\hss}\@|\leftarrow| +\rel\hbox to 20pt{$\leftharpoondown$\quad\hss}\@|\leftharpoondown| +\rel\hbox to 20pt{$\leftharpoonup$\quad\hss}\@|\leftharpoonup| +\rel\hbox to 20pt{$\Leftrightarrow$\quad\hss}\@|\Leftrightarrow| +\rel\hbox to 20pt{$\leftrightarrow$\quad\hss}\@|\leftrightarrow| +\rel\hbox to 20pt{$\leq$\quad\hss}\@|\le| \@|\leq| +\rel\hbox to 20pt{$\not\leq$\quad\hss}\@|\not\leq| +\rel\hbox to 20pt{$\ll$\quad\hss}\@|\ll| +\rel\hbox to 20pt{$\not\ll$\quad\hss}\@|\not\ll| +\rel\hbox to 20pt{$\Longleftarrow$\quad\hss}\@|\Longleftarrow| +\rel\hbox to 20pt{$\longleftarrow$\quad\hss}\@|\longleftarrow| +\rel\hbox to 20pt{$\Longleftrightarrow$\quad\hss}\@|\Longleftrightarrow| +\rel\hbox to 20pt{$\longleftrightarrow$\quad\hss}\@|\longleftrightarrow| +\rel\hbox to 20pt{$\longmapsto$\quad\hss}\@|\longmapsto| +\rel\hbox to 20pt{$\Longrightarrow$\quad\hss}\@|\Longrightarrow| +\rel\hbox to 20pt{$\longrightarrow$\quad\hss}\@|\longrightarrow| +\rel\hbox to 20pt{$\mapsto$\quad\hss}\@|\mapsto| +\rel\hbox to 20pt{$\mid$\quad\hss}\@|\mid| +\rel\hbox to 20pt{$\models$\quad\hss}\@|\models| +\bin\hbox to 20pt{$\mp$\quad\hss}\@|\mp| +\ord\hbox to 20pt{$\nabla$\quad\hss}\@|\nabla| +\ord\hbox to 20pt{$\natural$\quad\hss}\@|\natural| +\rel\hbox to 20pt{$\nearrow$\quad\hss}\@|\nearrow| +\rel\hbox to 20pt{$\nwarrow$\quad\hss}\@|\nwarrow| +\ord\hbox to 20pt{$\neg$\quad\hss}\@|\neg| \@|\lnot| +\rel\hbox to 20pt{$\ni$\quad\hss}\@|\ni| \@|\owns| +\bin\hbox to 20pt{$\odot$\quad\hss}\@|\odot| +\op\hbox to 20pt{$\oint$\quad\hss}\@|\oint| +\bin\hbox to 20pt{$\ominus$\quad\hss}\@|\ominus| +\bin\hbox to 20pt{$\oplus$\quad\hss}\@|\oplus| +\bin\hbox to 20pt{$\oslash$\quad\hss}\@|\oslash| +\bin\hbox to 20pt{$\otimes$\quad\hss}\@|\otimes| +\rel\hbox to 20pt{$\parallel$\quad\hss}\@|\parallel| +\ord\hbox to 20pt{$\partial$\quad\hss}\@|\partial| +\bin\hbox to 20pt{$\perp$\quad\hss}\@|\perp| +\bin\hbox to 20pt{$\pm$\quad\hss}\@|\pm| +\rel\hbox to 20pt{$\preceq$\quad\hss}\@|\preceq| +\rel\hbox to 20pt{$\not\preceq$\quad\hss}\@|\not\preceq| +\rel\hbox to 20pt{$\prec$\quad\hss}\@|\prec| +\rel\hbox to 20pt{$\not\prec$\quad\hss}\@|\not\prec| +\ord\hbox to 20pt{$\prime$\quad\hss}\@|\prime| +\op\hbox to 20pt{$\prod$\quad\hss}\@|\prod| +\rel\hbox to 20pt{$\propto$\quad\hss}\@|\propto| +\ord\hbox to 20pt{$\Re$\quad\hss}\@|\Re| +\rel\hbox to 20pt{$\Rightarrow$\quad\hss}\@|\Rightarrow| +\rel\hbox to 20pt{$\rightarrow$\quad\hss}\@|\rightarrow| +\rel\hbox to 20pt{$\rightharpoondown$\quad\hss}\@|\rightharpoondown| +\rel\hbox to 20pt{$\rightharpoonup$\quad\hss}\@|\rightharpoonup| +\rel\hbox to 20pt{$\rightleftharpoons$\quad\hss}\@|\rightleftharpoons| +\bin\hbox to 20pt{$\setminus$\quad\hss}\@|\setminus| +\ord\hbox to 20pt{$\sharp$\quad\hss}\@|\sharp| +\rel\hbox to 20pt{$\simeq$\quad\hss}\@|\simeq| +\rel\hbox to 20pt{$\not\simeq$\quad\hss}\@|\not\simeq| +\rel\hbox to 20pt{$\sim$\quad\hss}\@|\sim| +\rel\hbox to 20pt{$\not\sim$\quad\hss}\@|\not\sim| +\rel\hbox to 20pt{$\smile$\quad\hss}\@|\smile| +\ord\hbox to 20pt{$\spadesuit$\quad\hss}\@|\spadesuit| +\bin\hbox to 20pt{$\sqcap$\quad\hss}\@|\sqcap| +\bin\hbox to 20pt{$\sqcup$\quad\hss}\@|\sqcup| +\rel\hbox to 20pt{$\sqsubseteq$\quad\hss}\@|\sqsubseteq| +\rel\hbox to 20pt{$\not\sqsubseteq$\quad\hss}\@|\not\sqsubseteq| +\rel\hbox to 20pt{$\sqsupseteq$\quad\hss}\@|\sqsupseteq| +\rel\hbox to 20pt{$\not\sqsupseteq$\quad\hss}\@|\not\sqsupseteq| +\ord\hbox to 20pt{$\star$\quad\hss}\@|\star| +\rel\hbox to 20pt{$\subseteq$\quad\hss}\@|\subseteq| +\rel\hbox to 20pt{$\not\subseteq$\quad\hss}\@|\not\subseteq| +\rel\hbox to 20pt{$\subset$\quad\hss}\@|\subset| +\rel\hbox to 20pt{$\not\subset$\quad\hss}\@|\not\subset| +\rel\hbox to 20pt{$\succeq$\quad\hss}\@|\succeq| +\rel\hbox to 20pt{$\not\succeq$\quad\hss}\@|\not\succeq| +\rel\hbox to 20pt{$\succ$\quad\hss}\@|\succ| +\rel\hbox to 20pt{$\not\succ$\quad\hss}\@|\not\succ| +\op\hbox to 20pt{$\sum$\quad\hss}\@|\sum| +\rel\hbox to 20pt{$\supseteq$\quad\hss}\@|\supseteq| +\rel\hbox to 20pt{$\not\supseteq$\quad\hss}\@|\not\supseteq| +\rel\hbox to 20pt{$\supset$\quad\hss}\@|\supset| +\rel\hbox to 20pt{$\not\supset$\quad\hss}\@|\not\supset| +\ord\hbox to 20pt{$\surd$\quad\hss}\@|\surd| +\rel\hbox to 20pt{$\searrow$\quad\hss}\@|\searrow| +\rel\hbox to 20pt{$\swarrow$\quad\hss}\@|\swarrow| +\bin\hbox to 20pt{$\times$\quad\hss}\@|\times| +\bin\hbox to 20pt{$\top$\quad\hss}\@|\top| +\bin\hbox to 20pt{$\triangleleft$\quad\hss}\@|\triangleleft| +\bin\hbox to 20pt{$\triangleright$\quad\hss}\@|\triangleright| +\ord\hbox to 20pt{$\triangle$\quad\hss}\@|\triangle| +\bin\hbox to 20pt{$\uplus$\quad\hss}\@|\uplus| +\rel\hbox to 20pt{$\Uparrow$\quad\hss}\@|\Uparrow| +\rel\hbox to 20pt{$\uparrow$\quad\hss}\@|\uparrow| +\rel\hbox to 20pt{$\Updownarrow$\quad\hss}\@|\Updownarrow| +\rel\hbox to 20pt{$\updownarrow$\quad\hss}\@|\updownarrow| +\ord\hbox to 20pt{$\Vert$\quad\hss}\@|\Vert| or |\|\vrt +\ord\hbox to 20pt{$\vert$\quad\hss}\@|\vert| or \vrt +\rel\hbox to 20pt{$\vdash$\quad\hss}\@|\vdash| +\bin\hbox to 20pt{$\vee$\quad\hss}\@|\lor| \@|\vee| +\bin\hbox to 20pt{$\wedge$\quad\hss}\@|\land| \@|\wedge| +\ord\hbox to 20pt{$\wp$\quad\hss}\@|\wp| +\bin\hbox to 20pt{$\wr$\quad\hss}\@|\wr| +\endmulticolumnformat + +\shead{delims}{Brackets or Delimiters} +\tex\ supplies a large variety of delimiters or brackets, some of different +sizes and others that grow to be the correct size. Here is a list of the +delimiters supplied by {\it plain}. + +\bshortcomlist +\@|\big\Arrowvert|¢er part of double up arrow -- $\big\Arrowvert$\cr +\@|\big\arrowvert|¢er part of up arrow -- $\big\arrowvert$\cr +\@|\langle|&left angle bracket -- $\langle$\cr +\@|\rangle|&right angle bracket -- $\rangle$\cr +\@|\big\bracevert|¢er part of large braces -- $\big\bracevert$ \cr +|\{| or \@|\lbrace|&left brace -- $\{$\cr +|\}| or \@|\rbrace|&right brace -- $\}$\cr +|[| or \@|\lbrack|&left square bracket -- $[$\cr +|]| or \@|\rbrack|&right square bracket -- $]$\cr +\@|\lceil|&left ceiling -- $\lceil$\cr +\@|\rceil|&right ceiling -- $\rceil$\cr +\@|\lfloor|&left floor -- $\lfloor$\cr +\@|\rfloor|&right floor -- $\rfloor$\cr +\@|\big\lgroup|&large left paren without middle -- $\big\lgroup$\cr +\@|\big\rgroup|&large right paren without middle -- $\big\rgroup$\cr +\@|\big\lmoustache|& -- $\big\lmoustache$\cr +\@|\big\rmoustache|& -- $\big\rmoustache$\cr +|/|&slash -- $/$\cr +\@|\backslash|&reverse slash -- $\backslash$\cr +\vrt\ or |\vert|&vertical bar -- $\vert$\cr +|\|\vrt\ or |\Vert|&double vertical bar -- $\Vert$\cr +|\downarrow|&down arrow -- $\downarrow$\cr +|\Downarrow|&double down arrow -- $\Downarrow$\cr +|\uparrow|&up arrow -- $\uparrow$\cr +|\Uparrow|&double up arrow -- $\Uparrow$\cr +|\updownarrow|&up-and-down arrow -- $\updownarrow$\cr +|\Updownarrow|&double up-and-down arrow -- $\Updownarrow$\cr +|(|&left paren -- $($\cr +|)|&right paren -- $)$\cr +\eshortcomlist + +Two very powerful operators exist for the delimiters, namely |\left| and +|\right|. They must be used in pairs as +\par +\hbox to \hsize{\hss\@|$\left<delimiter> ...\right<delimiter>$|,\hss} +\noindent +where the |<delimiter>| is one of the above. The result +of these operators is a pair of braces that grow the correct size for the +particular formula in which they are used. This saves you from the problem of +measuring. A |\right.| implies there is nothing at the place of the right +delimiter and |\left.| similarly on the left. This allows a delimiter on only +one side of a formula but to still have the operators match in pairs. + +Finally there is a second set of four pairs of operators, \@|\bigl|, |\Bigl|, +\@|\biggl|, \@|\Biggl| and the corresponding right hand ones \@|\bigr|, \@|\Bigr|, +\@|\biggr|, and \@|\Biggr|. These produce big, but fixed size delimiters for instance we have +\begintt +$$ + \bigl\{\quad +\Bigl[\quad +\biggl\lfloor\quad +\Biggl\Updownarrow\quad\Biggr\Updownarrow +\quad\biggr\rfloor +\quad\Bigr] +\quad\bigr\} +$$ +\endtt +produces +$$ + \bigl\{\quad +\Bigl[\quad +\biggl\lfloor\quad +\Biggl\Updownarrow\quad\Biggr\Updownarrow +\quad\biggr\rfloor +\quad\Bigr] +\quad\bigr\} +$$ + +\shead{sincos}{Common Mathematical Functions} +Certain functions such as |sin|, |cos|, and |limsup| for example are shown in +mathematics text in Roman font. In addition some like |lim| sometimes take +limits that should be placed in the same way as the limits on the large +operators ({\it Op}). For example +\begintt +$$ +\limsup_{t \leftrightarrow \infty} +$$ +\endtt +gives +$$ +\limsup_{t \leftrightarrow \infty} +$$ +There are 32 of these already defined in {\it plain}. They are +\beginthreecolumn +\@|\arg| +\@|\arccos| +\@|\arcsin| +\@|\arctan| +\@|\cot| +\@|\coth| +\@|\cosh| +\@|\cos| +\@|\csc| +\@|\det| +\@|\deg| +\@|\dim| +\@|\exp| +\@|\gcd| +\@|\hom| +\@|\inf| +\@|\ker| +\@|\lg| +\@|\liminf| +\@|\limsup| +\@|\lim| +\@|\ln| +\@|\log| +\@|\max| +\@|\min| +\@|\Pr| +\@|\sec| +\@|\sin| +\@|\sinh| +\@|\sup| +\@|\tanh| +\@|\tan| +\endthreecolumn + +\shead{buildown}{Build Your Own Symbols} +There are several advanced facilities in \tex\ for building your own symbols. +However, there is one rather simple form using +\@|\buildrel <superscript> \over <relation>|. For example +|\buildrel \triangle \over =| gives $\buildrel \triangle \over =$. + +\ejectpage +\done diff --git a/macros/inrstex/inrsdoc/thmulcol.tex b/macros/inrstex/inrsdoc/thmulcol.tex new file mode 100644 index 0000000000..47e7462e82 --- /dev/null +++ b/macros/inrstex/inrsdoc/thmulcol.tex @@ -0,0 +1,140 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{mulcol} + +\def\cqu{} + +\chapterhead{mulcol}{MULTICOLUMN\cr FORMAT} +\intex\ supplies a reasonably versatile multicolumn format mechanism. +The rest of this chapter is set in the multicolumn format with two columns it +was called using +\begintt +\beginmulticolumnformat +\tolerance = 1000 +\intercolumnsep = {\quad \vrule\quad} +\numberofcolumns = 2 +\endtt +\beginmulticolumnformat +\tolerance = 1000 +\intercolumnsep = {\quad \vrule\quad} +\numberofcolumns = 2 + +\shead{mulcolcomlist}{Command List} +\begingroup +\obeylines +\ext|\balancecolumnsize| +\ext|\beginmulticolumnformat| +\ext|\endmulticolumnformat| +\ext|\ejectcolumn| +\ext|\ejectpage| +\ext|\firstcolumnoffset| +\ext|\intercolumnsep| +\ext|\numberofcolumns| +\endgroup + +\shead{mulcolform}{Multicolumn Usage} +Multicolumn format is begun using +\begintt +\beginmulticolumnformat. +\endtt +and is terminated with an +\begintt +\endmulticolumnformat. +\endtt + +Narrow columns in multicolumn format can make it difficult to produce nice +looking lines. This is why the |\tolerance| was increased above while in this +two column mode. +When the number of columns is specified, +above it was 2, the {\bf current} space taken by the intercolumn separator and the +first column offset is used to compute the size of the columns. This +hopefully will not be of negative width. From this point all input will be +put in multicolumn format. Footnotes, inserts, and the like that occur +while multicolumn format is in force will migrate to the appropriate places +in the column.\footnote{\dagger}{This footnote migrated down to the bottom of +this page} Figures, tables will all behave as if the column were a page. +Footnotes and inserts that occur before or after multicolumn format will be +placed in the appropriate place but with respect to the entire page rather +than the individual column. A column is completed using an |\ejectcolumn| +while an |\ejectpage| will complete all the columns on the page. + +\intex\ does not produce balanced columns automatically. +However, there is a way of hand +balancing. When the multicolumn format is ended, \intex\ computes +an estimate of the column length that is needed to produce balanced +columns on the last page. If this amount is entered by using +|\balancecolumnsize [=] <dimen>| command somewhere on the page {\bf +preceding} the last page, the next time the file is processed, \intex\ will +use |<dimen>| as the vertical size of the columns on the last +page. It may take a few trials to determine the correct value for the +|<dimen>|. In this instance +\begintt +\balancecolumnsize=165pt +\endtt +was inserted here. +\balancecolumnsize=165pt + +\shead{mulcolcomform}{Command Forms} +\beginblockmode +\ext\@|\balancecolumnsize + [=] <column length> | +\nbr +This command, when inserted somewhere on the second to last page or before +the +multicolumnformat starts if it takes less than a page, will produce columns +with vertical size |<column length>|. + + +\mbr +\ext\@|\beginmulticolumnformat| +\nbr +This begins multicolumn format and a group. + + +\mbr +\ext\@|\endmulticolumnformat| +\nbr +This ends multicolumn format and terminates the group. + +\mbr +\ext\@|\ejectcolumn| +\nbr +This ends and vertical fills a {\bf column}. When not in multicolumn format, +it will act as an |\ejectpage|. + + +\mbr +\ext\@|\ejectpage| +\nbr +This command ends and fills the current column. It then terminates the +entire page, leaving blank columns as necessary. + +\mbr +\ext\@|\firstcolumnoffset + [=] <dimen>| +\nbr +This command reduces the horizontal size by +amount of 2|<dimen>|. The reduction will show up +evenly on both side of the page. The \intex\ default is 0pt. + +\mbr +\ext\@|\intercolumnsep + [=] {<token list>}| +\nbr +The |<token list>| is inserted between every +column. The vertical lines in this chapter are a result of the +|\vrule| when the multicolumn format was first called. \intex\ defaults to a +pure spacing of 2em. + + +\mbr +\ext\@|\numberofcolumns + [=] <integer>| +\nbr +This sets the number of columns and computes the horizontal size of the +column. The various offsets should be set before this is called. This command +should be called before any |<text>| is submitted to the multicolumn page. +\endblockmode +\endmulticolumnformat +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thover.tex b/macros/inrstex/inrsdoc/thover.tex new file mode 100644 index 0000000000..70362ec6d3 --- /dev/null +++ b/macros/inrstex/inrsdoc/thover.tex @@ -0,0 +1,66 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{over} +\def\cqu{\cquote{There is no one on earth who does what is right +all the time and never makes a mistake.}{Ecclesiastes Chap. 7, Verse 20}} + +\chapterhead{over}{OVERFULL BOXES\cr and\cr OTHER DISASTERS} +Sometimes \tex\ and \intex\ have trouble making a {\it best} decision that is +good enough. The result of this is a message that there is an {\it overfull} +or {\it underfull} box. Chapter \ref{parcont} suggests increasing the +value of |\tolerance| and |\pretolerance| so that \tex\ will accept worse +looking lines. This is fine except that the result is less than beautiful. + +\tex\ indicates an overfull box by putting a big ugly black line at the end. +This book has a few overfull boxes to demonstrate how they look. This chapter +suggests ways of both avoiding and hiding overfull boxes. + +\shead{overcomform}{Command Forms} +\bshortcomlist +\pri\@|\hfuzz [=] <dimen>|&\tex\ tells of overfull horizontal boxes only if +they are overfull by more than |<dimen>|. {\it Plain} default is 0.1pt. \cr +\pri\@|\overfullrule [=] <dimen>|&\tex\ places a rule or line of width +|<dimen>| at the end of an overfull box and of the same height as the box.\cr +\pri\@|\vfuzz [=] <dimen>|&\tex\ tells of overfull vertical boxes only if +they are overfull by more than |<dimen>|. {\it Plain} default is 0.1pt. \cr +\eshortcomlist + +\shead{action}{Overfull Boxes --- Action} +The recommended way to handle an overfull box is to rewrite the passage that +is causing the offence. This will generally work quite well if the box is an +isolated event. It has the feature of not destroying the beauty of the +document. + +However, if you want to hear about overfull boxes but don't want the black +marks let |\overfullrule = 0pt|. If you don't want to hear about them, +increase the size of |\hfuzz| and |\vfuzz|. +|\finalversion| increases |\hfuzz| and obliterates the black marks. + +Overfull |vboxes| are quite rare, as are underfull |hboxes|. If there is an +underfull |hbox|, check it very carefully. The most likely error is not +putting in glue to fill in the box. An example would be using |\line| +instead of |\centerline|. + +Underfull |vboxes| are not as rare. They result when the |vboxes| +on the page are quite large and the glue between them is not very stretchy. +Pages with figures, tables or multicolumn format are the most likely +candidates. The only solution may be a rearrangement of material in the +document, forced filling of the bottom of the page. \tex\ provides a +\@|\raggedbottom| command that puts glue at the bottom of a short page to +prevent it from being stretched out. Whether this is an adequate solution to +the problem is a matter of aesthetic debate. +In general, information about over and under full boxes is desirable. + +\begingroup \bf +When \tex\ indicates that there is an underfull box, it stretches, unless +|\raggedbottom| is active, all stretchable glue. This may result in pages +that look strange. Only glue between paragraphs, before and after display +mathematics, between all list items, and before section \dots\ heads is +stretchable. Interline glue is not stretchable either in {\it Plain\/} or +\intex. In extreme cases (badness greater 10000) the page will have very +disturbing spacing indeed. +\par\endgroup + + +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thp2.tex b/macros/inrstex/inrsdoc/thp2.tex new file mode 100644 index 0000000000..850fd38aae --- /dev/null +++ b/macros/inrstex/inrsdoc/thp2.tex @@ -0,0 +1,420 @@ + + +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{preface} +%\inputtocfiles = {\checklistopen{toc}\inputwithcheck{masth.toc}} +%\catcode`\@=11 \s@ubdocumentfalse \catcode`\@=12 +\tenpoint +\romanpagenumber = 1 +\openlistfile{toc} +\opencitationtagfile +\beginprelude +\preludehead{Preface} \specialpagestyle +This volume is a reference manual for \intex\ and \TeX82. It should not be considered a +substitute for the \texbook. Indeed, when there is a conflict between the two +it should be assumed that the \texbook\ is correct. This author expresses an +immense debt of gratitude to +Donald Knuth, the Grand \TeX Wizard, originator of \TeX, and the +author of the \texbook[\cite{[Knut84]}]. Indeed many of the macros that have been used for +this book have been borrowed from those used for the production of the +\texbook. + +Any deficiencies in the aesthetics of the layout of this book lie with the +author and not the \TeX\ that was used to produce it. \TeX\ is an exceedingly +powerful system. Full exploitation of its capabilities will probably be +limited to a few persons. However, it is possible, and will indeed happen, +that there will be a number of systems based on \TeX\ that will be simple to +use and aesthetically pleasing \dots\ at least in your local environment. +\intex\ is one of these. + +This book is organized so that the information may be accessed in two ways. +The main objective is to introduce the names and syntax of commands used +in \TeX. \TeX\ is an {\it extensible language}. By this it is meant that it is +possible, and indeed quite easy, to add commands of your own to the set +supplied. The \texbook[\cite{[Knut84]}] discusses in +detail those that are primitives in the +language and those that have been added in the basic package known as +\plain. There are about 300 primitive and 600 more in \plain. This book +introduces enhancements under the name of \intex. These constitute a document +preparation package that make both an author's and secretary's life +considerably easier. Several hundred more commands are added in \intex. + + +However, these large numbers should not be considered too frightening. A very +large number of the commands are for special symbols. In fact for most users, +the most useful commands are the ones added +to make the production of documents reasonably simple and automatic. However, +{\it automatic} has its limitations. On the one hand there is the very real +difference between people on what constitutes a beautiful layout, and on the +other there is the problem of describing linguistically an algorithm or +recipe for that individual beauty. + +In fact beauty is usually compromised by expediency. The additional commands +described for the various styles, books, reports, and letters attempt to +balance the two. As much as possible is done automatically. There will be +compromises that are not always appropriate. However, there is always a way, +usually simple, to specifically modify a single item. Actions of this sort +are only taken as a last resort. The problem is that subsequent changes in +other parts may make the specific local change all wrong. It is probably a +truism that there is never a {\bf final} version of a document. + + +\begingroup +\cquote{The best time for planning a book is while you are doing the +dishes.}{Agatha Christie} + +\cquote{No man but a blockhead ever wrote except for +money.}{Boswell's ``Life~of~Johnson (1709-1784)'' [April~5,~1776]} + + + + +\ejectpage +\endgroup +%\tracingall +\begingroup +\def\ftn{}%footnote problem +\def\cr{ }%\cr print problem +\let\twelvett=\tentt % ugh! +\preludehead{Table of Contents} \specialpagestyle +\inputtocfiles = { \inputwithcheck{masth.toc} } +\maketoclist +\endgroup +\ejectpage +\ifodd\pageno \vglue 0ptplus1fill + \pslide \intex// \centergraph{\refoffset h:.75 v:.75 + \btg \inrslogo h:0 v:0 sc:2 + \etg}// \fi +\endprelude +\chcode{Intro} +\pagenumber=0 + +\def\cqu{\let\folio=\relax +\cquote{Beauty in things exists in the mind which contemplates them.}{Essays +on Tragedy, David~Hume (1711-1776)} +} + + + +\chapterhead{Intro}{\tex\cr and\cr \intex} + +\tex\ is a typesetting +system\footnote{\dagger}{In fact \tex\ is a very versatile system providing +a powerful language facility that can be used to create author aids +for the production of documents. \intex\ is an example of an integrated +version of such aids.} +developed by Prof. Donald Knuth of Stanford +University for the production of beautiful books. The intent was to +automatically duplicate the format of the second edition of a +text whose first edition was typeset, for the most part, manually. It has +grown, and is becoming the basis of some very powerful document production +systems. + +\tex\ is many things. It is first and foremost a language in which to tell a +computer how to {\bf beautifully} typeset text --- all sorts of text. It allows for the use of +symbols such as $\star$, that are not found on your normal typewriter to be +produced by typing |\star| using letters that usually are. It goes beyond the +simple single character and makes it possible to display a mathematics +equation such as +$$ +\sum_{n=1}^k n^2 = {n(n+1)\over 2} +$$ +in the middle of the page by just typing +\begintt +$$ +\sum_{n=1}^k n^2 = {n(n+1)\over 2} +$$ +\endtt +It produces better looking words by moving the ``a'' closer to the ``T'' in +such words as ``Tag'' to compensate for the visual effect of the overhang of +the top of the ``T''. It produces better looking paragraphs by absorbing the +whole paragraph before attempting to break lines. This means that decisions +near the top will not lead to disasters later on. It produces better looking +pages by considering what is on the following page before attempting to break +the present one. This prevents such visual disruptions as those +caused by single line paragraphs at the top or bottom of pages. + +\tex\ is rapidly becoming the basis of document preparation systems, +including \intex\ described in this book. +Documents are made up of parts that are not usually +thought of in terms of how they look. Parts such as sections, paragraphs, +lists, footnotes, chapters, introductions or prefaces. \tex\ has very +powerful facilities for creating systems for dealing with these parts and +making decisions on how they should be displayed. These facilities really +make up a language whose {\it primitive} parts are used to make more powerful +parts. + +\shead{TeXlevels}{The \tex\ language --- primitive, plain, and extended} + +As with most systems, the +more complex parts are built from more primitive parts. {\it Primitives} in +\tex\ supply the fundamental facilities for both typesetting and language +extension. The first set of extensions are those in the {\it plain} package +supplied with a {\it raw} \tex\ system. The definitive description of +the \tex\ {\it primitives}, and the associated extension {\it plain}, is in +the \texbook\ of Donald Knuth. The \texbook\ shows how to use these commands +and explores some of the implications. + +The \texbook\ is aimed at all users of +\tex\ --- the system builder and the end user. This book is aimed primarily +at the end user and more especially the user of \intex. +It briefly discusses the basic text and page building +philosophy on which \tex\ is based. +It gathers together most, but not all of the commands in the +\texbook\ and displays their required syntax, and gives some uses. It does +not explore them too deeply. Further examples will be found in the +{\bf \tex\ Example Book} that will be published as soon as it is compiled. + +In addition it describes \intex, a document preparation system that has been built on +top of {\it plain}. At present, this includes styles for papers, reports, and +books. In addition it aids in the preparation of documents by automatically +generating, tables of contents, simple indexes, and numbering such +as chapters, sections, equations, tables. Finally it allows for symbolic +referencing of any of these parts. + +\shead{editors}{\tex\ editors} +Any text editor can be used to create a \tex\ document. Only those characters +normally found on a keyboard are used and there are facilities in \tex\ to +allow for those special keyboards and screen systems that can display +different characters. For instance it might be that a French keyboard has the +letter \'e on it and the screen can display it in that form. This can be +encoded as single key and translated by \tex. Less capable keyboards would +actually type a |\'e| to obtain the \'e. + +Another feature that makes life easier for producing a document on a text +editor is the ability to match a left |{| with a right |}|. +\tex\ uses these extensively to {\it group} things together and sometimes can +get upset in quite mysterious ways when they do not. +It is also quite useful to be able to edit several parts of the +document at the same time. Newer editors allow this. + +A \tex\ editor does not really exist \dots\ for a number of reasons. +A major objective of such an editor would be +as a means of catching (\tex) errors on +input and to facilitate modifications of the file for better layout. An +editor of that sort must know an awful lot, not only about \tex, but also +your extended version. Another objective would be to allow coordinated views +of the input file and the \tex printed output, +so that the effect of both major and +minor changes would be evident. This is conceivable, but still for the +future. + +It is possible to argue that an editor that ``showed you what you get'' is +ideal for a document preparation and typesetting system. The difficulty with +this argument is that there is no language that adequately encompasses the +graphics on the screen with the place of, say a summation sign, $\sum$ in a +mathematical equation. In some cases the semantics of the resulting document +is varied by a change in the display format and in other cases it is not. +In some cases different semantic objects, such as an {\it IF} in a computer +program and the {\it if } in a sentence are distinguished by font style, and +sometimes not. At the document level, it is the semantics of the entity that +is important. It may or may not show up in a format change. + +\shead{gentyp}{Generic Typesetting} +The opposite extreme to the ``see what you get'' school is the giving of +semantic tags to each entity in the document and deciding later how they will +be displayed. This means that it is possible to change your mind about the +way a, say {\it keyword}, will be displayed and change it consistently +throughout the document. This approach appears to be possible in a +constrained environment and has been successfully applied by +DIGITAL[\cite{[Digi83]}] to the production of their manuals for the VAX11/780. +\tex\ can be the basis of such a system too. + +\shead{intexintro}{\intex} +\intex\ is +a system to aid in the preparation of documents in several languages using +ordinary fonts. The system, excluding its graphics component, is usable +with any \TeX\ system but is most useful, when using ordinary {\tt cm} +fonts with an ML\TeX\ system. The graphics component will work with any +reasonable PostScript printer and driver. The version at INRS/BNR uses a +modified version of Nelson~Beebe's DVIALW on the VAX/VMS and the IBM~PC and +uses Tom~Rokiki's DVIPS on the UNIX workstations. +The two languages actually used are French and English. The +pieces, all relatively independent, are as follows: +\beginlist +\li $\bullet$ the \intex\ macro package kernel. This includes all the +facilities needed for +\beginsublist +\tightenlist +\li $\circ$ section and chapter heads, +\li $\circ$ lists, +\li $\circ$ {\bf easy} tables, +\li $\circ$ {\it floating} figure and table insertions, +\li $\circ$ footnotes, +\li $\circ$ automatic generation of table of contents, list of figures, and +list of tables, +\li $\circ$ automatic numbering of equations, section heads, etc., +\li $\circ$ symbolic referencing of equations, sections, etc., +\li $\circ$ optional margin notes to aid in keeping track of symbolic +references, +\li $\circ$ automatic generation of citation lists (IEEE style only) +\li $\circ$ a {\it subdocument} feature for building large documents in +pieces. +\endsublist +\li $\bullet$ additional packages for special forms. The modular form of the +kernel allows for modifications of what is inside and out. At the present +these include +\beginsublist +\li $\circ$ a verbatim style using {\tt typewriter} fonts for such things as +program listings, +\li $\circ$ a several document styles including a |<<PAPER STYLE>>|, +|<<BOOK STYLE>>|, |<<REPORT STYLE>>|. Some of these are rather specialized. +\li $\circ$ \TeX graph, a graphics system for drawing figures and inserting +external figures. This uses the graphics primitives of a PostScript +printer. It is {\it inside} rather than outside the \TeX\ system. +\li $\circ$ memo macros {\bf including} graphics for letterhead, +\li $\circ$ slide making {\bf including} graphics for letterhead, +\endsublist +\li $\bullet$ templates for various styles. This makes their use as easy as +filling in blanks. +\li $\bullet$ {\bf MLTeX} is an {\bf extension} to \TeX\ 3.+ that +allows hyphenation of words with explicitly accented letters +words while using ordinary {\tt cm} fonts. +\li $\bullet$ {\bf DVIALW}, a PostScript driver, written by Nelson~Beebe +has been modified by INRS to allow inline PostScript for \TeX Graph. +There is also a version of \TeX Graph that will work with +Tom~Rokiki's {\bf DVIPS}. +\endlist +\noindent +\intex\ may be viewed from several perspectives. +\beginlist +\li $\bullet$ At the user level, it is a +set of procedures that augment the {\it plain} macros supplied with \TeX. +These aid the author in building a document by making shuffling of such +things as sections, equations, figures, and tables sufficiently painless that +they will be done. It helps the secretary/typist by making it easier to +respond to changes. To work most effectively, the author, at the +{\it pencil} input level, should be aware of the power of the system. +\li $\bullet$ At the document formatting level, parameters and features are +available to modify various spacings, headers, footers, etc. +\li $\bullet$ At the document design level, the various internal formatting +forms are available, {\bf independently} of the housekeeping functions for the +automatic generation of section, equation, and figure numbers, or such things +as the table of contents. +\endlist + +\shead{language}{English and French --- Together} +\intex\ supports both English and French document preparation, +and is easily extendable to other languages . It does this through +the generation of messages and various forms from within the \intex\ kernel +and through the \mtex\ extension that allows for language dependent hyphenation +of words with and without accents. An example of a kernel form variation is the +change from ``Chapter'' to ``Chapitre'' when a |\chapterhead| is called in +French rather than in English. |\englishversion| calls the English forms and +|\versionfrancaise| the French forms. + + +\shead{scope}{Scope of Book} +This book will introduce the first version of the document preparation +system, to be called \intex, that is used at INRS/BNR. +It will describe virtually all of the symbols and +commands that have been introduced in the \texbook\ with the exception of +those used for symbol definitions and output routines. All of the accessible +and changeable parameters will be listed and grouped according to function. + +Most chapters will begin with a list of commands that will be discussed in that +chapter. Some discussion of where and how these will be used and what will be +accomplished using them follows. Then there will be a list of the individual +commands with their normal usage syntax. An index of these commands will be +found at the end of the book. + +\ejectpage +\chcode{descom} +\def\cqu{\cquote{We ought to give the whole of our attention to +the most insignificant and most easily mastered facts, and remain a long time +in contemplation of them until we are accustomed to behold the truth clearly +and distinctly}{Rules for the Direction of the Mind, Rule IX, +Ren\'e~Descartes (1596-1650)}} + +\chapterhead{descom}{\tex\ COMMANDS:\cr DESCRIPTION\cr FORM} +In this book commands, command parameters, and characters that you might be +expected to type in at a terminal are shown in {\tt typewriter} font. Thus a +file that would typeset the 23$^{rd}$ psalm below +\medskip +\beginnarrowtext 1in +\eightpoint +\obeylines +The Lord is my shepherd, I shall not want; +He maketh me to lie down in green pastures, +He leadth me beside the still waters; +He restoreth my soul. +\endnarrowtext +\noindent +is given by +\begintt +\beginnarrowtext 1in +\eightpoint +\obeylines +The Lord is my shepherd, I shall not want; +He maketh me to lie down in green pastures, +He leadth me beside the still waters; +He restoreth my soul. +\endnarrowtext +\bye +\endtt + +The actual commands and their meaning will be described in later chapters. +However, it should be possible to guess what they do from their common sense +meaning (noting, of course that a |\| starts a command). +When a listing is shown in this manner, it is assumed that each line +is terminated by a |<return>|. The |<return>|, abbreviated by |<cr>| will +only be explicitly shown when there might be some confusion. + +\shead{telltex}{Commands TO \tex\ and \intex } +A command is the way to tell \tex\ to do something. \tex\ responds to both +{\it verbose}, single character commands, and {\it one} implicit command. +Verbose commands always start with an {\it escape character} which for most \tex\ +systems, and in this book, is the backslash |\|. The command name is +a string of {\it letters} and the end of the command is shown by a +non-letter, usually a blank, although a number such as 1, or a special +character such as |{| or |,| will do. + +A typical +verbose command +might be the |\beginnarrowtext| used above. It takes a parameter which is a +{\it dimension} and is delimited by a final space. The form of the command +description would be |\beginnarrowtext <indent dimen>|\]. +{\bf Note that the brackets |<| and |>| should not be typed.} +If a parameter or entity in the command is optional it is enclosed in +square brackets |[...]|. +For example, the $=$ +when setting the {\it outer page size} as in +|\houterpagesize [=] <page size dimen>| is optional. Readability suggests +that they should be included. +{\it Verbose} commands ignore spaces between the command and the following +text. + +Single character commands are not preceded by a |\|, obviously, and exist +primarily to improve readability and ease of typing. An example is |^| for +superscripting or |~| to {\it tie} two words together. The major difference +between these and the verbose commands is that spaces or blanks after them +are {\bf not} ignored. + +Finally, \tex\ has one implicit command, namely a blank line, which signifies +the end of a paragraph and hence is equivalent to |\par|. Several blank lines +are equivalent to only one. In addition, a line that has only a \tex\ +comment, for example +\begintt +%This line is a TeX comment because it starts with a % +\endtt +is a blank line. |\par| and blank lines are {\bf not} allowed in |\halign| or in +display mathematics mode. + +\shead{comdesc}{\tex\ Command Description} +The general form used to describe \tex\ commands is +\begintt +\<command> <parameters> +\endtt +If blank space is shown in the description, that space is optional and there +can +be several of them. In fact the command can be split at that point and placed +on the next line with no ensuing problems. On the other hand a \] implies that +the blank space {\bf must} be there. + +Finally the commands are shown preceded by one of $\bullet$, $\diamond$, or +$\star$, and are {\it primitive}, {\it plain}, or \intex\ respectively. + +\ejectpage +\done + diff --git a/macros/inrstex/inrsdoc/thpagsiz.tex b/macros/inrstex/inrsdoc/thpagsiz.tex new file mode 100644 index 0000000000..460fee3027 --- /dev/null +++ b/macros/inrstex/inrsdoc/thpagsiz.tex @@ -0,0 +1,156 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{pagsiz} + +\def\cqu{\cquote{It is when I am struggling to be brief that +I become unintelligible.}{Ars Poetica, Horace (65-8~BC)} +} + +\chapterhead{pagsiz}{PAGES:\cr SIZES\cr MAGNIFICATION} +\intex\ has a number of page size parameters that are set to make the output +possible on different devices, and to facilitate special formats. +All page size +parameter changes are made in assignment fashion with an optional |[=]| sign. +All page size changes must be made inside a +\@|\documentstyle| list in order to insure that they take effect. +Figure~\ref{pagdiag} diagrams the various dimensions. + +\input pagdiag +\beginpageinsert +\figureform{pagdiag}{Diagram of the various page dimensions.\captionbody{ + The actual printing area is determined by the computed dimensions +{\tt \1hinnerpagesize} and {\tt \1vinnerpagesize}. The {\tt outer} dimensions +are normally specified. The {\tt \1firstcolumnoffset} is normally +0pt.}}{\centergraph{ \pagdiag sc:.8 }} +\endpageinsert + +\shead{pagecomlist}{Command List} +\beginthreecolumn +\hfuzz=20pt +\ext\@|\documentstyle| +\ext\@|\houterpagesize| +\ext\@|\hpapersize| +\ext\@|\leftmarginsize| +\ext\@|\leftmarginskip| +\pri|\mag| +\pla|\magstep| +\ext\@|\topmarginsize| +\ext\@|\topmarginskip| +\ext\@|\vouterpagesize| +\ext\@|\vpapersize| +\endthreecolumn + +\shead{pagesandmargins}{Page Size Setting and Margins} +These commands define and set the various page sizes. Only the |outer| and +|header|, and |paper| commands should be changed. +\intex\ also has some |inner| and |column| sizes. These are computed and +should not be modified -- although they are accessible. See +Section~{\ref{inner}}, page \pref{inner} for details. +{\bf All dimension changes must be made inside a |\documentstyle| command or +they will not necessarily take effect.} + +This section details the various parameters used to +name and describe the parts of the printed page that can be varied. +The general convention is that |\h<name>| names a horizontal dimension +and |\v<name>| names the corresponding vertical dimension. The various +|<name>|s are +\bshortcomlist +|outerpagesize|&{this is the extent of the area allowed + for printing. It includes all headers, + footers, footnotes \dots\ + \@|\vouterpagesize| and \@|\houterpagesize| + are the vertical and horizontal + forms}\cr +|papersize|&{this is the ``physical'' size of the paper and includes all + the |outerpagesizes| plus + margins. The actual + vertical extent of the paper + is \@|\vpapersize| and + the actual width of the + paper is is the size of \@|\hpapersize|. +The default values are correct for +11in by 8.5in paper but must be increased for +14in by 8.5in (Legal size) paper.}\cr +\@|\vsize|&the actual verticalsize of the present page. This is set at the time when the +first material is submitted for putting on the page. In \intex\ it is usually +the |\vcolumnsize|. It should be changed only with knowledge.\cr +\@|\hsize|&the actual horizontal size of the present {\bf box} in which \tex\ is +working. This may be a page or some box that is to be eventually placed on +the page. +This is set at the time when +first material is submitted for putting on the page. In \intex\ |\hsize| is +usually +the |\hcolumnsize|. \cr + +\eshortcomlist + +Assignments are made in the normal way. The general form is + +\@|\<dimen name> [=] <dimen>| +\noindent +where |<dimen>| is a dimension. Thus the papersize, margins, +and outer page sizes are set in \intex\ by +\begintt +\documentstyle{\vpapersize = 11in + \hpapersize = 8.5in + \vouterpagesize=9in + \houterpagesize=6.5in + \leftmarginsize=1.25in + \topmarginsize=1in} +\endtt +These values are actually set for the paper style in {\tt papersty.tex}. + +\shead{magnification}{Magnification} +\tex\ is able to magnify an entire document through its +|\magnification| parameter. The form is +\beginblockmode +\mbr +\pri\@|\mag [=] <1000 times scale factor>| +\nbr +The document is magnified by the |<scale factor>|, times any |texprint| +magnification. It can appear only once and should appear at the beginning of +the document. {\bf It should be used with extreme caution. The results may +be too big for the output device.} The {\it plain} form |\magnification| has +been defined to be the same as |\mag|. The reason is that |\magnification| in +{\it plain} also sets page sizes which is inappropriate here. \TeX Graph will +scale correctly when using |\mag|. + +\mbr +\pri\@|\magstep<integer>| +\nbr +This is a valid magnification scaling for the |\magnification| command. The +actual magnification is $1.2^{\langle{\rm integer}\rangle}$. +Thus |<integer>=3| implies a +magnification of 1.728. +\endblockmode + +In fact there are two points at which +magnification can occur. The first is in the \tex\ document and the second is +when it is printed. All that is important is the final magnification. A +magnified document may be printed only if all the fonts are available at the +magnifications requested. In general, magnification should be controlled by +\intex\ so that \TeX Graph will operate correctly. + +\shead{inner}{Internal and Computed Sizes} +\intex\ is actually in multicolumn mode at all times. The default though is +just one column. In order to live in this world \intex\ understands |inner| +and |column| sizes. The |column| sizes are the actual sizes that are used to +for the text. The |inner| horizontal size is the sum of the column widths and +the intercolumn spacing. To this is added a \@|\leftcolumnoffset| (twice) to +obtain the |\houterpagesize|. Normally the |\leftcolumnoffset| is zero. The +effect of a left column offset is to inset the pages with respect to the +header/footer boxes whose width is the |\houterpagesize|. Thus + +\bshortcomlist +|columnsize|&this is the actual size of the column + where the text is printed. Footnotes + are inside the column. In single + column format columnsize and innerpagesize + are the same + (\@|\vcolumnsize|, \@|\hcolumnsize|) \cr +|innerpagesize|&this is the size of the page left after + the headers and footers have been removed + (\@|\vinnerpagesize|, \@|\hinnerpagesize|) \cr +\eshortcomlist +\ejectpage +\done diff --git a/macros/inrstex/inrsdoc/thpagsty.tex b/macros/inrstex/inrsdoc/thpagsty.tex new file mode 100644 index 0000000000..1c1e097679 --- /dev/null +++ b/macros/inrstex/inrsdoc/thpagsty.tex @@ -0,0 +1,219 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{pagsty} + +\def\cqu{\cquote{Insanity is often the logic of an accurate mind overtaxed.}{The +Autocrat at the Breakfast Table, Oliver~Wendell~Holmes (1809-1894)} +} + +\chapterhead{pagsty}{HEADERS\cr FOOTERS\cr and PAGE NUMBERS} +\vskip 0pt plus 30pt +\intex\ supplies a large number of facilities for controlling the style of +such things as headers, footers, and page numbering. This chapter discusses +those facilities. Multicolumn formatting is discussed separately (see +Chapter~\ref{mulcol}). Of special importance is the command +|\documentstyle{<page styles>}|. This command sets the default values for the +entire document. Thus +\begintt +\documentstyle{\twelvepoint + \normalheaderstyle + \normalfooterstyle + \vheadersize=1.5cm + \vfootersize=2cm} +\endtt +would set the entire document in |\twelvepoint| fonts, set the default +header and footer styles to ``normal'', and set the header and footer +vertical sizes. |\documentstyle| does a |\setpagesizes| to ensure that the +page sizes have been computed. +\shead{pagstycomlist}{COMMAND LIST} +\begintwocolumn +\hfuzz=20pt +\ext|\blankheaderstyle| +\ext|\blankfooterstyle| +\ext|\documentstyle| +\pla|\folio| +\ext|\footerfont| +\ext|\footertext| +\ext|\fullpagestyle| +\ext|\headerfont| +\ext|\headertext| +\ext|\noheaderstyle| +\ext|\nofooterstyle| +\ext|\nopagenumberadvance| +\ext|\normalpagestyle| +\ext|\normalheaderstyle| +\ext|\normalfooterstyle| +\ext|\pagenumber| +\ext|\romanpagenumber| +\ext|\specialfootertext| +\ext|\specialheadertext| +\ext|\specialpagestyle| +\ext|\titlepagestyle| +\ext|\vheadersize| +\ext|\vfootersize| +\endthreecolumn + +\shead{pagenumbers}{Page Numbers} +Page numbers are assigned by |\pagenumber [=] <new page number>| where +|<new page number>| is an integer. Similarly roman numerals are assigned +by |\romanpagenumber [=] <new page number>| again where |<new page number>| +is an integer. To print the current page number use |\folio|. This will +give a lowercase roman or an ordinary integer. To obtain uppercase roman use +|\uppercase{\folio}| where the number is expected to be roman. Roman +numbers are actually held inside \tex\ as negative numbers and print out +negative as well when the file is being processed. + +Normally the page number advances at the end of each page. However, it is +possible to prevent it from advancing for one page only, at a time, by +inserting |\nopagenumberadvance| into the file. + +\beginblockmode +\mbr +\pla\@|\folio| +\nbr +This prints out the current page number in either arabic or lower case roman +as the case may be. \@|\uppercase\folio| produces an uppercase roman page +number, or an integer, if the page number is not roman. + +\mbr +\ext\@|\nopagenumberadvance| +\nbr +This command in the file means that the page number will not advance for this +page. It lasts for only {\bf one} page. + +\mbr +\ext\@|\pagenumber [=] <new page number>| +\nbr +This assigns the pagenumber to be the integer value of |<new page number>|. + +\mbr +\ext\@|\romanpagenumber [=] <new page number>| +\nbr +This sets the pagenumber to be roman style with +the integer value of |<new page number>|. +\endblockmode + +\shead{headfoot}{Header and Footer Styles} +Headers and footers appear at the top and bottom of a page respectively. In +general they carry information such as page number, section number, or even +report and paper type. In this book the footer does not exist and the header +carries the chapter name and page number on even pages and the current +section and page on odd pages. Three styles of header and footer are +supported, blank, normal or special (with text), and none. +Headers and footers are boxes +with width |\houterpagesize| and height determined by the setting of +\@|\vheadersize = <dimen>| and \@|\vfootersize = <dimen>| respectively. +Blank headers/footers exist +but have nothing printed in them. Normal (special) +headers/footers have the normal (special) +header/footer text printed, and no headers/footers have the space that is +normally taken up by the header/footer box returned to the main page. The +three headers styles are called by |\blankheaderstyle|, |\normalheaderstyle|, +and |\noheaderstyle|. Similarly for footers. However, all of these styles +last for {\bf one} page only {\bf unless included as an argument to} +\@|\documentstyle| whereupon they become the default values of the document. + +Finally several +styles have been gathered together. |\titlepagestyle| h blanks out +the header and footer, while |\fullpagestyle| which deletes both headers and +footers. |\normalpagestyle| prints the text defined by |\headertext| and +|\footertext| while |\specialpagestyle| prints out the text defined by +|\specialheadertext| and |\specialfootertext|. All of these styles last for +{\bf one} page only, whereupon the system reverts to the document style. + +\beginblockmode +\mbr +\ext\@|\blankheaderstyle \blankfooterstyle| +\nbr +Does not allow the header/footer text to be printed and lasts for one +page only. + +\mbr +\ext\@|\documentstyle{<list of style types>}| +\nbr +Sets the default or document style types to those in +|<list of style types>|. The default style types may be changed as often as +desired in any given document. + +\mbr +\ext\@|\fullpagestyle| +\nbr +This is equivalent to both |\noheaderstyle| and |\nofooterstyle|. It lasts +one page only. + +\mbr +\ext\@|\noheaderstyle \nofooterstyle| +\nbr +This effectively returns the space occupied by the header/footer to the inner +page. Either one lasts for one page only. + +\mbr +\ext\@|\normalheaderstyle \normalfooterstyle| +\nbr +The normal header/footer text prints in the box assigned to it. + +\mbr +\ext\@|\normalpagestyle| +\nbr +This is equivalent to both |\normalheaderstyle| and |\normalfooterstyle|. It +lasts for one page only. + +\mbr +\ext\@|\specialheaderstyle \specialfooterstyle| +\nbr +The special header/footer text prints in the header/footer box on +that particular page only. + +\mbr +\ext\@|\specialpagestyle| +\nbr +This is equivalent to both |\specialheaderstyle| and |\specialfooterstyle|. It +lasts for one page only. + + + +\mbr +\ext\@|\titlepagestyle| +\nbr +This is equivalent to |\blankheaderstyle| and |\blankfooterstyle|. It last +only one page. +\endblockmode + +\shead{headfoottext}{Header and Footer Text/Sizes} +The header and footer text should be thought of a token string that is being +put into a box of the appropriate size and shape. Any logic to test pages for +placing information in different ways on, say even or odd pages should be +included in this text. +\beginblockmode +\mbr +\ext\@|\headertext [=] {<token list>}| +\nbr +\ext\@|\footertext [=] {<token list>}| +\nbr +\ext\@|\specialheadertext [=] {<token list>}| +\nbr +\ext\@|\specialfootertext [=] {<token list>}| +\nbr +This is the text that creates the formats for the headers and footers in the +various styles. The \tex\ commands that do the formatting are +the |<token list>|. The defaults are no header and a footer with a centered +page number for the |<<PAPER STYLE>>|, the ones in this book for the +|<<BOOK STYLE>>|. Others will be indicated when those styles are discussed. +The |\special...text| forms are used whenever a |\special...style| is in +force. + +\mbr +\ext\@|\vheadersize [=] <dimen>| +\nbr +\ext\@|\vfooterersize [=] <dimen>| +\nbr +These commands set the size of the headers and footers respectively. +In order to ensure that the correct innerpagesize results after a header or +footer size change, they should be followed with a |\setpagesizes|. +They +should be made large enough to include all the |\headertext| or +|\footertext|, and some additional white space. +\endblockmode + +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thparcon.tex b/macros/inrstex/inrsdoc/thparcon.tex new file mode 100644 index 0000000000..e3759f2cd2 --- /dev/null +++ b/macros/inrstex/inrsdoc/thparcon.tex @@ -0,0 +1,367 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{parcont} + +\def\cqu{\cquote{The Beautiful arises from the perceived harmony of an object, whether +sight or sound, with inborn and constitutive rules of judgment and +imagination: and it is always intuitive.}{On the Principles of General +Criticism, Samuel~Taylor~Coleridge (1772-1834)} +} + +\chapterhead{parcont}{PARAGRAPH\cr CONTROL} +Contrary to intuition, \TeX\ indicates where paragraphs end rather than +where they begin. This chapter discusses some of the parameters used in +controlling the justification, spacing, hyphenation,and indentation in +paragraphs. A +paragraph can be built in either vertical or internal vertical mode, the +latter is the same as being inside a vertical box. +When parameters are set inside a vertical box, they are undone when leaving +the box. +When building a paragraph, +\tex\ is in horizontal mode. All parameters are local to a box or group unless +explicitly made |\global|. The parameters discussed here control interword +spacing in a paragraph, with and without hyphenation, the indentation, +interparagraph vertical skips, and the justification of the lines. Some +advanced features can force a paragraph to be either a line shorter or longer +than its best length. Some of these features are for fine tuning and will +probably not +be used except on the |final| pass of a book. Others, such as those +involving paragraph indentation, justification of lines, or certain special +effects will see more use. + +\def\paragraphcenterline{\advance\rightskip by 0pt plus 1fill + \advance\leftskip by + 0pt plus 1fill \def\cr{\par}\parindent = 0pt} + +\beginnarrowtext 1.5in +\paragraphcenterline +For instance, this paragraph has had its margins pushed in by 1.5 inch on +either side by the use of |\beginnarrowtext 1.5in| and has had each of the +resulting lines centered on the page with the |\paragraphcenterline| command. +This latter command is in fact used by \intex\ to center, and prevent +hyphenation in titles. + +\endnarrowtext + +\begingroup +\veryraggedright +A second example is illustrated in this paragraph with the |\veryraggedright| +command. This prevents hyphenation and causes the paragraphs to have no +right justification. Although it is probably not useful for ordinary text, it +is used in section headings, table of contents, and figure captions, to +automatically display verbose text. \par +\endgroup + +Another useful command, |\obeylines|, is especially for such things as +addresses. +It changes the carriage return |<cr>| from a space to real line +terminator. For instance the address +\medskip +\vbox{ +\begingroup +\obeylines +H.J. Common +3479 Dreary Lane +Lostville +\endgroup +} + +\noindent +was produced by +\begintt +\begingroup +\obeylines +H.J. Common +3479 Dreary Lane +Lostville +\endgroup +\endtt +\noindent +Note that the |\obeylines| is inside a group to limit its effect to just the +one paragraph. This is really the only way to undo the effect of some +commands and has the advantage of returning to the state before entry into +the group. {\bf Note also that the address is indented.} +The indentation is the +value of the current |\parindent|. + +\begingroup +Finally there are two other parameters of general interest. These are +|\rightskip| and |\leftskip|. Whenever \tex\ finds the {\bf end} of a +paragraph, it checks the current values of |\rightskip| and +|\leftskip| and appends this amount of glue on the end of each line while it +is making the paragraph. This paragraph was set with |\rightskip = 1cm| +right here +\rightskip = 1cm +and |\leftskip = 3cm| right here. +\leftskip = 3cm +Note that it affected the entire paragraph. The entire paragraph is inside a +group. In fact a |\par \endgroup| was put at the end to make sure that +\tex\ knew that the paragraph ended {\bf before} leaving the group. +\par +\endgroup + + +\shead{parcontlist}{Command List} +\beginthreecolumn +\hfuzz = 20pt +\ext|\beginnarrowtext| +\pri|\discretionary| +\ext|\endnarrowtext| +\pri|\everyparagraph| +\pri|\hangafter| +\pri|\hangindent| +\ext|\hyphenatecapitals| +\pri|\indent| +\pri|\leftskip| +\pri|\looseness| +\pri|\noindent| +\pla|\obeylines| +\pla|\obeyspaces| +\pri|\par| +\ext|\paragraphcenterline| +\pri|\parindent| +\pri|\parshape| +\pri|\parskip| +\pri|\pretolerance| +\pla|\raggedright| +\pri|\rightskip| +\pri|\tolerance| +\pla|\ttraggedright| +\ext|\veryraggedright| +\endthreecolumn + + +\shead{parcontcoms}{Command Forms} +\beginblockmode + +\mbr +\ext|\beginnarrowtext <dimen>|\] +\nbr +This narrows the size of the margins on both the left and right hand side by +|<dimen>|. It starts a group and is terminated by an |\endnarrowtext|. The +raggedness of the outer level is preserved inside the narrowtext group. + + +\mbr +\pri\@|\discretionary{<prebreak text>}{<postbreak text>}{<nobreak text>}| +\nbr +This command allows a discretionary break, like a word hyphenation, but +will produce different text if the break occurs than when it does not. One use +is for hyphenating German. If +there is a break, the |<prebreak text>| goes on the first line and the +|<postbreak text>| goes on the second line. If there is nobreak, the +|<nobreak text>| is used. + +\mbr +\ext\@|\endnarrowtext| +\nbr +This terminates the group started by the |\beginnarrowtext| +and reverts back to the pre narrow text format. + +\mbr +\pri\@|\everyparagraph [=] {<token string>}| +\nbr +This command allows for the insertion of the |<token string>| at the beginning +of every paragraph, just after the paragraph indentation on the first line +and just before any text. + + +\mbr +\pri\@|\hangafter [+ -] <integer>| +\nbr +This command controls the application of indentation to the next +paragraph. If the sign is positive or does not exist, the indentation applies +to all lines in the paragraph {\bf after} the first |<integer>| lines. If the +sign is negative, it applies to the lines up to and including the |<integer>| +line. This command lasts for only the present paragraph. + +\mbr +\pri\@|\hangindent [=] [+ -] <dimen>| +\nbr +\hangindent = 2cm \hangafter = 3 +This command is used in conjunction with |\hangafter| and determines the +amount and position of the indentation. If the sign is positive or does not +exist the indentation will be at the left margin. If the sign is negative, +the indentation is at the right margin. Indentation means that the width of +the paragraph is reduced by the value of |<dimen>|. This command lasts +for only the present paragraph. For instance this +paragraph was set with |\hangindent = 2cm \hangafter = 3|. + + + +\mbr +\ext\@|\hyphenatecapitals [=] <integer>| +\nbr +When the integer is {\bf not} equal to 0, \tex\ will attempt +to hyphenate words with uppercase letters. + +\mbr +\pri\@|\indent| +\nbr +Changes to horizontal mode and causes the paragraph to be indented by the +|\parindent|. If used in the middle of a paragraph, there will be a space +inserted the size of the |\parindent|. + +\mbr +\pri\@|\leftskip [=] <dimen> [plus <dimen>] [minus <dimen>]| +\nbr +\pri\@|\rightskip [=] <dimen> [plus <dimen>] [minus <dimen>]| +\nbr +\leftskip 0pt plus 1fil \rightskip 0pt plus 1fil +These commands move the edge of the column or page to the center by +|<dimen>| to the center. The |\leftskip| works on the left hand edge and the +|\rightskip| on the right hand edge. +They work on the page and also inside boxes. The +optional glue specifications +determine the raggedness of the placement of the paragraph line on the +page. For instance this paragraph was set with |\leftskip 0pt plus 1fil|. +and |\rightskip 0pt plus 1fil|. The |1fil| glue will +produce a very ragged column. The effect is to allow for any badness and to +suppress all hyphenation. Note the odd spacing in the last line. It is due to +the |1fil| added to the last line of every paragraph. + +\leftskip=0pt \rightskip=0pt + +\mbr +\pri\@|\looseness [=] [+ -] <integer>| +\nbr +This command will cause \tex\ to try and make the {\it current} paragraph +an |<integer>| number of lines shorter if the sign is $-$ and longer if it is + +or does not exist than the natural best number of lines. It is the way of +fine tuning the size of a paragraph. + +\mbr +\pri\@|\noindent| +\nbr +This command changes to horizontal mode and prevents the next paragraph from +being indented. If it used in the middle of a paragraph, it produces a space +equal to the current |\parindent|. + +\mbr +\pla\@|\obeylines| +\nbr +This causes \tex\ to end lines at the same place as they are ended in the +input text. This command changes a line into a very short paragraph +so that each line is indented by the |\parindent|. + +\mbr +\pla\@|\obeyspaces| +\nbr +This makes a space active and causes \tex\ to obey them, {\bf except at the +start of a new line}. It can be used in conjunction with |\obeylines| to +obtain a very rough positioning of text on a page. Except with the +|typewriter| fonts, where all characters have the same width, the two +together will {\bf not} produce text that is positioned as it is seen on the +screen editor. Precise placement of text and columns should always be done +using the alignment capabilities of \tex, namely |\halign| and its relatives. +\sbr +{\obeylines \obeyspaces \parskip = 0pt +This paragraph +has been produced with |\obeylines| +and |\obeyspaces| inside a group. The +group is there to keep their effect local to this +paragraph +only. Note that all the lines +start at the left hand margin.} + +This was produced by + +\begintt +{\obeylines \obeyspaces \parskip = 0pt +This paragraph + has been produced with |\obeylines| + and |\obeyspaces| inside a group. The +group is there to keep their effect local to this +paragraph +only. Note that all the lines +start at the left hand margin.} +\endtt + + +\mbr +\pri\@|\par| +\nbr +This command indicates the end of the current paragraph. A completely blank +line is equivalent to a |\par|. + +\mbr +\ext\@|\paragraphcenterline| +\nbr +\begingroup \paragraphcenterline +This command takes a line in a paragraph and centers it. It also prevents +hyphenation. A forced break occurs if the command |\cr| \cr is placed +|\cr| \cr as shown at the end of the line. This means that if you do not like +the way \intex\ does the line splitting, you can do it yourself \dots\ or at +least command it. +\endgroup + + +\mbr +\pri\@|\parindent [=] <dimen>| +\nbr +This sets the indentation at the beginning of each paragraph to +|<dimen>|. + +\mbr +\pri\@|\parshape <number of lines> <indent 1> <line length 1> + ... <indent n> <line length n>| +\nbr +This command is flexible way of controlling the shape of the current +paragraph. The |<number of lines>| is the number of lines for which +parameters are being given. In this case assumed to be |n|. The +|<indent i>| is the indentation of line |i| and |<line length i>| is the +specified length of that line. All lines from and including |n| will have +the same indentation and length as line |n|. A |\parshape| lasts for only one +paragraph. If there is a |\hangindent \hangafter| pair also in force for the +current paragraph, the |\parshape| takes precedence. \tex\ does not get upset +if the number of actual lines in the paragraph is less than |n|. + + +\mbr +\pri\@|\parskip [=] <dimen>| +\nbr +This sets the size of the vertical skip that is automatically inserted +between paragraphs. + + +\mbr +\pri\@|\pretolerance [=] <integer>| +\nbr +\pri\@|\tolerance [=] <integer>| +\nbr +These two parameters set the amount of badness that \tex\ is willing to +tolerate in a line before succumbing to an overfull box. If |<integer>| is +10000 or more, horrendously bad lines will be allowed and there never will be any +overfull boxes. \tex\ makes two passes through a paragraph. The first time it +allows words to be hyphenated but tries to keep each line badness below the +|<integer>| value of |\pretolerance|. The second time it tries the same +thing, without hyphenation, but keeping the badness below the |<integer>| +value of |\tolerance|. The optimal choice of these parameters depends on your +aversion to hyphenation, and your acceptance of less than beautiful +paragraphs without rewriting. + +\begingroup \raggedright \overfullrule=5pt +\mbr +\pla\@|\raggedright| +\nbr +This command allows the right hand margin to have a ragged edge. It is +done by judiciously choosing the glue parameters for a |\rightskip|. The +balancing allows for hyphenation, and does not produce lines that are too +short. This paragraph was set with the present parameters for |\raggedright|. +Note that it is possible to have overfull boxes. +\endgroup + +\mbr +\pla\@|\ttraggedright| +\nbr +This is similar to |\raggedright| but for use when using |\tt| font. + +\mbr +\pla\@|\veryraggedright| +\nbr +This is similar to |\raggedright| but for use primarily in titles and +captions where raggedness and {\bf no} hyphenation is wanted. + +\endblockmode +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thshead.tex b/macros/inrstex/inrsdoc/thshead.tex new file mode 100644 index 0000000000..02878e65a7 --- /dev/null +++ b/macros/inrstex/inrsdoc/thshead.tex @@ -0,0 +1,295 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{shead} +\def\cqu{\cquote{The chief virtue that language can have is clearness, and +nothing detracts from it so much as the use of unfamiliar +words.}{On the Natural Faculties, Galen } +} + +\chapterhead{shead}{CHAPTER\cr and SECTION\cr HEADS} +\intex\ supplies commands for creating chapter and section heads. The default +style of the heads are those given in this book. They form the basis +of the style that naturally results from the use of \intex. Some changes in +style such as the fonts used are quite easy; others require more care. + +This chapter introduces the commands for creating section heads, whether they +occur during the initial part of the document or within appendices. All of +the commands have the same format with or without autonumbering or automatic +generation of table of contents in force. + +\intex\ considers that a document consists of a {\it prelude} part that will +include the preface, table of contents, and other special summaries, an {\it +interlude} +consisting of chapters and sections, appendices, which may appear at the +end of a document or at the end of a chapter, and a {\it postlude} which +would include, perhaps, an index, references, and even appendices. The {\it +prelude}, appendices, and {\it postlude} are +enclosed by a |\begin...\end...| pair that form a +group and set up the styles appropriate for that section. + +The forms that introduce sections, tables of contents, or chapters all have +commands of the form |\...head|, such as |\shead|, +where the |head| is supposed invoke images +of starting a unit. In \intex, all commands that have a |\begin...| have an +accompanying |\end...| and all create a group. The |\...head| commands are +key elements in controlling the setting and incrementing of the various +numbers used in the document. In addition, they have a relatively complex, +but accessible format part that can be modified if required. + +The section head commands |\chead|, +|\shead|, |\sshead|, |\ssshead|, and +|\dssshead| stand for chapterhead, +sectionhead, subsectionhead, subsubsectionhead, +and diminished subsubsectionhead. This is the only example of commands in +\intex\ for which the abbreviations exist without the full forms. This is +primarily for typing and visual convenience in the original file. The fonts +used have the same abbreviated form. + +If an |\shead| is immediately followed by an |\sshead| or any other +sectionhead form, there is a chance that they may be split apart if they +occur at the bottom of the page. {\bf To prevent this, and to +make the spacing reasonable, the command +|\nosheadbreak| must be placed in between the two commands.} +The general spacing parameters are given in Section \ref{sheadspac}. + +If the |.toc| file is open for making a table of contents list, each section +head form writes information to this file. The actual form sent is determined +by the definition of a |\...tocout| form. For instance the |\shtocout| is +defined as |\def\shtocout{\string\shtoc}|. The |\shtoc| is an \intex\ form +that produces a section head line in the table of contents. + + +\shead{sheadcomlist}{Command List} +\beginthreecolumn +\hfuzz=10pt +\ext|\Alphabetic| +\ext|\alphabetic| +\ext|\Appendix| +\ext|\beginappendices| +\ext|\beginprelude| +\ext|\Chapter| +\ext|\chapterstartform| +\ext|\chead| +\ext|\cheadfont| +\ext|\chnum| +\ext|\chtagreplaceformat| +\ext|\chnumform| +\ext|\chtocout| +\ext|\endappendices| +\ext|\endprelude| +\ext|\dssshead| +\ext|\dsssheadfont| +\ext|\dssshtocout| +\ext|\innerchead| +\ext|\innerdssshead| +\ext|\innershead| +\ext|\innersshead| +\ext|\innerssshead| +\ext|\nosheadbreak| +\ext|\preludehead| +\ext|\prtocout| +\ext|\shead| +\ext|\sheadfont| +\ext|\shnum| +\ext|\shnumform| +\ext|\shtagreplaceformat| +\ext|\shtocout| +\ext|\sshead| +\ext|\ssheadfont| +\ext|\sshnum| +\ext|\sshnumform| +\ext|\sshtocout| +\ext|\ssshead| +\ext|\sssheadfont| +\ext|\ssshnum| +\ext|\ssshnumform| +\ext|\ssshtocout| +\ext|\UpperRoman| +\endthreecolumn + +\shead{sheadcomforms}{Command Forms --- Making Head Forms} +The commands in this section are very similar in form and will be described +in together. There are six predefined |<head types>|: |prelude|, |c| +(chapter), +|s|, |ss|, |sss|, and |dsss|. All but |prelude| and |dsss| take two arguments +in their |\<head type>head| form. + +Number format and font commands are discussed in Section \ref{numforms}. + +\beginblockmode +\mbr +\ext\@|\chead{<number or tag>}{<title>}| +\nbr +\ext\@|\preludehead{<title>}| +\nbr +\ext\@|\shead{<number or tag>}{<title>}| +\nbr +\ext\@|\sshead{<number or tag>}{<title>}| +\nbr +\ext\@|\ssshead{<number or tag>}{<title>}| +\nbr +\ext\@|\dssshead{<title>}| +\nbr +All of these commands create the various forms of section or chapter heads +indicated by the command name. The |<number or tag>| field is interpreted as a +tag if |autonumbering| is on or inserted as is into the appropriate place if +is not. The lack of this field in |\dssshead| and |\preludehead| implies that +it is impossible to tag or refer to these document parts except through +their, presumably known, titles. The tag replacement format and associated +|\<head type>hnumform| are +discussed separately in +Section \ref{numforms}. + +There are some restrictions in the use of the |<title>| field. This should +{\bf not} include |\footnote|, |\cite|, or |\ref| commands. If it is +absolutely necessary to use these, see Chapter~{\ref{footnot}} to see how to +get around the |\footnote| restriction, and use |\quietref{<tag>}| +for the other +two. {\it Quiet} is not quite {\it silent}. + +\mbr +\ext\@|\Appendix| +\nbr +This command defines the actual form that will be seen in an |\shead| used for +appendices. It is defined as ``Appendix'' in |\englishversion| and +``Appendice'' in |\versionfrancaise|. + +\mbr +\ext\@|\beginappendices \endappendices| +\nbr +These commands are intended to enclose the appendices that occur at the end +of a chapter or book. They reset the {\it special} auto numbers, and change +the format of the numbers when an |\shead| or its relatives are called. +|\chead| should not be called in an appendix. +Since the |\begin...\end...| pair form a group, +changes that only affect the appendices are +easily made. + +\mbr +\ext\@|\beginprelude \endprelude| +\nbr +These commands are intended to enclose the prelude that occurs at the +the start of a document. Preludes usually include such entities as prefaces, +tables of contents, figures, and tables, acknowledgments, distribution lists +or perhaps executive summaries. +Since the |\begin...\end...| pair form a group, changes that only affect the +prelude parts are +easily made. +\mbr +\ext\@|\Chapter| +\nbr +This command defines the actual form used in a |\chead|. +It is defined as ``Chapter'' in |\englishversion| and +``Chapitre'' in |\versionfrancaise|. + +\mbr +\ext\@|\chapterstartform = {<special pre chapter tests>}| +\nbr +The token list for this command is executed inside |\chead| before the +first page of the chapter is produced. For this book it was used to check +whether the chapter starting page was odd. If it was not, a ``quote'' page +was produced. + +\endblockmode + +\shead{numforms}{Command Forms --- Number Formats} +The number formats when autonumbering is in force are defined using a few +commands. First the fonts in the various head forms are called +\@|\<head type>headfont|. These are defined when a document font size (see +Chapter \ref{fonts}) is defined. For example +|\documentfont{\tenpoint}| determined the document font family for this book. +The individual fonts may be changed, although it is not recommended, by +changing the |\<head type>headfont|. For example, +|\let\sheadfont = \twelvedu| will change the section head font for the rest +of the document, or until the end of the group if it is called within a +group. A change of this sort will not modify the other fonts. + +The number formats are modified by changing the |\<head type>hnumform| such as +|\chnumform|, |\shnumform|, |\sshnumform|, |\ssshnumform|, +respectively for the chapter and the various section heads. +\@|\Alphabetic{<integer>}|, \@|\alphabetic{<integer>}|, and +\@|\UpperRoman{<integer>}| are used to change the format of an integer +(counter) to either the equivalent uppercase letter, lowercase letter +or uppercase roman numeral. +The \intex\ forms for |\<head type>hnumform| are +\begintt +\def\<head type>hnumform{\the\<head type>hnum} +\endtt +for all |<head type>| except that in appendices |\shnumform| is defined to be +\begintt +\def\shnumform{\Alphabetic{\the\shnum}} +\endtt +This effectively changes the appendix numbering to be roman capitals. + +The command \@|\chtagreplaceformat| is the actual command that is used to +place the ``Chapter \ref{shead}'' at the beginning of this chapter. The +two definitions involved in this replacement are +\begintt +\def\chtagreplaceformat {Chapter \chtagrefformat} +\def\chtagrefformat {\chnumform} +\endtt +The \@|\shtagreplaceformat| is +defined similarly and is used in |\sheads|. + +A change in the form of the command written to the table of contents file may +be obtained simply by redefining the appropriate |\...tocout|. + + +\shead{sheadspac}{Command Forms --- Section Head Spacing} +The spacing both before and after the various |\...head|s are determined by +the following parameters. Stretch and shrink glue should be specified to give +\tex\ some freedom to break pages. +\bshortcomlist +\ext\@|\prsheadskip [=] <glue>|& pre shead skip \cr +\ext\@|\posheadskip [=] <glue>|& post shead skip \cr +\ext\@|\prssheadskip [=] <glue>|& pre sshead skip \cr +\ext\@|\possheadskip [=] <glue>|& post sshead skip \cr +\ext\@|\prsssheadskip [=] <glue>|& pre ssshead skip \cr +\ext\@|\posssheadskip [=] <glue>|& post ssshead skip \cr +\ext\@|\prdsssheadskip [=] <glue>|& pre dssshead skip \cr +\ext\@|\podsssheadskip [=] <glue>|& post dssshead skip \cr +\eshortcomlist + + +\shead{genform}{Major Modifications of the Section Head Formats} +\intex\ has separate |\cheadformat|, \@|\preludeheadformat|, and a very +general section head format. These are easily modifiable without upsetting +any of the houskeeping. Any format that satisfies the input parameter +constraints will work. + +\beginblockmode +\mbr +\ext\@|\cheadformat{<chapter>}{<text>}| +\nbr +The |<chapter>| is the chapter identifier. In this chapter it was +{\bf Chapter~\ref{shead}}. The |<text>| is title of the chapter. The +particular form was built using |\vcenter| and |\halign|. + +\mbr +\ext\@|\gensheadformat{<font>}{<number>}{<text>}{<separator>}| +\nbr +This command uses four parameters. The first is the font, the second the +number, the third is the title of the section and the fourth is the separator +between the number and the text. The form that is used checks the number to +see if it is empty. If it is, the |<text>| is placed flush left. The |<text>| +is actually placed in a |\vbox| with |\veryraggedright| spacing so that there +will be no hyphenation and long titles will automatically split. Details are +in {\tt secthead.tex}. + +\mbr +\ext\@|\preludheadformat{<title>}| +\nbr +This command is defined with one parameter that is assumed to be the title of +the particular section. Since this one is quite simple the default definition +is given as +\begintt +\def\preludeheadformat#1{\centerline{\sheadfont #1}\vskip 1cm} +\endtt +\endblockmode +\ejectpage +\done + + + + + diff --git a/macros/inrstex/inrsdoc/thspac.tex b/macros/inrstex/inrsdoc/thspac.tex new file mode 100644 index 0000000000..47e524eab4 --- /dev/null +++ b/macros/inrstex/inrsdoc/thspac.tex @@ -0,0 +1,204 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{spac} + +\def\cqu{\cquote{It is a very sad thing that nowadays there is so little useless +information.}{Oscar~Wilde (1854-1900)}} + +\chapterhead{spac}{SPACING} +This chapter discusses the various mechanisms in \tex\ for creating and +controlling spaces in a document. All spacing involves the insertion of glue +that may or may not have stretch or shrink. This chapter also includes a +description of |\beginttverbatim...\endttverbatim| that allows text to be +inserted in a typewriter font with the original spacing. It is useful for +such things as computer listings. + +{\bf You should never need to use |\vskip| or |\hskip| or its relatives +while using \intex\ \dots\ except perhaps when trying to place boxes on a +page.} \intex\ has easily modified parameters for all spacing. If you don't +like the spacing before or after an |\shead|, check first that there is no +underfull box and then modify |\prsheadskipsize| and |\posheadskipsize| as +necessary. + +\shead{spacomlist}{Command List} +\begintwocolumn +\ext|\beginttverbatim| +\pla|\bigskip| +\ext|\endttverbatim| +\pla|\enskip| +\pri|\hskip| +\pri|\kern| +\pla|\medskip| +\pri|\mkern| +\pri|\mskip| +\pla|\quad| +\pla|\qquad| +\pla|\smallskip| +\ext|\spacing| +\pri|\vglue| +\pri|\vskip| +\endtwocolumn + +\shead{basicspac}{Basic Spacing Mechanisms} +The basic spacing commands in \tex\ are |\hskip|, |\vskip|, and |\mskip| that +are used in horizontal, vertical and mathematics mode respectively. All of +these take |<glue>| in the standard form of +|[+ -] <dimen> [plus <dimen>] [minus <dimen>]| except |\mskip| which +must have |<mudimen>| or units of |mu|. The stretch and shrink +parameters are optional but the first |<dimen>| is not. In general \tex\ allows +for line or page breaks to occur after glue in a list. If spacing is desired +without the possibility of breaks or glue disposal, then the commands +|\kern| and |\mkern| are +used. These are the ones used for placing accents. + +When \tex\ breaks a page or a line, the glue at the beginning of the line or +page is discarded, unless it is put there via a |\kern|. This means that a +special command is needed to force glue at the top of a page. This command is +|\vglue|. It is like |\vskip| but works at the top of the page. + + +Special preset skips in vertical mode are |\smallskip|, |\medskip|, +|\bigskip| and for horizontal mode |\quad|, |\qquad|, and |\enspace|. The +latter three are font size dependent and also will work in math mode. + +Finally |\spacing| is an \intex\ command that allows for a changing of the +spacing between the lines of a document. For instance |\spacing{1.5}| will +produce 1.5 line spacing. |\spacing| modifies the vertical skip that \tex\ +puts between adjacent lines. {\bf However, lists, +the various types of section heads, figure and table captions, and footnotes +are all forced to be single spacing.} All those forms that have an +|\every...| may be modified. For example +|\everylist = {\spacing{1.5}}| +will force every list to have 1.5 spacing. If |\everysublist| and +|\everysubsublist| have not been modified, sublists and subsublists will also +be spacing 1.5. + + +\shead{verbatim}{Verbatim or ``No Fill'' Forms} +\intex\ supplies, as an external command list, a method of producing a +listing with the same spacing that exists in the original form. This is only +supplied for typewriter |\tt| fonts as these are the only monospaced fonts +available. For a monospaced font, all characters are the same width so that +it is possible to ensure that spacing will be identical to that seen on a +normal typewriter or terminal screen. All characters except the backslash +``~|\|~'' are allowed. +For example +\begingroup \catcode`\^=7 +\beginttverbatim +This is + an example + where the + first word of each + line starts below the + second one of + the previous line. +\endttverbatim +\catcode`\^^M=13 \global\let^^M=\par\endgroup +It was given by the following code +\begintt +\beginttverbatim +This is + an example + where the + first word of each + line starts below the + second one of + the previous line. +\endtt +|\endttverbatim| + +\shead{spaccomforms}{Command Forms} +\beginblockmode +\ext\@|\beginttverbatim| +\nbr +Begins a section of ``verbatim'' or ``no fill'' mode in typewriter font. All +characters except the backslash ``~|\|~'' are allowed. This form must +terminate with an |\endttverbatim|. At the cost of a one character offset, +the |\def\@{\char'134}| will drop a |\| in using |\@|. + + +\mbr +\pla\@|\bigskip| +\nbr +Vertical skip of size \quad\vbox{\hrule width .25in\bigskip\hrule}. + +\mbr +\ext\@|\endttverbatim| +\nbr +Ends a section of ``verbatim'' or ``no fill'' mode in typewriter font. All +characters except the backslash ``~|\|~'' are allowed. This form must +begin with a |\beginttverbatim|. + +\mbr +\pla\@|\enskip| +\nbr +Horizontal skip of \hbox{\strut\vrule\enspace\vrule} -- one |\enspace| or +.5em. + +\mbr +\pri\@|\hskip [+ -] <dimen> [plus <dimen>] [minus <dimen>]| +\nbr +This is the basic positive and negative skip in horizontal mode. + + +\mbr +\pri\@|\kern [+ -] <dimen>| +\nbr +This produces an unbreakable space vertically, in vertical mode, and +horizontally, in horizontal mode. + +\mbr +\pri\@|\mkern [+ -] <decimal number>mu| +\nbr +This is the basic unbreakable space in math mode. It is always in |mu| units. +Note that there are 18 |mu| to an |em|. For instance |$]\mkern -1mu[$| gives +$]\mkern -1mu[$. + +\mbr +\pri\@|\mskip [+ -] <mudimen> [plus <mudimen>] [minus <mudimen>]| +\nbr +A |<mudimen>| is |<decimal number>mu|. This is the basic horizontal +math |mu| skip with glue. It is valid only in math mode. + +\mbr +\pla\@|\medskip| +\nbr +This is a vertical skip of the size \quad\vbox{\hrule width .25in\medskip\hrule}. + + + +\mbr +\pla\@|\quad \qquad| +\nbr +These are horizontal skips of 1em and 2em respectively. They correspond in +this font to \hbox{\strut\vrule\quad\vrule} and +\hbox{\strut\vrule\qquad\vrule} respectively. + +\mbr +\pla\@|\smallskip| +\nbr +This is a vertical skip of the size \quad \vbox{\hrule width .25in\smallskip\hrule}. + +\mbr +\ext\@|\spacing {<decimal number>}| +\nbr +The spacing becomes |<decimal number>| times the normal spacing. The normal +spacing is usually referred to as {\it single} spacing. + + + +\mbr +\pri\@|\vglue [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>]| +\nbr +This puts nondiscardable glue into a vertical list. It is usually used to +put a vertical skip at the top of a page. + +\mbr +\pri\@|\vskip [=] [+ -] <dimen> [plus <dimen>] [minus <dimen>]| +\nbr +This is the standard vertical skip command. If used in horizontal mode, it +automatically causes a switch to vertical mode. + +\endblockmode +\ejectpage +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thstart.tex b/macros/inrstex/inrsdoc/thstart.tex new file mode 100644 index 0000000000..9260e99338 --- /dev/null +++ b/macros/inrstex/inrsdoc/thstart.tex @@ -0,0 +1,397 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\marginnotestrue +\chcode{start} +\def\cqu{} + + +\draftversion +\chapterhead{start}{STARTING\cr STOPPING\cr and FINISHING} +This chapter discusses the commands that are required to actually process +a \tex\ or \intex\ document, and to answer the ``|?|'' when \tex\ runs into an +error. +Section~{\ref{printing}} gives the most important options available in \tex print, +the program that actually prints the \intex\ file. + +Since the initial production of a document is almost always in the ``draft'' +mode, the + \intex\ default is |\draftversion|. This mode includes the ``{\eightrm Draft +Version :} {\eightit Date}'' at the bottom of the page and margin notes that +include {\it tags} and their values. This version of the book was a produced +with |\draftversion| but with |\marginnotesfalse| for all but this chapter +and the one on auto numbering and tagging (\ref{auto}). The really {\bf final} version of +this book will probably be produced with +|\finalversion|. +Section~\ref{finalversion} discusses the changes to make when +processing the ``final'' version of a document. + +\intex, especially in conjunction with Multilingual \mtex, supports both +English and French \dots\ in the same document on a paragraph by +paragraph basis. English, +both for \intex\ messages and hyphenation is the default and is called by +|\englishversion|. |\versionfrancaise| invokes +French messages, hyphenation, and spacing. +To change only the hyphenation and spacing, |\ehyph| is used for +English and |\fhyph| is used for French. + + +\shead{startcom}{Command List} +The commands in this list are organized in three sections, +Creation, Termination and Language, +\tex print, and ``?'' answer and interrupt. +The Language commands include those related to choosing the +particular language (French or English) and efficient commands for just changing +spacing and hyphenation rules and not the messages. +\comhead{Creation, Termination and Language Commands} +\begintwocolumn +\pla|\bye| +\ext|\done| +\ext|\draftversion| +\ext|\ehyph| +\pri|\end| +\ext|\englishversion| +\ext|\fhyph| +\ext|\finalversion| +\pri|\hyphenation| +\ext|\language| +\ext|\marginnotestrue| +\ext|\marginnotesfalse| +\ext|\versionfrancaise| +\endtwocolumn + +\shead{Doc}{Document Creation} +To create a document, you first need something to write. Enter +the text into a file on whatever system you are using. In this book it is +assumed that the system you are using is a VAX11/780 running the VMS operating system with +the appropriate file names or system conventions. + +There are basically three steps to producing a document. The first is to enter +the information, with all of the appropriate \tex\ conventions into a file. +The second is for \tex\ to process it, and the third is for \tex print, +\tex's printing system to print it out. Any output device that supports +typesetting can be used if it has been properly configured for \tex. +This could be a dot matrix printer (heaven forbid), a phototypesetter +such as the Alphatype, or PostScript laser printer. + +\shead{docprep}{Preparing the File} +All that is required to prepare the file is to create the file using your +favourite editor. You might try the example given in Chapter \ref{descom}. +A file of \tex\ commands is normally given the name |<your file name>.tex| +and it can be referred to by only |<your file name>| with \tex\ automatically +extending it. To tell \intex\ that the your file has is completed, the +command |\done| should be the last command in the file. \tex\ will ignore +everything after a |\done|. |\done| not only terminates the file, it also +{\it fills} the last page so that the spacing is correct. The primitive +command for \tex\ to terminate processing is |\end|. This is {\bf not} +recommended while using \intex\ because the last page is not reasonably +processed and it will terminate processing while inside a subdocument, +something not ordinarily desired (see Chapter~\ref{subdoc} for discussion on +the details of subdocuments). + +{\it Plain} \tex\ supplies the command |\bye| which has an +|\end| imbedded in it and also cleans up the last page. |\done| is +similar but has a few additional features including a compatibility +with the |\subdocumentmacros| commands. |\done| is recommended +for use in \intex. + + +\shead{subfile}{\tex ing a File} +After the file has been completed, you leave the editor and return to the +operating system where you will be greeted by the prompt of a \$\ sign. +For example if the 23$^{rd}$ psalm file is called |psalm23.tex| then +\begintt +$inrstex psalm23 +\endtt +This will submit the job. +If you forget to put in your file name, \tex\ will return with its +interactive prompt, the |*|, and ask you for a file name. +At this point you will see the following on your +screen. + +\begingroup \eightpoint +\begintt +This is MLTeX, Version 3.1+ +(psalm23.tex [1] ) +Output written on psalm23.dvi (1 page, 540 bytes). +\endtt +\endgroup +Do not be deceived. \intex\ was indeed loaded \dots\ the evidence will be in +the |psalm23.lis| file. The directories containing the files are completely +given, and will be yours instead of that shown. The |psalm23.log| shows that +\intex\ was indeed preloaded. This file contains + +\begingroup\eightpoint +\begintt +This is MLTeX, Version 3.1+ (format=inrs3_mlb 91.8.22) 2 SEP 1991 02:59 +**&/usr/users/u1/mike/inrstex/inrs3_mlb psalm23 +(psalm23.tex [1] ) +Output written on psalm23.dvi (1 page, 540 bytes). +\endtt +\endgroup +The version numbers, for both \tex\ and \intex\ will vary with time and +installation. +If you are not using ML\TeX\ the two ``version'' lines will be more +like +\begingroup\eightpoint +\begintt +This is TeX, Version 3.14 + +or + +This is TeX, Version 3.14 (format=inrs3_mlb 91.8.22) 2 SEP 1991 02:59 + +\endtt +\endgroup +for the terminal and list file respectively. + +The default form of the interaction of \tex\ with you is to stop on an error. +At an error, the display will halt and \tex\ gives you a ``~{\tt ?}~'' as a prompt. At +this point if you reply with an |x| or an |e|, the job will terminate cleanly +and you can print what you have to that point. An |s| will cause \tex\ to +continue, but not to pause for further errors; a |<cr>| will continue to the +next error; an |r| is like |s| but will not stop even if it cannot find a +file; a |q| is a nonstop mode that also suppresses all output to your +terminal. + + +Sometimes \tex\ seems to be in deep trouble and cannot extricate itself. At +this point |^C| or |<control> C| will send \tex\ a message that it should +stop. It will after the end of its present command, and return to you the +``~{\tt ?}~''. At that point an |x| will terminate the job, {\bf and} give you output +that you can print. If all else fails, a |^Y| will terminate the job, +uncleanly, and there will be no help to fix it. + +Sometimes \tex\ stops with an |*|. When this happens \tex\ is looking for a +command. Usually an |\end| or |\done| will satisfy it and terminate cleanly. + +Finally, \tex\ sometimes has trouble reading a file and asks for another name. +The only way out of this, cleanly, is to give it a file name. You should have +an empty or |null.tex| in your directory for such eventualities. This will +allow \tex\ to continue whereupon a |^C| will interrupt. + + +\shead{additionalfiles}{Additional Files} +Whenever \tex\ processes a job (your file), it creates an internal name that +is referred to in a \tex\ file as \@|\jobname|. This is the same as the file +name submitted to \tex\ or \intex\ {\bf without} the |.tex| extension. + +Both \tex\ and \intex\ use this |\jobname| to create other files with +different extensions. All \tex\ and \intex\ jobs create +create a second file +called |\jobname.lis|. In this file is a complete listing of the +messages and prompts sent to your terminal along with information about +problems that may have existed. It is useful for correcting errors. +If there is any output that can be printed, this is placed in a file with the +name |\jobname.dvi|. This is the file used by \tex print. + +In addition to these two files, \intex\ creates and uses files for special +purposes such as building table of contents, lists of figures, or +citation lists. These are only produced when some automatic feature of +\intex\ is active. The complete list of these files is +\bshortcomlist +|\jobname.ctg|&created by the first |\cite| command used to accumulate the +citation tags for a list of citations or references.\cr +|\jobname.cfm|&{\bf NOT} created by \intex\ but by the user. This file holds +the citation forms to be used when actually printing the citation in the list +of citations. \cr +|\jobname.dvi|&created by \tex\ for any (partly) successful \tex\ or \intex\ +job. This is used by \tex print.\cr +|\jobname.fig|&created with a |\openlistfile{fig}| and used to accumulate +the figure list.\cr +|\jobname.lis|&created by \tex\ for all jobs. This contains the terminal +messages and errors along with more detail on overfull boxes.\cr +|\jobname.tag|&created by |\autonumberingon| and used to accumulate the tags +and other special information necessary for symbolic references to sections, +equations, etc in the text.\cr +|\jobname.tbl|&created with a |\openlistfile{tbl}| and used to accumulate +the table list.\cr +|\jobname.toc|&created with a |\openlistfile{toc}| and used to accumulate +the table of contents.\cr +\eshortcomlist + +\shead{printing}{\tex print --- Printing your Document} +After \tex\ has successfully produced your |.dvi| file it is submitted for +printing, using the same example, by +\begintt +$dvialw psalm23 -b +\endtt +\intex\ makes the same irrational assumptions of drivers as other macro +packages such as {\tt plain}, namely that the initial position +on the page is at (1in, 1in). However these assumptions are not hard wired. +\intex\ has two commands |\hprintoffset| and |\vprintoffset| which are +given default values of 1in respectively. These may be changed at will. + +\beginblockmode +\ext\@|\hprintoffset = <dimen>| +\nbr +This offsets, horizontally, +\intex's natural margins, which would be flush with the top of +the page by {\tt <dimen>}. The default is |\hprintoffset = 1in| + +\mbr\ext\@|\vprintoffset = <dimen>| +\nbr +This offsets, vertically, +\intex's natural margins, which would be flush with the top of +the page by {\tt <dimen>}. The default is |\vprintoffset = 1in| +\endblockmode + + +The {\tt -b} option prints the pages {\tt backwards}, really normal, +order from the lowest number to the highest. A simple batch file can hide +this messiness\footnote{\dagger}{For the INRS/BNR VAX } +use {\tt HELP DVIALW to find a list of all the command line options.}. +The most important command line option that you can use gives +the ability to print only +a few pages of the file. {\tt DVIALW} reports output pages as $[p\{l\}]$ +where $p$ is the {\it physical} page number and $l$ is the {\it logical} +page number. +The first example will print from {\it physical} page 6 to the end of the +document. The second example from page 6 to page 12, and the third example +from page 6 to page 12 in steps of 2, {\it ie} pages 6, 8, 10, and 12. + + +\beginttverbatim +$dvialw psalm23 -b -o6 +$dvialw psalm23 -b -o6:12 +$dvialw psalm23 -b -o6:12:2 +\endttverbatim + + +\shead{finalversion}{The ``Final'' Version} +\intex\ has number of features that are quite useful while putting together a +document but which appear in the ``draft'' version but not in the ``final'' +version. +The default for \intex\ is |\draftversion|. This puts all the tags in +the margin and puts ``Draft Version: +{\it date}''\footnote{\dagger}{version pr\'eliminaire: {\it date} en +fran\c cais} at the bottom of the page. To create the final version the +command |\finalversion| should be put at the very beginning of your document. + + +\shead{stcomforms}{Command Forms} +\nosheadbreak +\dssshead{Creation and Termination Commands} +\beginblockmode +\pla\@|\bye| +\nbr +Cleanly terminates a file. Actual meaning is +``|\par \vfill \supereject \end|''. However, it will also {\bf terminate} +\tex\ processing if found in a {\it subdocument.} See Chapter~\ref{subdoc} +for details. + +\mbr +\ext\@|\done| +\nbr +This is the only way to terminate a document or subdocument in +\intex\ without creating problems. +Does everything |\bye| does along with checking whether certain groups are +properly ended. + +\mbr +\ext\@|\draftversion| +\nbr +This is the \intex\ default form. It prints margin notes when tags and +autonumbering are used and puts a draft version note in the bottom margin. It +is turned off using |\finalversion|. + +\mbr +\pri\@|\end| +\nbr +Terminates a \tex\ job, even if it is in a subdocument. See +Chapter~\ref{subdoc}. + +\mbr +\ext\@|\englishversion \ehyph| +\nbr +This is the default for \intex. All the messages are in English, along with +the various headings such as Chapter, and Appendix. Hyphenation is done by +English rules, as is sentence and word spacing. +\@|\ehyph| just invokes English hyphenation rules and does not affect messages. +The other version that exists +is |\versionfrancaise| + +\mbr +\ext\@|\finalversion| +\nbr +This removes the marginal notes and the ``Draft Version'' note in the bottom +margin. It should be used for the ``final'' copy. + +\mbr +\ext\@|\hyphenation{<exceptions>}| +\nbr +This command is used to correct hyphenation of a specific word when \tex\ +does it incorrectly. It is generally needed only for English. Without \mtex, +the word is entered into the hyphenation exception table. With \mtex, it is +entered into the hyphenation table corresponding to the language that is +active at the time the command is executed. For example, if English +(|\language=0|) is active, then |\hyphenation{man-u-script}| will enter the +word ``manuscript'' into the hyphenation exception table with possible +hyphens at those places where there is a ``~-~''. + +\mbr +\ext\@|\language [=] <integer>| +\nbr +Normally this command will not need to be used. \intex\ has |\language=0| for +English and |\language=1| for French. Additional languages may be added. If +\intex\ is used in conjunction \mtex, then |\language| is an integer +parameter; otherwise, it is a |\count|. For details on \mtex, see ``A +Multilingual \mtex''. + + +\mbr +\ext|\marginnotestrue \marginnotesfalse| +\nbr +If \@|\marginnotestrue|, then the margin notes will be produced. They will +not be produced when \@|\marginnotesfalse|. These can be used to override the +defaults in |\draftversion| and |\finalversion|. + +\mbr +\ext\@|\versionfrancaise \fhyph| +\nbr +This will produce French titles, messages, and spacing. When used with +Multi-lingual \mtex, it also produces French hyphenation. +\@|\fhyph| just invokes French hyphenation rules and does not affect messages. +It should be placed at the beginning of the +file. +\endblockmode +\dssshead{\tex print Commands} +These commands are dependent upon the actual print driver that is being +used. For DVIALW the following command line switches are used: + +\beginblockmode +\@|DVIALW Command line options| +\nbr +\endblockmode +\bl +\li -b : Print the file in normal order. The default is to print the file + beginning with the last page. + +\li -c\# : Select the number of copies to print ... each page is printed + \# times. eg -c42 will print 42 copies of each page. + +\li -h : Select landscape printing. + +\li -i : Select Legal printing. + +\li -o : Select output page range ... all numbers are the "physical" page + numbers, not the logical pages. DVIALW reports page output in the + format of [p{l}] where where p is the "physical' page number and + l is the "logical' page number. + + -o\# specifies start page + + -o\#:\# specifies start page and end page + + -o\#:\#:\# specifies start page, end page and step + +\li -r : Select manual feed. The laserwriter will wait for the insertion of + manual pages. + +\li -x\#{\tt <}dim{\tt >} : Set left margin. -x0in sets the left margin to 0in. + +\li -y\#{\tt <}dim{\tt >} : Set top margin. -y0in sets the top margin to 0in. +\el +\ejectpage +\marginnotesfalse +\done + diff --git a/macros/inrstex/inrsdoc/thsubdoc.tex b/macros/inrstex/inrsdoc/thsubdoc.tex new file mode 100644 index 0000000000..88c2933a46 --- /dev/null +++ b/macros/inrstex/inrsdoc/thsubdoc.tex @@ -0,0 +1,157 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{subdoc} + +\def\cqu{\cquote{Divide et Impera}{Ancient Roman political maxim} + \cquote{For example, when the author prepared this manual, he did + one chapter at a time,}{The \TeX book, Donald~E.~Knuth} +} + +\chapterhead{subdoc}{\tex ING\cr PARTS\cr of DOCUMENTS} +\intex\ allows for parts of documents,\footnote{\dagger}{\intex\ calls these +{\it subdocuments}.} +either complete sections or chapters +to be processed individually for initial checking before \tex ing the entier +document. The individual files can be used {\bf without change} in the final +processing. In fact it is possible to \tex\ sections, combine them into a +chapter, and then combine the chapters into a final document. With care, even +parts of separate documents could be combined. + +The system works best with the automatic numbering and creation features of +\intex\ but these are not required. With care and a little luck, it is +possible to re \tex\ a section of the ``final'' version without redoing the +complete document. + +It is also possible to increase to automatically save the status of a +subdocument. This feature is not an integral part of \intex\ but an example +used for this book is given in Section~\ref{subauto}. + + +\shead{subdoccomlist}{Command List} +\line{ +\ext|\inputsubdocument|\hss +\ext|\following|\hss +\ext|\subdocumentmacros| +} + +\shead{subdocformat}{Subdocument Forms} +The form required for creating a subdocument and \tex ing it is quite simple. +It should be of this form: +\begintt +\subdocumentmacros{<macro list>} +<text> +\done +\endtt +The |<macro list>| contains the information needed to \tex\ this part of the +document by itself. Only {\bf one} |\subdocumentmacros| command is allowed in +a subdocument. This |<macro list>| is executed when the subdocument is +processed by itself and {\bf completely} ignored when it is processed as part +of a larger document. A typical |<macro list>| for a chapter of this book +was +\begintt +\input helphdr +\following\chnum = 28 +\pagenumber = 88 +\endtt +This list contained {\bf all} the special macros for the book in the file +|helphdr.tex|. Since the \tex ing was being done on a chapter basis, the +|\following\chnum| sets the next chapter +number, and the |\pagenumber| set the +pagenumber. If this were the third section in a chapter, then +|\following\shnum = 3|, might be also included. If any special numbers ought to be +set, they should be also inserted. + +It should be emphasized that these numbers affect the subdocument when it is +being processed by itself only. The normal \intex\ autonumbering will override +them when it is being inserted as a subdocument. +To insert a subdocument in another, use +\begintt +\inputsubdocument{<filename>} +\endtt +The |\done| in the subdocument will {\bf not} terminate the +processing. However, a |\bye| or |\end| will. + +\shead{subauto}{Automatic Saving of Status of a Subdocument} +The commands given below were intended to save the status of each chapter. It +was assumed that a chapter had a |<tag>| and that the status was saved in a +command that had the same name as that tag. The commands are stored in a file +called |status.tex|. At the top of each subdocument the following two +commands are inserted: +\begintt +\ifundefined{writestatus} \input status \relax \fi % +\chcode{subdoc} % subdoc is the <tag> for this chapter +\endtt +The first line essentially checks to see if the |status| definitions have +been inputted. If they have not, they are brought in. The |status.tex| +defines |\chcode{<tag>}| so it must be input before |\chcode| is called. +The actual |status| definitions follow. They are probably only understandable +to \tex\ writers and should be skipped by novices. +\begingroup\eightpoint +\begintt +% Status commands for each chapter. +% these write out the chapter code, page number, and previous chapter number. + +\newwrite\docstatus % gets new output file +\def\openstatusfile{\immediate\openout\docstatus=\jobname.sta} + % this is called in the outer master program +\def\closestatusfile{\closeout\docstatus} +\def\writestatus#1{\immediate\write + \docstatus{\string\chstatus//#1//\the\chnum//\the\pageno//}} + % this writes out the actual string when the page is output +\def\chstatus//#1//#2//#3//{\expandafter\def\csname#1:\endcsname{\chnum=#2 + \pagenumber=#3}} + % this creates a command with the name #1 and sets values for + % the chapter number and page number ... the only status of + % interest here. +\def\getstatus#1{\csname#1:\endcsname} + % executes the status with name #1 +\def\chcode#1{\subdocumentmacros{\input helphdr \bookstyle % macros/style + \input masth.sta % status file name + \autonumberingon % opens local tag file + \input masth.tag % master tag file + \getstatus{#1} + \def\writestatus##1{}%disables writestatus + } + \writestatus{#1}} % will write status unless disabled +\endtt +\endgroup +Note that this imbeds a |\subdocumentmacros| inside the |\chcode|. The status +is written unless |\subdocumentmacros| is actually executed. + + + +\shead{subdocstyle}{Command Forms} +\beginblockmode +\ext\@|\inputsubdocument{<file name>}| +\nbr +This command inserts the subdocument into the present part of the document. +It encloses the subdocument in a group so that any changes to variables or +commands made in that subdocument, unless they are specifically |\global|, +will {\bf not} affect the rest of the document. It disables the effect of +|\done|, but not |\bye| or |\end|. It ignores everything that is inside the +|\subdocumentmacros| command. + +\mbr +\ext\@|\following\...hnum| +\nbr +The |\chead| and various |\s..head| commands increment their respective +number upon entering the command. The |\following| command automatically +compensates for this. So |\following\chnum = 4| {\bf before} the +|\chead|, means that the chapter beginning with the next |\chead| will +be 4 +and not 5. The same command also works for |\shnum|, |\sshnum| and |\ssshnum|. + +\mbr +\ext\@|\subdocumentmacros{<macros for subdocument>}| +\nbr +This is the means of introducing information to the subdocument that is +needed to reasonably process the subdocument, +but that might create disaster, or \tex\ +overload if read in more than once. A single subdocument may have only {\bf +one} |\subdocumentmacros| command. Typical information included in this macro +would be section numbers, chapter numbers, tag files, or citation files. No +|\outer| command is allowed. +\endblockmode +\ejectpage + +\done
\ No newline at end of file diff --git a/macros/inrstex/inrsdoc/thtoc.tex b/macros/inrstex/inrsdoc/thtoc.tex new file mode 100644 index 0000000000..301c5a4e04 --- /dev/null +++ b/macros/inrstex/inrsdoc/thtoc.tex @@ -0,0 +1,323 @@ +%-*-tex-*- +\ifundefined{writestatus} \input status \relax \fi % +\chcode{toc} + +\def\cqu{\line{}\vfill\vbox{\hsize 3.2in \rightskip=0pt \leftskip=0pt + \centerline{\sheadfont List of Figures} + \bigskip + \makefiglist\bigskip + This is given by \par + \def\2{\char'173}\def\3{\char'175} % lazy + \tt + \1centerline\2\1sheadfont List of Figures\3\par + \1bigskip\par + \1makefiglist\par + } +} + +\chapterhead{toc}{TABLES\cr of CONTENTS\cr and FIGURES} +\vskip -2.8ex +\intex\ is able to generate tables of contents, figures, and tables +automatically. It also has general capabilities to create files that can be +used to generate other lists that involve page numbers. + +\shead{toccomlist}{Command List} +\beginthreecolumn +\ext|\chtoc| +\ext|\chtocout| +\ext|\dssshtoc| +\ext|\dssshtocout| +\ext|\figtoc| +\ext|\figtocout| +\ext|\inputfigfiles| +\ext|\inputtblfiles| +\ext|\inputtocfiles| +\ext|\intdssshtoc| +\ext|\intssshtoc| +\ext|\makefiglist| +\ext|\maketbllist| +\ext|\maketoclist| +\ext|\newtocfile| +\ext|\openlistfile| +\ext|\prtoc| +\ext|\prtocout| +\ext|\shtoc| +\ext|\shtocout| +\ext|\sshtoc| +\ext|\ssshtoc| +\ext|\ssshtocout| +\ext|\tbltoc| +\ext|\tbltocout| +\ext|\tocbox| +\ext|\tocfill| +\ext|\writelistfile| +\endthreecolumn + +\shead{toclists}{Making Lists of Contents, Figures, Tables} +The distinguishing feature of |list| files in \intex\ is that they contain +a combination of commands, section or figure numbers, and page numbers. +\intex\ creates these files by the command \@|\openlistfile{<file extension>}| +and gives them the name |\jobname.<file extension>|. +This command effectively initializes the building process for the particular +list. +|<file extension>| must +be one to three characters. The file extensions for tables of contents, +figures, and tables are |.toc|, |.fig|, and |.tbl|. + +The command |\writelistfile| is used to actually put information into the +file and the |\make<file extension>list| is used to bring it back in. +Currently |\maketoclist|, |\makefiglist|, and |\maketbllist| are defined. + +These files will contain a list of commands, in the correct order for +eventually making the actual list. A typical command, in this case generated +by the |\chead| at the beginning of the chapter would be + +|\chtoc{<chapter number>}{<chapter title>}{<page number>}| + +Actually the |\chead| command does this in two steps. The actual form +executed inside the |\chead| is the command |\chtocout|. This is defaulted in +{\tt inrsdef.tex} to be |\def\chtocout{\string\chtoc}|. A modification of the +definition of |\chtocout| will change the initial command string that is +written to the |.toc| file. Theoretically, a different string could be +written for each chapter if required. This same facility exists for all the +|.toc| output forms. + +\intex\ has already defined all of the |\<type>toc| commands listed in +Section \ref{toccomlist}. However, all of these commands may be redefined for +different formats. For instance \intex\ has defined |\dssstoc| and |\ssstoc| +to be effectively null. This means that subsubsections and diminished +subsections will not be automatically listed in the table of contents +although the |\ssstoc| and |\dssstoc| commands are in the |.toc| file. + +If a |.toc| file is open, whether or not |autonumbering| is on, the |\chead|, +|\shead|, |\sshead|, |\ssshead|, |\dssshead|, and |\preludehead| commands write to +the |.toc| file. The |\figure| command writes a |\figtoc| command to the +|.fig| file and the |\table| command writes a |\tbltoc| command to the |.tbl| +file. + +Creating, writing, and inputting a new list file is not terribly difficult +but uses moderately advanced macro techniques. Most of the recipe is given +in the description of |\writelistfile| below. The rest can be determined by +examination of |\makefiglist| and |\inputfigfiles|. + +\shead{toccomforms}{Command Forms} +\beginblockmode +\ext\@|\chtoc{<number>}{<title>}{<page number>}| +\nbr +This creates a chapter entry in the table of contents as given in the table +of contents for this book. + +\mbr +\ext\@|\chtocout| +\nbr +Its default definition is +|\def\chtocout{\string\chtoc}| and is +the command executed in a |\chead| while producing a |.toc| entry. + + +\mbr +\ext\@|\dssshtoc{<number>}{<title>}{<page number>}| +\nbr +This would create table of contents entry for a diminished section heading. +Although |\dssshtoc| commands are written to the |\jobname.toc| file, they +are defined as null in \intex. If you want them to appear in a table of +contents place the command |\let\dssshtoc = \intdssshtoc| in the file just +before the |\maketoclist| is called. \@|\intdssshtoc| is |\dssshtoc| in +disguise. + +\mbr +\ext\@|\dssshtocout| +\nbr +Its default definition is +|\def\dssshtocout{\string\dssshtoc}| and is +the command executed in a |\dssshead| while producing a |.toc| entry. + + +\mbr +\ext\@|\figtoc{<number>}{<title>}{<page number>}| +\nbr +This would create table of figures entry for a figure. +\intex\ makes it identical to |\shtoc| + +\mbr +\ext\@|\figtocout| +\nbr +Its default definition is +|\def\figtocout{\string\figtoc}| and is +the command executed in a |\figureform| or +|\figureinsert| while producing a |.toc| entry. + + +\mbr +\ext\@|\inputfigfiles| +\nbr +This is a token list, including the |\inputwithcheck| of the files that are +used to make the figure list. \intex\ default is +|\inputwithcheck{\jobname.fig}|. |\the\inputfigfiles| will actually cause the +token list to be executed, {\it ie} in the default case the |\jobname.fig| +will be read in. + + +\mbr +\ext\@|\inputtblfiles| +\nbr +This is a token list, including the |\inputwithcheck| of the files that are +used to make the table list. \intex\ default is +|\inputwithcheck{\jobname.tbl}|. |\the\inputtblfiles| will actually cause the +token list to be executed, {\it ie} in the default case the |\jobname.tbl| +will be read in. + +\mbr +\ext\@|\inputtocfiles| +\nbr +This is a token list, including the |\inputwithcheck| of the files that are +used to make the figure list. \intex\ default is +|\inputwithcheck{\newtocfile}|. If a |\jobname.toc| file is open, +|\newtocfile| becomes the {\bf previous} version. If it is not, it is the +most recent version. + + +\mbr +\ext\@|\makefiglist| +\nbr +This executes |\the\inputfigfiles| which inserts +the list of |\figtoc| commands into the text. +All required |\beginlist ... \endlist| commands should +be put around it. + +\mbr +\ext\@|\maketbllist| +\nbr +This executes |\the\inputtblfiles| which inserts +the list of |\tbltoc| commands into the text. +All required |\beginlist ... \endlist| commands should +be put around it. + +\mbr +\ext\@|\maketoclist| +\nbr +This inserts the list of |\<type>toc| commands into the text by executing +|\the\inputtocfiles|. All required |\beginlist ... \endlist| commands should +be put around it. + +\mbr +\ext\@|\newtocfile| +\nbr +If a |\jobname.toc| file is open, +|\newtocfile| becomes the {\bf previous} version. If it is not, it is the +most recent version. This allows for the table of contents to contain a +reference to itself. + +\mbr +\ext\@|\prtoc{<title>}{<page number>}| +\nbr +This is the command form written into the |.toc| file by |\preludeheader|. +The output format may be seen by looking at the {\it Preface} listing in the +Table of Contents for this book. + +\mbr +\ext\@|\prtocout| +\nbr +Its default definition is +|\def\prtocout{\string\prtoc}| and is +the command executed in a |\preludehead| +while producing a |.toc| entry. + + +\mbr +\ext\@|\shtoc{<number>}{<title>}{<page number>}| +\nbr +\ext\@|\sshtoc{<number>}{<title>}{<page number>}| +\nbr +\ext\@|\ssshtoc{<number>}{<title>}{<page number>}| +\nbr +These three commands are written by the |\shead|, |\sshead| and |\ssshead| to +the |\jobname.toc| file. Examples of the default \intex\ format +for |\shtoc| may be seen in the Table of Contents. +Although |\ssshtoc| commands are written to the |\jobname.toc| file, they +are defined as null in \intex. If you want them to appear in a table of +contents place the command |\let\ssshtoc = \intssshtoc| in the file just +before the |\maketoclist| is called. \@|\intssshtoc| is |\ssshtoc| in +disguise. + +\mbr +\ext\@|\shtocout| +\nbr +\ext\@|\sshtocout| +\nbr +\ext\@|\ssshtocout| +\nbr +These three commands are executed by the |\shead|, |\sshead| and |\ssshead| +when writing to +the |\jobname.toc| file. The defaults are defined in {\tt inrsdef.tex} as +\begintt +\def\shtocout{\string\shtoc} +\def\sshtocout{\string\sshtoc} +\def\ssshtocout{\string\ssshtoc} +\endtt + +\mbr +\ext\@|\tbltoc<number>}{<title>}{<page number>}| +\nbr +This would create table of figures entry for a figure. +\intex\ makes it identical to |\shtoc| + +\mbr +\ext\@|\tbltocout| +\nbr +Its default definition is +|\def\tbltocout{\string\tbltoc}| and is +the command executed in a |\tableinsert| or |\tableform| +while producing a |.toc| entry. + +\mbr +\ext\@|\tocbox{<indent>}{<number>}{<title>}{<pagenumber>}| +\nbr +This is the general form for producing an entry for a table of contents list. +|<indent>| is a dimension and is the indentation from the left margin; +|<number>| is the number form; |<title>| is the title of the +item; and |<pagenumber>| is where it occurred. There is no interitem spacing +as part of the definition. Thus +$$ +\tocbox{4em}{3.7.9}{This is an incredibly long title to show you + what happens when there is more than one line}{375} +$$ +was produced by +\begintt +\tocbox{4em}{3.7.9}{This is an incredibly long title to show you + what happens when there is more than one line}{375} +\endtt + +\mbr +\ext\@|\tocfill| +\nbr +This creates the dots across the page in the |\..toc| macros. It is useful +for designing stylistically consistent new ones. + +\mbr +\ext\@|\writelistfile{<file extension}{\string\..toc}{<number>}{<arg>}| +\nbr +This is the basic command for writing to a |list| file. The |\string| +allows the |\..toc| to be written into the file without ever being executed. +|{<number>}| is expanded before it is written out while |{<arg>}| is not. +|\writelistfile| adds one more argument, namely +|{<page number>}|, to this command before actually writing it to the file. +The complete command written is +\begintt +\..toc{<number>}{<arg>}{<page number>} +\endtt +An example for the first chapter of this book is +\begintt +\chtoc {Chapter 1}{\tex \cr and\cr INRS\tex }{1} +\endtt +Note that |\tex| is not expanded. +An examination of any of the |list| files created by \intex\ will show some +more examples. +This command should be used whenever a write to a |list| file is required. It +is used by \intex\ in all of the section and chapter heads, along with +|\figure| and |\table|. + +\endblockmode +\ejectpage + +\done
\ No newline at end of file |