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 |
Initial commit
Diffstat (limited to 'macros/inrstex')
131 files changed, 38447 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 diff --git a/macros/inrstex/inrsinputs/UQlogo.epsf b/macros/inrstex/inrsinputs/UQlogo.epsf new file mode 100644 index 0000000000..59f2cfdc5a --- /dev/null +++ b/macros/inrstex/inrsinputs/UQlogo.epsf @@ -0,0 +1,19 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: University of Quebec logo +%%CreationDate: 1990/11/28 +%%For: P. Kabal +%%Pages: 1 +%%BoundingBox: 144 120.96 174.24 144 +%%EndComments +144 144 translate 0.24 -0.24 scale +0 setlinewidth +1 setlinecap 0 setlinejoin +16 0 moveto 50 0 lineto 34 64 lineto 0 64 lineto 16 0 lineto +0 setgray fill +newpath +54 0 moveto 88 0 lineto 72 64 lineto 38 64 lineto 54 0 lineto +0 setgray fill +newpath +92 0 moveto 126 0 lineto 102 96 lineto 68 96 lineto 92 0 lineto +0 setgray fill +showpage diff --git a/macros/inrstex/inrsinputs/bilingue.tex b/macros/inrstex/inrsinputs/bilingue.tex new file mode 100644 index 0000000000..09049a1291 --- /dev/null +++ b/macros/inrstex/inrsinputs/bilingue.tex @@ -0,0 +1,46 @@ +%-*-tex-*- +% +% Definitions des mois +% +\def \janvier{janvier} +\def \fevrier{f\'evrier} +\def \mars{mars} +\def \avril{avril} +\def \mai{mai} +\def \juin{juin} +\def \juillet{juillet} +\def \aout{ao\^ut} +\def \septembre{septembre} +\def \octobre{octobre} +\def \novembre{novembre} +\def \decembre{d\'ecembre} +% +% Autres definitions +% +\def \aparaitre{A para\^\i tre} +\def \tableau{Tableau} +\def \tabmat{Table des mati\`eres} +\def \annexe{Annexe} +% +% +% En anglais +% +% +\def \janvier{January} +\def \fevrier{February} +\def \mars{March} +\def \avril{April} +\def \mai{May} +\def \juin{June} +\def \juillet{July} +\def \aout{August} +\def \septembre{September} +\def \octobre{October} +\def \novembre{November} +\def \decembre{December} +% +% +\def \aparaitre{To appear} +\def \tableau{Table} +\def \tabmat{Table of contents} +\def \annexe{Appendix}
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/booksty.tex b/macros/inrstex/inrsinputs/booksty.tex new file mode 100644 index 0000000000..419206c727 --- /dev/null +++ b/macros/inrstex/inrsinputs/booksty.tex @@ -0,0 +1,37 @@ +%------------ BOOKSTYLE --------------- +% see english.tex and francais.tex for messages +% \def\bookstylemessage{ <<< BOOK STYLE >>> } see English/French titles +\def\bookstyle{ \message {\bookstylemessage } + \documentstyle{\numberbychapter + \vheadersize = 1cm + \vfootersize = 2cm %this is set but not used can be + \vpapersize=23cm + \vouterpagesize=20cm + \hpapersize =8.5in + \houterpagesize=12cm + \leftmarginsize = 4.8cm + \topmarginsize = 3cm + \chaptername = {} + \def\chapterstartform{\ifodd\pageno\relax\else + \line{}\ejectpage\fi\titlepagestyle} + \let\headermark=\topmark + \def\headermark##1{\global\let\headermark = ##1} + \headertext{\ifodd\pageno\rightheadertext + \else\leftheadertext\fi} + \let\specialheadertext=\headertext + \def\rightheadertext{\line{\hss + \headermark\rlap{\ssheadfont\qquad\folio}}} + \def\leftheadertext{\line{\llap{\ssheadfont\folio + \qquad}\the\chaptername\hss}} + \footertext{} \specialfootertext={} + \normalheaderstyle + \blankfooterstyle + \everyprelude = { + \def\leftheadertext{\line{\llap{\folio\qquad}\firstmark}} + \def\rightheadertext{\line{\firstmark\rlap{\qquad\folio}}} + \specialheadertext{\ifodd\pageno + \line{\hss\rlap{\qquad\folio}} + \else\line{\llap{\folio\qquad}\hss}\fi}} + }} + +\bookstyle
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/centerh.tex b/macros/inrstex/inrsinputs/centerh.tex new file mode 100644 index 0000000000..bcff383128 --- /dev/null +++ b/macros/inrstex/inrsinputs/centerh.tex @@ -0,0 +1,10 @@ +% ============ modified to center heads /subheads .... ====== +%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 +\catcode`\@=11 +\def\gensheadformat#1#2#3#4{\ifx\t@agtext\empty\setbox0=\hbox{}\else + \setbox0=\hbox{#1#2#4}\fi + \vbox{\paragraphcenterline \normalbaselines + #1\box0 #3}} +\catcode`\@=12
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/cm_11.tex b/macros/inrstex/inrsinputs/cm_11.tex new file mode 100644 index 0000000000..0eb500afb4 --- /dev/null +++ b/macros/inrstex/inrsinputs/cm_11.tex @@ -0,0 +1,65 @@ +\catcode`@=11 +% ======= elevenpoint fonts not in plain.tex ======= +\font\eleventex=cmtex10 scaled 1095 +\font\elevenssb = cmssbx10 scaled 1095 % no ss bold +\font\elevencsc = cmcsc10 scaled 1095 % caps and small caps +\font\elevenbfx = cmbx10 scaled 1095 % bold wide +\font\elevenbfy = cmbsy10 scaled 1095 %bold math symbols? + +% ===== elevenpoint fonts +\font\elevenrm= cmr10 scaled 1095 +\font\elevenrmsca = cmr10 scaled 1095 +\font\elevenbf = cmb10 scaled 1095 +\font\elevenbfxsca = cmbx10 scaled 1095 +\font\elevenss = cmss10 scaled 1095 +\font\elevenit = cmti10 scaled 1095 +\font\eleveni = cmmi10 scaled 1095 +\font\elevensl = cmsl10 scaled 1095 +\font\elevensy = cmsy10 scaled 1095 +\font\eleventt = cmtt10 scaled 1095 +\font\elevensc = cmcsc10 scaled 1095 +\let\sanss = \elevenss + +\let\elevenex=\tenex + + +\def\elevenpoint{\def\pointsize{eleven}% + \def\rm{\fam0\elevenrm}% + \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm + \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\sixi + \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy + \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex + \def\it{\fam\itfam\elevenit}% + \textfont\itfam=\elevenit + \def\sl{\fam\slfam\elevensl}% + \textfont\slfam=\elevensl + \def\bf{\fam\bffam\elevenbf}% + \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbfx + \scriptscriptfont\bffam=\sixbfx + \def\tt{\fam\ttfam\eleventt}% + \textfont\ttfam=\eleventt \scriptfont\ttfam=\tentt + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm % now so resets are ok. + \setstrut + \ifd@ocsty \def\documentpointsize{eleven}% + \let\footerfont=\elevenit + \let\headerfont=\elevenit + \let\footnotefont = \ninepoint + \let\smallerfont = \ninepoint + \let\cheadfont = \eighteenrmsca + \let\sheadfont=\fourteenbfxsca + \let\ssheadfont=\elevenbfxsca + \let\sssheadfont=\elevenbfxsca + \let\dsssheadfont=\elevenbfxsca + \let\captionnumfont=\elevenbfxsca + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \twelvermsca + \let\biggfont = \fourteenrmsca + \let\bigggfont = \eighteenrmsca + \let\titlefont = \bigggfont + \let\sc=\ninerm + } +\catcode`@=12
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/dvialw.ps b/macros/inrstex/inrsinputs/dvialw.ps new file mode 100644 index 0000000000..5cab336e35 --- /dev/null +++ b/macros/inrstex/inrsinputs/dvialw.ps @@ -0,0 +1,310 @@ +% removed mote test (mjf) +% <BEEBE.TEX.DVI>DVIALW.PS.17, 18-Sep-87 17:48:04, Edit by BEEBE +% Add test for note paper and if unknown, use letter paper instead. +% Non-Apple PostScript implementations do not know about note paper +% but its use on the Apple LaserWriter gains 92K of virtual memory +% <BEEBE.TEX.DVI>DVIALW.PS.16, 18-Sep-87 15:50:52, Edit by BEEBE +% Modify coordinate computations to remove round-off errors +% in landscape mode, and correct landscape page origin +% <BEEBE.TEX.DVI>DVIALW.PS.14, 22-Jun-87 09:55:05, Edit by BEEBE +% Add missing "0 900 translate Mtrx currentmatrix pop" to /LEGAL +% <BEEBE.TEX.DVI>DVIALW.PS.13, 7-Jan-87 17:38:51, Edit by BEEBE +% Add translate command to BOP so that (0,0) really corresponds to +% the top left physical page corner. The standard LaTeX file +% TESTPAGE.TEX can be used for this calibration; it might be sensitive +% to the particular printer used. +% <BEEBE.TEX.DVI.NEW>DVIALW.PS.12, 10-Dec-86 17:24:50, Edit by BEEBE +% Fix off-by-one error in definition of /B; to draw a box N pixels +% wide, microscopic examination of output shows that the box width +% must be N-1, not N, pixels; the boundary counts in the filling. +% <BEEBE.TEX.DVI.NEW>DVIALW.PS.9, 28-Nov-86 19:00:52, Edit by BEEBE +% Change definition of EOP to use #copies and showpage +% instead of {copypage} repeat erasepage +% <BEEBE.TEX.DVI.NEW>DVIALW.PS.7, 16-Oct-86 13:09:36, Edit by BEEBE +% Following Macintosh LaserWriter md dictionary, change most +% def's to bdf's (bind def); this is claimed to speed up +% operator access +% <BEEBE.TEX.DVI.NEW>DVIALW.PS.5, 16-Oct-86 12:01:12, Edit by BEEBE +% Change CTL-L to caret-L in comment +% <BEEBE.TEX.DVI.NEW>DVIALW.PS.3, 13-Jun-86 10:48:39, Edit by BEEBE +% Fix definition of NOTE, make it default in BOJ macro to try to reduce +% incidence of VM errors +% ---------------------------------------------------------------------- +% DVIALW PostScript macro definitions (keep in alphabetical order). For +% readability, these are heavily commented, but we adhere to the +% convention that percent is used ONLY to mark the beginning of a +% comment (NEVER occurs inside a PostScript string), and lines are +% limited to 80 characters. That way, DVIALW can read these definitions +% from a file and discard comments and trailing white space before +% transmission to the PostScript output file. In the interests of +% compactness, macros which receive any significant degree of use are +% given single letter names -- PostScript is already much too verbose. +% +% Coordinates are assumed to be in pixels (Resolution per inch). The +% page origin follows the PostScript convention of being in the lower +% left corner, y positive upwards along the longer side of the page, x +% positive to the right. Letter and legal sizes are therefore +% equivalent as far as PostScript is concerned, but y coordinates can be +% bigger in legal size. In landscape mode, the page is rotated to place +% the origin in the upper left corner, x positive downward along the +% longer side of the page, y positive to the right. That way, pages +% eject from the printer upright when viewed from the front of the +% printer. +% +% Document format is something like this: +% +% %!PS-Adobe-1.0 +% %%Dimensions: 0 0 612 792 +% %%Title: DVIALW -o1 -s300 foo12 +% %%CreationDate: Sat Mar 8 10:52:52 1986 +% %%Creator: BEEBE and [TeX82 DVI Translator Version 2.03b...] +% %%Pages: (atend) +% %%BugHistory: Incorporates save/restore and font reloading... +% %%BugHistory: Incorporates Allan Hetzel's 31-Oct-85 DARPA... +% %%EndComments +% %%EndProlog +% %%Page: 0 1 +% TeXdict begin +% BOJ +% BOP +% ... +% 1 EOP +% ^LBOP +% ... +% 1 EOP +% ^LBOP +% ... +% 1 EOP +% ^LEOJ +% %%Trailer +% %%Pages: 7 +% %%PageTable: 0 1 3434 +% ^D +% +% One formfeed is output for each printed page copy, in order to make +% spooler page accounting simple. The additional comments wrapping the +% BOJ .. EOJ sequence conform to Adobe PostScript file structuring +% conventions, and the first line can be used by the spooler to identify +% the file as containing PostScript. +% ---------------------------------------------------------------------- + + +/TeXdict 200 dict def % dictionary for these definitions +TeXdict begin + +% bdf -- bind def (for efficiency) +% Usage -- just like def, but not on constant objects +/bdf {bind def} def + +% B -- draw bar (TeX rule) of size w by h at currentpoint +% Usage -- w h B +/B +{ + /h exch def + /w exch def + gsave + currentpoint + newpath + moveto + w 1 sub 0 rlineto + 0 h 1 sub rlineto + w 1 sub neg 0 rlineto + closepath fill + grestore +} bdf + +% BOJ -- beginning of job (EOF ends it and closes TeXdict) +% Usage -- BOJ +/BOJ +{ + 72 Resolution div 72 Resolution div scale + userdict /note known + {LETTER} % MJF mod + {LETTER} % default page format for others + ifelse +} bdf + +% BOP -- beginning of page +% Usage -- BOP +/BOP +{ + clear + Mtrx setmatrix + 25 0 translate % Physical page origin is at (-25,0) from the top left corner +} bdf + +% ch-fieldname -- extract field from ch-data array (order defined by positions +% in first array argument to macro D) +% Usage -- ch-fieldname +/ch-image {ch-data 0 get} bdf % the bitmap hex string image +/ch-xoff {ch-data 1 get} bdf % pixels from left edge of bitmap to char origin +/ch-yoff {ch-data 2 get} bdf % pixels from top edge of bitmap to char origin +/ch-width {ch-data 3 get} bdf % bitmap width in pixels +/ch-height {ch-data 4 get} bdf % bitmap height in pixels +/ch-tfmw {ch-data 5 get} bdf % pixels to next character (precise flt value) + +% CharBuilder -- image one character +% Usage -- fontdict ch CharBuilder +/CharBuilder +{ + /ch-code exch def % save the char code + /font-dict exch def % and the font dict. + /ch-data font-dict /BitMaps get + ch-code get def % get the bitmap descriptor for char + ch-data null eq not % show character if entry is not empty + { + ch-tfmw 0 + ch-xoff neg ch-yoff ch-height sub + ch-width ch-xoff sub ch-yoff + setcachedevice + 0 0 SNAP translate + ch-width ch-height true [ 1 0 0 -1 ch-xoff ch-yoff ] + {ch-image} imagemask + } if +} bdf + + +% D -- define new character in current font +% Usage -- [<bitmap> xoff yoff pixwid pixht tfmpixwid] charnum D +/D +{ + /ch-code exch def + /ch-data exch def + currentfont /BitMaps get ch-code ch-data put + currentfont /Encoding get ch-code dup 3 string cvs cvn put +} bdf + +% EOJ -- end of job +% Usage -- EOJ +/EOJ +{ + end % matches begin issued before BOJ +} bdf + +% EOP -- end of page +% Usage -- ncopies EOP +/EOP +{ +/#copies exch def +showpage +} bdf + +% LANDSCAPE -- landscape format page (11inH x 8.5inV) +% Usage -- LANDSCAPE +/LANDSCAPE +{ + letter initmatrix + 72 Resolution div dup scale + 0 3300 translate + -90 rotate + 0 -750 translate + Mtrx currentmatrix pop +} bdf + +% LANDSCAPE -- landscape format page (11inH x 8.5inV) +% Usage -- LEGAL_LAND +/LEGAL_LAND +{ + legal initmatrix + 72 Resolution div dup scale + 0 4200 translate + -90 rotate + 0 -750 translate + Mtrx currentmatrix pop +} bdf + +% LEGAL -- legal format page (8.5inH x 14inV) +% Usage -- LEGAL +/LEGAL +{ + legal initmatrix + 72 Resolution div dup scale + 0 900 translate + Mtrx currentmatrix pop +} bdf + +% LETTER -- letter format page +% Usage -- LETTER +/LETTER +{ + letter initmatrix + 72 Resolution div dup scale + Mtrx currentmatrix pop +} bdf + +% M -- moveto +% Usage -- x y M +/M +{ + moveto +} bdf + +% Mtrx -- permanent storage for page transformation matrix +% Usage -- Mtrx +/Mtrx 6 array def + +% NF -- define new font +% Usage -- /fontname NF +/NF +{ + /newname exch def + newname 7 dict def + newname load + begin + /BitMaps 128 array def + /BuildChar { CharBuilder } def + /Encoding 128 array def + 0 1 127 { Encoding exch /.notdef put } for + /FontBBox [ 0 0 1 1 ] def + /FontMatrix [ 1 0 0 1 0 0 ] def + /FontType 3 def + end + newname newname load definefont pop +} bdf() pop + +% NOTE -- note format page (increases available virtual memory from 240K +% to 340K on Apple LaserWriter) +% Usage -- NOTE +/NOTE +{ + note initmatrix + 72 Resolution div dup scale % set scaling to 1. + Mtrx currentmatrix pop +} bdf + +% P -- show string at current point, updating horizontal position to new endpt +% Usage -- (string) P +/P {show} bdf() pop + +% Q -- draw bar of last size set by B command at specified point +% Usage -- x y Q +/Q {moveto w h B} bdf() pop + +% R -- move relative right and show string, updating horizontal position to +% new endpoint +% Usage -- (string) xxx R +/R {0 rmoveto show} bdf() pop + +% Resolution -- device resolution in dots/inch +% Usage -- Resolution +/Resolution 300 def + +% S -- move absolute and show string, updating horizontal position to new endpt +% Usage -- (string) xxx yyy S +/S {moveto show} bdf() pop + +% SF -- set new font at scale nnn (nnn = 1 normally; 2 gives double size chars) +% Usage -- nnn /fontname SF +/SF {findfont exch scalefont setfont} bdf() pop + +% SNAP -- convert coordinates to integer device coordinates and back again +% Usage -- xxx yyy SNAP (leave xxx' yyy' on stack) +/SNAP {transform 2 {floor 0.5 add exch} repeat itransform} bdf + +% T -- move absolute horizontally and show string, updating horizontal position +% to new endpt +% Usage -- (string) xxx T +/T {currentpoint exch pop moveto show} bdf() pop + +end % TeXdict +
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/enfrtwo.tex b/macros/inrstex/inrsinputs/enfrtwo.tex new file mode 100644 index 0000000000..e0d81a168b --- /dev/null +++ b/macros/inrstex/inrsinputs/enfrtwo.tex @@ -0,0 +1,106 @@ +%-*-tex-*- +% some macros for english/french side by side + +\def\coltol{\pretolerance=5000 \tolerance=5000 \hbadness=5000 } + +\newbox\leftbox +\newbox\leftrembox +\newbox\rightbox +\newbox\rightrembox +\newbox\tempbox +\newif\ifboxsplit % if either box is split +\newif\ifcolsplit % if this col is being split +\newdimen\remsplit +\newdimen\rempage +\newdimen\colsize \colsize=2.8in +\let\dbmess=\message +\def\dbmess#1{} +\raggedbottom +\def\splitparms #1{\remsplit=\pagegoal \advance\remsplit by -\pagetotal \relax + \rempage=\remsplit + \ifdim\pageshrink<10pt \advance\remsplit by -10pt\fi + \advance\rempage by -\ht#1 + \advance\rempage by -\dp#1 \colsplitfalse + \ifdim\rempage<0pt \ifdim\remsplit>0pt \colsplittrue \fi\fi + \dbmess{<<rs \the\remsplit* rp \the\rempage *ps \the\pageshrink>>}} + +% general column form #1 \right(left)box #2 \right(\left)rembox #3 type +% #4 input + +\def\colform #1#2#3#4{\setbox#1=\vtop{\hsize \colsize \coltol #3#4} + \splitparms{#1}\ifcolsplit\dbmess{<<col split \the\ppnum>>} + \boxsplittrue\setbox\tempbox=\vsplit + #1 to \remsplit \fi + \ifvoid\tempbox \else + \setbox#2=\vtop{\unvbox#1}\relax + \setbox#1=\vtop{\unvbox\tempbox}\fi + \dbmess{** tbx r ** rrh \the\ht#1 + * rh \the\ht#2 + * drh \the\dp#1 + * dh \the\dp#2 }} + +% right and left forms + +\long\def\rightform #1{\colform{\rightbox}{\rightrembox}{\fhyph}{#1\endgraf}} +\long\def\leftform #1{\colform{\leftbox}{\leftrembox}{\ehyph}{#1\endgraf}} + + +\newcount\ppnum + +\long\def\pp #1@@#2!!{\advance\ppnum by 1 \dbmess{<< pp num \the\ppnum>>} + {\def\pp{\dbmess{<<Possible @@ or !! error>>}}\vskip \parskip + \boxsplitfalse\leftform{#1}\rightform{#2}\relax + \line{\box\leftbox\hss\box\rightbox}\relax + \ifboxsplit + \line{\box\leftrembox\hss\box\rightrembox} + \dbmess{<<End Splitbox \the\ppnum>>}\fi + }} + +\def\seh#1#2#3{\pp\innershead{#1}{#2}@@\autonumberingoff + \innershead{\qref{#1}.}{#3}!!\nobreak\mark{#2/#3}\nobreak} +\def\sseh#1#2#3{\pp\innersshead{#1}{#2}@@\autonumberingoff + \innersshead{\qref{#1}}{#3}!!\nobreak\mark{#2/#3}\nobreak} +\def\ssseh#1#2#3{\pp\innerssshead{#1}{#2}@@\autonumberingoff + \innerssshead{\qref{#1}}{#3}!!\nobreak\mark{#2/#3}\nobreak} +\def\dssseh#1#2{\pp\innerdssshead{#1}@@ + \innerdssshead{#2}!!\nobreak\mark{#1/#2}\nobreak} +\let\dsh=\dssseh + + +%\tracingpages=1 + +% --- header stuff ---- + \headertext{\ifodd\pageno\rightheadertext + \else\leftheadertext\fi} + \def\rightheadertext{\line{\hss + \firstmark\rlap{\ssheadfont\qquad\folio}}} + \def\leftheadertext{\line{\llap{\ssheadfont\folio + \qquad}\firstmark{ }\hss}} +\documentstyle{\normalheaderstyle + \vheadersize=.35in + \normalfooterstyle + \vfootersize=.35in} + + + +% Autonumbering ... referencing sections paragraphs +\newautonum{art} + +\def\pn{{\bf \autoartnum{}} } +\def\pntag#1{\autoartnum{#1}} +\def\rpn{{\bf \the\artnum } } + +% Toc forms change +\let\idssshtoc=\shtoc +\let\ishtoc=\shtoc +\def\shtoc #1#2#3 \shtoc #4#5#6{\pp \ishtoc{#1}{#2}{#3}@@\ishtoc{#4}{#5}{#6}!!} +\let\isshtoc=\sshtoc +\def\sshtoc #1#2#3 \sshtoc #4#5#6{\pp \isshtoc{#1}{#2}{#3}@@\isshtoc{#4}{#5}{#6}!!} +\let\issshtoc=\ssshtoc +\def\ssshtoc #1#2#3 \ssshtoc #4#5#6{\pp \issshtoc{#1}{#2}{#3}@@\issshtoc{#4}{#5}{#6}!!} + % like section heads .. minor indent +\def\dssshtoc #1#2#3 \dssshtoc #4#5#6{\pp \idssshtoc{#1}{#2}{#3}@@\idssshtoc{#4}{#5}{#6}!!} + + + +\parindent=0pt \parskip=2.8ex % block mode
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/english.tex b/macros/inrstex/inrsinputs/english.tex new file mode 100644 index 0000000000..f0690068dd --- /dev/null +++ b/macros/inrstex/inrsinputs/english.tex @@ -0,0 +1,17 @@ +\def\englishversion{\language=0 +\nonfrenchspacing % .... needs to reverse accent forms ... +\def\versionform{{\notefont Draft Version: \date}}% +\def\Chapter{Chapter }% +\def\Appendix{Appendix }% +\def\ABSTRACT{{\ssheadfont Abstract}}% +\def\figurelabel{Fig. }% +\def\tablelabel{Table }% +\def\bookstylemessage{ <<< BOOKSTYLE >>> }% +\def\endlistmessage##1{ <<< endlist mismatch >>> }% +\def\undeftagmessage##1{ <<<tag: ##1 = undefined>>> }% +\def\citetagfileclosedmessage{ << CITATION TAG FILE CLOSED >> }% +\def\nocitetagformmessage{ NO CITATION FOR THIS TAG }% +\def\titlemessage{Title}% +\lccode`\'=0 +}% +\englishversion
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/francais.tex b/macros/inrstex/inrsinputs/francais.tex new file mode 100644 index 0000000000..7b5b07f561 --- /dev/null +++ b/macros/inrstex/inrsinputs/francais.tex @@ -0,0 +1,17 @@ +\gdef\versionfrancaise{\language=1 +\frenchspacing +\def\versionform{{\notefont version pr\'eliminaire:\date}}% +\def\Chapter{Chapitre }% +\def\Appendix{Appendice }% +\def\ABSTRACT{{\ssheadfont Sommaire}}% +\def\figurelabel{Fig. }% +\def\tablelabel{Tableau }% +\def\bookstylemessage{ <<< genre de livre >>> }% +\def\endlistmessage##1{ <<< erreur : endlist >>> }% +\def\undeftagmessage##1{ <<<tag:##1 = indefini>>> }% +\def\citetagfileclosedmessage{ << FICHIER DE CITATION DES TAG FERME >> }% +\def\nocitetagformmessage{ PAS DE CITATION POUR CET TAG }% +\def\titlemessage{Titre}% +\lccode`\'=`\'% +}% +\versionfrancaise
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/helphdr.tex b/macros/inrstex/inrsinputs/helphdr.tex new file mode 100644 index 0000000000..877c3e98c3 --- /dev/null +++ b/macros/inrstex/inrsinputs/helphdr.tex @@ -0,0 +1,306 @@ + +% -*-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}}} + + +\outer\def\indexingon{\openlistfile{ind}\def\xref{\indexittrue}} + + +\outer\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 texgrct %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 + +\ejectpag
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/ieeelogo.ps b/macros/inrstex/inrsinputs/ieeelogo.ps new file mode 100644 index 0000000000..b96c2b8f2a --- /dev/null +++ b/macros/inrstex/inrsinputs/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/inrsinputs/inrslogo.tex b/macros/inrstex/inrsinputs/inrslogo.tex new file mode 100644 index 0000000000..483eb81ec1 --- /dev/null +++ b/macros/inrstex/inrsinputs/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}
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/inrssl.tex b/macros/inrstex/inrsinputs/inrssl.tex new file mode 100644 index 0000000000..925a824779 --- /dev/null +++ b/macros/inrstex/inrsinputs/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} +\formscale 1 +%====== end defaults ===== + +\catcode`\@=12 + diff --git a/macros/inrstex/inrsinputs/inrssty.tex b/macros/inrstex/inrsinputs/inrssty.tex new file mode 100644 index 0000000000..2a68c0e36a --- /dev/null +++ b/macros/inrstex/inrsinputs/inrssty.tex @@ -0,0 +1,30 @@ + +% this assumes the basic paperstyle of INRSTeX and only defines macros for +% covers +% INRS Report cover Macros +\newtoks\titrederapport \titrederapport = {Titre de Rapport} +\newtoks\numeroderapport \numeroderapport = {Numero de Rapport} +\newtoks\datederapport \datederapport = {Date de Rapport} +\newtoks\auteursderapport \auteursderapport = {Auteurs de Rapport} +\newtoks\titrespecial \titrespecial = {} +\def\faitepagetitre{\begingroup \leftmargin=1.75in + \fullpagestyle + \vglue 3.8cm + \line{\hss\vbox{\hsize=8cm\twelvebfxsca\lineskip=2pt + \paragraphcenterline \the\titrederapport + \medskip \it + \the\auteursderapport}\hskip 3.4cm} + \vfill + \centerline{\vbox{\hsize=10cm \it\paragraphcenterline + INRS-T\'el\'ecommunications \cr + 3 Place du Commerce \cr + Ile des Soeurs, Qu\'e. \cr + CANADA H3E 1H6 }} + \vskip 2.5cm + \centerline{\the\datederapport} + \vfill + \centerline{Rapport technique de + l'INRS-T\'el\'ecommunications no. \the\numeroderapport} + \medskip + \the\titrespecial + \ejectpage\endgroup} diff --git a/macros/inrstex/inrsinputs/inrstemp.tex b/macros/inrstex/inrsinputs/inrstemp.tex new file mode 100644 index 0000000000..fe550dde86 --- /dev/null +++ b/macros/inrstex/inrsinputs/inrstemp.tex @@ -0,0 +1,11 @@ + +% this assumes the basic paperstyle of INRSTeX and only defines macros for +% covers +% INRS Report cover Macros +\titrederapport = {Titre de Rapport} +\numeroderapport = {Numero de Rapport} +\datederapport = {Date de Rapport} +\auteursderapport = {Auteurs de Rapport} +\titrespecial = {} + +\faitepagetitre
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/oldspace.tex b/macros/inrstex/inrsinputs/oldspace.tex new file mode 100644 index 0000000000..d00be1801f --- /dev/null +++ b/macros/inrstex/inrsinputs/oldspace.tex @@ -0,0 +1,2 @@ +\def\spacing#1{\setbox0=\vbox{\vskip 2.8ex} \baselineskip #1\ht0 + \lineskip=1pt\lineskiplimit=0pt}
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/papersty.tex b/macros/inrstex/inrsinputs/papersty.tex new file mode 100644 index 0000000000..417aafcdad --- /dev/null +++ b/macros/inrstex/inrsinputs/papersty.tex @@ -0,0 +1,19 @@ +% see english.tex and francais.tex for messages +\def\paperstyle{\documentstyle{\vouterpagesize = 9.25in + \houterpagesize = 6.0in + \topmargin = 1in + \leftmargin = 1.25in + \vheadersize = 0pt + \vfootersize = .35in + \headertext{} \specialheadertext{} + \footertext{\centerline{- \folio\ -}} + \let\specialfootertext = \footertext + \leftskip=0pt + \rightskip=0pt + \tenpoint + \noheaderstyle + \normalfooterstyle + \numberbysection + \specialnumberscontinuous}} + +\paperstyle
\ No newline at end of file diff --git a/macros/inrstex/inrsinputs/spfont.tex b/macros/inrstex/inrsinputs/spfont.tex new file mode 100644 index 0000000000..ecf578ed5b --- /dev/null +++ b/macros/inrstex/inrsinputs/spfont.tex @@ -0,0 +1,79 @@ +\catcode`\@=11 +% --------- This is the "cm" version -------- +% a family is produced by redefining the special font forms in + +% \genpoint ... the names reflect the base fonts + + +\def\rescale #1#2{\count255=#1\multiply\count255 by #2\relax + \divide\count255 by 100 + \advance\count 255 by 5 % rounding + \divide\count 255 by 10 } + +\def\fontset scaled #1 { +\font\tensprm =cmr10 scaled #1 +\font\sevensprm = cmr7 scaled #1 +\font\fivesprm = cmr5 scaled #1 +\font\tenspi = cmmi10 scaled #1 +\font\sevenspi = cmmi7 scaled #1 +\font\fivespi = cmmi5 scaled #1 +\font\tenspsy = cmsy10 scaled #1 +\font\sevenspsy = cmsy7 scaled #1 +\font\fivespsy = cmsy5 scaled #1 +\font\tenspit = cmti10 scaled #1 +\font\tenspsl = cmsl10 scaled #1 +\font\tenspbfx = cmbx10 scaled #1 +\font\sevenspbfx = cmbx7 scaled #1 +\font\fivespbfx = cmbx5 scaled #1 +\font\tensptt = cmtt10 scaled #1 +\font\tenspex = cmex10 scaled #1 +\def\tenspscsm{\rescale {800}{#1} + \font\t@enspscsm = cmcc10 scaled \the\count255\relax + \let\tenspscsm=\t@enspscsm\tenspscsm} +\def\tensprmbig{\rescale {1200}{#1} + \font\t@ensprmbig = cmr10 scaled \the\count255\relax + \let\tensprmbig=\t@ensprmbig\tensprmbig} +\def\tenspbfxbig{\rescale {1200}{#1} + \font\t@enspbfxbig = cmbx10 scaled \the\count255\relax + \let\tenspbfxbig=\t@enspbfxbig\tenspbfxbig} +\def\tenspbfxbigg{\rescale {1440}{#1} + \font\t@enspbfxbigg = cmbx10 scaled \the\count255\relax + \let\tenspbfxbigg=\t@enspbfxbigg\tenspbfxbigg} +\def\tensprmbigg{\rescale {1440}{#1} + \font\t@ensprmbigg = cmr10 scaled \the\count255\relax + \let\tensprmbigg=\t@ensprmbigg\tensprmbigg} + \let\tensprmbiggg = \tensprmbigg } + +\def\genpoint{\def\rm{\fam0\tensprm}% + \textfont0=\tensprm \scriptfont0=\sevensprm \scriptscriptfont0=\fivesprm + \textfont1=\tenspi \scriptfont1=\sevenspi \scriptscriptfont1=\fivespi + \textfont2=\tenspsy \scriptfont2=\sevenspsy \scriptscriptfont2=\fivespsy + \textfont3=\tenspex \scriptfont3=\tenspex \scriptscriptfont3=\tenspex +\def\it{\fam\itfam\tenspit}% +\textfont\itfam=\tenspit +\def\sl{\fam\slfam\tenspsl}% +\textfont\slfam=\tenspsl +\def\bf{\fam\bffam\tenspbfx}% + \textfont\bffam=\tenspbfx \scriptfont\bffam=\sevenspbfx +\scriptscriptfont\bffam=\fivespbfx +\def\tt{\fam\ttfam\tensptt}% +\textfont\ttfam=\tensptt +\tt \ttglue=.5em plus .25em minus .15em +\def\normalbaselines{\baselineskip 2.8ex \lineskip 1pt \lineskiplimit \z@}% +\setbox\strutbox=\hbox{\vrule height 2.32ex depth .48ex width\z@}% +\normalbaselines\rm + \ifd@ocsty \let\footerfont =\tenspit + \let\headerfont=\tenspit +% \let\footnotefont = \smallpoint +% \let\smallerfont = \smallpoint + \def\cheadfont{\tensprmbigg}\relax + \def\sheadfont{\tenspbfxbig}\relax + \def\ssheadfont{\tenspbfx}\relax + \def\sssheadfont{\tenspbfx}\relax + \def\dsssheadfont{\tenspbfx}\relax + \setspacings \fi +\def\bigfont{\tenspbfxbig}\def\biggfont{\tenspbfxbigg}\relax +\def\bigggfont{\tenspbfxbiggg}\let\titlefont = \biggfont + \let\sc=\tenspccsm } + +\catcode`\@=12 diff --git a/macros/inrstex/inrsinputs/texgraph.tex b/macros/inrstex/inrsinputs/texgraph.tex new file mode 100644 index 0000000000..14c065d753 --- /dev/null +++ b/macros/inrstex/inrsinputs/texgraph.tex @@ -0,0 +1,859 @@ +% DVIPS version + +% included are the changes required to make it work with DVIPS +% It should be modifiable to any other decent driver too + +% This is the complete texgraph macros ... for use with the INRS/Beebe +% Postscript driver + +% This is the INRSTEX version + +% Graphics macros for TeX using POSTCRIPT + +% ----- Needs mod to count characters in special ... some drivers have an +% input limit of 500 characters in a \special + + +% =============================================================== +% THIS VERSION IS FOR USE with a PostScript Driver with +% \p@sfile to signal a file name +% \p@sinline to signal inline PostScript +% processes \specials and dvi commands in order. +% does not place a (save restore) pair about a \special. +% +% \printhv defines scale/directions for inline Postscript +% \filehv defines scale/directions for file Postscript +% +% Both INRS's modification of Beebe's DVIALW and ArborText's PostScript +% drivers satisfy these minimal requirements. + +% It assumes that the underlying units are 300 pix/in +% Standard PostScript Conventions +% This is easily changed by changing the \hpix or \vpix +% It assumes that x,y are in the "normal" up/left direction. + +% File inclusions require the existence of a bounding box for the correct +% spacing to be left. + +% =============================== +% Most arguments, excepting file names, are delimited by spaces. Thus +% braces { .... } will usually only occur around inserted text ... which +% still must be followed by a space or end of line. + + +% ====================== + +\catcode`\@=11 + +% =============== Driver Signal Forms ======================= + +%\xdef\p@sfile{ps: } % file signal INRS DVIALW + \xdef\p@sfile{ps: plotfile } % file signal DVIPS +\xdef\p@sinline{ps:: } % inline signal DVIPS ... INRS DVIALW + +% This translates the direction of the page if the printer assumptions +% are different than TeX. The values should be +-1. +\gdef\printhv #1 #2 {\gdef\p@hv{ #1 #2 scale }} +\gdef\filehv #1 #2 {\gdef\f@schv{ #1 #2 scale }} +\gdef\rtdir #1 {\gdef\r@tdir{ #1 }} % neg or nothing PS has no pos + + + + + +% ============== LateX support ================= + +%\newenvironment{TeXgraph}{\btg}{\etg} + +% This is the only change between the LateX and INRSTeX versions + +% ======= Simple Plotfile support =========== + +% These are vanilla forms for inserting an encapsulated PostScript file +% or creating a centered graphics environment. + +% \centergraph needs to be very \long + +\long\gdef\centergraph#1{\hbox to + \hsize{\hss\vbox{#1\vgraphskip}\hgraphskip\hss}} +\gdef\centerplotfile#1{\centergraph{\btg\includefile {#1} \etg}} + + +% if you use the Latex command to create the new texgraph environment, +% then you will automatically be "inside" Texgraph. This +% means that you should use such commands as +% \includefile \incscmvfile \incscfile + + + + +% ========= error messages ========= +% \language=0 -- English, 1 - French +\ifnum \language=0 \message{<< WARNING -- TeXGraph needs DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \else + \message{<< AVERTISSMENT -- TeXGraph a besoin du DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \fi + +% ===== debugging code ===== +% will send out specials as messages +\gdef\dmess #1{} +\gdef\bmess #1{} + +% ======== \global\newif ======= +% Plain defines the \newif as a local variable. We need a global +% version if TeXgraph is to be brought in while inside a group. +% This is a simpler, but less elegant version of \newif + +%#1 is \if<..> #2 -...true #3 ...false +\gdef\gnewif#1#2#3{\global\let#1=\iffalse \gdef#2{\let#1=\iftrue}\relax + \gdef#3{\let#1=\iffalse}} + +% ======== TeXGraph Macros ========== + +% Postcript allows for arbitrary translation, scaling, rotation and clipping. +% This version saves the current segment scale(s), unit scale(s), rotation +% and translation and painfully computes and retores the correct form after +% a segment exit. The reason for this is that Postcript can stack only one +% CTM, text needs to have correct rotation and translation but default +% scaling ... + +% It would be preferable not to convert any of the units. However, it is +% necessary to know the maximum excursions. Since the PS currentpoint is +% not accessible to TeX, we must keep it ourselves. +% Since negative numbers can be used both maximum and minimum excursions +% are required. + + +% ====== begin -- end graphics ======= + +% The maximum and minimum extent in the h and v direction is recorded +% and is accessible +% at the end of a \btg \etg pair (in points). The same value, in pixels is accessible at +% all times +\newcount\maxhpospix +\newcount\maxvpospix +\newcount\minhpospix +\newcount\minvpospix +\newdimen\hgraphsize +\newdimen\vgraphsize + +\gdef\vgraphskip{\vskip\vgraphsize} +\gdef\hgraphskip{\hskip\hgraphsize} + + +\gdef\beginTeXGraphics{\t@exgraphdef \i@ncgdepth + \vbox\bgroup\offinterlineskip + \h@pos=0 + \global\maxhpospix=\h@pos + \global\minhpospix=\h@pos + \v@pos=0 + \global\maxvpospix=\v@pos + \global\minvpospix=\v@pos + \h@segoff=\h@pos \v@segoff=\v@pos + \edef\o@form{}\ifnum\g@depth=1 + \p@sinit \fi \p@sset % PS initialization + \s@save} +% \s@save saves the initialization for the special output. +% \g@save saves some local condition + +\gdef\endTeXGraphics{\g@raphout\egroup\maxhvpos\p@srestore \d@ecgdepth } +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics + +% ========== TeXGraph Nesting Depth ========== +\newcount\g@depth \global\g@depth=0 % initializes at zero +\gdef\i@ncgdepth{\global\advance\g@depth by 1 } +\gdef\d@ecgdepth{\global\advance\g@depth by -1 } + + + +% =========== Complete Graph Scaling =============== +% There is a separate scaling for the horizontal, vertical, and text + + +\gdef\grscale h:#1 v:#2 {\gdef\h@grsc{#1}\gdef\v@grsc{#1}\e@xtend + {\o@form}{#1 #2 scale }} + +\gdef\tgrscale #1 {\e@xtend{\o@form}{#1 #1 scale }} + % text scale h and v the same + + + + +% ======== PostScript initialization ========= +% + +\gdef\t@exgrdictdef{/td 50 dict def } + + + +\gdef\t@exgrdictinit{ td begin /mv {moveto} def + /lv {lineto} def + /st {stroke} def + /np {newpath} def + /sl {setlinewidth} def + /sd {setdash} def + /rt {rotate} def + /gs {gsave} def + /gr {grestore} def + /tr {translate} def + /cp {closepath} def + /sg {setgray} def + /chv {currentpoint} def + /cv {curveto} def + /slc {setlinecap} def + /slj {setlinejoin} def + /sc {scale} def + /at {neg atan rt} def + /mx {mv gs chv tr} def +% \h@vinit + end } +% ----- initial point move ... driver dependent ----- +\gdef\Xpos{Xp\the\g@depth\b@} +\gdef\Ypos{Yp\the\g@depth\b@} + +\gdef\h@vinit{ chv /\Ypos exch + def /\Xpos exch def } +\gdef\h@vset{\t@rhv \p@hv } +\gdef\m@vhv{ \Xpos \Ypos mv } % INRS +\gdef\t@rhv{ \Xpos \Ypos tr } % INRS +\gdef\t@rneghv{ \Xpos neg \Ypos neg tr } % INRS + +\gdef\p@sinit{\edef\e@form{\special{\p@sinline + \t@exgrdictdef + \t@exgrdictinit}} +\gdef\p@sset{\special{\p@sinline td begin \h@vinit gs \t@rhv + \p@hv end }}\e@form\dmess{\e@form}} + +% ======== PostScript termination ========= +\gdef\p@srestore{\edef\e@form{\special{\p@sinline grestore }}\e@form + \dmess{\e@form}} + % resets to entry into TeXgraph and recovers memory + +%========= macros for converting dimensions/units ========= +% --------- \box0 must not be void ---------- +\global\setbox0=\hbox{} + +%default values +\gdef\graphdim#1 {\gdef\g@dim{#1\relax}} + +%pixels /dim unit +\newcount\h@pix % sp/pixel +\gdef\hpix#1/#2 {\wd0=1true#2\relax + \h@pix=\wd0 \divide\h@pix by #1 \relax} +\newcount\v@pix % sp/pixel +\gdef\vpix#1/#2 {\wd0=1true#2\relax + \v@pix=\wd0 \divide\v@pix by #1 \relax} + +% Assumes #1 is dimension #2 is count in pixels, #3 sp/pix, #4 scalefactor (real) +% #2 is returned +\gdef\gendimtopix#1#2#3#4{\wd0=#1\dimen0=#4\wd0\relax + \wd0=\dimen0 #2=\wd0 \divide #2 by #3\relax} +% #1 is returned, #5 -\global or {} +\gdef\genpixtopt#1#2#3#4#5{\multiply #2 by #3\relax\wd0=#2sp + #5#1=#4\wd0\relax} + +% ---------- Converts maxpix to maxdim removes offset ----- +\gdef\maxhvpos{\global\advance\maxhpospix by -\minhpospix\relax + \genpixtopt{\hgraphsize}{\maxhpospix}{\h@pix}{\h@grsc}{\global}\relax + \global\advance\maxvpospix by -\minvpospix\relax + \genpixtopt{\vgraphsize}{\maxvpospix}{\v@pix}{\v@grsc}{\global}} + + + +% ======== The vector offsets my be relative or absolute ===== + +\gnewif{\ifr@elpos}{\r@elpostrue}{\r@elposfalse} %default is absolute +\gdef\absoluteposition{\r@elposfalse} +\gdef\relativeposition{\r@elpostrue} +\global\let\abspos=\absoluteposition +\global\let\relpos=\relativeposition +\global\let\absolute=\absoluteposition % historical +\global\let\relative=\relativeposition % historical + +% ====== update #1 by #2 r@elpos to #3, #4 is max #5 is min======= +\gdef\u@pdate#1#2#3#4#5{\ifr@elpos \advance #1 by #2\else + \advance #2 by #3\relax + #1=#2\fi + \ifnum #1>#4\global #4=#1\fi + \ifnum #1<#5\global #5=#1\fi + } +\gdef\h@update #1{\u@pdate{\h@pos}{#1}{\h@segoff}{\maxhpospix}{\minhpospix}} +\gdef\v@update #1{\u@pdate{\v@pos}{#1}{\v@segoff}{\maxvpospix}{\minvpospix}} + +% === pixel position r@elpos to initial offset starting position +\newcount\h@pos \h@pos=0 +\newcount\v@pos \v@pos=0 +\newcount\r@ang \r@ang=0 % 1000 times degrees ? + + +% ===== Check for pen up moves only ===== +% penup/down are used to determine whether a line needs to be stroked +% when a line pattern or penwidth is changed. + \gnewif{\ifp@down}{\p@downtrue}{\p@downfalse} + + +% ===== present segment origin and rotation ========== + +\newcount\h@segoff +\newcount\v@segoff +\newcount\r@segoff % 1000 times degrees + + +\gdef\beginsegment{\g@raphout\begingroup\s@eginit} + +% segment initialization is a trifle messy +\gdef\s@eginit{\h@segoff =\h@pos \v@segoff=\v@pos} + + +% PS has the concept of a path that is either +% completed with a "stroke" or "fill" ... stroking +% at the end or beginning of a segment, the special is written out. This is +% to ensure that the input order of the graphics reflects what entities are +% on top of what others. Further it is assumed that the origin does not +% change during an entire \btg ...\etg section. This means that every special +% must first move to the point where the previous one left off. \s@save +% defines \s@restore that restores, in case they had been modified, the line +% width, pattern, hpos, vpos, ... and any future things that need restoration. +% all graphic specials are ended with a stroke (st), whether it needs it not. + +% we need a special form to force a space after a \the\nnn form or \p@w + +\gdef\b@{ } + +\gdef\endsegment{\g@raphout\endgroup + \edef\o@form{}\s@save} +\gdef\s@pout #1#2{\edef\e@form{\special{#1\s@restore\o@form#2}}\dmess{\e@form}\e@form + \edef\o@form{}\s@save} +%\h@vset if there is a move before each special +\gdef\g@raphout{\ifx\empty\o@form \else \ifp@down + \s@pout{\p@sinline td begin }{ st end }\fi\fi\p@downfalse} +\global\let\graphout=\g@raphout + +% ====== Segment and units scaling ======== +% The units in any segment may be scaled arbitrarily. A unit scale is local +% to a segment but affects enclosed segments unless specifically overidden +% in that segment. In addition there is a graph or segment scale. This +% scaling factor is accumulative and is applied on top of the unit scale. +% These two scaling factors allow for a segment to be designed in nominal +% units, scaled to a nominal size and then be affected by relative scaling +% of an entire graph or segment. In addition there is a relative/absolute +% scale switch that allows for any segment to be unaffected by a graphscale. + +% \u@nitsc -- present unit scale, \s@egsc -- present segment scale +% \g@rsc -- present graphscale ... changes when ever either of the former do. + +% present implementation does not allow separate v h scaling + +% ------ Relative/Absolute Scale ------ +\gnewif{\ifr@elscale}{\r@elscaletrue}{\r@elscalefalse} +\gdef\absolutescale{\r@elscalefalse} +\gdef\relativescale{\r@elscaletrue} +\global\let\abssc=\absolutescale +\global\let\relsc=\relativescale + +% ----- unit scale ----- +\gdef\unitscale#1 {\edef\u@nitsc{#1}\newgraphscale} + +\global\let\graphscale=\unitscale % Historical + +% ----- Segment Scale ----- + +\gdef\segmentscale#1 {\ifr@elscale \realmult{#1}{\s@egsc}{\s@egsc}\else + \edef\s@egsc{#1}\fi + \newgraphscale} + +% ---- Graph Scale -------- +% This changes whenever either of the above change +\gdef\newgraphscale{\realmult{\u@nitsc}{\s@egsc}{\g@rsc}} + + +% ------ "Real" Multiplication -------- +% These functions use the fact that a box dimension may be scaled by +% a real. The final step is to "clean" off the pt on the resulting dim + +% Cleans off the pt in a dimension ... pt has catcode 12 +{\catcode`\p=12 \catcode`\t=12 +\gdef\c@lean#1pt{\edef\cx{#1}}} +% #1 and #2 are multiplicands #3 is a command to capture result +\gdef\realmult#1#2#3{\wd0=1pt\dimen0=#1\wd0\wd0=\dimen0\dimen0=#2\wd0 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} +\gdef\realadd#1#2#3{\dimen0=#1pt\dimen2=#2pt\advance\dimen0by\dimen2 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} + + +% -------- Command to convert nominal values to pixels ------ +% #1 is a decimal number, #2 must be a count, #3 is sp/pix +% This includes all scalings +\gdef\grdimtopix#1#2#3{\gendimtopix{#1\g@dim}{#2}{#3}{\g@rsc}} + + +% ------- special forms to update positions ------ + +\gdef\i@h#1{\grdimtopix{#1}{\d@umc}{\h@pix}\h@update{\d@umc}} +\gdef\i@v#1{\grdimtopix{#1}{\d@umc}{\v@pix}\v@update{\d@umc}} +\gdef\h@num#1#2{\grdimtopix{#1}{#2}{\h@pix}} +\gdef\v@num#1#2{\grdimtopix{#1}{#2}{\v@pix}} + + +%dummy variables +\newcount\d@uma +\newcount\d@umb +\newcount\d@umc +\newcount\d@umd +\newcount\d@ume + +% ====== end macros for converting dimensions + +% ======== Some more Utility Macros ======== +% ======== recursive macros ======== +\gdef\e@xtend #1#2{\let\d@x=#1\edef #1{\d@x #2}} +\xdef\s@pex{} +\xdef\s@pin{ } +\gdef\s@pexpand #1 #2!{\e@xtend{\s@pex}{#1\s@pin}\edef\t@x{#2}\ifx\t@x\empty\relax \else + \s@pexpand #2!\fi} + +% ========== A Do Loop Construction ========= +% \do <something> for <number of times>\od +% This is a specialization of the \loop in Plain. + +\newcount\d@count +\gdef\do #1 for #2\od{\d@count=#2\loop #1 \ifnum\d@count>1\advance + \d@count by -1\repeat} + + +% ========= Graphics specials ======= +\xdef\o@form{} +\gdef\penwidth #1 {\h@num{#1}{\d@umc}\edef\p@w{\the\d@umc}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\p@w\b@ sl }\fi} +\gdef\linecap #1 {\edef\s@lc{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lc\b@ slc }\fi} +\gdef\linejoin #1 {\edef\s@lj{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lj\b@ slj }\fi} +\gdef\lpatt p:#1 {\edef\v@p{#1 0}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\v@p\b@ sd }\fi} + + +% ==== parameters are in units of the nominal dimension \g@dim ====== + +\gdef\p@move #1#2#3{\i@h{#1}\i@v{#2}\e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ #3 }} + +\gdef\lvec h:#1 v:#2 {\p@move{#1}{#2}{lv}\p@downtrue} %draws a line + +\gdef\move h:#1 v:#2 {\p@move{#1}{#2}{mv}} %moves + + +% ====== a general vector with dimensions in pixels ====== + +% ========= General pixel dim vector ========== + +\gdef\lpix h:#1 v:#2 f:#3 {\e@xtend{\o@form}{ #1 #2 #3 }} + + +%============== puts TeX text at this position +% These are pure TeX macros that use \h@pos and \v@pos for orientation +% Text may be put horizontally (left/right) or vertically (down/up) + +% ======== sp form of \h@pos and \v@pos respectively ======== +\newdimen\t@hpos +\newdimen\t@vpos +\gdef\s@ettpos{\d@umc=\h@pos + \genpixtopt{\t@hpos}{\d@umc}{\h@pix}{}{}\relax + \d@umc=\v@pos + \genpixtopt{\t@vpos}{\d@umc}{\v@pix}{}{}\relax} + + + +% any one of nine reference point may be specified on the +% TeX box. This is Vertical T,C,B and Horizontal L,C,R +% The actual box is 0 height and width. +\newbox\t@box +% #1 LCR default/error L #2 TCB default/error T #3 text -- in hbox + +% Sets the box glues \lhglue \rhglue \tvglue \bvglue +% #1 x/h ref, #2 v/y ref +\gdef\textref h:#1 v:#2 {\ifx#1R\edef\lhglue{\hss}\edef\rhglue{}\else + \ifx#1C\edef\lhglue{\hss}\edef\rhglue{\hss}\else + \edef\lhglue{}\edef\rhglue{\hss}\fi\fi + \ifx#2B\edef\tvglue{\vss}\edef\bvglue{}\else + \ifx#2C\edef\tvglue{\vss}\edef\bvglue{\vss}\else + \edef\tvglue{}\edef\bvglue{\vss}\fi\fi} +\global\let\tboxref=\textref + +\newcount\h@oldmaxpos \newcount\v@oldmaxpos + + %needed to save max pos when texgraph is inside an h/vtext + +% ========== assumes driver location at initial \btg entry ======== +% + +% #1 text #2 - begin rotation form #3 - end rotation form +\long\gdef\m@text#1#2#3{\g@raphout\h@oldmaxpos=\maxhpospix\relax + \v@oldmaxpos=\maxvpospix\relax + \edef\h@oldgrsc{\h@grsc}\edef\v@oldgrsc{\v@grsc}\s@ettpos + \setbox\t@box=\vbox{\normalbaselines + \vskip\t@vpos\hbox{\hskip\t@hpos + \t@init{#2}\relax + \vbox to 0pt{\normalbaselines + \tvglue\hbox to 0pt{\lhglue\hbox{#1}\rhglue + }\bvglue}}}\relax + \dp\t@box=0pt\ht\t@box=0pt\wd\t@box=0pt + \box\t@box + \t@fin{#3} + \global\maxhpospix=\h@oldmaxpos\relax + \global\maxvpospix=\v@oldmaxpos\relax + \xdef\h@grsc{\h@oldgrsc}\edef\v@grsc{\v@oldgrsc}} + % saves maxh(v)pospix on stack + + +% ========== PS text initializations and terminations =========== +\gdef\t@init#1{\special{\p@sinline td begin \h@vinit gr gs + \t@rhv #1 \t@rneghv end }} + +\gdef\t@fin#1{\special{\p@sinline td begin \h@vinit gr gs \m@vhv \t@rhv \p@hv end }} + +% .... special test +%\gdef\t@init#1{} +%\gdef\t@fin#1{} +% ... end special test + + + +\long\gdef\htext #1 {\m@text{#1}{}{}} +\long\gdef\vtext #1 {\m@text{#1}{ 90 \r@tdir rt }{}} +\long\gdef\rtext d:#1 t:#2 {\m@text{#2}{ #1 \r@tdir rt }{}} +\long\gdef\rstext d:#1 sc:#2 t:#3 {\m@text{#3}{ #1 \r@tdir rt #2 #2 sc }{}} +\global\let\tbox=\htext + +% ========= Various Restore forms ======== +\gdef\g@save{\edef\g@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} +\gdef\s@save{\edef\s@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} + + + + +% ======== circle, arcs ========= +% The PS arc will connect the center of the arc to the circumference +% if the newpath includes the move to this point. Thus we define a +% set of arc functions that include/exclude this feature. The default +% does not include this form. + +\gdef\larc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{ st np \the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc + st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +\gdef\lcir r:#1 {\larc r:#1 sd:0 ed:360 } + +% ------ this is a raw arc ... can be used in fills -------- + +\gdef\arcc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc }} + +\gdef\arcn r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ + \the\d@umc\b@ #2 #3 arcn }} + +% ======= fill command ========== +% The fill command is essentially a polygonal fill ... not a point spreading +% this means that it is possible to erase with white ... The form here +% completes with a closepath applies the fill, starts a newpath and moves +% to the current point. Pattern is a grey level. +% 0 is black 1 is white + +\gdef\pfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp #1 sg fill np \the\h@pos\b@ \the\v@pos\b@ mv }} + + +% this form both fills and strokes around the path +\gdef\lpfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp gs #1 sg fill gr st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +% ======== Postscript special forms ======== +% This allows "raw" postscript to be put in the graph. +\gdef\pst #1{\e@xtend{\o@form}{#1 }} + +% These are some useful postscript compatible forms. + +\gdef\closepath{\e@xtend{\o@form}{cp }} +\gdef\newpath{\e@xtend{\o@form}{np }} +\gdef\stroke{\e@xtend{\o@form}{st }} + + + +% ========= including external files ========== +% an external file is included at the present point on the graph area +% moves are required to get there +% The actual file is placed inside a \t@box and tex commands are used +% to get to the place ... They probably can be nested +% #1 is the filename + +% The file is opened, if possible, to read its size. If this exists, it +% is used to update the maximum h/v position. +% The BoundingBox is determined + + +\newread\q@file +% #1 is the file name +\gnewif{\ifq@read}{\q@readtrue}{\q@readfalse} +\gnewif{\ifq@file}{\q@filetrue}{\q@filefalse} +\gnewif{\ifb@boxexists}{\b@boxexiststrue}{\b@boxexistsfalse} +% #1 == %%BoundingBox, #2 llh #3 llv #4 urh #5 urv #6 rest of line + + +\gdef\uncat{\catcode`"=12} + +{\catcode`\%=12 +\gdef\l@shift{\ifx\l@lh\empty \xdef\l@lh{\l@lv}\xdef\l@lv{\u@rh}\xdef + \u@rh{\u@rv}\xdef\u@rv{\e@xt}\fi} +\gdef\B@Box{%%BoundingBox} +\gdef\a@tend{(atend)} +\gdef\a@tendtest{\l@shift\ifx\l@lh\a@tend\relax\else + \global\b@boxexiststrue\q@readfalse\bmess{<< At End Test >>}\fi} + +\long\gdef\q@inline #1:#2 #3 #4 #5 #6 #7//{\xdef + \q@bbtest{#1}\xdef\l@lh{#2}\xdef + \l@lv{#3}\xdef\u@rh{#4}\xdef\u@rv{#5}\xdef + \e@xt{#6}\ifx\q@bbtest\B@Box + \a@tendtest\fi + \ifeof\q@file \q@readfalse \fi} + +\gdef\s@bbox{\b@boxexistsfalse + \message{<< \bbmess -- \f@ilename>>}\q@readtrue + \loop \relax \ifq@read\r@eadline\repeat} + +\gdef\r@eadline{ {\uncat \global\read\q@file to\q@parms } + \expandafter\q@inline\q@parms {}:{\relax} {\relax} {\relax} {\relax} +{\relax} \relax//\bmess{<<\q@parms>>}} + +\gdef\g@etpsize #1{{\catcode`\%=12\openin\q@file = #1\relax + \edef\q@parms{}\global\q@filetrue\xdef\f@ilename{#1} + \ifeof\q@file \message{<<\noincfile: #1 >>}\relax + \global\q@filefalse\else + \s@bbox + \closein\q@file\fi}} + +} % end of % disable + +\newcount\h@px \newcount\v@px \newcount\h@mx \newcount\v@mx +\gdef\s@avemaxpos{\global\h@px=\maxhpospix\global\v@px=\maxvpospix + \global\h@mx=\minhpospix\global\v@mx=\minvpospix} +\gdef\r@estoremaxpos{\global\maxhpospix=\h@px\global\maxvpospix\v@px + \global\minhpospix=\h@mx\global\minvpospix\v@mx} + +\gdef\f@sc{\b@} +\gdef\f@rt{\b@} +\gdef\filerotate#1{\edef\f@rt{ XposR YposR tr #1 \r@tdir rt XposR neg + YposR neg tr }} + +\gdef\filescale #1{\edef\f@sc{#1 #1 sc \f@schv}} +\gdef\p@fileinit{ td begin \h@vinit gr gs \f@rt \t@rhv \f@sc end + /texgraph save def /showpage {} def } +\xdef\p@filefin{ texgraph restore } +\global\let\mvec=\move + + + +\gdef\includefile #1 {\incscfile f:{#1} sc:1 d:0 } + +\gdef\incscfile f:#1 sc:#2 d:#3 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + +\gdef\incscmvfile f:#1 sc:#2 d:#3 h:#4 v:#5 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \ifx#4L \edef\f@h{0}\else \ifx#4C \edef\f@h{1} \else \edef\f@h{2}\fi\fi + \ifx#5T \edef\f@v{0}\else \ifx#5C \edef\f@v{1} \else\edef\f@v{2}\fi\fi + \realmult{\p@lhh}{\f@h}{\h@off} + \realmult{\p@lvh}{\f@v}{\v@off} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{-\h@off} v:{-\v@off} + \beginsegment + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \beginsegment + \mvec h:{-\h@off} v:{-\v@off} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + + + +% ============ Design Grid ============== +% This will lay down a grid at the present location. The grid nominally +% at unit dimension intervals. The scale factor sc modifies this. The +% sc is local only to the grid + +\newcount\gcount +\gdef\grid nh:#1 nv:#2 sc:#3 {\gcount= #1 + \beginsegment + \relative + \penwidth .005 + \graphscale #3 + \beginsegment + \loop \lvec h:#2 v:0 + \move h:-#2 v:1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \gcount = #2 + \beginsegment + \loop \lvec h:0 v:#1 + \move h:1 v:-#1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \endsegment} +%========= end design grid ================ + + +% =========== Arrow Vectors ============== +% There are three types of arrow heads, filled, open V and triangle +% These are always placed on the end of a vector. + +% The basic design has the arrow head which is placed on the vector +% It theoretically can be placed on any curve where the angle is known or +% computable. + + +\newcount\a@len +\newcount\a@wid + +% Parameter specification for arrowheads. +% #1 -- length #2 -- width +% The dimensions are interpreted at current graphscale in force and +% are local to the segment group. +\gdef\arrowheadscale{\arrowheadsize l:.16 w:.04 } +\gdef\arrowheadsize l:#1 w:#2 {\grdimtopix{#1}{\a@len}{\h@pix + }\grdimtopix{#2}{\a@wid}{\h@pix + }} +% postcript commands for inidividual arrow form +\gdef\arrowheadtype t:#1 {\ifx#1T\edef\a@com{cp gs 1 sg fill gr st }\else + \ifx#1F\edef\a@com{cp 0 sg fill }\else + \edef\a@com{st }\fi\fi} +\newcount\h@lp +\newcount\v@lp + +% assumes that the dh and dv is in \h@lp \v@lp and present location is tip +% of arrowhead +\gdef\a@draw{st np \the\h@pos\b@ \the\v@pos\b@ mx + \the\v@lp\b@ neg \the\h@lp\b@ at + -\the\a@len\b@ \the\a@wid\b@ mv 0 0 lv + -\the\a@len\b@ -\the\a@wid\b@ lv + \a@com gr } + + + +\gdef\avec h:#1 v:#2 {\h@lp=\h@pos\relax \v@lp=\v@pos\relax + \lvec h:#1 v:#2 \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} + + +% ============= End Arrow Vectors ============= + +% ========= Bezier Curve ========== +% this is a cubic spline that is determined by four points. The initial +% point is assumed to be the current point. An arrow is easily added. + + +\gdef\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\i@h{#1}\d@uma=\h@pos + \i@v{#2}\d@umb=\v@pos\i@h{#3}\d@ume=\h@pos\i@v{#4}\d@umd=\v@pos + \i@h{#5}\i@v{#6}\e@xtend{\o@form}{\the\d@uma\b@ \the\d@umb\b@ + \the\d@ume\b@ \the\d@umd\b@ \the\h@pos\b@ \the\v@pos\b@ + cv }\p@downtrue} +\gdef\clv (#1 #2) (#3 #4) (#5 #6){\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + +\gdef\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 + \h@lp=\d@ume \relax \v@lp=\d@umd \relax + \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} +\gdef\cav (#1 #2) (#3 #4) (#5 #6){\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + + + + + +% ======= default values ========= +% These are reset each time \btg is called +\gdef\t@exgraphdef{\setbox0=\hbox{}\graphdim in +\hpix 300/in % INRS Default +\vpix 300/in % INRS Default +\printhv 1 1 % DVIPS 300 dpi +\filehv 4.17 -4.17 % DVIPS 300/72 +\rtdir neg % DVIPS +\def\h@grsc{1}\def\v@grsc{1}%sets default hor/vert scales +\absoluteposition +\relativescale +\unitscale 1 +\penwidth .015 +\lpatt p:{[]} +\linecap 1 +\linejoin 1 +\arrowheadsize l:.16 w:.04 +\arrowheadtype t:T +\textref h:L v:T } + +\xdef\s@egsc{1}% initial default + +\catcode`\@=12 + + + diff --git a/macros/inrstex/inrsinputs/verbatim.tex b/macros/inrstex/inrsinputs/verbatim.tex new file mode 100644 index 0000000000..1cb87e2ccf --- /dev/null +++ b/macros/inrstex/inrsinputs/verbatim.tex @@ -0,0 +1,40 @@ +%-*-tex-*- +%========= Verbatim or NoFill Style ======== +% the actual macros for these are found in Tex$inputs:verbatim.tex +% any character other than a \ is printed. +% the format is \beginttverbatim <text> \endttverbatim +% the default font is \tt +% the \\ is defined as a \filbreak. It has the effect pushing blocks of +% text between successive \\ onto the next page if it will not fit on the +% remainder of the present page. +\gdef\tabmessage{\ifnum\language=0 <tabs> are dangerous in tt verbatim + \else <tabs> sont dangereux dans tt verbatim \fi}% +{\catcode`\^^M=\active % these lines must end with % +\gdef\ttobeylines{\catcode`\^^M\active \let^^M\vpar}% +\global\let^^M\vpar}% this is in case ^^M appears in a \write +{\catcode`\ =\active +\outer\gdef\beginttverbatim{\begingroup +\def\\% +{\filbreak}\chardef\other=12% +\catcode`\{=\other +\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% +\def\vpar{\par\leavevmode}% +\def {<tab>\message{<<\tabmessage>>}}% +\obeyspaces\ttobeylines +\catcode`\ =\active +\tt\xspaceskip=.5em\spaceskip=\xspaceskip +}}% +\outer\gdef\endttverbatim{\endgroup}% +\beginttverbatim
\ No newline at end of file diff --git a/macros/inrstex/inrstex/abstract.tex b/macros/inrstex/inrstex/abstract.tex new file mode 100644 index 0000000000..b20aa2a1f3 --- /dev/null +++ b/macros/inrstex/inrstex/abstract.tex @@ -0,0 +1,29 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%========= ABSTRACT/TITLE FORMS ======= +% These generate a centered abstract in the \smallerfont of a family + +\newdimen\absindent +%\def\ABSTRACT{ABSTRACT} see English/French titles +\newtoks\everyabstract +\newtoks\e@veryabstract +\def\beginabstract{\begingroup + \par + \leftskip= .1\hsize \rightskip=.1\hsize + \noindent + \ABSTRACT\par\noindent \smallerfont + \the\e@veryabstract + \the\everyabstract} +\def\endabstract{\par\endgroup\vskip 2.8ex} + + +%\def\titlemessage{Title} % see english/french titles +%\def\titlefraction{0.9} % see inrsdef.tex +%\def\titlespacing{1.5} % see inrsdef.tex +\def\title #1{\titlepagestyle\toks0={#1} + \writeterm{<\titlemessage: \the\toks0>}{}{} + \centerline{\vbox{\hsize = \titlefraction\hsize + \titlefont\spacing{\titlespacing} + \paragraphcenterline #1}}} diff --git a/macros/inrstex/inrstex/appendix.tex b/macros/inrstex/inrstex/appendix.tex new file mode 100644 index 0000000000..9b32d1d886 --- /dev/null +++ b/macros/inrstex/inrstex/appendix.tex @@ -0,0 +1,33 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% =========== Appendices ============== +% Appendices are defined by using \shead invocations. +% Appendices are assumed to be associated with chapters, if +% they exist hence the first appendix in Chapter 2 is Appendix A. +% These macros modify the numberforms of \shead to produce Apendices. + + + +% Appendix numbering (A, B, C, ...) is incremented +% at each appendix. The \beginappendices...\endappendices +% macros should bracket all of the appendices. +% Equations, figures and tables are numbered for each +% appendix separately. +\newif\ifa@ppendix +% \def\Appendix{Appendix } see English/French titles +\newtoks\everyappendices +\newtoks\e@veryappendices +\def\beginappendices{\begingroup \a@ppendixtrue + \numberbysection + \global\shnum=0 + \global\sshnum=0 + \global\ssshnum=0 + \def\shnumform{\Alphabetic{\the\shnum}} + \the\s@presetlist %resets all the special numbers + \def\shtagreplaceformat{\Appendix \shtagrefformat.} + \the\e@veryappendices + \the\everyappendices} + +\def\endappendices{\endgroup}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/auto.tex b/macros/inrstex/inrstex/auto.tex new file mode 100644 index 0000000000..517b9db093 --- /dev/null +++ b/macros/inrstex/inrstex/auto.tex @@ -0,0 +1,90 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%========= Autonumbering, Tagging and Autoreferencing ========= + +% These macros give the facility to symbolically refer to sections, equations, +% tables, and references and to automatically number them. +% Autonumber, automatically numbers sections, equations, .... +% Autoreferencing, causes \ref{tag} to drop the tag-value in the text. + +% Although it is possible to have only autonumbering, referring to +% sections or other parts is quite difficult without referencing + + + +% When autonumbering or autoreferencing is first turned on, +% a tag file is brought in. +% Tags are written to a new file as they are generated. + +\newif\ifautoreference +\newif\ifautonumber +\newif\ift@agfilein +\newwrite\t@agfile + +\newtoks\inputtagfiles \inputtagfiles={\inputwithcheck {\jobname.tag} } +%\newtoks\inputtagfiles \inputtagfiles={\inputwithcheck {@\jobname.tag} } +% MSDOS version with renaming +\def\g@ettagfile{\ift@agfilein + \else + \the\inputtagfiles + \immediate\openout\t@agfile=\jobname.tag + \t@agfileintrue + \fi} +\def\autonumberingon{\g@ettagfile\autonumbertrue} +\def\autonumberingoff{\autonumberfalse} +\def\autoreferencingon{\g@ettagfile\autoreferencetrue} +\def\autoreferencingoff{\autoreferencefalse} + +%-------- general tag setups --- new autonumbers +%#1 tagtype #2 pre +%tagrefformat will be called by \...tagrefformat and will be initially +% defined as \...tagrefformat --> \Prerefform\...numform\Postrefform +% and \...numform -->\the\...num +\def\Prerefform{} \def\Postrefform{} + +%---- makes the tex commands for tag refformats ----- +\def\m@aketagrefformat#1#2{\edef\nnxt{ + \noexpand\def\csname #1tagrefformat\endcsname{\noexpand\Prerefform #2\noexpand\Postrefform}} + \nnxt} + +% ----list of specials to be reset .... all are done together unless overidden +\newtoks\s@presetlist + + + +% ------ newautonum ------- +% This is used to produce the commands necessary to have a tag that can be +% associated with a counter and to have the format styles for printing the +% numbers. They are used for such things a figures, tables, equations. +% Three are actually defined. + +% #1 is the name of then new autonum --- 3 or less characters +% since it might be the needed for list files +% if #1=xy, makes an \xynum, \xynumform \xytagrefformat +% sets \xynumform to \the\xynum +\def\newautonum#1{ + \expandafter\n@ewcount\csname #1num\endcsname %allocates counter + \edef\n@ext{{\global\expandafter\csname #1num\endcsname = 0}} + \expandafter\toks0\n@ext + \appendtoks{\s@presetlist}{\toks0} + \expandafter\let \csname #1tagrefformat\endcsname = \relax + %inhibits expansion later on + \edef\n@ext##1{\noexpand\def\csname auto#1num\endcsname + ##1{\noexpand\a@utotag{##1}{\csname #1num\endcsname + }{\csname #1tagrefformat\endcsname + }{\csname #1tagrefformat\endcsname}{##1}}} + \n@ext{##1} %makes \auto#1num + \m@aketagrefformat{#1}{\csname #1numform\endcsname} + \edef\n@ext{ %initializes \#1numform + \noexpand\def\csname #1numform\endcsname + {\noexpand\the\csname #1num\endcsname}} + \n@ext + } + +%===== Allocates the autonums to eq, fig and tbl ======= +\newautonum{eq} +\newautonum{fig} +\newautonum{tbl} +%-------------------- diff --git a/macros/inrstex/inrstex/cite.tex b/macros/inrstex/inrstex/cite.tex new file mode 100644 index 0000000000..1101ba3726 --- /dev/null +++ b/macros/inrstex/inrstex/cite.tex @@ -0,0 +1,165 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ===== Citation generation ========== +% \cite is used with a journal/paper reference. +% The forms allow both random input order of cite forms or +% fixed order. At the moment it supports only IEEE form, ie +% a list in the order of their occurrence in a paper. +% A data base system using a mailbox would be much better. + + +% Invocation of \cite{Ferg84} will define a \tag{Ferg84}{<number>}, +% where the reference number is sequentially determined. At the site +% of the invocation <number> is dropped into the text (without [ or ]). +% If the reference has been previously invoked, the number is that of +% the first invocation. +% the \citenum is relative to an \i@nitcitenum. This allows for multiple +% reference lists in the same document. A new number is defined if the old +% one is undefined or less than or equal to the initcitenum + +% In addition, when the citation tag file is written out, the last \citenum +% is also written. This allows a citation tag file to be input for early +% reference and then to be effectively discarded by resetting the +% \i@nitcitenum + +\def\opencitationtagfile{\openlistfile{ctg}\resetcitationnumbers\immediate + \write\ctg@file{\noexpand\initcitetag{\the\citenum}}} + +\def\closecitationtagfile{\immediate + \write\ctg@file{\noexpand\lastcitetag{\the\citenum}}\closelistfile{ctg}} + +%--- citenum allocation ------ +\def\initcitetag#1{\xdef\i@nitcitenum{#1}} + \initcitetag{0} % initializes to 0 +\def\lastcitetag#1{\xdef\l@astcitenum{#1}} + \lastcitetag{0} % initializes to 0} + +\newcount\citenum \citenum = 0 +\def\resetcitationnumbers{\ifnum\citenum>\l@astcitenum + \lastcitetag{\the\citenum}\else + \global\citenum = \l@astcitenum \fi + \initcitetag{\l@astcitenum}} + +\def\w@ritecite#1{\ifctglist \immediate\write\ctg@file + {\string\tag{#1}{\the\citenum}}\fi} +\def\m@akecitetag#1{\global\advance\citenum by 1 \relax + \tag{#1}{\the\citenum}\w@ritecite{#1}} + +\def\cite#1{\ifctglist \else \opencitationtagfile \fi + \edef\c@itearrow{<--}\relax + \ifundefined{:@#1}\m@akecitetag{#1}\edef\c@itearrow + {==>}\fi + \ifnum \i@nitcitenum < \csname :@#1\endcsname \else + \m@akecitetag{#1}\edef\c@itearrow + {==>}\fi + \count255= \csname :@#1\endcsname + \advance\count255 by -\i@nitcitenum \relax + \proofmargin{#1 \c@itearrow\ \the\count255}\the\count255} + +% This will produce the correct value of a citation without +% causing it to be created if it does not exist + +\def\citeref#1{\ifundefined{:@#1}\count255=0\else + \count255=\csname :@#1\endcsname\fi + \advance\count255by-\i@nitcitenum\relax\the\count255} + + +% Citation/Reference list generation. An example setup using the list +% macros to generate a reference list is shown below. +% \opencitationtagfile +% <main text> +% \beginlist +% \makecitationlist %or \makelongcitationlist +% \endlist +% The reference list is generated from two files: +% <jobname>.ctg contains citation tags of the form \tag{Ferg84}{4} +% where the first argument is the tag, and the second +% is the reference number associated with that tag. +% <jobname>.cfm contains the text for the references. These can appear +% in any order and contain text of the form +% \citeform{<tag>}{\listitem{\citetagvalue} <reference text>} +% This example shows a preamble to the text which invokes +% a new list item with the appropriate reference number. +% The reference text is the author, journal etc. for the +% reference. +% Each \citeform entry will generate a new macro definition of the form +% \def\@Ferg84form{<reference text>}. +% Each \tag entry will define \citetagvalue as the citation/reference number +% and invoke \@Ferg84form + +%\makecitationlist does not require the .cfm file to have citations in the +%same order as .ctg file. \makelongcitationlist enters the citations in the +%in the document in the same order as in the file. It numbers with a counter +%and indicates if there is a difference between citetag and counter. + +\newif\ifctglist % so dont have to check if undefined +\newtoks\citetagfilename \citetagfilename = {\jobname.ctg} %compatible Ugh! +\newtoks\inputciteformfiles + \inputciteformfiles = {\inputwithcheck{\jobname.cfm}} +\newtoks\inputcitetagfiles + \inputcitetagfiles = {\inputwithcheck{\the\citetagfilename}} + + + +%\def\citetagfileclosedmessage{ << CITATION TAG FILE CLOSED >> } +%\def\nocitetagformmessage{ NO CITATION FORM FOR THIS TAG} +% see english/french titles + +\def\c@losectg{ + \ifctglist + \immediate\write\ctg@file{\noexpand\lastcitetag{\the\citenum}} + \immediate\closeout\ctg@file + \global\ctglistfalse + \writeterm{\citetagfileclosedmessage}{}{}\relax + \fi} + +% outside so that the cfm list may be included in the document. +\def\citeform#1#2{\expandafter + \def\csname @#1form\endcsname{#2}} + + +%cfm entries may be in any order +\long\def\makecitationlist{\par + \begingroup + \c@losectg + \def\citeform##1##2{\expandafter + \def\csname @##1form\endcsname{##2}} + \def\tag##1##2{\count255 = ##2\relax + \advance\count255 by -\i@nitcitenum + \edef\citetagvalue{\the\count255}\relax % locally redefine \tag + \ifundefined{@##1form}\relax + \writeterm{<<<\the\count255. \nocitetagformmessage: ##1}{}{}\relax + \vskip 2ex + \leftline{##2\ \nocitetagformmessage: ##1} + \vskip 2ex + \else + \csname @##1form\endcsname + \fi} + \the\inputciteformfiles + \the\inputcitetagfiles \par + \endgroup} + +%.cfm entries must be in the same order as the tags in the .ctg file +\newcount\c@fmcount %counter for citations +\long\def\makelongcitationlist{\par + \begingroup + \c@losectg + \c@fmcount=0 \relax + \def\citetagvalue{\the\c@fmcount} + \def\citeform##1##2{\advance\c@fmcount by 1 + \ifundefined{:@##1} + \expandafter \xdef \csname :@##1\endcsname{-1} \fi + \count 255 = \csname :@##1\endcsname + \advance\count 255 by -\i@nitcitenum + \ifnum \the\count255 = \the\c@fmcount + \relax \else + \writeterm{<<< Cite tag error -- Tag ##1 -- Citation \the\c@fmcount >>>}{}{} + \fi + ##2} + \the\inputcitetagfiles + \the\inputciteformfiles\par + \endgroup + } + diff --git a/macros/inrstex/inrstex/compat3.tex b/macros/inrstex/inrstex/compat3.tex new file mode 100644 index 0000000000..5e0d6ed8d5 --- /dev/null +++ b/macros/inrstex/inrstex/compat3.tex @@ -0,0 +1,14 @@ +% compatability macros for multilingual and extened TeX 2.992 plus +% assumes the existence of \charsublist + +% #1 -- extended character to be exchanged +% #2 -- accent macro invocation letter +% #3 -- base character for this code + +\def\csubinverse #1#2#3{\expandafter\def\csname #2#3\endcsname{#1}} + +\catcode`\@=11 +\def\i{^^P} +\def\j{^^Q} + + diff --git a/macros/inrstex/inrstex/compatib.tex b/macros/inrstex/inrstex/compatib.tex new file mode 100644 index 0000000000..c451240143 --- /dev/null +++ b/macros/inrstex/inrstex/compatib.tex @@ -0,0 +1,53 @@ +% compatability macros for multilingual and extened TeX 2.992 plus +% assumes the existence of \charsublist + +% #1 -- extended character to be exchanged +% #2 -- accent macro invocation letter +% #3 -- base character for this code + +\def\csubinverse #1#2#3{\expandafter\def\csname #2#3\endcsname{#1}} + +\catcode`\@=11 +\def\i{^^P} +\def\j{^^Q} + +% ... test case + +\def\'#1{{\expandafter\ifx\csname @ac@#1\endcsname\relax + {\accent19 #1}\else\csname @ac@#1\endcsname\fi}} +\def\`#1{{\expandafter\ifx\csname @gr@#1\endcsname\relax + {\accent18 #1}\else\csname @gr@#1\endcsname\fi}} +\def\v#1{{\expandafter\ifx\csname @v@#1\endcsname\relax + {\accent20 #1}\else\csname @v@#1\endcsname\fi}} +\let\^^_=\v + +\def\u#1{{\expandafter\ifx\csname @u@#1\endcsname\relax + {\accent21 #1}\else\csname @u@#1\endcsname\fi}} +\let\^^S=\u + +\def\=#1{{\expandafter\ifx\csname @eq@#1\endcsname\relax + {\accent22 #1}\else\csname @eq@#1\endcsname\fi}} +\def\^#1{{\expandafter\ifx\csname @hat@#1\endcsname\relax + {\accent94 #1}\else\csname @hat@#1\endcsname\fi}} +\let\^^D=\^ +\def\.#1{{\expandafter\ifx\csname @dot@#1\endcsname\relax + {\accent95 #1}\else\csname @dot@#1\endcsname\fi}} +\def\H#1{{\expandafter\ifx\csname @H@#1\endcsname\relax + {\accent'175 #1}\else\csname @H@#1\endcsname\fi}} +\def\~#1{{\expandafter\ifx\csname @til@#1\endcsname\relax + {\accent'176 #1}\else\csname @til@#1\endcsname\fi}} +\def\"#1{{\expandafter\ifx\csname @um@#1\endcsname\relax + {\accent'177 #1}\else\csname @um@#1\endcsname\fi}} + + +\let\c@@=\c +\def\c#1{{\expandafter\ifx\csname c@#1\endcsname\relax + \c@@\else\csname c@#1\endcsname\fi}} + + + + +% test form for accents ... +\def\aa{\accent23a} + + diff --git a/macros/inrstex/inrstex/english.tex b/macros/inrstex/inrstex/english.tex new file mode 100644 index 0000000000..f0690068dd --- /dev/null +++ b/macros/inrstex/inrstex/english.tex @@ -0,0 +1,17 @@ +\def\englishversion{\language=0 +\nonfrenchspacing % .... needs to reverse accent forms ... +\def\versionform{{\notefont Draft Version: \date}}% +\def\Chapter{Chapter }% +\def\Appendix{Appendix }% +\def\ABSTRACT{{\ssheadfont Abstract}}% +\def\figurelabel{Fig. }% +\def\tablelabel{Table }% +\def\bookstylemessage{ <<< BOOKSTYLE >>> }% +\def\endlistmessage##1{ <<< endlist mismatch >>> }% +\def\undeftagmessage##1{ <<<tag: ##1 = undefined>>> }% +\def\citetagfileclosedmessage{ << CITATION TAG FILE CLOSED >> }% +\def\nocitetagformmessage{ NO CITATION FOR THIS TAG }% +\def\titlemessage{Title}% +\lccode`\'=0 +}% +\englishversion
\ No newline at end of file diff --git a/macros/inrstex/inrstex/enhyph.tex b/macros/inrstex/inrstex/enhyph.tex new file mode 100644 index 0000000000..e40581f0d1 --- /dev/null +++ b/macros/inrstex/inrstex/enhyph.tex @@ -0,0 +1,4453 @@ +% ------- English hyphen patterns ----- +% defaults to language 1 +% The Plain TeX hyphenation tables [NOT TO BE CHANGED IN ANY WAY!] + +\patterns{ % just type <return> if you're not using INITEX +.ach4 +.ad4der +.af1t +.al3t +.am5at +.an5c +.ang4 +.ani5m +.ant4 +.an3te +.anti5s +.ar5s +.ar4tie +.ar4ty +.as3c +.as1p +.as1s +.aster5 +.atom5 +.au1d +.av4i +.awn4 +.ba4g +.ba5na +.bas4e +.ber4 +.be5ra +.be3sm +.be5sto +.bri2 +.but4ti +.cam4pe +.can5c +.capa5b +.car5ol +.ca4t +.ce4la +.ch4 +.chill5i +.ci2 +.cit5r +.co3e +.co4r +.cor5ner +.de4moi +.de3o +.de3ra +.de3ri +.des4c +.dictio5 +.do4t +.du4c +.dumb5 +.earth5 +.eas3i +.eb4 +.eer4 +.eg2 +.el5d +.el3em +.enam3 +.en3g +.en3s +.eq5ui5t +.er4ri +.es3 +.eu3 +.eye5 +.fes3 +.for5mer +.ga2 +.ge2 +.gen3t4 +.ge5og +.gi5a +.gi4b +.go4r +.hand5i +.han5k +.he2 +.hero5i +.hes3 +.het3 +.hi3b +.hi3er +.hon5ey +.hon3o +.hov5 +.id4l +.idol3 +.im3m +.im5pin +.in1 +.in3ci +.ine2 +.in2k +.in3s +.ir5r +.is4i +.ju3r +.la4cy +.la4m +.lat5er +.lath5 +.le2 +.leg5e +.len4 +.lep5 +.lev1 +.li4g +.lig5a +.li2n +.li3o +.li4t +.mag5a5 +.mal5o +.man5a +.mar5ti +.me2 +.mer3c +.me5ter +.mis1 +.mist5i +.mon3e +.mo3ro +.mu5ta +.muta5b +.ni4c +.od2 +.odd5 +.of5te +.or5ato +.or3c +.or1d +.or3t +.os3 +.os4tl +.oth3 +.out3 +.ped5al +.pe5te +.pe5tit +.pi4e +.pio5n +.pi2t +.pre3m +.ra4c +.ran4t +.ratio5na +.ree2 +.re5mit +.res2 +.re5stat +.ri4g +.rit5u +.ro4q +.ros5t +.row5d +.ru4d +.sci3e +.self5 +.sell5 +.se2n +.se5rie +.sh2 +.si2 +.sing4 +.st4 +.sta5bl +.sy2 +.ta4 +.te4 +.ten5an +.th2 +.ti2 +.til4 +.tim5o5 +.ting4 +.tin5k +.ton4a +.to4p +.top5i +.tou5s +.trib5ut +.un1a +.un3ce +.under5 +.un1e +.un5k +.un5o +.un3u +.up3 +.ure3 +.us5a +.ven4de +.ve5ra +.wil5i +.ye4 +4ab. +a5bal +a5ban +abe2 +ab5erd +abi5a +ab5it5ab +ab5lat +ab5o5liz +4abr +ab5rog +ab3ul +a4car +ac5ard +ac5aro +a5ceou +ac1er +a5chet +4a2ci +a3cie +ac1in +a3cio +ac5rob +act5if +ac3ul +ac4um +a2d +ad4din +ad5er. +2adi +a3dia +ad3ica +adi4er +a3dio +a3dit +a5diu +ad4le +ad3ow +ad5ran +ad4su +4adu +a3duc +ad5um +ae4r +aeri4e +a2f +aff4 +a4gab +aga4n +ag5ell +age4o +4ageu +ag1i +4ag4l +ag1n +a2go +3agog +ag3oni +a5guer +ag5ul +a4gy +a3ha +a3he +ah4l +a3ho +ai2 +a5ia +a3ic. +ai5ly +a4i4n +ain5in +ain5o +ait5en +a1j +ak1en +al5ab +al3ad +a4lar +4aldi +2ale +al3end +a4lenti +a5le5o +al1i +al4ia. +ali4e +al5lev +4allic +4alm +a5log. +a4ly. +4alys +5a5lyst +5alyt +3alyz +4ama +am5ab +am3ag +ama5ra +am5asc +a4matis +a4m5ato +am5era +am3ic +am5if +am5ily +am1in +ami4no +a2mo +a5mon +amor5i +amp5en +a2n +an3age +3analy +a3nar +an3arc +anar4i +a3nati +4and +ande4s +an3dis +an1dl +an4dow +a5nee +a3nen +an5est. +a3neu +2ang +ang5ie +an1gl +a4n1ic +a3nies +an3i3f +an4ime +a5nimi +a5nine +an3io +a3nip +an3ish +an3it +a3niu +an4kli +5anniz +ano4 +an5ot +anoth5 +an2sa +an4sco +an4sn +an2sp +ans3po +an4st +an4sur +antal4 +an4tie +4anto +an2tr +an4tw +an3ua +an3ul +a5nur +4ao +apar4 +ap5at +ap5ero +a3pher +4aphi +a4pilla +ap5illar +ap3in +ap3ita +a3pitu +a2pl +apoc5 +ap5ola +apor5i +apos3t +aps5es +a3pu +aque5 +2a2r +ar3act +a5rade +ar5adis +ar3al +a5ramete +aran4g +ara3p +ar4at +a5ratio +ar5ativ +a5rau +ar5av4 +araw4 +arbal4 +ar4chan +ar5dine +ar4dr +ar5eas +a3ree +ar3ent +a5ress +ar4fi +ar4fl +ar1i +ar5ial +ar3ian +a3riet +ar4im +ar5inat +ar3io +ar2iz +ar2mi +ar5o5d +a5roni +a3roo +ar2p +ar3q +arre4 +ar4sa +ar2sh +4as. +as4ab +as3ant +ashi4 +a5sia. +a3sib +a3sic +5a5si4t +ask3i +as4l +a4soc +as5ph +as4sh +as3ten +as1tr +asur5a +a2ta +at3abl +at5ac +at3alo +at5ap +ate5c +at5ech +at3ego +at3en. +at3era +ater5n +a5terna +at3est +at5ev +4ath +ath5em +a5then +at4ho +ath5om +4ati. +a5tia +at5i5b +at1ic +at3if +ation5ar +at3itu +a4tog +a2tom +at5omiz +a4top +a4tos +a1tr +at5rop +at4sk +at4tag +at5te +at4th +a2tu +at5ua +at5ue +at3ul +at3ura +a2ty +au4b +augh3 +au3gu +au4l2 +aun5d +au3r +au5sib +aut5en +au1th +a2va +av3ag +a5van +ave4no +av3era +av5ern +av5ery +av1i +avi4er +av3ig +av5oc +a1vor +3away +aw3i +aw4ly +aws4 +ax4ic +ax4id +ay5al +aye4 +ays4 +azi4er +azz5i +5ba. +bad5ger +ba4ge +bal1a +ban5dag +ban4e +ban3i +barbi5 +bari4a +bas4si +1bat +ba4z +2b1b +b2be +b3ber +bbi4na +4b1d +4be. +beak4 +beat3 +4be2d +be3da +be3de +be3di +be3gi +be5gu +1bel +be1li +be3lo +4be5m +be5nig +be5nu +4bes4 +be3sp +be5str +3bet +bet5iz +be5tr +be3tw +be3w +be5yo +2bf +4b3h +bi2b +bi4d +3bie +bi5en +bi4er +2b3if +1bil +bi3liz +bina5r4 +bin4d +bi5net +bi3ogr +bi5ou +bi2t +3bi3tio +bi3tr +3bit5ua +b5itz +b1j +bk4 +b2l2 +blath5 +b4le. +blen4 +5blesp +b3lis +b4lo +blun4t +4b1m +4b3n +bne5g +3bod +bod3i +bo4e +bol3ic +bom4bi +bon4a +bon5at +3boo +5bor. +4b1ora +bor5d +5bore +5bori +5bos4 +b5ota +both5 +bo4to +bound3 +4bp +4brit +broth3 +2b5s2 +bsor4 +2bt +bt4l +b4to +b3tr +buf4fer +bu4ga +bu3li +bumi4 +bu4n +bunt4i +bu3re +bus5ie +buss4e +5bust +4buta +3butio +b5uto +b1v +4b5w +5by. +bys4 +1ca +cab3in +ca1bl +cach4 +ca5den +4cag4 +2c5ah +ca3lat +cal4la +call5in +4calo +can5d +can4e +can4ic +can5is +can3iz +can4ty +cany4 +ca5per +car5om +cast5er +cas5tig +4casy +ca4th +4cativ +cav5al +c3c +ccha5 +cci4a +ccompa5 +ccon4 +ccou3t +2ce. +4ced. +4ceden +3cei +5cel. +3cell +1cen +3cenc +2cen4e +4ceni +3cent +3cep +ce5ram +4cesa +3cessi +ces5si5b +ces5t +cet4 +c5e4ta +cew4 +2ch +4ch. +4ch3ab +5chanic +ch5a5nis +che2 +cheap3 +4ched +che5lo +3chemi +ch5ene +ch3er. +ch3ers +4ch1in +5chine. +ch5iness +5chini +5chio +3chit +chi2z +3cho2 +ch4ti +1ci +3cia +ci2a5b +cia5r +ci5c +4cier +5cific. +4cii +ci4la +3cili +2cim +2cin +c4ina +3cinat +cin3em +c1ing +c5ing. +5cino +cion4 +4cipe +ci3ph +4cipic +4cista +4cisti +2c1it +cit3iz +5ciz +ck1 +ck3i +1c4l4 +4clar +c5laratio +5clare +cle4m +4clic +clim4 +cly4 +c5n +1co +co5ag +coe2 +2cog +co4gr +coi4 +co3inc +col5i +5colo +col3or +com5er +con4a +c4one +con3g +con5t +co3pa +cop3ic +co4pl +4corb +coro3n +cos4e +cov1 +cove4 +cow5a +coz5e +co5zi +c1q +cras5t +5crat. +5cratic +cre3at +5cred +4c3reta +cre4v +cri2 +cri5f +c4rin +cris4 +5criti +cro4pl +crop5o +cros4e +cru4d +4c3s2 +2c1t +cta4b +ct5ang +c5tant +c2te +c3ter +c4ticu +ctim3i +ctu4r +c4tw +cud5 +c4uf +c4ui +cu5ity +5culi +cul4tis +3cultu +cu2ma +c3ume +cu4mi +3cun +cu3pi +cu5py +cur5a4b +cu5ria +1cus +cuss4i +3c4ut +cu4tie +4c5utiv +4cutr +1cy +cze4 +1d2a +5da. +2d3a4b +dach4 +4daf +2dag +da2m2 +dan3g +dard5 +dark5 +4dary +3dat +4dativ +4dato +5dav4 +dav5e +5day +d1b +d5c +d1d4 +2de. +deaf5 +deb5it +de4bon +decan4 +de4cil +de5com +2d1ed +4dee. +de5if +deli4e +del5i5q +de5lo +d4em +5dem. +3demic +dem5ic. +de5mil +de4mons +demor5 +1den +de4nar +de3no +denti5f +de3nu +de1p +de3pa +depi4 +de2pu +d3eq +d4erh +5derm +dern5iz +der5s +des2 +d2es. +de1sc +de2s5o +des3ti +de3str +de4su +de1t +de2to +de1v +dev3il +4dey +4d1f +d4ga +d3ge4t +dg1i +d2gy +d1h2 +5di. +1d4i3a +dia5b +di4cam +d4ice +3dict +3did +5di3en +d1if +di3ge +di4lato +d1in +1dina +3dine. +5dini +di5niz +1dio +dio5g +di4pl +dir2 +di1re +dirt5i +dis1 +5disi +d4is3t +d2iti +1di1v +d1j +d5k2 +4d5la +3dle. +3dled +3dles. +4dless +2d3lo +4d5lu +2dly +d1m +4d1n4 +1do +3do. +do5de +5doe +2d5of +d4og +do4la +doli4 +do5lor +dom5iz +do3nat +doni4 +doo3d +dop4p +d4or +3dos +4d5out +do4v +3dox +d1p +1dr +drag5on +4drai +dre4 +drea5r +5dren +dri4b +dril4 +dro4p +4drow +5drupli +4dry +2d1s2 +ds4p +d4sw +d4sy +d2th +1du +d1u1a +du2c +d1uca +duc5er +4duct. +4ducts +du5el +du4g +d3ule +dum4be +du4n +4dup +du4pe +d1v +d1w +d2y +5dyn +dy4se +dys5p +e1a4b +e3act +ead1 +ead5ie +ea4ge +ea5ger +ea4l +eal5er +eal3ou +eam3er +e5and +ear3a +ear4c +ear5es +ear4ic +ear4il +ear5k +ear2t +eart3e +ea5sp +e3ass +east3 +ea2t +eat5en +eath3i +e5atif +e4a3tu +ea2v +eav3en +eav5i +eav5o +2e1b +e4bel. +e4bels +e4ben +e4bit +e3br +e4cad +ecan5c +ecca5 +e1ce +ec5essa +ec2i +e4cib +ec5ificat +ec5ifie +ec5ify +ec3im +eci4t +e5cite +e4clam +e4clus +e2col +e4comm +e4compe +e4conc +e2cor +ec3ora +eco5ro +e1cr +e4crem +ec4tan +ec4te +e1cu +e4cul +ec3ula +2e2da +4ed3d +e4d1er +ede4s +4edi +e3dia +ed3ib +ed3ica +ed3im +ed1it +edi5z +4edo +e4dol +edon2 +e4dri +e4dul +ed5ulo +ee2c +eed3i +ee2f +eel3i +ee4ly +ee2m +ee4na +ee4p1 +ee2s4 +eest4 +ee4ty +e5ex +e1f +e4f3ere +1eff +e4fic +5efici +efil4 +e3fine +ef5i5nite +3efit +efor5es +e4fuse. +4egal +eger4 +eg5ib +eg4ic +eg5ing +e5git5 +eg5n +e4go. +e4gos +eg1ul +e5gur +5egy +e1h4 +eher4 +ei2 +e5ic +ei5d +eig2 +ei5gl +e3imb +e3inf +e1ing +e5inst +eir4d +eit3e +ei3th +e5ity +e1j +e4jud +ej5udi +eki4n +ek4la +e1la +e4la. +e4lac +elan4d +el5ativ +e4law +elaxa4 +e3lea +el5ebra +5elec +e4led +el3ega +e5len +e4l1er +e1les +el2f +el2i +e3libe +e4l5ic. +el3ica +e3lier +el5igib +e5lim +e4l3ing +e3lio +e2lis +el5ish +e3liv3 +4ella +el4lab +ello4 +e5loc +el5og +el3op. +el2sh +el4ta +e5lud +el5ug +e4mac +e4mag +e5man +em5ana +em5b +e1me +e2mel +e4met +em3ica +emi4e +em5igra +em1in2 +em5ine +em3i3ni +e4mis +em5ish +e5miss +em3iz +5emniz +emo4g +emoni5o +em3pi +e4mul +em5ula +emu3n +e3my +en5amo +e4nant +ench4er +en3dic +e5nea +e5nee +en3em +en5ero +en5esi +en5est +en3etr +e3new +en5ics +e5nie +e5nil +e3nio +en3ish +en3it +e5niu +5eniz +4enn +4eno +eno4g +e4nos +en3ov +en4sw +ent5age +4enthes +en3ua +en5uf +e3ny. +4en3z +e5of +eo2g +e4oi4 +e3ol +eop3ar +e1or +eo3re +eo5rol +eos4 +e4ot +eo4to +e5out +e5ow +e2pa +e3pai +ep5anc +e5pel +e3pent +ep5etitio +ephe4 +e4pli +e1po +e4prec +ep5reca +e4pred +ep3reh +e3pro +e4prob +ep4sh +ep5ti5b +e4put +ep5uta +e1q +equi3l +e4q3ui3s +er1a +era4b +4erand +er3ar +4erati. +2erb +er4bl +er3ch +er4che +2ere. +e3real +ere5co +ere3in +er5el. +er3emo +er5ena +er5ence +4erene +er3ent +ere4q +er5ess +er3est +eret4 +er1h +er1i +e1ria4 +5erick +e3rien +eri4er +er3ine +e1rio +4erit +er4iu +eri4v +e4riva +er3m4 +er4nis +4ernit +5erniz +er3no +2ero +er5ob +e5roc +ero4r +er1ou +er1s +er3set +ert3er +4ertl +er3tw +4eru +eru4t +5erwau +e1s4a +e4sage. +e4sages +es2c +e2sca +es5can +e3scr +es5cu +e1s2e +e2sec +es5ecr +es5enc +e4sert. +e4serts +e4serva +4esh +e3sha +esh5en +e1si +e2sic +e2sid +es5iden +es5igna +e2s5im +es4i4n +esis4te +esi4u +e5skin +es4mi +e2sol +es3olu +e2son +es5ona +e1sp +es3per +es5pira +es4pre +2ess +es4si4b +estan4 +es3tig +es5tim +4es2to +e3ston +2estr +e5stro +estruc5 +e2sur +es5urr +es4w +eta4b +eten4d +e3teo +ethod3 +et1ic +e5tide +etin4 +eti4no +e5tir +e5titio +et5itiv +4etn +et5ona +e3tra +e3tre +et3ric +et5rif +et3rog +et5ros +et3ua +et5ym +et5z +4eu +e5un +e3up +eu3ro +eus4 +eute4 +euti5l +eu5tr +eva2p5 +e2vas +ev5ast +e5vea +ev3ell +evel3o +e5veng +even4i +ev1er +e5verb +e1vi +ev3id +evi4l +e4vin +evi4v +e5voc +e5vu +e1wa +e4wag +e5wee +e3wh +ewil5 +ew3ing +e3wit +1exp +5eyc +5eye. +eys4 +1fa +fa3bl +fab3r +fa4ce +4fag +fain4 +fall5e +4fa4ma +fam5is +5far +far5th +fa3ta +fa3the +4fato +fault5 +4f5b +4fd +4fe. +feas4 +feath3 +fe4b +4feca +5fect +2fed +fe3li +fe4mo +fen2d +fend5e +fer1 +5ferr +fev4 +4f1f +f4fes +f4fie +f5fin. +f2f5is +f4fly +f2fy +4fh +1fi +fi3a +2f3ic. +4f3ical +f3ican +4ficate +f3icen +fi3cer +fic4i +5ficia +5ficie +4fics +fi3cu +fi5del +fight5 +fil5i +fill5in +4fily +2fin +5fina +fin2d5 +fi2ne +f1in3g +fin4n +fis4ti +f4l2 +f5less +flin4 +flo3re +f2ly5 +4fm +4fn +1fo +5fon +fon4de +fon4t +fo2r +fo5rat +for5ay +fore5t +for4i +fort5a +fos5 +4f5p +fra4t +f5rea +fres5c +fri2 +fril4 +frol5 +2f3s +2ft +f4to +f2ty +3fu +fu5el +4fug +fu4min +fu5ne +fu3ri +fusi4 +fus4s +4futa +1fy +1ga +gaf4 +5gal. +3gali +ga3lo +2gam +ga5met +g5amo +gan5is +ga3niz +gani5za +4gano +gar5n4 +gass4 +gath3 +4gativ +4gaz +g3b +gd4 +2ge. +2ged +geez4 +gel4in +ge5lis +ge5liz +4gely +1gen +ge4nat +ge5niz +4geno +4geny +1geo +ge3om +g4ery +5gesi +geth5 +4geto +ge4ty +ge4v +4g1g2 +g2ge +g3ger +gglu5 +ggo4 +gh3in +gh5out +gh4to +5gi. +1gi4a +gia5r +g1ic +5gicia +g4ico +gien5 +5gies. +gil4 +g3imen +3g4in. +gin5ge +5g4ins +5gio +3gir +gir4l +g3isl +gi4u +5giv +3giz +gl2 +gla4 +glad5i +5glas +1gle +gli4b +g3lig +3glo +glo3r +g1m +g4my +gn4a +g4na. +gnet4t +g1ni +g2nin +g4nio +g1no +g4non +1go +3go. +gob5 +5goe +3g4o4g +go3is +gon2 +4g3o3na +gondo5 +go3ni +5goo +go5riz +gor5ou +5gos. +gov1 +g3p +1gr +4grada +g4rai +gran2 +5graph. +g5rapher +5graphic +4graphy +4gray +gre4n +4gress. +4grit +g4ro +gruf4 +gs2 +g5ste +gth3 +gu4a +3guard +2gue +5gui5t +3gun +3gus +4gu4t +g3w +1gy +2g5y3n +gy5ra +h3ab4l +hach4 +hae4m +hae4t +h5agu +ha3la +hala3m +ha4m +han4ci +han4cy +5hand. +han4g +hang5er +hang5o +h5a5niz +han4k +han4te +hap3l +hap5t +ha3ran +ha5ras +har2d +hard3e +har4le +harp5en +har5ter +has5s +haun4 +5haz +haz3a +h1b +1head +3hear +he4can +h5ecat +h4ed +he5do5 +he3l4i +hel4lis +hel4ly +h5elo +hem4p +he2n +hena4 +hen5at +heo5r +hep5 +h4era +hera3p +her4ba +here5a +h3ern +h5erou +h3ery +h1es +he2s5p +he4t +het4ed +heu4 +h1f +h1h +hi5an +hi4co +high5 +h4il2 +himer4 +h4ina +hion4e +hi4p +hir4l +hi3ro +hir4p +hir4r +his3el +his4s +hith5er +hi2v +4hk +4h1l4 +hlan4 +h2lo +hlo3ri +4h1m +hmet4 +2h1n +h5odiz +h5ods +ho4g +hoge4 +hol5ar +3hol4e +ho4ma +home3 +hon4a +ho5ny +3hood +hoon4 +hor5at +ho5ris +hort3e +ho5ru +hos4e +ho5sen +hos1p +1hous +house3 +hov5el +4h5p +4hr4 +hree5 +hro5niz +hro3po +4h1s2 +h4sh +h4tar +ht1en +ht5es +h4ty +hu4g +hu4min +hun5ke +hun4t +hus3t4 +hu4t +h1w +h4wart +hy3pe +hy3ph +hy2s +2i1a +i2al +iam4 +iam5ete +i2an +4ianc +ian3i +4ian4t +ia5pe +iass4 +i4ativ +ia4tric +i4atu +ibe4 +ib3era +ib5ert +ib5ia +ib3in +ib5it. +ib5ite +i1bl +ib3li +i5bo +i1br +i2b5ri +i5bun +4icam +5icap +4icar +i4car. +i4cara +icas5 +i4cay +iccu4 +4iceo +4ich +2ici +i5cid +ic5ina +i2cip +ic3ipa +i4cly +i2c5oc +4i1cr +5icra +i4cry +ic4te +ictu2 +ic4t3ua +ic3ula +ic4um +ic5uo +i3cur +2id +i4dai +id5anc +id5d +ide3al +ide4s +i2di +id5ian +idi4ar +i5die +id3io +idi5ou +id1it +id5iu +i3dle +i4dom +id3ow +i4dr +i2du +id5uo +2ie4 +ied4e +5ie5ga +ield3 +ien5a4 +ien4e +i5enn +i3enti +i1er. +i3esc +i1est +i3et +4if. +if5ero +iff5en +if4fr +4ific. +i3fie +i3fl +4ift +2ig +iga5b +ig3era +ight3i +4igi +i3gib +ig3il +ig3in +ig3it +i4g4l +i2go +ig3or +ig5ot +i5gre +igu5i +ig1ur +i3h +4i5i4 +i3j +4ik +i1la +il3a4b +i4lade +i2l5am +ila5ra +i3leg +il1er +ilev4 +il5f +il1i +il3ia +il2ib +il3io +il4ist +2ilit +il2iz +ill5ab +4iln +il3oq +il4ty +il5ur +il3v +i4mag +im3age +ima5ry +imenta5r +4imet +im1i +im5ida +imi5le +i5mini +4imit +im4ni +i3mon +i2mu +im3ula +2in. +i4n3au +4inav +incel4 +in3cer +4ind +in5dling +2ine +i3nee +iner4ar +i5ness +4inga +4inge +in5gen +4ingi +in5gling +4ingo +4ingu +2ini +i5ni. +i4nia +in3io +in1is +i5nite. +5initio +in3ity +4ink +4inl +2inn +2i1no +i4no4c +ino4s +i4not +2ins +in3se +insur5a +2int. +2in4th +in1u +i5nus +4iny +2io +4io. +ioge4 +io2gr +i1ol +io4m +ion3at +ion4ery +ion3i +io5ph +ior3i +i4os +io5th +i5oti +io4to +i4our +2ip +ipe4 +iphras4 +ip3i +ip4ic +ip4re4 +ip3ul +i3qua +iq5uef +iq3uid +iq3ui3t +4ir +i1ra +ira4b +i4rac +ird5e +ire4de +i4ref +i4rel4 +i4res +ir5gi +ir1i +iri5de +ir4is +iri3tu +5i5r2iz +ir4min +iro4g +5iron. +ir5ul +2is. +is5ag +is3ar +isas5 +2is1c +is3ch +4ise +is3er +3isf +is5han +is3hon +ish5op +is3ib +isi4d +i5sis +is5itiv +4is4k +islan4 +4isms +i2so +iso5mer +is1p +is2pi +is4py +4is1s +is4sal +issen4 +is4ses +is4ta. +is1te +is1ti +ist4ly +4istral +i2su +is5us +4ita. +ita4bi +i4tag +4ita5m +i3tan +i3tat +2ite +it3era +i5teri +it4es +2ith +i1ti +4itia +4i2tic +it3ica +5i5tick +it3ig +it5ill +i2tim +2itio +4itis +i4tism +i2t5o5m +4iton +i4tram +it5ry +4itt +it3uat +i5tud +it3ul +4itz. +i1u +2iv +iv3ell +iv3en. +i4v3er. +i4vers. +iv5il. +iv5io +iv1it +i5vore +iv3o3ro +i4v3ot +4i5w +ix4o +4iy +4izar +izi4 +5izont +5ja +jac4q +ja4p +1je +jer5s +4jestie +4jesty +jew3 +jo4p +5judg +3ka. +k3ab +k5ag +kais4 +kal4 +k1b +k2ed +1kee +ke4g +ke5li +k3en4d +k1er +kes4 +k3est. +ke4ty +k3f +kh4 +k1i +5ki. +5k2ic +k4ill +kilo5 +k4im +k4in. +kin4de +k5iness +kin4g +ki4p +kis4 +k5ish +kk4 +k1l +4kley +4kly +k1m +k5nes +1k2no +ko5r +kosh4 +k3ou +kro5n +4k1s2 +k4sc +ks4l +k4sy +k5t +k1w +lab3ic +l4abo +laci4 +l4ade +la3dy +lag4n +lam3o +3land +lan4dl +lan5et +lan4te +lar4g +lar3i +las4e +la5tan +4lateli +4lativ +4lav +la4v4a +2l1b +lbin4 +4l1c2 +lce4 +l3ci +2ld +l2de +ld4ere +ld4eri +ldi4 +ld5is +l3dr +l4dri +le2a +le4bi +left5 +5leg. +5legg +le4mat +lem5atic +4len. +3lenc +5lene. +1lent +le3ph +le4pr +lera5b +ler4e +3lerg +3l4eri +l4ero +les2 +le5sco +5lesq +3less +5less. +l3eva +lev4er. +lev4era +lev4ers +3ley +4leye +2lf +l5fr +4l1g4 +l5ga +lgar3 +l4ges +lgo3 +2l3h +li4ag +li2am +liar5iz +li4as +li4ato +li5bi +5licio +li4cor +4lics +4lict. +l4icu +l3icy +l3ida +lid5er +3lidi +lif3er +l4iff +li4fl +5ligate +3ligh +li4gra +3lik +4l4i4l +lim4bl +lim3i +li4mo +l4im4p +l4ina +1l4ine +lin3ea +lin3i +link5er +li5og +4l4iq +lis4p +l1it +l2it. +5litica +l5i5tics +liv3er +l1iz +4lj +lka3 +l3kal +lka4t +l1l +l4law +l2le +l5lea +l3lec +l3leg +l3lel +l3le4n +l3le4t +ll2i +l2lin4 +l5lina +ll4o +lloqui5 +ll5out +l5low +2lm +l5met +lm3ing +l4mod +lmon4 +2l1n2 +3lo. +lob5al +lo4ci +4lof +3logic +l5ogo +3logu +lom3er +5long +lon4i +l3o3niz +lood5 +5lope. +lop3i +l3opm +lora4 +lo4rato +lo5rie +lor5ou +5los. +los5et +5losophiz +5losophy +los4t +lo4ta +loun5d +2lout +4lov +2lp +lpa5b +l3pha +l5phi +lp5ing +l3pit +l4pl +l5pr +4l1r +2l1s2 +l4sc +l2se +l4sie +4lt +lt5ag +ltane5 +l1te +lten4 +ltera4 +lth3i +l5ties. +ltis4 +l1tr +ltu2 +ltur3a +lu5a +lu3br +luch4 +lu3ci +lu3en +luf4 +lu5id +lu4ma +5lumi +l5umn. +5lumnia +lu3o +luo3r +4lup +luss4 +lus3te +1lut +l5ven +l5vet4 +2l1w +1ly +4lya +4lyb +ly5me +ly3no +2lys4 +l5yse +1ma +2mab +ma2ca +ma5chine +ma4cl +mag5in +5magn +2mah +maid5 +4mald +ma3lig +ma5lin +mal4li +mal4ty +5mania +man5is +man3iz +4map +ma5rine. +ma5riz +mar4ly +mar3v +ma5sce +mas4e +mas1t +5mate +math3 +ma3tis +4matiza +4m1b +mba4t5 +m5bil +m4b3ing +mbi4v +4m5c +4me. +2med +4med. +5media +me3die +m5e5dy +me2g +mel5on +mel4t +me2m +mem1o3 +1men +men4a +men5ac +men4de +4mene +men4i +mens4 +mensu5 +3ment +men4te +me5on +m5ersa +2mes +3mesti +me4ta +met3al +me1te +me5thi +m4etr +5metric +me5trie +me3try +me4v +4m1f +2mh +5mi. +mi3a +mid4a +mid4g +mig4 +3milia +m5i5lie +m4ill +min4a +3mind +m5inee +m4ingl +min5gli +m5ingly +min4t +m4inu +miot4 +m2is +mis4er. +mis5l +mis4ti +m5istry +4mith +m2iz +4mk +4m1l +m1m +mma5ry +4m1n +mn4a +m4nin +mn4o +1mo +4mocr +5mocratiz +mo2d1 +mo4go +mois2 +moi5se +4mok +mo5lest +mo3me +mon5et +mon5ge +moni3a +mon4ism +mon4ist +mo3niz +monol4 +mo3ny. +mo2r +4mora. +mos2 +mo5sey +mo3sp +moth3 +m5ouf +3mous +mo2v +4m1p +mpara5 +mpa5rab +mpar5i +m3pet +mphas4 +m2pi +mpi4a +mp5ies +m4p1in +m5pir +mp5is +mpo3ri +mpos5ite +m4pous +mpov5 +mp4tr +m2py +4m3r +4m1s2 +m4sh +m5si +4mt +1mu +mula5r4 +5mult +multi3 +3mum +mun2 +4mup +mu4u +4mw +1na +2n1a2b +n4abu +4nac. +na4ca +n5act +nag5er. +nak4 +na4li +na5lia +4nalt +na5mit +n2an +nanci4 +nan4it +nank4 +nar3c +4nare +nar3i +nar4l +n5arm +n4as +nas4c +nas5ti +n2at +na3tal +nato5miz +n2au +nau3se +3naut +nav4e +4n1b4 +ncar5 +n4ces. +n3cha +n5cheo +n5chil +n3chis +nc1in +nc4it +ncour5a +n1cr +n1cu +n4dai +n5dan +n1de +nd5est. +ndi4b +n5d2if +n1dit +n3diz +n5duc +ndu4r +nd2we +2ne. +n3ear +ne2b +neb3u +ne2c +5neck +2ned +ne4gat +neg5ativ +5nege +ne4la +nel5iz +ne5mi +ne4mo +1nen +4nene +3neo +ne4po +ne2q +n1er +nera5b +n4erar +n2ere +n4er5i +ner4r +1nes +2nes. +4nesp +2nest +4nesw +3netic +ne4v +n5eve +ne4w +n3f +n4gab +n3gel +nge4n4e +n5gere +n3geri +ng5ha +n3gib +ng1in +n5git +n4gla +ngov4 +ng5sh +n1gu +n4gum +n2gy +4n1h4 +nha4 +nhab3 +nhe4 +3n4ia +ni3an +ni4ap +ni3ba +ni4bl +ni4d +ni5di +ni4er +ni2fi +ni5ficat +n5igr +nik4 +n1im +ni3miz +n1in +5nine. +nin4g +ni4o +5nis. +nis4ta +n2it +n4ith +3nitio +n3itor +ni3tr +n1j +4nk2 +n5kero +n3ket +nk3in +n1kl +4n1l +n5m +nme4 +nmet4 +4n1n2 +nne4 +nni3al +nni4v +nob4l +no3ble +n5ocl +4n3o2d +3noe +4nog +noge4 +nois5i +no5l4i +5nologis +3nomic +n5o5miz +no4mo +no3my +no4n +non4ag +non5i +n5oniz +4nop +5nop5o5li +nor5ab +no4rary +4nosc +nos4e +nos5t +no5ta +1nou +3noun +nov3el3 +nowl3 +n1p4 +npi4 +npre4c +n1q +n1r +nru4 +2n1s2 +ns5ab +nsati4 +ns4c +n2se +n4s3es +nsid1 +nsig4 +n2sl +ns3m +n4soc +ns4pe +n5spi +nsta5bl +n1t +nta4b +nter3s +nt2i +n5tib +nti4er +nti2f +n3tine +n4t3ing +nti4p +ntrol5li +nt4s +ntu3me +nu1a +nu4d +nu5en +nuf4fe +n3uin +3nu3it +n4um +nu1me +n5umi +3nu4n +n3uo +nu3tr +n1v2 +n1w4 +nym4 +nyp4 +4nz +n3za +4oa +oad3 +o5a5les +oard3 +oas4e +oast5e +oat5i +ob3a3b +o5bar +obe4l +o1bi +o2bin +ob5ing +o3br +ob3ul +o1ce +och4 +o3chet +ocif3 +o4cil +o4clam +o4cod +oc3rac +oc5ratiz +ocre3 +5ocrit +octor5a +oc3ula +o5cure +od5ded +od3ic +odi3o +o2do4 +odor3 +od5uct. +od5ucts +o4el +o5eng +o3er +oe4ta +o3ev +o2fi +of5ite +ofit4t +o2g5a5r +og5ativ +o4gato +o1ge +o5gene +o5geo +o4ger +o3gie +1o1gis +og3it +o4gl +o5g2ly +3ogniz +o4gro +ogu5i +1ogy +2ogyn +o1h2 +ohab5 +oi2 +oic3es +oi3der +oiff4 +oig4 +oi5let +o3ing +oint5er +o5ism +oi5son +oist5en +oi3ter +o5j +2ok +o3ken +ok5ie +o1la +o4lan +olass4 +ol2d +old1e +ol3er +o3lesc +o3let +ol4fi +ol2i +o3lia +o3lice +ol5id. +o3li4f +o5lil +ol3ing +o5lio +o5lis. +ol3ish +o5lite +o5litio +o5liv +olli4e +ol5ogiz +olo4r +ol5pl +ol2t +ol3ub +ol3ume +ol3un +o5lus +ol2v +o2ly +om5ah +oma5l +om5atiz +om2be +om4bl +o2me +om3ena +om5erse +o4met +om5etry +o3mia +om3ic. +om3ica +o5mid +om1in +o5mini +5ommend +omo4ge +o4mon +om3pi +ompro5 +o2n +on1a +on4ac +o3nan +on1c +3oncil +2ond +on5do +o3nen +on5est +on4gu +on1ic +o3nio +on1is +o5niu +on3key +on4odi +on3omy +on3s +onspi4 +onspir5a +onsu4 +onten4 +on3t4i +ontif5 +on5um +onva5 +oo2 +ood5e +ood5i +oo4k +oop3i +o3ord +oost5 +o2pa +ope5d +op1er +3opera +4operag +2oph +o5phan +o5pher +op3ing +o3pit +o5pon +o4posi +o1pr +op1u +opy5 +o1q +o1ra +o5ra. +o4r3ag +or5aliz +or5ange +ore5a +o5real +or3ei +ore5sh +or5est. +orew4 +or4gu +4o5ria +or3ica +o5ril +or1in +o1rio +or3ity +o3riu +or2mi +orn2e +o5rof +or3oug +or5pe +3orrh +or4se +ors5en +orst4 +or3thi +or3thy +or4ty +o5rum +o1ry +os3al +os2c +os4ce +o3scop +4oscopi +o5scr +os4i4e +os5itiv +os3ito +os3ity +osi4u +os4l +o2so +os4pa +os4po +os2ta +o5stati +os5til +os5tit +o4tan +otele4g +ot3er. +ot5ers +o4tes +4oth +oth5esi +oth3i4 +ot3ic. +ot5ica +o3tice +o3tif +o3tis +oto5s +ou2 +ou3bl +ouch5i +ou5et +ou4l +ounc5er +oun2d +ou5v +ov4en +over4ne +over3s +ov4ert +o3vis +oviti4 +o5v4ol +ow3der +ow3el +ow5est +ow1i +own5i +o4wo +oy1a +1pa +pa4ca +pa4ce +pac4t +p4ad +5pagan +p3agat +p4ai +pain4 +p4al +pan4a +pan3el +pan4ty +pa3ny +pa1p +pa4pu +para5bl +par5age +par5di +3pare +par5el +p4a4ri +par4is +pa2te +pa5ter +5pathic +pa5thy +pa4tric +pav4 +3pay +4p1b +pd4 +4pe. +3pe4a +pear4l +pe2c +2p2ed +3pede +3pedi +pedia4 +ped4ic +p4ee +pee4d +pek4 +pe4la +peli4e +pe4nan +p4enc +pen4th +pe5on +p4era. +pera5bl +p4erag +p4eri +peri5st +per4mal +perme5 +p4ern +per3o +per3ti +pe5ru +per1v +pe2t +pe5ten +pe5tiz +4pf +4pg +4ph. +phar5i +phe3no +ph4er +ph4es. +ph1ic +5phie +ph5ing +5phisti +3phiz +ph2l +3phob +3phone +5phoni +pho4r +4phs +ph3t +5phu +1phy +pi3a +pian4 +pi4cie +pi4cy +p4id +p5ida +pi3de +5pidi +3piec +pi3en +pi4grap +pi3lo +pi2n +p4in. +pind4 +p4ino +3pi1o +pion4 +p3ith +pi5tha +pi2tu +2p3k2 +1p2l2 +3plan +plas5t +pli3a +pli5er +4plig +pli4n +ploi4 +plu4m +plum4b +4p1m +2p3n +po4c +5pod. +po5em +po3et5 +5po4g +poin2 +5point +poly5t +po4ni +po4p +1p4or +po4ry +1pos +pos1s +p4ot +po4ta +5poun +4p1p +ppa5ra +p2pe +p4ped +p5pel +p3pen +p3per +p3pet +ppo5site +pr2 +pray4e +5preci +pre5co +pre3em +pref5ac +pre4la +pre3r +p3rese +3press +pre5ten +pre3v +5pri4e +prin4t3 +pri4s +pris3o +p3roca +prof5it +pro3l +pros3e +pro1t +2p1s2 +p2se +ps4h +p4sib +2p1t +pt5a4b +p2te +p2th +pti3m +ptu4r +p4tw +pub3 +pue4 +puf4 +pul3c +pu4m +pu2n +pur4r +5pus +pu2t +5pute +put3er +pu3tr +put4ted +put4tin +p3w +qu2 +qua5v +2que. +3quer +3quet +2rab +ra3bi +rach4e +r5acl +raf5fi +raf4t +r2ai +ra4lo +ram3et +r2ami +rane5o +ran4ge +r4ani +ra5no +rap3er +3raphy +rar5c +rare4 +rar5ef +4raril +r2as +ration4 +rau4t +ra5vai +rav3el +ra5zie +r1b +r4bab +r4bag +rbi2 +rbi4f +r2bin +r5bine +rb5ing. +rb4o +r1c +r2ce +rcen4 +r3cha +rch4er +r4ci4b +rc4it +rcum3 +r4dal +rd2i +rdi4a +rdi4er +rdin4 +rd3ing +2re. +re1al +re3an +re5arr +5reav +re4aw +r5ebrat +rec5oll +rec5ompe +re4cre +2r2ed +re1de +re3dis +red5it +re4fac +re2fe +re5fer. +re3fi +re4fy +reg3is +re5it +re1li +re5lu +r4en4ta +ren4te +re1o +re5pin +re4posi +re1pu +r1er4 +r4eri +rero4 +re5ru +r4es. +re4spi +ress5ib +res2t +re5stal +re3str +re4ter +re4ti4z +re3tri +reu2 +re5uti +rev2 +re4val +rev3el +r5ev5er. +re5vers +re5vert +re5vil +rev5olu +re4wh +r1f +rfu4 +r4fy +rg2 +rg3er +r3get +r3gic +rgi4n +rg3ing +r5gis +r5git +r1gl +rgo4n +r3gu +rh4 +4rh. +4rhal +ri3a +ria4b +ri4ag +r4ib +rib3a +ric5as +r4ice +4rici +5ricid +ri4cie +r4ico +rid5er +ri3enc +ri3ent +ri1er +ri5et +rig5an +5rigi +ril3iz +5riman +rim5i +3rimo +rim4pe +r2ina +5rina. +rin4d +rin4e +rin4g +ri1o +5riph +riph5e +ri2pl +rip5lic +r4iq +r2is +r4is. +ris4c +r3ish +ris4p +ri3ta3b +r5ited. +rit5er. +rit5ers +rit3ic +ri2tu +rit5ur +riv5el +riv3et +riv3i +r3j +r3ket +rk4le +rk4lin +r1l +rle4 +r2led +r4lig +r4lis +rl5ish +r3lo4 +r1m +rma5c +r2me +r3men +rm5ers +rm3ing +r4ming. +r4mio +r3mit +r4my +r4nar +r3nel +r4ner +r5net +r3ney +r5nic +r1nis4 +r3nit +r3niv +rno4 +r4nou +r3nu +rob3l +r2oc +ro3cr +ro4e +ro1fe +ro5fil +rok2 +ro5ker +5role. +rom5ete +rom4i +rom4p +ron4al +ron4e +ro5n4is +ron4ta +1room +5root +ro3pel +rop3ic +ror3i +ro5ro +ros5per +ros4s +ro4the +ro4ty +ro4va +rov5el +rox5 +r1p +r4pea +r5pent +rp5er. +r3pet +rp4h4 +rp3ing +r3po +r1r4 +rre4c +rre4f +r4reo +rre4st +rri4o +rri4v +rron4 +rros4 +rrys4 +4rs2 +r1sa +rsa5ti +rs4c +r2se +r3sec +rse4cr +rs5er. +rs3es +rse5v2 +r1sh +r5sha +r1si +r4si4b +rson3 +r1sp +r5sw +rtach4 +r4tag +r3teb +rten4d +rte5o +r1ti +rt5ib +rti4d +r4tier +r3tig +rtil3i +rtil4l +r4tily +r4tist +r4tiv +r3tri +rtroph4 +rt4sh +ru3a +ru3e4l +ru3en +ru4gl +ru3in +rum3pl +ru2n +runk5 +run4ty +r5usc +ruti5n +rv4e +rvel4i +r3ven +rv5er. +r5vest +r3vey +r3vic +rvi4v +r3vo +r1w +ry4c +5rynge +ry3t +sa2 +2s1ab +5sack +sac3ri +s3act +5sai +salar4 +sal4m +sa5lo +sal4t +3sanc +san4de +s1ap +sa5ta +5sa3tio +sat3u +sau4 +sa5vor +5saw +4s5b +scan4t5 +sca4p +scav5 +s4ced +4scei +s4ces +sch2 +s4cho +3s4cie +5scin4d +scle5 +s4cli +scof4 +4scopy +scour5a +s1cu +4s5d +4se. +se4a +seas4 +sea5w +se2c3o +3sect +4s4ed +se4d4e +s5edl +se2g +seg3r +5sei +se1le +5self +5selv +4seme +se4mol +sen5at +4senc +sen4d +s5ened +sen5g +s5enin +4sentd +4sentl +sep3a3 +4s1er. +s4erl +ser4o +4servo +s1e4s +se5sh +ses5t +5se5um +5sev +sev3en +sew4i +5sex +4s3f +2s3g +s2h +2sh. +sh1er +5shev +sh1in +sh3io +3ship +shiv5 +sho4 +sh5old +shon3 +shor4 +short5 +4shw +si1b +s5icc +3side. +5sides +5sidi +si5diz +4signa +sil4e +4sily +2s1in +s2ina +5sine. +s3ing +1sio +5sion +sion5a +si2r +sir5a +1sis +3sitio +5siu +1siv +5siz +sk2 +4ske +s3ket +sk5ine +sk5ing +s1l2 +s3lat +s2le +slith5 +2s1m +s3ma +small3 +sman3 +smel4 +s5men +5smith +smol5d4 +s1n4 +1so +so4ce +soft3 +so4lab +sol3d2 +so3lic +5solv +3som +3s4on. +sona4 +son4g +s4op +5sophic +s5ophiz +s5ophy +sor5c +sor5d +4sov +so5vi +2spa +5spai +spa4n +spen4d +2s5peo +2sper +s2phe +3spher +spho5 +spil4 +sp5ing +4spio +s4ply +s4pon +spor4 +4spot +squal4l +s1r +2ss +s1sa +ssas3 +s2s5c +s3sel +s5seng +s4ses. +s5set +s1si +s4sie +ssi4er +ss5ily +s4sl +ss4li +s4sn +sspend4 +ss2t +ssur5a +ss5w +2st. +s2tag +s2tal +stam4i +5stand +s4ta4p +5stat. +s4ted +stern5i +s5tero +ste2w +stew5a +s3the +st2i +s4ti. +s5tia +s1tic +5stick +s4tie +s3tif +st3ing +5stir +s1tle +5stock +stom3a +5stone +s4top +3store +st4r +s4trad +5stratu +s4tray +s4trid +4stry +4st3w +s2ty +1su +su1al +su4b3 +su2g3 +su5is +suit3 +s4ul +su2m +sum3i +su2n +su2r +4sv +sw2 +4swo +s4y +4syc +3syl +syn5o +sy5rin +1ta +3ta. +2tab +ta5bles +5taboliz +4taci +ta5do +4taf4 +tai5lo +ta2l +ta5la +tal5en +tal3i +4talk +tal4lis +ta5log +ta5mo +tan4de +tanta3 +ta5per +ta5pl +tar4a +4tarc +4tare +ta3riz +tas4e +ta5sy +4tatic +ta4tur +taun4 +tav4 +2taw +tax4is +2t1b +4tc +t4ch +tch5et +4t1d +4te. +tead4i +4teat +tece4 +5tect +2t1ed +te5di +1tee +teg4 +te5ger +te5gi +3tel. +teli4 +5tels +te2ma2 +tem3at +3tenan +3tenc +3tend +4tenes +1tent +ten4tag +1teo +te4p +te5pe +ter3c +5ter3d +1teri +ter5ies +ter3is +teri5za +5ternit +ter5v +4tes. +4tess +t3ess. +teth5e +3teu +3tex +4tey +2t1f +4t1g +2th. +than4 +th2e +4thea +th3eas +the5at +the3is +3thet +th5ic. +th5ica +4thil +5think +4thl +th5ode +5thodic +4thoo +thor5it +tho5riz +2ths +1tia +ti4ab +ti4ato +2ti2b +4tick +t4ico +t4ic1u +5tidi +3tien +tif2 +ti5fy +2tig +5tigu +till5in +1tim +4timp +tim5ul +2t1in +t2ina +3tine. +3tini +1tio +ti5oc +tion5ee +5tiq +ti3sa +3tise +tis4m +ti5so +tis4p +5tistica +ti3tl +ti4u +1tiv +tiv4a +1tiz +ti3za +ti3zen +2tl +t5la +tlan4 +3tle. +3tled +3tles. +t5let. +t5lo +4t1m +tme4 +2t1n2 +1to +to3b +to5crat +4todo +2tof +to2gr +to5ic +to2ma +tom4b +to3my +ton4ali +to3nat +4tono +4tony +to2ra +to3rie +tor5iz +tos2 +5tour +4tout +to3war +4t1p +1tra +tra3b +tra5ch +traci4 +trac4it +trac4te +tras4 +tra5ven +trav5es5 +tre5f +tre4m +trem5i +5tria +tri5ces +5tricia +4trics +2trim +tri4v +tro5mi +tron5i +4trony +tro5phe +tro3sp +tro3v +tru5i +trus4 +4t1s2 +t4sc +tsh4 +t4sw +4t3t2 +t4tes +t5to +ttu4 +1tu +tu1a +tu3ar +tu4bi +tud2 +4tue +4tuf4 +5tu3i +3tum +tu4nis +2t3up. +3ture +5turi +tur3is +tur5o +tu5ry +3tus +4tv +tw4 +4t1wa +twis4 +4two +1ty +4tya +2tyl +type3 +ty5ph +4tz +tz4e +4uab +uac4 +ua5na +uan4i +uar5ant +uar2d +uar3i +uar3t +u1at +uav4 +ub4e +u4bel +u3ber +u4bero +u1b4i +u4b5ing +u3ble. +u3ca +uci4b +uc4it +ucle3 +u3cr +u3cu +u4cy +ud5d +ud3er +ud5est +udev4 +u1dic +ud3ied +ud3ies +ud5is +u5dit +u4don +ud4si +u4du +u4ene +uens4 +uen4te +uer4il +3ufa +u3fl +ugh3en +ug5in +2ui2 +uil5iz +ui4n +u1ing +uir4m +uita4 +uiv3 +uiv4er. +u5j +4uk +u1la +ula5b +u5lati +ulch4 +5ulche +ul3der +ul4e +u1len +ul4gi +ul2i +u5lia +ul3ing +ul5ish +ul4lar +ul4li4b +ul4lis +4ul3m +u1l4o +4uls +uls5es +ul1ti +ultra3 +4ultu +u3lu +ul5ul +ul5v +um5ab +um4bi +um4bly +u1mi +u4m3ing +umor5o +um2p +unat4 +u2ne +un4er +u1ni +un4im +u2nin +un5ish +uni3v +un3s4 +un4sw +unt3ab +un4ter. +un4tes +unu4 +un5y +un5z +u4ors +u5os +u1ou +u1pe +uper5s +u5pia +up3ing +u3pl +up3p +upport5 +upt5ib +uptu4 +u1ra +4ura. +u4rag +u4ras +ur4be +urc4 +ur1d +ure5at +ur4fer +ur4fr +u3rif +uri4fic +ur1in +u3rio +u1rit +ur3iz +ur2l +url5ing. +ur4no +uros4 +ur4pe +ur4pi +urs5er +ur5tes +ur3the +urti4 +ur4tie +u3ru +2us +u5sad +u5san +us4ap +usc2 +us3ci +use5a +u5sia +u3sic +us4lin +us1p +us5sl +us5tere +us1tr +u2su +usur4 +uta4b +u3tat +4ute. +4utel +4uten +uten4i +4u1t2i +uti5liz +u3tine +ut3ing +ution5a +u4tis +5u5tiz +u4t1l +ut5of +uto5g +uto5matic +u5ton +u4tou +uts4 +u3u +uu4m +u1v2 +uxu3 +uz4e +1va +5va. +2v1a4b +vac5il +vac3u +vag4 +va4ge +va5lie +val5o +val1u +va5mo +va5niz +va5pi +var5ied +3vat +4ve. +4ved +veg3 +v3el. +vel3li +ve4lo +v4ely +ven3om +v5enue +v4erd +5vere. +v4erel +v3eren +ver5enc +v4eres +ver3ie +vermi4n +3verse +ver3th +v4e2s +4ves. +ves4te +ve4te +vet3er +ve4ty +vi5ali +5vian +5vide. +5vided +4v3iden +5vides +5vidi +v3if +vi5gn +vik4 +2vil +5vilit +v3i3liz +v1in +4vi4na +v2inc +vin5d +4ving +vio3l +v3io4r +vi1ou +vi4p +vi5ro +vis3it +vi3so +vi3su +4viti +vit3r +4vity +3viv +5vo. +voi4 +3vok +vo4la +v5ole +5volt +3volv +vom5i +vor5ab +vori4 +vo4ry +vo4ta +4votee +4vv4 +v4y +w5abl +2wac +wa5ger +wag5o +wait5 +w5al. +wam4 +war4t +was4t +wa1te +wa5ver +w1b +wea5rie +weath3 +wed4n +weet3 +wee5v +wel4l +w1er +west3 +w3ev +whi4 +wi2 +wil2 +will5in +win4de +win4g +wir4 +3wise +with3 +wiz5 +w4k +wl4es +wl3in +w4no +1wo2 +wom1 +wo5ven +w5p +wra4 +wri4 +writa4 +w3sh +ws4l +ws4pe +w5s4t +4wt +wy4 +x1a +xac5e +x4ago +xam3 +x4ap +xas5 +x3c2 +x1e +xe4cuto +x2ed +xer4i +xe5ro +x1h +xhi2 +xhil5 +xhu4 +x3i +xi5a +xi5c +xi5di +x4ime +xi5miz +x3o +x4ob +x3p +xpan4d +xpecto5 +xpe3d +x1t2 +x3ti +x1u +xu3a +xx4 +y5ac +3yar4 +y5at +y1b +y1c +y2ce +yc5er +y3ch +ych4e +ycom4 +ycot4 +y1d +y5ee +y1er +y4erf +yes4 +ye4t +y5gi +4y3h +y1i +y3la +ylla5bl +y3lo +y5lu +ymbol5 +yme4 +ympa3 +yn3chr +yn5d +yn5g +yn5ic +5ynx +y1o4 +yo5d +y4o5g +yom4 +yo5net +y4ons +y4os +y4ped +yper5 +yp3i +y3po +y4poc +yp2ta +y5pu +yra5m +yr5ia +y3ro +yr4r +ys4c +y3s2e +ys3ica +ys3io +3ysis +y4so +yss4 +ys1t +ys3ta +ysur4 +y3thin +yt3ic +y1w +za1 +z5a2b +zar2 +4zb +2ze +ze4n +ze4p +z1er +ze3ro +zet4 +2z1i +z4il +z4is +5zl +4zm +1zo +zo4m +zo5ol +zte4 +4z1z2 +z4zy +}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/enhyphex.tex b/macros/inrstex/inrstex/enhyphex.tex new file mode 100644 index 0000000000..6f01330f1f --- /dev/null +++ b/macros/inrstex/inrstex/enhyphex.tex @@ -0,0 +1,23 @@ +\hyphenation{ % Do NOT make any alterations to this list! --- DEK +as-so-ciate +as-so-ciates +dec-li-na-tion +oblig-a-tory +phil-an-thropic +present +presents +project +projects +reci-procity +re-cog-ni-zance +ref-or-ma-tion +ret-ri-bu-tion +ta-ble +} + +% additional exceptions (mjf) +\hyphenation{ +man-u-script +man-u-scripts +equi-sp-a-ced +}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/eqtag.tex b/macros/inrstex/inrstex/eqtag.tex new file mode 100644 index 0000000000..022e5afeb9 --- /dev/null +++ b/macros/inrstex/inrstex/eqtag.tex @@ -0,0 +1,45 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ========== Equation Tags =========== +% Since equation numbering plays a big part in scientific documentation +% a special set of tag generation forms were produced for this case. + + +% Special versions of autoeqnum to insert automatically insert +% parentheses around the equation number. +% \aneq no argument, no tag generated. This version +% does nothing if autonumbering is off. +% \aneqtag{<tag>} tag generated. This version inserts the argument +% inside parentheses if autoreferencing is off. + +% These special forms have a \eqnumfont ... as there is no other way +% to get the information inside. These are defined in the documentfonts. + +%\let\eqnumfont=\tenrm ... for tenpoint family + +\def\aneq{\a@utotag{}{\eqnum}{\eqtagrefformat + }{\e@qno \eqnumfont (\eqtagrefformat)}{}} +\def\aneqtag#1{\a@utotag{#1}{\eqnum}{\eqtagrefformat + }{\e@qno\eqnumfont (\eqtagrefformat)}{\e@qno\eqnumfont (#1)}} + +%===== for full left or right equation numbering and to allow ==== +% \aneq and \aneqtag to work + +\let\e@qql = \eqalignno +\let\l@eqql= \leqalignno +\def\e@qalignno{\let\e@qno=\relax \e@qql} +\def\l@eqalignno{\let\e@qno=\relax \l@eqql} +%redefines \eqalignno and \leqalignno --- normal unset mode +\let\eqalignno = \e@qalignno +\let\leqalignno = \l@eqalignno + +\let\e@qno = \eqno +%---- left/right equation numbering ---- +\def\leftequationnumbering{\let\eqalignno = \l@eqalignno + \let\leqalignno = \l@eqalignno + \let\e@qno = \leqno} +\def\rightequationnumbering{\let\leqalignno = \e@qalignno + \let\eqalignno = \e@qalignno + \let\e@qno = \eqno}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/extdef.tex b/macros/inrstex/inrstex/extdef.tex new file mode 100644 index 0000000000..e77fc67007 --- /dev/null +++ b/macros/inrstex/inrstex/extdef.tex @@ -0,0 +1,134 @@ +% extdef.tex (MAR 1991) +% \uccodes added +\input compatible +% Michael J. Ferguson +% The codes used here convert the TeX \' ... accent sequences +% into the equivalent ISO - Latin 1 values and also provide +% their inverses. +% The ISO -Latin 1 code set is almost identical to the +% Digital (DEC) Multinational Character set. + +\catcode`\^^f6=11 \lccode`\^^f6= `\^^f6 \charsubdef `\^^f6 = '177 `\o +\csubinverse ^^f6{@um@}o \uccode`\^^f6= `\^^d6 +\catcode`\^^d6=11 \lccode`\^^d6= `\^^f6 \charsubdef `\^^d6 = '177 `\O +\csubinverse ^^d6{@um@}O \uccode`\^^d6= `\^^d6 +\catcode`\^^e1=11 \lccode`\^^e1= `\^^e1 \charsubdef `\^^e1 = '023 `\a +\csubinverse ^^e1{@ac@}a \uccode`\^^e1= `\^^c1 +\catcode`\^^c1=11 \lccode`\^^c1= `\^^e1 \charsubdef `\^^c1 = '023 `\A +\csubinverse ^^c1{@ac@}A \uccode`\^^c1= `\^^c1 +\catcode`\^^e0=11 \lccode`\^^e0= `\^^e0 \charsubdef `\^^e0 = '022 `\a +\csubinverse ^^e0{@gr@}a \uccode`\^^e0= `\^^c0 +\catcode`\^^c0=11 \lccode`\^^c0= `\^^e0 \charsubdef `\^^c0 = '022 `\A +\csubinverse ^^c0{@gr@}A \uccode`\^^c0= `\^^c0 +\catcode`\^^e2=11 \lccode`\^^e2= `\^^e2 \charsubdef `\^^e2 = '136 `\a +\csubinverse ^^e2{@hat@}a \uccode`\^^e2= `\^^c2 +\catcode`\^^c2=11 \lccode`\^^c2= `\^^e2 \charsubdef `\^^c2 = '136 `\A +\csubinverse ^^c2{@hat@}A \uccode`\^^c2= `\^^c2 +\catcode`\^^e3=11 \lccode`\^^e3= `\^^e3 \charsubdef `\^^e3 = '176 `\a +\csubinverse ^^e3{@til@}a \uccode`\^^e3= `\^^c3 +\catcode`\^^c3=11 \lccode`\^^c3= `\^^e3 \charsubdef `\^^c3 = '176 `\A +\csubinverse ^^c3{@til@}A \uccode`\^^c3= `\^^c3 +\catcode`\^^e4=11 \lccode`\^^e4= `\^^e4 \charsubdef `\^^e4 = '177 `\a +\csubinverse ^^e4{@um@}a \uccode`\^^e4= `\^^c4 +\catcode`\^^c4=11 \lccode`\^^c4= `\^^e4 \charsubdef `\^^c4 = '177 `\A +\csubinverse ^^c4{@um@}A \uccode`\^^c4= `\^^c4 +\catcode`\^^e7=11 \lccode`\^^e7= `\^^e7 \charsubdef `\^^e7 = '030 `\c +\csubinverse ^^e7{c@}c \uccode`\^^e7= `\^^c7 +\catcode`\^^c7=11 \lccode`\^^c7= `\^^e7 \charsubdef `\^^c7 = '030 `\C +\csubinverse ^^c7{c@}C \uccode`\^^c7= `\^^c7 +\catcode`\^^e8=11 \lccode`\^^e8= `\^^e8 \charsubdef `\^^e8 = '022 `\e +\csubinverse ^^e8{@gr@}e \uccode`\^^e8= `\^^c8 +\catcode`\^^c8=11 \lccode`\^^c8= `\^^e8 \charsubdef `\^^c8 = '022 `\E +\csubinverse ^^c8{@gr@}E \uccode`\^^c8= `\^^c8 +\catcode`\^^e9=11 \lccode`\^^e9= `\^^e9 \charsubdef `\^^e9 = '023 `\e +\csubinverse ^^e9{@ac@}e \uccode`\^^e9= `\^^c9 +\catcode`\^^c9=11 \lccode`\^^c9= `\^^e9 \charsubdef `\^^c9 = '023 `\E +\csubinverse ^^c9{@ac@}E \uccode`\^^c9= `\^^c9 +\catcode`\^^ea=11 \lccode`\^^ea= `\^^ea \charsubdef `\^^ea = '136 `\e +\csubinverse ^^ea{@hat@}e \uccode`\^^ea= `\^^ca +\catcode`\^^ca=11 \lccode`\^^ca= `\^^ea \charsubdef `\^^ca = '136 `\E +\csubinverse ^^ca{@hat@}E \uccode`\^^ca= `\^^ca +\catcode`\^^eb=11 \lccode`\^^eb= `\^^eb \charsubdef `\^^eb = '177 `\e +\csubinverse ^^eb{@um@}e \uccode`\^^eb= `\^^cb +\catcode`\^^cb=11 \lccode`\^^cb= `\^^eb \charsubdef `\^^cb = '177 `\E +\csubinverse ^^cb{@um@}E \uccode`\^^cb= `\^^cb +\catcode`\^^ec=11 \lccode`\^^ec= `\^^ec \charsubdef `\^^ec = '022 '020 +\csubinverse ^^ec{@gr@}{^^P} \uccode`\^^ec= `\^^cc +\catcode`\^^cc=11 \lccode`\^^cc= `\^^ec \charsubdef `\^^cc = '022 `\I +\csubinverse ^^cc{@gr@}I \uccode`\^^cc= `\^^cc +\catcode`\^^ed=11 \lccode`\^^ed= `\^^ed \charsubdef `\^^ed = '023 '020 +\csubinverse ^^ed{@ac@}{^^P} \uccode`\^^ed= `\^^cd +\catcode`\^^cd=11 \lccode`\^^cd= `\^^ed \charsubdef `\^^cd = '023 `\I +\csubinverse ^^cd{@ac@}I \uccode`\^^cd= `\^^cd +\catcode`\^^ee=11 \lccode`\^^ee= `\^^ee \charsubdef `\^^ee = '136 '020 +\csubinverse ^^ee{@hat@}{^^P} \uccode`\^^ee= `\^^ce +\catcode`\^^ce=11 \lccode`\^^ce= `\^^ee \charsubdef `\^^ce = '136 `\I +\csubinverse ^^ce{@hat@}I \uccode`\^^ce= `\^^ce +\catcode`\^^ef=11 \lccode`\^^ef= `\^^ef \charsubdef `\^^ef = '177 '020 +\csubinverse ^^ef{@um@}{^^P} \uccode`\^^ef= `\^^cf +\catcode`\^^cf=11 \lccode`\^^cf= `\^^ef \charsubdef `\^^cf = '177 `\I +\csubinverse ^^cf{@um@}I \uccode`\^^cf= `\^^cf +\catcode`\^^f1=11 \lccode`\^^f1= `\^^f1 \charsubdef `\^^f1 = '176 `\n +\csubinverse ^^f1{@til@}n \uccode`\^^f1= `\^^d1 +\catcode`\^^d1=11 \lccode`\^^d1= `\^^f1 \charsubdef `\^^d1 = '176 `\N +\csubinverse ^^d1{@til@}N \uccode`\^^d1= `\^^d1 +\catcode`\^^f2=11 \lccode`\^^f2= `\^^f2 \charsubdef `\^^f2 = '022 `\o +\csubinverse ^^f2{@gr@}o \uccode`\^^f2= `\^^d2 +\catcode`\^^d2=11 \lccode`\^^d2= `\^^f2 \charsubdef `\^^d2 = '022 `\O +\csubinverse ^^d2{@gr@}O \uccode`\^^d2= `\^^d2 +\catcode`\^^f3=11 \lccode`\^^f3= `\^^f3 \charsubdef `\^^f3 = '023 `\o +\csubinverse ^^f3{@ac@}o \uccode`\^^f3= `\^^d3 +\catcode`\^^d3=11 \lccode`\^^d3= `\^^f3 \charsubdef `\^^d3 = '023 `\O +\csubinverse ^^d3{@ac@}O \uccode`\^^d3= `\^^d3 +\catcode`\^^f4=11 \lccode`\^^f4= `\^^f4 \charsubdef `\^^f4 = '136 `\o +\csubinverse ^^f4{@hat@}o \uccode`\^^f4= `\^^d4 +\catcode`\^^d4=11 \lccode`\^^d4= `\^^f4 \charsubdef `\^^d4 = '136 `\O +\csubinverse ^^d4{@hat@}O \uccode`\^^d4= `\^^d4 +\catcode`\^^f5=11 \lccode`\^^f5= `\^^f5 \charsubdef `\^^f5 = '176 `\o +\csubinverse ^^f5{@til@}o \uccode`\^^f5= `\^^d5 +\catcode`\^^d5=11 \lccode`\^^d5= `\^^f5 \charsubdef `\^^d5 = '176 `\O +\csubinverse ^^d5{@til@}O \uccode`\^^d5= `\^^d5 +\catcode`\^^f9=11 \lccode`\^^f9= `\^^f9 \charsubdef `\^^f9 = '022 `\u +\csubinverse ^^f9{@gr@}u \uccode`\^^f9= `\^^d9 +\catcode`\^^d9=11 \lccode`\^^d9= `\^^d9 \charsubdef `\^^d9 = '022 `\U +\csubinverse ^^d9{@gr@}U \uccode`\^^d9= `\^^d9 +\catcode`\^^fb=11 \lccode`\^^fb= `\^^fb \charsubdef `\^^fb = '136 `\u +\csubinverse ^^fb{@hat@}u \uccode`\^^fb= `\^^db +\catcode`\^^db=11 \lccode`\^^db= `\^^fb \charsubdef `\^^db = '136 `\U +\csubinverse ^^db{@hat@}U \uccode`\^^db= `\^^db +\catcode`\^^fc=11 \lccode`\^^fc= `\^^fc \charsubdef `\^^fc = '177 `\u +\csubinverse ^^fc{@um@}u \uccode`\^^fc= `\^^dc +\catcode`\^^dc=11 \lccode`\^^dc= `\^^fc \charsubdef `\^^dc = '177 `\U +\csubinverse ^^dc{@um@}U \uccode`\^^dc= `\^^dc +% iso latin 1 -- next two codes -- y acute accent +\catcode`\^^fd=11 \lccode`\^^fd= `\^^fd \charsubdef `\^^fd = '023 `\y +\csubinverse ^^fd{@ac@}y \uccode`\^^fd= `\^^dd +\catcode`\^^dd=11 \lccode`\^^dd= `\^^fd \charsubdef `\^^dd = '023 `\Y +\csubinverse ^^dd{@ac@}Y \uccode`\^^dd= `\^^dd +\catcode`\^^e5=\active +\catcode`\^^c5=\active +\catcode`\^^e6=\active +\catcode`\^^c6=\active +\catcode`\^^f7=\active +\catcode`\^^d7=\active +\catcode`\^^f8=\active +\catcode`\^^d8=\active +\catcode`\^^df=\active +\catcode`\^^a7=\active +\catcode`\^^a9=\active +\catcode`\^^a3=\active + + \def ^^e5{\aa } + \def ^^c5{\AA } + \def ^^e6{\ae } + \def ^^c6{\AE } + \def ^^f7{^^[ } + \def ^^d7{\OE } + \def ^^f8{\o } + \def ^^d8{\O } + \def ^^df{\ss } + \def ^^a7{\S } + \def ^^a9{\copyright } + \def ^^a3{\it\$} + +\def\oe{^^[ } diff --git a/macros/inrstex/inrstex/extdef3.tex b/macros/inrstex/inrstex/extdef3.tex new file mode 100644 index 0000000000..026ea8b57e --- /dev/null +++ b/macros/inrstex/inrstex/extdef3.tex @@ -0,0 +1,137 @@ +% extdef.tex (MAR 1991) +% \uccodes added +\input compat3 % defines csubinverse only +% exlplicit accents should not be converted when using "cm" fonts. +% ... without charsubdef definitions +% Michael J. Ferguson +% The codes used here convert the TeX \' ... accent sequences +% into the equivalent ISO - Latin 1 values and also provide +% their inverses. +% The ISO -Latin 1 code set is almost identical to the +% Digital (DEC) Multinational Character set. + +\catcode`\^^f6=11 \lccode`\^^f6= `\^^f6 +\csubinverse ^^f6{@um@}o \uccode`\^^f6= `\^^d6 +\catcode`\^^d6=11 \lccode`\^^d6= `\^^f6 +\csubinverse ^^d6{@um@}O \uccode`\^^d6= `\^^d6 +\catcode`\^^e1=11 \lccode`\^^e1= `\^^e1 +\csubinverse ^^e1{@ac@}a \uccode`\^^e1= `\^^c1 +\catcode`\^^c1=11 \lccode`\^^c1= `\^^e1 +\csubinverse ^^c1{@ac@}A \uccode`\^^c1= `\^^c1 +\catcode`\^^e0=11 \lccode`\^^e0= `\^^e0 +\csubinverse ^^e0{@gr@}a \uccode`\^^e0= `\^^c0 +\catcode`\^^c0=11 \lccode`\^^c0= `\^^e0 +\csubinverse ^^c0{@gr@}A \uccode`\^^c0= `\^^c0 +\catcode`\^^e2=11 \lccode`\^^e2= `\^^e2 +\csubinverse ^^e2{@hat@}a \uccode`\^^e2= `\^^c2 +\catcode`\^^c2=11 \lccode`\^^c2= `\^^e2 +\csubinverse ^^c2{@hat@}A \uccode`\^^c2= `\^^c2 +\catcode`\^^e3=11 \lccode`\^^e3= `\^^e3 +\csubinverse ^^e3{@til@}a \uccode`\^^e3= `\^^c3 +\catcode`\^^c3=11 \lccode`\^^c3= `\^^e3 +\csubinverse ^^c3{@til@}A \uccode`\^^c3= `\^^c3 +\catcode`\^^e4=11 \lccode`\^^e4= `\^^e4 +\csubinverse ^^e4{@um@}a \uccode`\^^e4= `\^^c4 +\catcode`\^^c4=11 \lccode`\^^c4= `\^^e4 +\csubinverse ^^c4{@um@}A \uccode`\^^c4= `\^^c4 +\catcode`\^^e7=11 \lccode`\^^e7= `\^^e7 +\csubinverse ^^e7{c@}c \uccode`\^^e7= `\^^c7 +\catcode`\^^c7=11 \lccode`\^^c7= `\^^e7 +\csubinverse ^^c7{c@}C \uccode`\^^c7= `\^^c7 +\catcode`\^^e8=11 \lccode`\^^e8= `\^^e8 +\csubinverse ^^e8{@gr@}e \uccode`\^^e8= `\^^c8 +\catcode`\^^c8=11 \lccode`\^^c8= `\^^e8 +\csubinverse ^^c8{@gr@}E \uccode`\^^c8= `\^^c8 +\catcode`\^^e9=11 \lccode`\^^e9= `\^^e9 +\csubinverse ^^e9{@ac@}e \uccode`\^^e9= `\^^c9 +\catcode`\^^c9=11 \lccode`\^^c9= `\^^e9 +\csubinverse ^^c9{@ac@}E \uccode`\^^c9= `\^^c9 +\catcode`\^^ea=11 \lccode`\^^ea= `\^^ea +\csubinverse ^^ea{@hat@}e \uccode`\^^ea= `\^^ca +\catcode`\^^ca=11 \lccode`\^^ca= `\^^ea +\csubinverse ^^ca{@hat@}E \uccode`\^^ca= `\^^ca +\catcode`\^^eb=11 \lccode`\^^eb= `\^^eb +\csubinverse ^^eb{@um@}e \uccode`\^^eb= `\^^cb +\catcode`\^^cb=11 \lccode`\^^cb= `\^^eb +\csubinverse ^^cb{@um@}E \uccode`\^^cb= `\^^cb +\catcode`\^^ec=11 \lccode`\^^ec= `\^^ec +\csubinverse ^^ec{@gr@}{^^P} \uccode`\^^ec= `\^^cc +\catcode`\^^cc=11 \lccode`\^^cc= `\^^ec +\csubinverse ^^cc{@gr@}I \uccode`\^^cc= `\^^cc +\catcode`\^^ed=11 \lccode`\^^ed= `\^^ed +\csubinverse ^^ed{@ac@}{^^P} \uccode`\^^ed= `\^^cd +\catcode`\^^cd=11 \lccode`\^^cd= `\^^ed +\csubinverse ^^cd{@ac@}I \uccode`\^^cd= `\^^cd +\catcode`\^^ee=11 \lccode`\^^ee= `\^^ee +\csubinverse ^^ee{@hat@}{^^P} \uccode`\^^ee= `\^^ce +\catcode`\^^ce=11 \lccode`\^^ce= `\^^ee +\csubinverse ^^ce{@hat@}I \uccode`\^^ce= `\^^ce +\catcode`\^^ef=11 \lccode`\^^ef= `\^^ef +\csubinverse ^^ef{@um@}{^^P} \uccode`\^^ef= `\^^cf +\catcode`\^^cf=11 \lccode`\^^cf= `\^^ef +\csubinverse ^^cf{@um@}I \uccode`\^^cf= `\^^cf +\catcode`\^^f1=11 \lccode`\^^f1= `\^^f1 +\csubinverse ^^f1{@til@}n \uccode`\^^f1= `\^^d1 +\catcode`\^^d1=11 \lccode`\^^d1= `\^^f1 +\csubinverse ^^d1{@til@}N \uccode`\^^d1= `\^^d1 +\catcode`\^^f2=11 \lccode`\^^f2= `\^^f2 +\csubinverse ^^f2{@gr@}o \uccode`\^^f2= `\^^d2 +\catcode`\^^d2=11 \lccode`\^^d2= `\^^f2 +\csubinverse ^^d2{@gr@}O \uccode`\^^d2= `\^^d2 +\catcode`\^^f3=11 \lccode`\^^f3= `\^^f3 +\csubinverse ^^f3{@ac@}o \uccode`\^^f3= `\^^d3 +\catcode`\^^d3=11 \lccode`\^^d3= `\^^f3 +\csubinverse ^^d3{@ac@}O \uccode`\^^d3= `\^^d3 +\catcode`\^^f4=11 \lccode`\^^f4= `\^^f4 +\csubinverse ^^f4{@hat@}o \uccode`\^^f4= `\^^d4 +\catcode`\^^d4=11 \lccode`\^^d4= `\^^f4 +\csubinverse ^^d4{@hat@}O \uccode`\^^d4= `\^^d4 +\catcode`\^^f5=11 \lccode`\^^f5= `\^^f5 +\csubinverse ^^f5{@til@}o \uccode`\^^f5= `\^^d5 +\catcode`\^^d5=11 \lccode`\^^d5= `\^^f5 +\csubinverse ^^d5{@til@}O \uccode`\^^d5= `\^^d5 +\catcode`\^^f9=11 \lccode`\^^f9= `\^^f9 +\csubinverse ^^f9{@gr@}u \uccode`\^^f9= `\^^d9 +\catcode`\^^d9=11 \lccode`\^^d9= `\^^d9 +\csubinverse ^^d9{@gr@}U \uccode`\^^d9= `\^^d9 +\catcode`\^^fb=11 \lccode`\^^fb= `\^^fb +\csubinverse ^^fb{@hat@}u \uccode`\^^fb= `\^^db +\catcode`\^^db=11 \lccode`\^^db= `\^^fb +\csubinverse ^^db{@hat@}U \uccode`\^^db= `\^^db +\catcode`\^^fc=11 \lccode`\^^fc= `\^^fc +\csubinverse ^^fc{@um@}u \uccode`\^^fc= `\^^dc +\catcode`\^^dc=11 \lccode`\^^dc= `\^^fc +\csubinverse ^^dc{@um@}U \uccode`\^^dc= `\^^dc +% iso latin 1 -- next two codes -- y acute accent +\catcode`\^^fd=11 \lccode`\^^fd= `\^^fd +\csubinverse ^^fd{@ac@}y \uccode`\^^fd= `\^^dd +\catcode`\^^dd=11 \lccode`\^^dd= `\^^fd +\csubinverse ^^dd{@ac@}Y \uccode`\^^dd= `\^^dd +\catcode`\^^e5=\active +\catcode`\^^c5=\active +\catcode`\^^e6=\active +\catcode`\^^c6=\active +\catcode`\^^f7=\active +\catcode`\^^d7=\active +\catcode`\^^f8=\active +\catcode`\^^d8=\active +\catcode`\^^df=\active +\catcode`\^^a7=\active +\catcode`\^^a9=\active +\catcode`\^^a3=\active + + \def ^^e5{\aa } + \def ^^c5{\AA } + \def ^^e6{\ae } + \def ^^c6{\AE } + \def ^^f7{^^[ } + \def ^^d7{\OE } + \def ^^f8{\o } + \def ^^d8{\O } + \def ^^df{\ss } + \def ^^a7{\S } + \def ^^a9{\copyright } + \def ^^a3{\it\$} + +\def\oe{^^[ } + diff --git a/macros/inrstex/inrstex/footnote.tex b/macros/inrstex/inrstex/footnote.tex new file mode 100644 index 0000000000..1f5afd4538 --- /dev/null +++ b/macros/inrstex/inrstex/footnote.tex @@ -0,0 +1,22 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%=========== Footnotes ---- similar to that in the texbook ====== + +%\newinsert\footins +\newtoks\everyfootnote % token list inserted before every footnote + % but after the parameters -- cannot affect \footins +\def\up#1{\nobreak$^{#1}\relax$} +\def\footnote#1{\let\@sf\empty + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi + \up{#1}\@sf\sfootnote{#1}} +\def\sfootnote#1{\insert\footins\bgroup\footnotefont + \interlinepenalty100 \let\par=\endgraf + \leftskip=\z@skip \rightskip=\z@skip + \splittopskip=3ex plus 1pt minus 1pt \floatingpenalty=20000 + \smallskip\the\everyfootnote\relax + \item{\up{#1}}\bgroup\strut\aftergroup\@foot\let\next} +\skip\footins=3ex plus 2pt minus 4pt % space added when footnote is present +%\count\footins=1000 % footnote magnification factor (1 to 1) +\dimen\footins=10in % maximum footnotes per page diff --git a/macros/inrstex/inrstex/frhyph.tex b/macros/inrstex/inrstex/frhyph.tex new file mode 100644 index 0000000000..1750388dc3 --- /dev/null +++ b/macros/inrstex/inrstex/frhyph.tex @@ -0,0 +1,823 @@ + + + +% hyphenation patterns for french ... for use with fonts that do not +% have the accented characters inside .... modifications +% for other fonts are obvious + +% Mods to \i and \oe form ... TeX eats up spaces and loses patterns. +% MJF 22 Jun 88 +% addition of .con2 to prevent embarrassment + +\begingroup +\accenthyphcodes\spechyphcodes % changes the \' ... etc +\lccode`\'=`\' +\lccode'33='33 %\oe ... both needed in +\lccode'20='20 % \i .. dotless i +\patterns{ +.con2 % mjf jun 88 +2'2 % mjf +'a2 % mjf +'\'e2 % mjf +'e2 % mjf +'o2 % mjf +'\"o2 % mjf +'u2 % mjf +'i2 % mjf +.\'e2 %mjf +1ba +1b\^a +1be +1b\'e +1b\`e +1b\^e +1biOP +1b\^\i0 % mjf jun88 +1bo +1b\^o +1bu +1b\^u +1by +4be. +4bes. +1b2l +4ble. +4bles. +1b2r +4bre. +4bres. +1ca +1c\^a +1ce +1c\'e +1c\`e +1c\^e +1ci +1c\^\i0 % mjf jun88 +1co +1c\^o +1cu +1c\^u +1cy +1c\oe0 % mjf jun88 +4ce. +4ces. +1c2h +4che. +4ches. +2chb +2chg +2chm +2chn +2chp +2chs +2cht +2chv +.ch4 +4ch. +ch2l +4chle. +4chles. +ch2r +4chre. +4chres. +1c2k +4cke. +4ckes. +4ck. +2ckb +2ckf +2ckg +2ck3h +2ckp +2cks +2ckt +1c2l +4cle. +4cles. +1c2r +4cre. +4cres. +1\c c +1da +1d\^a +1de +1d\'e +1d\`e +1d\^e +1di +1d\^\i0 % mjf jun88 +1do +1d\^o +1du +1d\^u +1dy +4de. +4des. +d1d2h +1d2r +4dre. +4dres. +1fa +1f\^a +1fe +1f\'e +1f\`e +1f\^e +1fi +1f\^\i0 % mjf jun88 +1fo +1f\^o +1fu +1f\^u +1fy +4fe. +4fes. +1f2l +4fle. +4fles. +1f2r +4fre. +4fres. +1ga +1g\^a +1ge +1g\'e +1g\`e +1g\^e +1gi +1g\^\i0 % mjf jun88 +1go +1g\^o +1gu +1g\^u +1gy +4ge. +4ges. +4gue. +4gues. +1g2ha +1g2he +1g2hi +1g2ho +1g2hy +1g2l +4gle. +4gles. +1g2n +4gne. +4gnes. +1g2r +4gre. +4gres. +1ha +1h\^a +1he +1h\'e +1h\`e +1h\^e +1hi +1h\^\i0 % mjf jun88 +1ho +1h\^o +1hu +1h\^u +1hy +4he. +4hes. +1j +2jk +4je. +4jes. +1ka +1k\^a +1ke +1k\'e +1k\`e +1k\^e +1ki +1k\^\i0 % mjf jun88 +1ko +1k\^o +1ku +1k\^u +1ky +4ke. +4kes. +1k2h +4kh. +.kh4 +1k2r +1la +1l\^a +1l\`a +1le +1l\'e +1l\`e +1l\^e +1li +1l\^\i0 % mjf jun88 +1lo +1l\^o +1lu +1l\^u +1ly +4le. +4les. +1ma +1m\^a +1me +1m\'e +1m\`e +1m\^e +1mi +1m\^\i0 % mjf jun88 +1mo +1m\^o +1mu +1m\^u +1my +1m\oe0 % mjf jun88 +4me. +4mes. +1na +1n\^a +1ne +1n\'e +1n\`e +1n\^e +1ni +1n\^\i0 % mjf jun88 +1no +1n\^o +1nu +1n\^u +1ny +n1x +1n\oe0 %mjf jun88 +4ne. +4nes. +1pa +1p\^a +1pe +1p\'e +1p\`e +1p\^e +1pi +1p\^\i0 % mjf jun88 +1po +1p\^o +1pu +1p\^u +1py +4pe. +4pes. +4ph. +1p2h +4phe. +4phes. +ph2l +4phle. +4phles. +2phn +ph2r +4phre. +4phres. +2phs +2pht +.ph4 +1p2l +4ple. +4ples. +1p2r +4pre. +4pres. +1q +4que. +4ques. +1ra +1r\^a +1re +1r\'e +1r\`e +1r\^e +1ri +1r\^\i0 % mjf jun88 +1ro +1r\^o +1ru +1r\^u +1ry +4re. +4res. +1r2h +4rhe. +4rhes. +1sa +1s\^a +1se +1s\'e +1s\`e +1s\^e +1si +1s\^\i0 % mjf jun88 +1so +1s\^o +1su +1s\^u +1sy +1s\oe0 % mjf jun88 +4se. +4ses. +1s2ch +4sch. +2schs +4sche. +4sches. +.sch4 +.sh4 +4sh. +1s2h +2shm +2shr +2shs +4she. +4shes. +1ta +1t\^a +1t\`a +1te +1t\'e +1t\`e +1t\^e +1ti +1t\^\i0 % mjf jun88 +1to +1t\^o +1tu +1t\^u +1ty +4te. +4tes. +1t2h +4th. +.th4 +4the. +4thes. +th2l +2thm +2thn +th2r +4thre. +4thres. +2ths +1t2r +4tre. +4tres. +1va +1v\^a +1ve +1v\'e +1v\`e +1v\^e +1vi +1v\^\i0 % mjf jun88 +1vo +1v\^o +1vu +1v\^u +1vy +4ve. +4ves. +1v2r +4vre. +4vres. +1wa +1we +1wi +1wo +1wu +4we. +4wes. +1w2r +1za +1ze +1z\'e +1z\`e +1zi +1zo +1zu +1zy +4ze. +4zes. +d1s2 +f1s2 +g1s2 +tung2s3 +l1s2t +m1s2 +e2s3ch +i2s3ch\'e +i2s3chia +i2s3chio +1alcool +i1algi +a2l1algi +y1algi +1a2nesth\'esi +i1arthr +y1asth +a1\`e2dre +i1\`e2dre +o1\`e2dre +1\'e2drie +1\'e2drique +1\'e2lectr +1\'e2l\'ement +1\'e2nerg +o1d2l +2t3heur +2r3heur +3d2hal +3d2houd +2s3hom +2r3hydr +o1ioni +1m2n\`es +1m2n\'esi +1m2n\'emo +i1oxy +io1a2ct +3ph2tal\'e +3ph2tis +1p2neu +1p2n\'e +1p2sych +1p2t\`er +1p2t\'er +1s2caph +1s2cl\'er +1s2cop +e2s3cop +\'epi2s3cop +\'epi3s4cope +di2s3cop +1s2lav +1s2lov +1s2patia +1s2perm +1s2por +1s2ph\`er +1s2ph\'er +1s2piel +1s2piros +1s2tandard +o1s2tas +eu1s2tat +o1s2tat +pro2s3tat +i1s2tat +1s2tein +o1s2t\'ero +1s2tigm +o1s2tim +1s2tock +1s2tomos +o1s2tom +y1s2tom +o1s2trad +o1s2tratu +o1s2triction +1s2troph +a2s3tro +apo2s3tr +u2s3tr +1s2tructu +1s2tyle +t1t2l +.ab3r\'ea +.ae3s4ch +.amino1a2c +.ana3s4tr +.anti1a2 +.anti1e2 +.anti2enne +.anti1\'e2 +.anti1s2 +.apo2s3ta +.as2ta +.bi1a2c +.bi1au +.bio1a2 +.bi1u2 +.bi2s1a2 +.ci2s1alp +co1acc +co1acq +co1a2d +co1ap +co1ar +co1assoc +co1assur +co1au +co1ax +co1ef +co1en +co1ex +co1\'e2 +.contre1s2c +co2n1urb +.co1o2 +.co2o3lie +.dacryo1a2 +.d\'e1a2 +.d\'e1io +.d\'e1o2 +.d\'e2s1a2 +.d\'e3s2a3cr +.d\'e3s2astr +.d\'e3s2a3tell +.d\'e2s1\'e2 +.d\'e3s2\'e3gr +.d\'e2s1e2 +.d\'e3s2ensib +.d\'e3s2ert +.d\'e3s2exu +.d\'e2s3h +.d\'e2s1i2 +.d\'e3s2i3d +.d\'e3s2i3gn +.d\'e3s2i3li +.d\'e3s2i3non +.d\'e3s2invo +.d\'e3s2i3r +.d\'e3s2ist +.d\'e2s1o2 +.d\'e3s2o3d\'e +.d\'e3s2o3l +.d\'e3s2o3pil +.d\'e3s2orm +.d\'e3s2orp +.d\'e3s2oufr +.d\'e2s1\oe0 % mjf jun88 +.d\'e1s2c +.d\'e1s2p +.d\'e1s2t +.d\'e2s1u2n +.di1a2c\'e +.di1a2cid +dia2g3n +.di1ald +.di1a2mi +.di1a2tom +.di1e2n +.di2s3h +.dy2s1a2 +.dy2s1i2 +.dy2s1u2 +.dy2s3 +.en1a2 +en1i2vr +.en1o2 +.eu2r1a2 +extra1 +extra2c +extra2i +h\'emi1\'e +h\'emo1p2t +hypera2 +hyper\'e2 +hyper\oe2 +hyperi2 +hypero2 +hypers2 +hyperu2 +hype4r1 +hypo1a2 +hypo1\'e2 +hypo1i2 +hypo1o2 +hypo1u2 +hypo1s2 +.in1a2 +.in2a3nit +.in2augur +.in1\'e2 +.in2e3lucta +.in2\'e3narra +.in1e2 +.in2ept +.in2er +.in1i2 +.in2i3miti +.in2i3q +.in2i3t +.in1o2 +.in2o3cul +.in2ond +.in1s2tab +.in1u2 +.in2uit +.in2u3l +.intera2 +.inter\'e2 +.intere2 +.interi2 +.intero2 +.interu2 +.inters2 +.inte4r3 +la2w3re +.ma2c3k +.macro1s2c +.ma2l1a2dres +.ma2l1a2dro +.ma2l1ais\'e +.ma2l1ap +.ma2l1a2v +.ma2l1en +.ma2l1int +.ma2l1oc +.ma2l1o2d +.ma2r1x +.m\'e2g1oh +.m\'e2s1es +.m\'e2s1i +.m\'e2s1u2s +.m\'eta1s2ta +.milli1am +.mono1a2 +.mono1\'e2 +.mono1e2 +.mono1i2 +.mono1\"\i2d\'e +.momo1o2 +.mono1u2 +.mono1s2 +.no2n1obs +o2b3long +ombud2s3 +omni1s2 +.oua1ou +.ovi1s2c +oxy1a2 +pal\'eo1\'e2 +.pa2n1a2f +.pa2n1a2m\'e +.pa2n1a2ra +.pa2n1is +.pa2n1o2ph +.pa2n1opt +.para1s2 +.pa2r1a2che +.pa2r1a2ch\`e +.pa2r3h\'e +.per1a2 +.per1\'e2 +.per1e2 +.per1i2 +.per1o2 +.per1u2 +per3h +.pe4r +p\'e2n1ul +p\'e2r1\'e2q +.p\'eri1os +.p\'eri1s2 +.p\'eri2s3s +.p\'eri2s3ta +.p\'eri1u2 +.phalan3s2t +photo1s2 +.phyto3ph2 +.pluri1a +poly1a2 +poly1\'e2 +poly1\`e2 +poly1e2 +poly1i2 +poly1o2 +poly1u2 +poly1s2 +.pos2t3hy +.pos2t1in +.pos2t1o2 +.pos2t3r +.post1s2 +.pr\'e1a2 +.pr\'e2au +.pr\'e1\'e2 +.pr\'e1e2 +.pr\'e1i2 +.pr\'e1o2 +.pr\'e1u2 +.pr\'e1s2 +.pro1\'e2 +.prou3d2h +.pro1s2c\'e +.psycho1a2n +.pud1d2l +.re1s2 +.re2s3cap +.re2s3cou +.re2s3cri +.re2s3pect +.re2s3pir +.re2s3plend +.re2s3pons +.re2s3quil +.re2s3s +.re2s3t +.re3s4tab +.re3s4tag +.re3s4tand +.re3s4tat +.re3s4t\'en +.re3s4t\'er +.re3s4tim +.re3s4tip +.re3s4toc +.re3s4top +.re3s4tr +.re4s5trein +.re4s5trict +.re4s5trin +.re3s4tu +.re3s4ty +.r\'e1a2 +.r\'e2a3le +.r\'e2a3lis +.r\'e2a3lit +.r\'e2aux +.r\'e1\'e2 +.r\'e1e2 +.r\'e2el +.r\'e2er +.r\'e2\`er +.r\'e1i2 +.r\'e2i3fi +.r\'e1o2 +.r\'e1u2 +.r\'e2uss +.r\'etro1a2 +sesqui1a2 +st\'er\'eo1s2 +.su2b1a2 +.su3b2alt +.su2b1\'e2 +.su3b2\'e3r +.su2b1in +.su2b3limin +.su2b3lin +.su2b3lu +sub1s2 +.su2b1ur +supero2 +supers2 +supe4r1 +.su2r1a2 +su3r2ah +.su3r2a3t +.su2r1e2 +.su3r2eau +.su3r2e1l +.su3r2et +.su2r1\'e2 +.su2r3h +.su2r1i2m +.su2r1inf +.su2r1int +.su2r1of +.su2r1ox +t\'el\'e1e2 +t\'el\'e1i2 +t\'el\'e1o2b +t\'el\'e1o2p +t\'el\'e1s2 +thermo1s2 +tran2s1a2 +tran3s2act +tran3s2ats +tran2s3h +tran2s1o2 +tran2s3p +tran2s1u2 +.tri1a2c +.tri1a2n +.tri1a2t +.tri1o2n +archi1\'e2pis +moye2n1\^a2g +po1astre +uni1o2v +uni1a2x +v\'elo1s2ki +vol2t1amp +tachy1a2 +tchin3t2 +chlo2r3a2c +chlo2r3\'e2t +n3s2at. +n3s2ats. +} +\endgroup
\ No newline at end of file diff --git a/macros/inrstex/inrstex/genins.tex b/macros/inrstex/inrstex/genins.tex new file mode 100644 index 0000000000..1584b764df --- /dev/null +++ b/macros/inrstex/inrstex/genins.tex @@ -0,0 +1,181 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% Fixed page insert forms to work with pageinsert. ... 22 Sept 87 MJF + +% ========= Syntactic 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\def\g@box{\vbox to + \vinnerpagesize}\def\g@ebox{\relax}\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 +% \silenttrue, \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 + \captiontitlefont #2} + \ifdim 1\wd0 < \captiontextfraction\hsize + \centerline{\unhbox0} + \else + \centerline{\vtop{\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. + +% \ifsilentfigure ... turns off the figure inserts so that tagging can +% occur with figures gracefully occuring at the end. This means that +% figure list file will refer to pages where the figures are sort of +% called out + +\def\multiinsert{\def\g@box{\vbox }\def\g@ebox{\relax}} + +\newif\ifsilentfigure % default is \silenfigurefalse + +\def\g@box{$$\vbox } \def\g@ebox{$$} + +\def\geninsertform #1#2#3#4{ + \ifautonumber + {\silenttrue\expandafter\csname auto#1num\endcsname{#2}}\relax + \edef\i@nsnum{\csname:@#2\endcsname}\else + \edef\i@nsnum{#2}\fi + \writelistfile{#1}{\csname #1tocout\endcsname}{\i@nsnum}{#3} + \ifsilentfigure \relax \else + \g@box{\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}\g@ebox\fi} + + +% ========== 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/inrstex/graph_ps.tex b/macros/inrstex/inrstex/graph_ps.tex new file mode 100644 index 0000000000..320fe7cc7d --- /dev/null +++ b/macros/inrstex/inrstex/graph_ps.tex @@ -0,0 +1,27 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ============ TeXGraphics Support ============= +% TeXGraphics uses \specials and needs a QMS (QUIC) Laser printer. +% A Second version produces POSTSCRIPT and assumes TEXTSET'S DVILASER. +% It should be easily modifiable to other POSTSCRIPT drivers. +% both \beginTeXGraphics and \btg are redefined in texgraph.tex +% TeXgraphics is not normally in the format file +% These commands are necessary to support TeXGraph. They are +% NOT the commands themselves but rather set up commands +% to bring them in if needed. + +\def\beginTeXGraphics{\silent{\input texgraph\relax}\btg} %postscript form +\def\begintexgraph{\silent{\input texgraph\relax}\btg} %postscript form +\let\btg=\beginTeXGraphics + + +% Since a \centergraph or \centerplotfile may be met before +% TeXgraph is loaded, they must be in the format file. +% \centergraph needs to be very \long +\long\def\centergraph#1{\hbox to + \hsize{\hss\vbox{#1\vgraphskip}\hgraphskip\hss}} +\def\centerplotfile#1{\centergraph{\btg\includefile {#1} \etg}} + +% ========= end TeXGraphics ========= diff --git a/macros/inrstex/inrstex/hyphen.tex b/macros/inrstex/inrstex/hyphen.tex new file mode 100644 index 0000000000..eb23d89cd5 --- /dev/null +++ b/macros/inrstex/inrstex/hyphen.tex @@ -0,0 +1,4466 @@ +% The Plain TeX hyphenation tables [NOT TO BE CHANGED IN ANY WAY!] +\patterns{ % just type <return> if you're not using INITEX +.ach4 +.ad4der +.af1t +.al3t +.am5at +.an5c +.ang4 +.ani5m +.ant4 +.an3te +.anti5s +.ar5s +.ar4tie +.ar4ty +.as3c +.as1p +.as1s +.aster5 +.atom5 +.au1d +.av4i +.awn4 +.ba4g +.ba5na +.bas4e +.ber4 +.be5ra +.be3sm +.be5sto +.bri2 +.but4ti +.cam4pe +.can5c +.capa5b +.car5ol +.ca4t +.ce4la +.ch4 +.chill5i +.ci2 +.cit5r +.co3e +.co4r +.cor5ner +.de4moi +.de3o +.de3ra +.de3ri +.des4c +.dictio5 +.do4t +.du4c +.dumb5 +.earth5 +.eas3i +.eb4 +.eer4 +.eg2 +.el5d +.el3em +.enam3 +.en3g +.en3s +.eq5ui5t +.er4ri +.es3 +.eu3 +.eye5 +.fes3 +.for5mer +.ga2 +.ge2 +.gen3t4 +.ge5og +.gi5a +.gi4b +.go4r +.hand5i +.han5k +.he2 +.hero5i +.hes3 +.het3 +.hi3b +.hi3er +.hon5ey +.hon3o +.hov5 +.id4l +.idol3 +.im3m +.im5pin +.in1 +.in3ci +.ine2 +.in2k +.in3s +.ir5r +.is4i +.ju3r +.la4cy +.la4m +.lat5er +.lath5 +.le2 +.leg5e +.len4 +.lep5 +.lev1 +.li4g +.lig5a +.li2n +.li3o +.li4t +.mag5a5 +.mal5o +.man5a +.mar5ti +.me2 +.mer3c +.me5ter +.mis1 +.mist5i +.mon3e +.mo3ro +.mu5ta +.muta5b +.ni4c +.od2 +.odd5 +.of5te +.or5ato +.or3c +.or1d +.or3t +.os3 +.os4tl +.oth3 +.out3 +.ped5al +.pe5te +.pe5tit +.pi4e +.pio5n +.pi2t +.pre3m +.ra4c +.ran4t +.ratio5na +.ree2 +.re5mit +.res2 +.re5stat +.ri4g +.rit5u +.ro4q +.ros5t +.row5d +.ru4d +.sci3e +.self5 +.sell5 +.se2n +.se5rie +.sh2 +.si2 +.sing4 +.st4 +.sta5bl +.sy2 +.ta4 +.te4 +.ten5an +.th2 +.ti2 +.til4 +.tim5o5 +.ting4 +.tin5k +.ton4a +.to4p +.top5i +.tou5s +.trib5ut +.un1a +.un3ce +.under5 +.un1e +.un5k +.un5o +.un3u +.up3 +.ure3 +.us5a +.ven4de +.ve5ra +.wil5i +.ye4 +4ab. +a5bal +a5ban +abe2 +ab5erd +abi5a +ab5it5ab +ab5lat +ab5o5liz +4abr +ab5rog +ab3ul +a4car +ac5ard +ac5aro +a5ceou +ac1er +a5chet +4a2ci +a3cie +ac1in +a3cio +ac5rob +act5if +ac3ul +ac4um +a2d +ad4din +ad5er. +2adi +a3dia +ad3ica +adi4er +a3dio +a3dit +a5diu +ad4le +ad3ow +ad5ran +ad4su +4adu +a3duc +ad5um +ae4r +aeri4e +a2f +aff4 +a4gab +aga4n +ag5ell +age4o +4ageu +ag1i +4ag4l +ag1n +a2go +3agog +ag3oni +a5guer +ag5ul +a4gy +a3ha +a3he +ah4l +a3ho +ai2 +a5ia +a3ic. +ai5ly +a4i4n +ain5in +ain5o +ait5en +a1j +ak1en +al5ab +al3ad +a4lar +4aldi +2ale +al3end +a4lenti +a5le5o +al1i +al4ia. +ali4e +al5lev +4allic +4alm +a5log. +a4ly. +4alys +5a5lyst +5alyt +3alyz +4ama +am5ab +am3ag +ama5ra +am5asc +a4matis +a4m5ato +am5era +am3ic +am5if +am5ily +am1in +ami4no +a2mo +a5mon +amor5i +amp5en +a2n +an3age +3analy +a3nar +an3arc +anar4i +a3nati +4and +ande4s +an3dis +an1dl +an4dow +a5nee +a3nen +an5est. +a3neu +2ang +ang5ie +an1gl +a4n1ic +a3nies +an3i3f +an4ime +a5nimi +a5nine +an3io +a3nip +an3ish +an3it +a3niu +an4kli +5anniz +ano4 +an5ot +anoth5 +an2sa +an4sco +an4sn +an2sp +ans3po +an4st +an4sur +antal4 +an4tie +4anto +an2tr +an4tw +an3ua +an3ul +a5nur +4ao +apar4 +ap5at +ap5ero +a3pher +4aphi +a4pilla +ap5illar +ap3in +ap3ita +a3pitu +a2pl +apoc5 +ap5ola +apor5i +apos3t +aps5es +a3pu +aque5 +2a2r +ar3act +a5rade +ar5adis +ar3al +a5ramete +aran4g +ara3p +ar4at +a5ratio +ar5ativ +a5rau +ar5av4 +araw4 +arbal4 +ar4chan +ar5dine +ar4dr +ar5eas +a3ree +ar3ent +a5ress +ar4fi +ar4fl +ar1i +ar5ial +ar3ian +a3riet +ar4im +ar5inat +ar3io +ar2iz +ar2mi +ar5o5d +a5roni +a3roo +ar2p +ar3q +arre4 +ar4sa +ar2sh +4as. +as4ab +as3ant +ashi4 +a5sia. +a3sib +a3sic +5a5si4t +ask3i +as4l +a4soc +as5ph +as4sh +as3ten +as1tr +asur5a +a2ta +at3abl +at5ac +at3alo +at5ap +ate5c +at5ech +at3ego +at3en. +at3era +ater5n +a5terna +at3est +at5ev +4ath +ath5em +a5then +at4ho +ath5om +4ati. +a5tia +at5i5b +at1ic +at3if +ation5ar +at3itu +a4tog +a2tom +at5omiz +a4top +a4tos +a1tr +at5rop +at4sk +at4tag +at5te +at4th +a2tu +at5ua +at5ue +at3ul +at3ura +a2ty +au4b +augh3 +au3gu +au4l2 +aun5d +au3r +au5sib +aut5en +au1th +a2va +av3ag +a5van +ave4no +av3era +av5ern +av5ery +av1i +avi4er +av3ig +av5oc +a1vor +3away +aw3i +aw4ly +aws4 +ax4ic +ax4id +ay5al +aye4 +ays4 +azi4er +azz5i +5ba. +bad5ger +ba4ge +bal1a +ban5dag +ban4e +ban3i +barbi5 +bari4a +bas4si +1bat +ba4z +2b1b +b2be +b3ber +bbi4na +4b1d +4be. +beak4 +beat3 +4be2d +be3da +be3de +be3di +be3gi +be5gu +1bel +be1li +be3lo +4be5m +be5nig +be5nu +4bes4 +be3sp +be5str +3bet +bet5iz +be5tr +be3tw +be3w +be5yo +2bf +4b3h +bi2b +bi4d +3bie +bi5en +bi4er +2b3if +1bil +bi3liz +bina5r4 +bin4d +bi5net +bi3ogr +bi5ou +bi2t +3bi3tio +bi3tr +3bit5ua +b5itz +b1j +bk4 +b2l2 +blath5 +b4le. +blen4 +5blesp +b3lis +b4lo +blun4t +4b1m +4b3n +bne5g +3bod +bod3i +bo4e +bol3ic +bom4bi +bon4a +bon5at +3boo +5bor. +4b1ora +bor5d +5bore +5bori +5bos4 +b5ota +both5 +bo4to +bound3 +4bp +4brit +broth3 +2b5s2 +bsor4 +2bt +bt4l +b4to +b3tr +buf4fer +bu4ga +bu3li +bumi4 +bu4n +bunt4i +bu3re +bus5ie +buss4e +5bust +4buta +3butio +b5uto +b1v +4b5w +5by. +bys4 +1ca +cab3in +ca1bl +cach4 +ca5den +4cag4 +2c5ah +ca3lat +cal4la +call5in +4calo +can5d +can4e +can4ic +can5is +can3iz +can4ty +cany4 +ca5per +car5om +cast5er +cas5tig +4casy +ca4th +4cativ +cav5al +c3c +ccha5 +cci4a +ccompa5 +ccon4 +ccou3t +2ce. +4ced. +4ceden +3cei +5cel. +3cell +1cen +3cenc +2cen4e +4ceni +3cent +3cep +ce5ram +4cesa +3cessi +ces5si5b +ces5t +cet4 +c5e4ta +cew4 +2ch +4ch. +4ch3ab +5chanic +ch5a5nis +che2 +cheap3 +4ched +che5lo +3chemi +ch5ene +ch3er. +ch3ers +4ch1in +5chine. +ch5iness +5chini +5chio +3chit +chi2z +3cho2 +ch4ti +1ci +3cia +ci2a5b +cia5r +ci5c +4cier +5cific. +4cii +ci4la +3cili +2cim +2cin +c4ina +3cinat +cin3em +c1ing +c5ing. +5cino +cion4 +4cipe +ci3ph +4cipic +4cista +4cisti +2c1it +cit3iz +5ciz +ck1 +ck3i +1c4l4 +4clar +c5laratio +5clare +cle4m +4clic +clim4 +cly4 +c5n +1co +co5ag +coe2 +2cog +co4gr +coi4 +co3inc +col5i +5colo +col3or +com5er +con4a +c4one +con3g +con5t +co3pa +cop3ic +co4pl +4corb +coro3n +cos4e +cov1 +cove4 +cow5a +coz5e +co5zi +c1q +cras5t +5crat. +5cratic +cre3at +5cred +4c3reta +cre4v +cri2 +cri5f +c4rin +cris4 +5criti +cro4pl +crop5o +cros4e +cru4d +4c3s2 +2c1t +cta4b +ct5ang +c5tant +c2te +c3ter +c4ticu +ctim3i +ctu4r +c4tw +cud5 +c4uf +c4ui +cu5ity +5culi +cul4tis +3cultu +cu2ma +c3ume +cu4mi +3cun +cu3pi +cu5py +cur5a4b +cu5ria +1cus +cuss4i +3c4ut +cu4tie +4c5utiv +4cutr +1cy +cze4 +1d2a +5da. +2d3a4b +dach4 +4daf +2dag +da2m2 +dan3g +dard5 +dark5 +4dary +3dat +4dativ +4dato +5dav4 +dav5e +5day +d1b +d5c +d1d4 +2de. +deaf5 +deb5it +de4bon +decan4 +de4cil +de5com +2d1ed +4dee. +de5if +deli4e +del5i5q +de5lo +d4em +5dem. +3demic +dem5ic. +de5mil +de4mons +demor5 +1den +de4nar +de3no +denti5f +de3nu +de1p +de3pa +depi4 +de2pu +d3eq +d4erh +5derm +dern5iz +der5s +des2 +d2es. +de1sc +de2s5o +des3ti +de3str +de4su +de1t +de2to +de1v +dev3il +4dey +4d1f +d4ga +d3ge4t +dg1i +d2gy +d1h2 +5di. +1d4i3a +dia5b +di4cam +d4ice +3dict +3did +5di3en +d1if +di3ge +di4lato +d1in +1dina +3dine. +5dini +di5niz +1dio +dio5g +di4pl +dir2 +di1re +dirt5i +dis1 +5disi +d4is3t +d2iti +1di1v +d1j +d5k2 +4d5la +3dle. +3dled +3dles. +4dless +2d3lo +4d5lu +2dly +d1m +4d1n4 +1do +3do. +do5de +5doe +2d5of +d4og +do4la +doli4 +do5lor +dom5iz +do3nat +doni4 +doo3d +dop4p +d4or +3dos +4d5out +do4v +3dox +d1p +1dr +drag5on +4drai +dre4 +drea5r +5dren +dri4b +dril4 +dro4p +4drow +5drupli +4dry +2d1s2 +ds4p +d4sw +d4sy +d2th +1du +d1u1a +du2c +d1uca +duc5er +4duct. +4ducts +du5el +du4g +d3ule +dum4be +du4n +4dup +du4pe +d1v +d1w +d2y +5dyn +dy4se +dys5p +e1a4b +e3act +ead1 +ead5ie +ea4ge +ea5ger +ea4l +eal5er +eal3ou +eam3er +e5and +ear3a +ear4c +ear5es +ear4ic +ear4il +ear5k +ear2t +eart3e +ea5sp +e3ass +east3 +ea2t +eat5en +eath3i +e5atif +e4a3tu +ea2v +eav3en +eav5i +eav5o +2e1b +e4bel. +e4bels +e4ben +e4bit +e3br +e4cad +ecan5c +ecca5 +e1ce +ec5essa +ec2i +e4cib +ec5ificat +ec5ifie +ec5ify +ec3im +eci4t +e5cite +e4clam +e4clus +e2col +e4comm +e4compe +e4conc +e2cor +ec3ora +eco5ro +e1cr +e4crem +ec4tan +ec4te +e1cu +e4cul +ec3ula +2e2da +4ed3d +e4d1er +ede4s +4edi +e3dia +ed3ib +ed3ica +ed3im +ed1it +edi5z +4edo +e4dol +edon2 +e4dri +e4dul +ed5ulo +ee2c +eed3i +ee2f +eel3i +ee4ly +ee2m +ee4na +ee4p1 +ee2s4 +eest4 +ee4ty +e5ex +e1f +e4f3ere +1eff +e4fic +5efici +efil4 +e3fine +ef5i5nite +3efit +efor5es +e4fuse. +4egal +eger4 +eg5ib +eg4ic +eg5ing +e5git5 +eg5n +e4go. +e4gos +eg1ul +e5gur +5egy +e1h4 +eher4 +ei2 +e5ic +ei5d +eig2 +ei5gl +e3imb +e3inf +e1ing +e5inst +eir4d +eit3e +ei3th +e5ity +e1j +e4jud +ej5udi +eki4n +ek4la +e1la +e4la. +e4lac +elan4d +el5ativ +e4law +elaxa4 +e3lea +el5ebra +5elec +e4led +el3ega +e5len +e4l1er +e1les +el2f +el2i +e3libe +e4l5ic. +el3ica +e3lier +el5igib +e5lim +e4l3ing +e3lio +e2lis +el5ish +e3liv3 +4ella +el4lab +ello4 +e5loc +el5og +el3op. +el2sh +el4ta +e5lud +el5ug +e4mac +e4mag +e5man +em5ana +em5b +e1me +e2mel +e4met +em3ica +emi4e +em5igra +em1in2 +em5ine +em3i3ni +e4mis +em5ish +e5miss +em3iz +5emniz +emo4g +emoni5o +em3pi +e4mul +em5ula +emu3n +e3my +en5amo +e4nant +ench4er +en3dic +e5nea +e5nee +en3em +en5ero +en5esi +en5est +en3etr +e3new +en5ics +e5nie +e5nil +e3nio +en3ish +en3it +e5niu +5eniz +4enn +4eno +eno4g +e4nos +en3ov +en4sw +ent5age +4enthes +en3ua +en5uf +e3ny. +4en3z +e5of +eo2g +e4oi4 +e3ol +eop3ar +e1or +eo3re +eo5rol +eos4 +e4ot +eo4to +e5out +e5ow +e2pa +e3pai +ep5anc +e5pel +e3pent +ep5etitio +ephe4 +e4pli +e1po +e4prec +ep5reca +e4pred +ep3reh +e3pro +e4prob +ep4sh +ep5ti5b +e4put +ep5uta +e1q +equi3l +e4q3ui3s +er1a +era4b +4erand +er3ar +4erati. +2erb +er4bl +er3ch +er4che +2ere. +e3real +ere5co +ere3in +er5el. +er3emo +er5ena +er5ence +4erene +er3ent +ere4q +er5ess +er3est +eret4 +er1h +er1i +e1ria4 +5erick +e3rien +eri4er +er3ine +e1rio +4erit +er4iu +eri4v +e4riva +er3m4 +er4nis +4ernit +5erniz +er3no +2ero +er5ob +e5roc +ero4r +er1ou +er1s +er3set +ert3er +4ertl +er3tw +4eru +eru4t +5erwau +e1s4a +e4sage. +e4sages +es2c +e2sca +es5can +e3scr +es5cu +e1s2e +e2sec +es5ecr +es5enc +e4sert. +e4serts +e4serva +4esh +e3sha +esh5en +e1si +e2sic +e2sid +es5iden +es5igna +e2s5im +es4i4n +esis4te +esi4u +e5skin +es4mi +e2sol +es3olu +e2son +es5ona +e1sp +es3per +es5pira +es4pre +2ess +es4si4b +estan4 +es3tig +es5tim +4es2to +e3ston +2estr +e5stro +estruc5 +e2sur +es5urr +es4w +eta4b +eten4d +e3teo +ethod3 +et1ic +e5tide +etin4 +eti4no +e5tir +e5titio +et5itiv +4etn +et5ona +e3tra +e3tre +et3ric +et5rif +et3rog +et5ros +et3ua +et5ym +et5z +4eu +e5un +e3up +eu3ro +eus4 +eute4 +euti5l +eu5tr +eva2p5 +e2vas +ev5ast +e5vea +ev3ell +evel3o +e5veng +even4i +ev1er +e5verb +e1vi +ev3id +evi4l +e4vin +evi4v +e5voc +e5vu +e1wa +e4wag +e5wee +e3wh +ewil5 +ew3ing +e3wit +1exp +5eyc +5eye. +eys4 +1fa +fa3bl +fab3r +fa4ce +4fag +fain4 +fall5e +4fa4ma +fam5is +5far +far5th +fa3ta +fa3the +4fato +fault5 +4f5b +4fd +4fe. +feas4 +feath3 +fe4b +4feca +5fect +2fed +fe3li +fe4mo +fen2d +fend5e +fer1 +5ferr +fev4 +4f1f +f4fes +f4fie +f5fin. +f2f5is +f4fly +f2fy +4fh +1fi +fi3a +2f3ic. +4f3ical +f3ican +4ficate +f3icen +fi3cer +fic4i +5ficia +5ficie +4fics +fi3cu +fi5del +fight5 +fil5i +fill5in +4fily +2fin +5fina +fin2d5 +fi2ne +f1in3g +fin4n +fis4ti +f4l2 +f5less +flin4 +flo3re +f2ly5 +4fm +4fn +1fo +5fon +fon4de +fon4t +fo2r +fo5rat +for5ay +fore5t +for4i +fort5a +fos5 +4f5p +fra4t +f5rea +fres5c +fri2 +fril4 +frol5 +2f3s +2ft +f4to +f2ty +3fu +fu5el +4fug +fu4min +fu5ne +fu3ri +fusi4 +fus4s +4futa +1fy +1ga +gaf4 +5gal. +3gali +ga3lo +2gam +ga5met +g5amo +gan5is +ga3niz +gani5za +4gano +gar5n4 +gass4 +gath3 +4gativ +4gaz +g3b +gd4 +2ge. +2ged +geez4 +gel4in +ge5lis +ge5liz +4gely +1gen +ge4nat +ge5niz +4geno +4geny +1geo +ge3om +g4ery +5gesi +geth5 +4geto +ge4ty +ge4v +4g1g2 +g2ge +g3ger +gglu5 +ggo4 +gh3in +gh5out +gh4to +5gi. +1gi4a +gia5r +g1ic +5gicia +g4ico +gien5 +5gies. +gil4 +g3imen +3g4in. +gin5ge +5g4ins +5gio +3gir +gir4l +g3isl +gi4u +5giv +3giz +gl2 +gla4 +glad5i +5glas +1gle +gli4b +g3lig +3glo +glo3r +g1m +g4my +gn4a +g4na. +gnet4t +g1ni +g2nin +g4nio +g1no +g4non +1go +3go. +gob5 +5goe +3g4o4g +go3is +gon2 +4g3o3na +gondo5 +go3ni +5goo +go5riz +gor5ou +5gos. +gov1 +g3p +1gr +4grada +g4rai +gran2 +5graph. +g5rapher +5graphic +4graphy +4gray +gre4n +4gress. +4grit +g4ro +gruf4 +gs2 +g5ste +gth3 +gu4a +3guard +2gue +5gui5t +3gun +3gus +4gu4t +g3w +1gy +2g5y3n +gy5ra +h3ab4l +hach4 +hae4m +hae4t +h5agu +ha3la +hala3m +ha4m +han4ci +han4cy +5hand. +han4g +hang5er +hang5o +h5a5niz +han4k +han4te +hap3l +hap5t +ha3ran +ha5ras +har2d +hard3e +har4le +harp5en +har5ter +has5s +haun4 +5haz +haz3a +h1b +1head +3hear +he4can +h5ecat +h4ed +he5do5 +he3l4i +hel4lis +hel4ly +h5elo +hem4p +he2n +hena4 +hen5at +heo5r +hep5 +h4era +hera3p +her4ba +here5a +h3ern +h5erou +h3ery +h1es +he2s5p +he4t +het4ed +heu4 +h1f +h1h +hi5an +hi4co +high5 +h4il2 +himer4 +h4ina +hion4e +hi4p +hir4l +hi3ro +hir4p +hir4r +his3el +his4s +hith5er +hi2v +4hk +4h1l4 +hlan4 +h2lo +hlo3ri +4h1m +hmet4 +2h1n +h5odiz +h5ods +ho4g +hoge4 +hol5ar +3hol4e +ho4ma +home3 +hon4a +ho5ny +3hood +hoon4 +hor5at +ho5ris +hort3e +ho5ru +hos4e +ho5sen +hos1p +1hous +house3 +hov5el +4h5p +4hr4 +hree5 +hro5niz +hro3po +4h1s2 +h4sh +h4tar +ht1en +ht5es +h4ty +hu4g +hu4min +hun5ke +hun4t +hus3t4 +hu4t +h1w +h4wart +hy3pe +hy3ph +hy2s +2i1a +i2al +iam4 +iam5ete +i2an +4ianc +ian3i +4ian4t +ia5pe +iass4 +i4ativ +ia4tric +i4atu +ibe4 +ib3era +ib5ert +ib5ia +ib3in +ib5it. +ib5ite +i1bl +ib3li +i5bo +i1br +i2b5ri +i5bun +4icam +5icap +4icar +i4car. +i4cara +icas5 +i4cay +iccu4 +4iceo +4ich +2ici +i5cid +ic5ina +i2cip +ic3ipa +i4cly +i2c5oc +4i1cr +5icra +i4cry +ic4te +ictu2 +ic4t3ua +ic3ula +ic4um +ic5uo +i3cur +2id +i4dai +id5anc +id5d +ide3al +ide4s +i2di +id5ian +idi4ar +i5die +id3io +idi5ou +id1it +id5iu +i3dle +i4dom +id3ow +i4dr +i2du +id5uo +2ie4 +ied4e +5ie5ga +ield3 +ien5a4 +ien4e +i5enn +i3enti +i1er. +i3esc +i1est +i3et +4if. +if5ero +iff5en +if4fr +4ific. +i3fie +i3fl +4ift +2ig +iga5b +ig3era +ight3i +4igi +i3gib +ig3il +ig3in +ig3it +i4g4l +i2go +ig3or +ig5ot +i5gre +igu5i +ig1ur +i3h +4i5i4 +i3j +4ik +i1la +il3a4b +i4lade +i2l5am +ila5ra +i3leg +il1er +ilev4 +il5f +il1i +il3ia +il2ib +il3io +il4ist +2ilit +il2iz +ill5ab +4iln +il3oq +il4ty +il5ur +il3v +i4mag +im3age +ima5ry +imenta5r +4imet +im1i +im5ida +imi5le +i5mini +4imit +im4ni +i3mon +i2mu +im3ula +2in. +i4n3au +4inav +incel4 +in3cer +4ind +in5dling +2ine +i3nee +iner4ar +i5ness +4inga +4inge +in5gen +4ingi +in5gling +4ingo +4ingu +2ini +i5ni. +i4nia +in3io +in1is +i5nite. +5initio +in3ity +4ink +4inl +2inn +2i1no +i4no4c +ino4s +i4not +2ins +in3se +insur5a +2int. +2in4th +in1u +i5nus +4iny +2io +4io. +ioge4 +io2gr +i1ol +io4m +ion3at +ion4ery +ion3i +io5ph +ior3i +i4os +io5th +i5oti +io4to +i4our +2ip +ipe4 +iphras4 +ip3i +ip4ic +ip4re4 +ip3ul +i3qua +iq5uef +iq3uid +iq3ui3t +4ir +i1ra +ira4b +i4rac +ird5e +ire4de +i4ref +i4rel4 +i4res +ir5gi +ir1i +iri5de +ir4is +iri3tu +5i5r2iz +ir4min +iro4g +5iron. +ir5ul +2is. +is5ag +is3ar +isas5 +2is1c +is3ch +4ise +is3er +3isf +is5han +is3hon +ish5op +is3ib +isi4d +i5sis +is5itiv +4is4k +islan4 +4isms +i2so +iso5mer +is1p +is2pi +is4py +4is1s +is4sal +issen4 +is4ses +is4ta. +is1te +is1ti +ist4ly +4istral +i2su +is5us +4ita. +ita4bi +i4tag +4ita5m +i3tan +i3tat +2ite +it3era +i5teri +it4es +2ith +i1ti +4itia +4i2tic +it3ica +5i5tick +it3ig +it5ill +i2tim +2itio +4itis +i4tism +i2t5o5m +4iton +i4tram +it5ry +4itt +it3uat +i5tud +it3ul +4itz. +i1u +2iv +iv3ell +iv3en. +i4v3er. +i4vers. +iv5il. +iv5io +iv1it +i5vore +iv3o3ro +i4v3ot +4i5w +ix4o +4iy +4izar +izi4 +5izont +5ja +jac4q +ja4p +1je +jer5s +4jestie +4jesty +jew3 +jo4p +5judg +3ka. +k3ab +k5ag +kais4 +kal4 +k1b +k2ed +1kee +ke4g +ke5li +k3en4d +k1er +kes4 +k3est. +ke4ty +k3f +kh4 +k1i +5ki. +5k2ic +k4ill +kilo5 +k4im +k4in. +kin4de +k5iness +kin4g +ki4p +kis4 +k5ish +kk4 +k1l +4kley +4kly +k1m +k5nes +1k2no +ko5r +kosh4 +k3ou +kro5n +4k1s2 +k4sc +ks4l +k4sy +k5t +k1w +lab3ic +l4abo +laci4 +l4ade +la3dy +lag4n +lam3o +3land +lan4dl +lan5et +lan4te +lar4g +lar3i +las4e +la5tan +4lateli +4lativ +4lav +la4v4a +2l1b +lbin4 +4l1c2 +lce4 +l3ci +2ld +l2de +ld4ere +ld4eri +ldi4 +ld5is +l3dr +l4dri +le2a +le4bi +left5 +5leg. +5legg +le4mat +lem5atic +4len. +3lenc +5lene. +1lent +le3ph +le4pr +lera5b +ler4e +3lerg +3l4eri +l4ero +les2 +le5sco +5lesq +3less +5less. +l3eva +lev4er. +lev4era +lev4ers +3ley +4leye +2lf +l5fr +4l1g4 +l5ga +lgar3 +l4ges +lgo3 +2l3h +li4ag +li2am +liar5iz +li4as +li4ato +li5bi +5licio +li4cor +4lics +4lict. +l4icu +l3icy +l3ida +lid5er +3lidi +lif3er +l4iff +li4fl +5ligate +3ligh +li4gra +3lik +4l4i4l +lim4bl +lim3i +li4mo +l4im4p +l4ina +1l4ine +lin3ea +lin3i +link5er +li5og +4l4iq +lis4p +l1it +l2it. +5litica +l5i5tics +liv3er +l1iz +4lj +lka3 +l3kal +lka4t +l1l +l4law +l2le +l5lea +l3lec +l3leg +l3lel +l3le4n +l3le4t +ll2i +l2lin4 +l5lina +ll4o +lloqui5 +ll5out +l5low +2lm +l5met +lm3ing +l4mod +lmon4 +2l1n2 +3lo. +lob5al +lo4ci +4lof +3logic +l5ogo +3logu +lom3er +5long +lon4i +l3o3niz +lood5 +5lope. +lop3i +l3opm +lora4 +lo4rato +lo5rie +lor5ou +5los. +los5et +5losophiz +5losophy +los4t +lo4ta +loun5d +2lout +4lov +2lp +lpa5b +l3pha +l5phi +lp5ing +l3pit +l4pl +l5pr +4l1r +2l1s2 +l4sc +l2se +l4sie +4lt +lt5ag +ltane5 +l1te +lten4 +ltera4 +lth3i +l5ties. +ltis4 +l1tr +ltu2 +ltur3a +lu5a +lu3br +luch4 +lu3ci +lu3en +luf4 +lu5id +lu4ma +5lumi +l5umn. +5lumnia +lu3o +luo3r +4lup +luss4 +lus3te +1lut +l5ven +l5vet4 +2l1w +1ly +4lya +4lyb +ly5me +ly3no +2lys4 +l5yse +1ma +2mab +ma2ca +ma5chine +ma4cl +mag5in +5magn +2mah +maid5 +4mald +ma3lig +ma5lin +mal4li +mal4ty +5mania +man5is +man3iz +4map +ma5rine. +ma5riz +mar4ly +mar3v +ma5sce +mas4e +mas1t +5mate +math3 +ma3tis +4matiza +4m1b +mba4t5 +m5bil +m4b3ing +mbi4v +4m5c +4me. +2med +4med. +5media +me3die +m5e5dy +me2g +mel5on +mel4t +me2m +mem1o3 +1men +men4a +men5ac +men4de +4mene +men4i +mens4 +mensu5 +3ment +men4te +me5on +m5ersa +2mes +3mesti +me4ta +met3al +me1te +me5thi +m4etr +5metric +me5trie +me3try +me4v +4m1f +2mh +5mi. +mi3a +mid4a +mid4g +mig4 +3milia +m5i5lie +m4ill +min4a +3mind +m5inee +m4ingl +min5gli +m5ingly +min4t +m4inu +miot4 +m2is +mis4er. +mis5l +mis4ti +m5istry +4mith +m2iz +4mk +4m1l +m1m +mma5ry +4m1n +mn4a +m4nin +mn4o +1mo +4mocr +5mocratiz +mo2d1 +mo4go +mois2 +moi5se +4mok +mo5lest +mo3me +mon5et +mon5ge +moni3a +mon4ism +mon4ist +mo3niz +monol4 +mo3ny. +mo2r +4mora. +mos2 +mo5sey +mo3sp +moth3 +m5ouf +3mous +mo2v +4m1p +mpara5 +mpa5rab +mpar5i +m3pet +mphas4 +m2pi +mpi4a +mp5ies +m4p1in +m5pir +mp5is +mpo3ri +mpos5ite +m4pous +mpov5 +mp4tr +m2py +4m3r +4m1s2 +m4sh +m5si +4mt +1mu +mula5r4 +5mult +multi3 +3mum +mun2 +4mup +mu4u +4mw +1na +2n1a2b +n4abu +4nac. +na4ca +n5act +nag5er. +nak4 +na4li +na5lia +4nalt +na5mit +n2an +nanci4 +nan4it +nank4 +nar3c +4nare +nar3i +nar4l +n5arm +n4as +nas4c +nas5ti +n2at +na3tal +nato5miz +n2au +nau3se +3naut +nav4e +4n1b4 +ncar5 +n4ces. +n3cha +n5cheo +n5chil +n3chis +nc1in +nc4it +ncour5a +n1cr +n1cu +n4dai +n5dan +n1de +nd5est. +ndi4b +n5d2if +n1dit +n3diz +n5duc +ndu4r +nd2we +2ne. +n3ear +ne2b +neb3u +ne2c +5neck +2ned +ne4gat +neg5ativ +5nege +ne4la +nel5iz +ne5mi +ne4mo +1nen +4nene +3neo +ne4po +ne2q +n1er +nera5b +n4erar +n2ere +n4er5i +ner4r +1nes +2nes. +4nesp +2nest +4nesw +3netic +ne4v +n5eve +ne4w +n3f +n4gab +n3gel +nge4n4e +n5gere +n3geri +ng5ha +n3gib +ng1in +n5git +n4gla +ngov4 +ng5sh +n1gu +n4gum +n2gy +4n1h4 +nha4 +nhab3 +nhe4 +3n4ia +ni3an +ni4ap +ni3ba +ni4bl +ni4d +ni5di +ni4er +ni2fi +ni5ficat +n5igr +nik4 +n1im +ni3miz +n1in +5nine. +nin4g +ni4o +5nis. +nis4ta +n2it +n4ith +3nitio +n3itor +ni3tr +n1j +4nk2 +n5kero +n3ket +nk3in +n1kl +4n1l +n5m +nme4 +nmet4 +4n1n2 +nne4 +nni3al +nni4v +nob4l +no3ble +n5ocl +4n3o2d +3noe +4nog +noge4 +nois5i +no5l4i +5nologis +3nomic +n5o5miz +no4mo +no3my +no4n +non4ag +non5i +n5oniz +4nop +5nop5o5li +nor5ab +no4rary +4nosc +nos4e +nos5t +no5ta +1nou +3noun +nov3el3 +nowl3 +n1p4 +npi4 +npre4c +n1q +n1r +nru4 +2n1s2 +ns5ab +nsati4 +ns4c +n2se +n4s3es +nsid1 +nsig4 +n2sl +ns3m +n4soc +ns4pe +n5spi +nsta5bl +n1t +nta4b +nter3s +nt2i +n5tib +nti4er +nti2f +n3tine +n4t3ing +nti4p +ntrol5li +nt4s +ntu3me +nu1a +nu4d +nu5en +nuf4fe +n3uin +3nu3it +n4um +nu1me +n5umi +3nu4n +n3uo +nu3tr +n1v2 +n1w4 +nym4 +nyp4 +4nz +n3za +4oa +oad3 +o5a5les +oard3 +oas4e +oast5e +oat5i +ob3a3b +o5bar +obe4l +o1bi +o2bin +ob5ing +o3br +ob3ul +o1ce +och4 +o3chet +ocif3 +o4cil +o4clam +o4cod +oc3rac +oc5ratiz +ocre3 +5ocrit +octor5a +oc3ula +o5cure +od5ded +od3ic +odi3o +o2do4 +odor3 +od5uct. +od5ucts +o4el +o5eng +o3er +oe4ta +o3ev +o2fi +of5ite +ofit4t +o2g5a5r +og5ativ +o4gato +o1ge +o5gene +o5geo +o4ger +o3gie +1o1gis +og3it +o4gl +o5g2ly +3ogniz +o4gro +ogu5i +1ogy +2ogyn +o1h2 +ohab5 +oi2 +oic3es +oi3der +oiff4 +oig4 +oi5let +o3ing +oint5er +o5ism +oi5son +oist5en +oi3ter +o5j +2ok +o3ken +ok5ie +o1la +o4lan +olass4 +ol2d +old1e +ol3er +o3lesc +o3let +ol4fi +ol2i +o3lia +o3lice +ol5id. +o3li4f +o5lil +ol3ing +o5lio +o5lis. +ol3ish +o5lite +o5litio +o5liv +olli4e +ol5ogiz +olo4r +ol5pl +ol2t +ol3ub +ol3ume +ol3un +o5lus +ol2v +o2ly +om5ah +oma5l +om5atiz +om2be +om4bl +o2me +om3ena +om5erse +o4met +om5etry +o3mia +om3ic. +om3ica +o5mid +om1in +o5mini +5ommend +omo4ge +o4mon +om3pi +ompro5 +o2n +on1a +on4ac +o3nan +on1c +3oncil +2ond +on5do +o3nen +on5est +on4gu +on1ic +o3nio +on1is +o5niu +on3key +on4odi +on3omy +on3s +onspi4 +onspir5a +onsu4 +onten4 +on3t4i +ontif5 +on5um +onva5 +oo2 +ood5e +ood5i +oo4k +oop3i +o3ord +oost5 +o2pa +ope5d +op1er +3opera +4operag +2oph +o5phan +o5pher +op3ing +o3pit +o5pon +o4posi +o1pr +op1u +opy5 +o1q +o1ra +o5ra. +o4r3ag +or5aliz +or5ange +ore5a +o5real +or3ei +ore5sh +or5est. +orew4 +or4gu +4o5ria +or3ica +o5ril +or1in +o1rio +or3ity +o3riu +or2mi +orn2e +o5rof +or3oug +or5pe +3orrh +or4se +ors5en +orst4 +or3thi +or3thy +or4ty +o5rum +o1ry +os3al +os2c +os4ce +o3scop +4oscopi +o5scr +os4i4e +os5itiv +os3ito +os3ity +osi4u +os4l +o2so +os4pa +os4po +os2ta +o5stati +os5til +os5tit +o4tan +otele4g +ot3er. +ot5ers +o4tes +4oth +oth5esi +oth3i4 +ot3ic. +ot5ica +o3tice +o3tif +o3tis +oto5s +ou2 +ou3bl +ouch5i +ou5et +ou4l +ounc5er +oun2d +ou5v +ov4en +over4ne +over3s +ov4ert +o3vis +oviti4 +o5v4ol +ow3der +ow3el +ow5est +ow1i +own5i +o4wo +oy1a +1pa +pa4ca +pa4ce +pac4t +p4ad +5pagan +p3agat +p4ai +pain4 +p4al +pan4a +pan3el +pan4ty +pa3ny +pa1p +pa4pu +para5bl +par5age +par5di +3pare +par5el +p4a4ri +par4is +pa2te +pa5ter +5pathic +pa5thy +pa4tric +pav4 +3pay +4p1b +pd4 +4pe. +3pe4a +pear4l +pe2c +2p2ed +3pede +3pedi +pedia4 +ped4ic +p4ee +pee4d +pek4 +pe4la +peli4e +pe4nan +p4enc +pen4th +pe5on +p4era. +pera5bl +p4erag +p4eri +peri5st +per4mal +perme5 +p4ern +per3o +per3ti +pe5ru +per1v +pe2t +pe5ten +pe5tiz +4pf +4pg +4ph. +phar5i +phe3no +ph4er +ph4es. +ph1ic +5phie +ph5ing +5phisti +3phiz +ph2l +3phob +3phone +5phoni +pho4r +4phs +ph3t +5phu +1phy +pi3a +pian4 +pi4cie +pi4cy +p4id +p5ida +pi3de +5pidi +3piec +pi3en +pi4grap +pi3lo +pi2n +p4in. +pind4 +p4ino +3pi1o +pion4 +p3ith +pi5tha +pi2tu +2p3k2 +1p2l2 +3plan +plas5t +pli3a +pli5er +4plig +pli4n +ploi4 +plu4m +plum4b +4p1m +2p3n +po4c +5pod. +po5em +po3et5 +5po4g +poin2 +5point +poly5t +po4ni +po4p +1p4or +po4ry +1pos +pos1s +p4ot +po4ta +5poun +4p1p +ppa5ra +p2pe +p4ped +p5pel +p3pen +p3per +p3pet +ppo5site +pr2 +pray4e +5preci +pre5co +pre3em +pref5ac +pre4la +pre3r +p3rese +3press +pre5ten +pre3v +5pri4e +prin4t3 +pri4s +pris3o +p3roca +prof5it +pro3l +pros3e +pro1t +2p1s2 +p2se +ps4h +p4sib +2p1t +pt5a4b +p2te +p2th +pti3m +ptu4r +p4tw +pub3 +pue4 +puf4 +pul3c +pu4m +pu2n +pur4r +5pus +pu2t +5pute +put3er +pu3tr +put4ted +put4tin +p3w +qu2 +qua5v +2que. +3quer +3quet +2rab +ra3bi +rach4e +r5acl +raf5fi +raf4t +r2ai +ra4lo +ram3et +r2ami +rane5o +ran4ge +r4ani +ra5no +rap3er +3raphy +rar5c +rare4 +rar5ef +4raril +r2as +ration4 +rau4t +ra5vai +rav3el +ra5zie +r1b +r4bab +r4bag +rbi2 +rbi4f +r2bin +r5bine +rb5ing. +rb4o +r1c +r2ce +rcen4 +r3cha +rch4er +r4ci4b +rc4it +rcum3 +r4dal +rd2i +rdi4a +rdi4er +rdin4 +rd3ing +2re. +re1al +re3an +re5arr +5reav +re4aw +r5ebrat +rec5oll +rec5ompe +re4cre +2r2ed +re1de +re3dis +red5it +re4fac +re2fe +re5fer. +re3fi +re4fy +reg3is +re5it +re1li +re5lu +r4en4ta +ren4te +re1o +re5pin +re4posi +re1pu +r1er4 +r4eri +rero4 +re5ru +r4es. +re4spi +ress5ib +res2t +re5stal +re3str +re4ter +re4ti4z +re3tri +reu2 +re5uti +rev2 +re4val +rev3el +r5ev5er. +re5vers +re5vert +re5vil +rev5olu +re4wh +r1f +rfu4 +r4fy +rg2 +rg3er +r3get +r3gic +rgi4n +rg3ing +r5gis +r5git +r1gl +rgo4n +r3gu +rh4 +4rh. +4rhal +ri3a +ria4b +ri4ag +r4ib +rib3a +ric5as +r4ice +4rici +5ricid +ri4cie +r4ico +rid5er +ri3enc +ri3ent +ri1er +ri5et +rig5an +5rigi +ril3iz +5riman +rim5i +3rimo +rim4pe +r2ina +5rina. +rin4d +rin4e +rin4g +ri1o +5riph +riph5e +ri2pl +rip5lic +r4iq +r2is +r4is. +ris4c +r3ish +ris4p +ri3ta3b +r5ited. +rit5er. +rit5ers +rit3ic +ri2tu +rit5ur +riv5el +riv3et +riv3i +r3j +r3ket +rk4le +rk4lin +r1l +rle4 +r2led +r4lig +r4lis +rl5ish +r3lo4 +r1m +rma5c +r2me +r3men +rm5ers +rm3ing +r4ming. +r4mio +r3mit +r4my +r4nar +r3nel +r4ner +r5net +r3ney +r5nic +r1nis4 +r3nit +r3niv +rno4 +r4nou +r3nu +rob3l +r2oc +ro3cr +ro4e +ro1fe +ro5fil +rok2 +ro5ker +5role. +rom5ete +rom4i +rom4p +ron4al +ron4e +ro5n4is +ron4ta +1room +5root +ro3pel +rop3ic +ror3i +ro5ro +ros5per +ros4s +ro4the +ro4ty +ro4va +rov5el +rox5 +r1p +r4pea +r5pent +rp5er. +r3pet +rp4h4 +rp3ing +r3po +r1r4 +rre4c +rre4f +r4reo +rre4st +rri4o +rri4v +rron4 +rros4 +rrys4 +4rs2 +r1sa +rsa5ti +rs4c +r2se +r3sec +rse4cr +rs5er. +rs3es +rse5v2 +r1sh +r5sha +r1si +r4si4b +rson3 +r1sp +r5sw +rtach4 +r4tag +r3teb +rten4d +rte5o +r1ti +rt5ib +rti4d +r4tier +r3tig +rtil3i +rtil4l +r4tily +r4tist +r4tiv +r3tri +rtroph4 +rt4sh +ru3a +ru3e4l +ru3en +ru4gl +ru3in +rum3pl +ru2n +runk5 +run4ty +r5usc +ruti5n +rv4e +rvel4i +r3ven +rv5er. +r5vest +r3vey +r3vic +rvi4v +r3vo +r1w +ry4c +5rynge +ry3t +sa2 +2s1ab +5sack +sac3ri +s3act +5sai +salar4 +sal4m +sa5lo +sal4t +3sanc +san4de +s1ap +sa5ta +5sa3tio +sat3u +sau4 +sa5vor +5saw +4s5b +scan4t5 +sca4p +scav5 +s4ced +4scei +s4ces +sch2 +s4cho +3s4cie +5scin4d +scle5 +s4cli +scof4 +4scopy +scour5a +s1cu +4s5d +4se. +se4a +seas4 +sea5w +se2c3o +3sect +4s4ed +se4d4e +s5edl +se2g +seg3r +5sei +se1le +5self +5selv +4seme +se4mol +sen5at +4senc +sen4d +s5ened +sen5g +s5enin +4sentd +4sentl +sep3a3 +4s1er. +s4erl +ser4o +4servo +s1e4s +se5sh +ses5t +5se5um +5sev +sev3en +sew4i +5sex +4s3f +2s3g +s2h +2sh. +sh1er +5shev +sh1in +sh3io +3ship +shiv5 +sho4 +sh5old +shon3 +shor4 +short5 +4shw +si1b +s5icc +3side. +5sides +5sidi +si5diz +4signa +sil4e +4sily +2s1in +s2ina +5sine. +s3ing +1sio +5sion +sion5a +si2r +sir5a +1sis +3sitio +5siu +1siv +5siz +sk2 +4ske +s3ket +sk5ine +sk5ing +s1l2 +s3lat +s2le +slith5 +2s1m +s3ma +small3 +sman3 +smel4 +s5men +5smith +smol5d4 +s1n4 +1so +so4ce +soft3 +so4lab +sol3d2 +so3lic +5solv +3som +3s4on. +sona4 +son4g +s4op +5sophic +s5ophiz +s5ophy +sor5c +sor5d +4sov +so5vi +2spa +5spai +spa4n +spen4d +2s5peo +2sper +s2phe +3spher +spho5 +spil4 +sp5ing +4spio +s4ply +s4pon +spor4 +4spot +squal4l +s1r +2ss +s1sa +ssas3 +s2s5c +s3sel +s5seng +s4ses. +s5set +s1si +s4sie +ssi4er +ss5ily +s4sl +ss4li +s4sn +sspend4 +ss2t +ssur5a +ss5w +2st. +s2tag +s2tal +stam4i +5stand +s4ta4p +5stat. +s4ted +stern5i +s5tero +ste2w +stew5a +s3the +st2i +s4ti. +s5tia +s1tic +5stick +s4tie +s3tif +st3ing +5stir +s1tle +5stock +stom3a +5stone +s4top +3store +st4r +s4trad +5stratu +s4tray +s4trid +4stry +4st3w +s2ty +1su +su1al +su4b3 +su2g3 +su5is +suit3 +s4ul +su2m +sum3i +su2n +su2r +4sv +sw2 +4swo +s4y +4syc +3syl +syn5o +sy5rin +1ta +3ta. +2tab +ta5bles +5taboliz +4taci +ta5do +4taf4 +tai5lo +ta2l +ta5la +tal5en +tal3i +4talk +tal4lis +ta5log +ta5mo +tan4de +tanta3 +ta5per +ta5pl +tar4a +4tarc +4tare +ta3riz +tas4e +ta5sy +4tatic +ta4tur +taun4 +tav4 +2taw +tax4is +2t1b +4tc +t4ch +tch5et +4t1d +4te. +tead4i +4teat +tece4 +5tect +2t1ed +te5di +1tee +teg4 +te5ger +te5gi +3tel. +teli4 +5tels +te2ma2 +tem3at +3tenan +3tenc +3tend +4tenes +1tent +ten4tag +1teo +te4p +te5pe +ter3c +5ter3d +1teri +ter5ies +ter3is +teri5za +5ternit +ter5v +4tes. +4tess +t3ess. +teth5e +3teu +3tex +4tey +2t1f +4t1g +2th. +than4 +th2e +4thea +th3eas +the5at +the3is +3thet +th5ic. +th5ica +4thil +5think +4thl +th5ode +5thodic +4thoo +thor5it +tho5riz +2ths +1tia +ti4ab +ti4ato +2ti2b +4tick +t4ico +t4ic1u +5tidi +3tien +tif2 +ti5fy +2tig +5tigu +till5in +1tim +4timp +tim5ul +2t1in +t2ina +3tine. +3tini +1tio +ti5oc +tion5ee +5tiq +ti3sa +3tise +tis4m +ti5so +tis4p +5tistica +ti3tl +ti4u +1tiv +tiv4a +1tiz +ti3za +ti3zen +2tl +t5la +tlan4 +3tle. +3tled +3tles. +t5let. +t5lo +4t1m +tme4 +2t1n2 +1to +to3b +to5crat +4todo +2tof +to2gr +to5ic +to2ma +tom4b +to3my +ton4ali +to3nat +4tono +4tony +to2ra +to3rie +tor5iz +tos2 +5tour +4tout +to3war +4t1p +1tra +tra3b +tra5ch +traci4 +trac4it +trac4te +tras4 +tra5ven +trav5es5 +tre5f +tre4m +trem5i +5tria +tri5ces +5tricia +4trics +2trim +tri4v +tro5mi +tron5i +4trony +tro5phe +tro3sp +tro3v +tru5i +trus4 +4t1s2 +t4sc +tsh4 +t4sw +4t3t2 +t4tes +t5to +ttu4 +1tu +tu1a +tu3ar +tu4bi +tud2 +4tue +4tuf4 +5tu3i +3tum +tu4nis +2t3up. +3ture +5turi +tur3is +tur5o +tu5ry +3tus +4tv +tw4 +4t1wa +twis4 +4two +1ty +4tya +2tyl +type3 +ty5ph +4tz +tz4e +4uab +uac4 +ua5na +uan4i +uar5ant +uar2d +uar3i +uar3t +u1at +uav4 +ub4e +u4bel +u3ber +u4bero +u1b4i +u4b5ing +u3ble. +u3ca +uci4b +uc4it +ucle3 +u3cr +u3cu +u4cy +ud5d +ud3er +ud5est +udev4 +u1dic +ud3ied +ud3ies +ud5is +u5dit +u4don +ud4si +u4du +u4ene +uens4 +uen4te +uer4il +3ufa +u3fl +ugh3en +ug5in +2ui2 +uil5iz +ui4n +u1ing +uir4m +uita4 +uiv3 +uiv4er. +u5j +4uk +u1la +ula5b +u5lati +ulch4 +5ulche +ul3der +ul4e +u1len +ul4gi +ul2i +u5lia +ul3ing +ul5ish +ul4lar +ul4li4b +ul4lis +4ul3m +u1l4o +4uls +uls5es +ul1ti +ultra3 +4ultu +u3lu +ul5ul +ul5v +um5ab +um4bi +um4bly +u1mi +u4m3ing +umor5o +um2p +unat4 +u2ne +un4er +u1ni +un4im +u2nin +un5ish +uni3v +un3s4 +un4sw +unt3ab +un4ter. +un4tes +unu4 +un5y +un5z +u4ors +u5os +u1ou +u1pe +uper5s +u5pia +up3ing +u3pl +up3p +upport5 +upt5ib +uptu4 +u1ra +4ura. +u4rag +u4ras +ur4be +urc4 +ur1d +ure5at +ur4fer +ur4fr +u3rif +uri4fic +ur1in +u3rio +u1rit +ur3iz +ur2l +url5ing. +ur4no +uros4 +ur4pe +ur4pi +urs5er +ur5tes +ur3the +urti4 +ur4tie +u3ru +2us +u5sad +u5san +us4ap +usc2 +us3ci +use5a +u5sia +u3sic +us4lin +us1p +us5sl +us5tere +us1tr +u2su +usur4 +uta4b +u3tat +4ute. +4utel +4uten +uten4i +4u1t2i +uti5liz +u3tine +ut3ing +ution5a +u4tis +5u5tiz +u4t1l +ut5of +uto5g +uto5matic +u5ton +u4tou +uts4 +u3u +uu4m +u1v2 +uxu3 +uz4e +1va +5va. +2v1a4b +vac5il +vac3u +vag4 +va4ge +va5lie +val5o +val1u +va5mo +va5niz +va5pi +var5ied +3vat +4ve. +4ved +veg3 +v3el. +vel3li +ve4lo +v4ely +ven3om +v5enue +v4erd +5vere. +v4erel +v3eren +ver5enc +v4eres +ver3ie +vermi4n +3verse +ver3th +v4e2s +4ves. +ves4te +ve4te +vet3er +ve4ty +vi5ali +5vian +5vide. +5vided +4v3iden +5vides +5vidi +v3if +vi5gn +vik4 +2vil +5vilit +v3i3liz +v1in +4vi4na +v2inc +vin5d +4ving +vio3l +v3io4r +vi1ou +vi4p +vi5ro +vis3it +vi3so +vi3su +4viti +vit3r +4vity +3viv +5vo. +voi4 +3vok +vo4la +v5ole +5volt +3volv +vom5i +vor5ab +vori4 +vo4ry +vo4ta +4votee +4vv4 +v4y +w5abl +2wac +wa5ger +wag5o +wait5 +w5al. +wam4 +war4t +was4t +wa1te +wa5ver +w1b +wea5rie +weath3 +wed4n +weet3 +wee5v +wel4l +w1er +west3 +w3ev +whi4 +wi2 +wil2 +will5in +win4de +win4g +wir4 +3wise +with3 +wiz5 +w4k +wl4es +wl3in +w4no +1wo2 +wom1 +wo5ven +w5p +wra4 +wri4 +writa4 +w3sh +ws4l +ws4pe +w5s4t +4wt +wy4 +x1a +xac5e +x4ago +xam3 +x4ap +xas5 +x3c2 +x1e +xe4cuto +x2ed +xer4i +xe5ro +x1h +xhi2 +xhil5 +xhu4 +x3i +xi5a +xi5c +xi5di +x4ime +xi5miz +x3o +x4ob +x3p +xpan4d +xpecto5 +xpe3d +x1t2 +x3ti +x1u +xu3a +xx4 +y5ac +3yar4 +y5at +y1b +y1c +y2ce +yc5er +y3ch +ych4e +ycom4 +ycot4 +y1d +y5ee +y1er +y4erf +yes4 +ye4t +y5gi +4y3h +y1i +y3la +ylla5bl +y3lo +y5lu +ymbol5 +yme4 +ympa3 +yn3chr +yn5d +yn5g +yn5ic +5ynx +y1o4 +yo5d +y4o5g +yom4 +yo5net +y4ons +y4os +y4ped +yper5 +yp3i +y3po +y4poc +yp2ta +y5pu +yra5m +yr5ia +y3ro +yr4r +ys4c +y3s2e +ys3ica +ys3io +3ysis +y4so +yss4 +ys1t +ys3ta +ysur4 +y3thin +yt3ic +y1w +za1 +z5a2b +zar2 +4zb +2ze +ze4n +ze4p +z1er +ze3ro +zet4 +2z1i +z4il +z4is +5zl +4zm +1zo +zo4m +zo5ol +zte4 +4z1z2 +z4zy +} +\hyphenation{ % Do NOT make any alterations to this list! --- DEK +as-so-ciate +as-so-ciates +dec-li-na-tion +oblig-a-tory +phil-an-thropic +present +presents +project +projects +reci-procity +re-cog-ni-zance +ref-or-ma-tion +ret-ri-bu-tion +ta-ble +}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/inrs.scr b/macros/inrstex/inrstex/inrs.scr new file mode 100644 index 0000000000..c25ef7a79a --- /dev/null +++ b/macros/inrstex/inrstex/inrs.scr @@ -0,0 +1,13 @@ +#!/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/lib/tex/inrstex $* diff --git a/macros/inrstex/inrstex/inrsdef.tex b/macros/inrstex/inrstex/inrsdef.tex new file mode 100644 index 0000000000..db1e81346d --- /dev/null +++ b/macros/inrstex/inrstex/inrsdef.tex @@ -0,0 +1,256 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ======== Cautions ========= +% If some moduels of INRSTeX are not used, some of these defaults will +% NOT be defined. + +% This file has most of the default values in plain.tex and inrstex. +% The parameters that are not modified from plain are % -- out. + +% ======== Plain.tex parameters ... set in plain and initex ==== + +% All of TeX's numeric parameters are listed here, +% Most are untouched from plain.tex but some are indeed modified. +% The order is not the same as in plain.tex + +% These parameters are actually changed. + +\widowpenalty = 400 % needs to be more than 100 +\clubpenalty = 800 % needs to be more than 100 + +% None of the values below are actually changed. They are included for +% information ... and possibly future modifcations. + +% --- Penalties --- + +% \displaywidowpenalty=50 +% \brokenpenalty=100 +% \predisplaypenalty=10000 +% \postdisplaypenalty=0 +% \interlinepenalty=0 +% \interdisplaylinepenalty=100 +% \interfootnotelinepenalty=100 + +% \pretolerance=100 +% \tolerance=200 % INITEX sets this to 10000 +% \hbadness=1000 +% \vbadness=1000 +% \linepenalty=10 +% \hyphenpenalty=50 +% \exhyphenpenalty=50 +% \binoppenalty=700 +% \relpenalty=500 +% \floatingpenalty=0, set during \insert +% \outputpenalty=0, set before TeX enters \output +% \doublehyphendemerits=10000 +% \finalhyphendemerits=5000 +% \adjdemerits=10000 + +% ---- paragraph control ---- +% \looseness=0, cleared by TeX after each paragraph +% \uchyph=1 +% \parindent=20pt +% \hangindent=0pt, zeroed by TeX after each paragraph +% \baselineskip=0pt, changed by \normalbaselines +% \lineskip=0pt, changed by \normalbaselines +% \parskip=0pt plus 1pt +% \parfillskip=0pt plus 1fil +% \normalbaselineskip=12pt +% \normallineskip=1pt +% \normallineskiplimit=0pt + +% ----- Sizes/overfull boxes ---- +% \hfuzz=0.1pt % ... \finalversion mod +% \vfuzz=0.1pt % ... \finalversion mod +% \overfullrule=5pt % ... \finalversion mod +% \hsize=6.5in % ... pagsty.tex and inrsdef.tex +% \vsize=8.9in % ... pagsty.tex and inrsdef.tex +% \maxdepth=4pt +% \splitmaxdepth=\maxdimen +% \boxmaxdepth=\maxdimen +% \lineskiplimit=0pt, changed by \normalbaselines +% \leftskip=0pt +% \rightskip=0pt +% \topskip=10pt +% \splittopskip=10pt + + +% ------- Internal Math parms ----- +% \delimitershortfall=5pt +% \nulldelimiterspace=1.2pt +% \scriptspace=0.5pt +% \mathsurround=0pt +% \thinmuskip=3mu +% \medmuskip=4mu plus 2mu minus 4mu +% \thickmuskip=5mu plus 5mu +% \jot=3pt + +% ---- Display Math Spacing ---- +% \predisplaysize=0pt, set before TeX enters $$ +% \displaywidth=0pt, set before TeX enters $$ +% \displayindent=0pt, set before TeX enters $$ +% \abovedisplayskip=12pt plus 3pt minus 9pt +% \abovedisplayshortskip=0pt plus 3pt +% \belowdisplayskip=12pt plus 3pt minus 9pt +% \belowdisplayshortskip=7pt plus 3pt minus 4pt + + +% \hoffset=0pt % not used in INRSTeX +% \voffset=0pt % not used in INRSTeX + +% \tabskip=0pt +% \spaceskip=0pt +% \xspaceskip=0pt + +% ------ Vertical Spacing ----- +% \smallskipamount=3pt plus 1pt minus 1pt +% \medskipamount=6pt plus 2pt minus 2pt +% \bigskipamount=12pt plus 4pt minus 4pt + +% ------ Debugging/Misc ----- +% \pausing=0 +% \tracingonline=0 +% \tracingmacros=0 +% \tracingstats=0 +% \tracingparagraphs=0 +% \tracingpages=0 +% \tracingoutput=0 +% \tracinglostchars=1 +% \tracingcommands=0 +% \tracingrestores=0 +% \globaldefs=0 +% \maxdeadcycles=25 % INITEX does this +% \hangafter=1 % INITEX does this, also TeX after each paragraph +% \fam=0 +% \mag=1000 % INITEX does this +% \escapechar=`\\ % INITEX does this +% \defaulthyphenchar=`\- +% \defaultskewchar=-1 +% \endlinechar=`\^^M % INITEX does this +% \newlinechar=-1 +% \delimiterfactor=901 +% \time=now % TeX does this at beginning of job +% \day=now % TeX does this at beginning of job +% \month=now % TeX does this at beginning of job +% \year=now % TeX does this at beginning of job +% \showboxbreadth=5 +% \showboxdepth=3 + + +% ========= Defaults specific to INRSTeX ========== + +% ====== Baselineskip spacings ========= + +\def\normalbaselineskipsize{2.8ex \normalbaselineskipglue} +\def\normalbaselineskipglue{plus .07ex minus .07ex} +\def\normallineskipform{\lineskip 1pt \lineskiplimit 0pt} + + +% ====== Turns off slicing rules for Versatec ======= +\let\ptrule=\relax +\let\prule=\relax + +% ====== Paper Sizes and Margins ======== +\hpapersize= 8.5in +\vpapersize= 11in +\topmarginsize = 1in +\leftmarginsize= 1.25in + + +% ======== Chapter/Section default forms ===== +\nochaptertrue % defaults to not chapters +\chnum=0 \def\chnumform{\the\chnum} +\shnum=0 \def\shnumform{\the\shnum} +\sshnum=0 \def\sshnumform{\the\sshnum} +\ssshnum=0 \def\ssshnumform{\the\ssshnum} + +% the periods between the numbers and the orders are defined in +% \numberbychapter and \numberbysection + +% ======== Single/Multicolumn ======== +\numcolumns =1 +\firstcolumnoffset= 0pt +\intercolumnsep = {\hskip 2em} %intercolumn spacing default + +% ========= Set Default Spacings ========== +% The spacings in INRSTeX are all relative to a font. This means that a +% change in font family requires a change in these spacings. + +\newtoks\everysetspacings % this is a way to modify a few font dependent spacings + +\def\setspacings{% ==== section head spacing defaults ===== + \prsheadskip= 6ex plus 2ex minus 2ex + \posheadskip= 2ex + \prssheadskip= 5ex plus 1.8ex minus 1.8ex + \possheadskip= 2ex + \prsssheadskip= 3ex plus 1ex minus 1ex + \posssheadskip= 2ex + \prdsssheadskip= 3ex plus 1ex minus 1ex + \podsssheadskip= 2ex + \relax % interitem spacing in table of contents, figure list ... are + \relax % directly in the macros ... + \righttocindent = 5em % righthand indent for number in tocbox + \relax % =========== list spacing parameters ===== + \prlistskip= 2ex plus 3pt minus 2pt + \prsublistskip = 1ex plus 2pt minus 1pt + \prsubsublistskip = .5ex plus 1pt minus 1pt + \polistskip= 2ex plus 1pt minus 1pt + \posublistskip= 1ex plus 1pt minus 1pt + \posubsublistskip= .5ex plus 1pt minus 1pt + \listitemskip = 2ex plus 1pt minus 1pt + \sublistitemskip =1ex plus .75pt minus .75pt + \subsublistitemskip = .5ex plus .5pt minus .5pt + \listindent = 3em + \sublistindent = 6em + \subsublistindent = 9em + \listitemmarksize = 1.5em + \relax %======= Caption box spacing ======= + \captionskip = 2ex % spacing between a figure/table and caption + \the\everysetspacings + } +% note \setspacings is called when the style default sets a document font + + + +% ========== Toc Out Forms =========== +% These are the default forms for writing to a toc file. + +\def\shtocout{\string\shtoc} +\def\sshtocout{\string\sshtoc} +\def\ssshtocout{\string\ssshtoc} +\def\dssshtocout{\string\dssshtoc} +\def\chtocout{\string\chtoc} +\def\prtocout{\string\prtoc} +\def\figtocout{\string\figtoc} +\def\tbltocout{\string\tbltoc} + +% ========== Auto referencing default ======= +\autoreferencetrue % autonumbering is not default true ... no \refs .. no + % effect + +% ============ Captionbox Defaults ========= +\topcaptionfalse +\def\captiontextfraction{0.8} +\captionbodyon + +% ============ Title Spacing/Width ========== +\def\titlefraction{0.9} +\def\titlespacing{1.5} + +% ====== Plain \magnification change ====== +\let\magnification=\mag + +% ============ Tagging/Reference ======= +\pagetagsoff % default is the pagetags off -- more efficient. + +% =========== Allows Figures to be Silent ======== +\silentfigurefalse % defaults to non silent figures + +%======== style defaults +\paperstyle +\englishversion +\draftversion + + diff --git a/macros/inrstex/inrstex/inrsfncm.tex b/macros/inrstex/inrstex/inrsfncm.tex new file mode 100644 index 0000000000..ec91701a96 --- /dev/null +++ b/macros/inrstex/inrstex/inrsfncm.tex @@ -0,0 +1,350 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. +% This file now uses cm fonts where available. + + +% ======= INRS Fonts ======== +% This file adds the fonts used in INRSTeX. It also adds the spacing +% related to these fonts. The important section is the definitions of +% the font families. The intent is to produce a font family with all +% related fonts. In the same manner as the TeXbook, \tenpoint indicates +% the 10pt family and \rm would be a Roman font in that family. The +% additions here are the special fonts for section heads, footnotes, ... +% The section head fonts, for example \sheadfont is changed only if +% the font family is called within the command \documentstyle. This +% means that it is possible to change the font internal to a +% document without disturbing the appearance of the section heads or +% page numbering. + +% In addition to this file, there is an spfont.tex. This file allows for +% the scaling of a font family. The basic family is \tenpoint. It can be +% scaled to the extent that there exist scaled printable forms of the font. + +% ======= ADDITIONAL FONTS IN INRSTEX ========== + +% =====special fonts ======== +\font\tendu = cmdunh10 +%\font\inchhigh=cminch +%\font\fortysc=cmsc40 +%\font\fortypen=pen40 +%\font\fortypeni=peni40 +%\font\thirtysc=cmsc30 +%\font\twentysc=cmsc20 +%\font\twentyfourozub=ozub24 %OCR types +%\font\twentyfourozuh=ozuh24 % ocr hollow +%\font\twentynaro = cmnaro + +% ===== twenty one point ======= +\font\twentyonermsca = cmr10 scaled 2074 + + + +% ===== eighteen point ======= +\font\eighteenrm= cmr17 % no eighteen point font in cm +\font\eighteenrmsca = cmr10 scaled 1728 +%\font\eighteenark = ark18 % hands and pencils +%\font\eighteenbbb = bbb18 % ?????? +%\font\eighteenpen = pen18 % pen script like font +%\font\eighteenpeni = peni18 % pen script like font + +% ===== fourteenpoint fonts ===== +\font\fourteenrmsca = cmr10 scaled 1440 +\font\fourteenbfxsca = cmbx10 scaled 1440 + + +% ===== twelvepoint fonts +\font\twelverm= cmr12 +\font\twelvermsca = cmr10 scaled 1200 +\font\twelvebfxsca = cmbx10 scaled 1200 +\let\twelvebf=\twelvebfxsca +\font\twelvess = cmss12 +\font\twelvessb= cmssbx10 scaled 1200 +\font\twelveit = cmti12 +\font\twelvei = cmmi12 +\font\twelvesl = cmsl12 +\font\twelvesy = cmsy10 scaled 1200 % no 12point symbol +\font\twelvett = cmtt12 +\font\twelvesc = cmcsc10 scaled 1200 % no 12point form +\let\sanss = \twelvess +\let\sanssb= \tenss +\let\twelveex=\tenex + +% ======= tenpoint fonts not in plain.tex ======= +\font\tenss = cmss10 +\font\tenssb = cmssbx10 % +\font\tencsc = cmcsc10 % caps and small caps +\font\tenu=cmu10 % unslanted text italic +\font\tenbfx = cmbx10 +\font\tenbfy = cmbsy10 %bold math symbols? + + +% ======== smaller fonts not in plain.tex ======== +\font\ninerm=cmr9 +\font\eightrm=cmr8 +\font\sixrm=cmr6 + +\font\ninei=cmmi9 +\font\eighti=cmmi8 +\font\sixi=cmmi6 +\skewchar\ninei='177 \skewchar\eighti='177 \skewchar\sixi='177 + +\font\ninesy=cmsy9 +\font\eightsy=cmsy8 +\font\sixsy=cmsy6 +\skewchar\ninesy='60 \skewchar\eightsy='60 \skewchar\sixsy='60 + +\font\eightss=cmssq8 + +\font\eightssi=cmssqi8 + +\font\ninebfx=cmbx9 +\font\eightbfx=cmbx8 +\let\sevenbfx = \sevenbf % defined in plain as cmbx7 +\font\sixbfx=cmbx6 +\let\fivebfx = \fivebf % defined in plain as cmbx5 + +\font\ninett=cmtt9 +\font\eighttt=cmtt8 + +\hyphenchar\tentt=-1 % inhibit hyphenation in typewriter type +\hyphenchar\twelvett=-1 +\hyphenchar\ninett=-1 +\hyphenchar\eighttt=-1 + +\font\ninesl=cmsl9 +\font\eightsl=cmsl8 + +\font\nineit=cmti9 +\font\eightit=cmti8 +\font\sevenit= cmti7 + +% =========== margin note/version font =========== +\let\notefont = \eighttt + +% ============ THE FONT FAMILIES =========== + +% ============= <....>point families ============= +% \pointsize and \documentpointsize are the point sizes of the +% present and document point sizes. +% resets the default spacing + +\newskip\ttglue +\def\twelvepoint{\def\pointsize{twelve}% + \def\rm{\fam0\twelverm}% + \textfont0=\twelverm \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm + \textfont1=\twelvei \scriptfont1=\teni \scriptscriptfont1=\seveni + \textfont2=\twelvesy \scriptfont2=\tensy \scriptscriptfont2=\sevensy + \textfont3=\twelveex \scriptfont3=\twelveex \scriptscriptfont3=\twelveex + \def\it{\fam\itfam\twelveit}% + \textfont\itfam=\twelveit + \def\sl{\fam\slfam\twelvesl}% + \textfont\slfam=\twelvesl + \def\bf{\fam\bffam\twelvebfxsca}% + \textfont\bffam=\twelvebfxsca \scriptfont\bffam=\tenbf + \scriptscriptfont\bffam=\sevenbfx + \def\tt{\fam\ttfam\twelvett}% + \textfont\ttfam=\twelvett \scriptfont\ttfam=\tentt + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm % now so resets are ok. + \setstrut + \ifd@ocsty \def\documentpointsize{twelve}% + \let\footerfont =\twelveit + \let\headerfont=\twelveit + \let\footnotefont = \tenpoint + \let\smallerfont = \tenpoint + \let\cheadfont = \twentyonermsca + \let\sheadfont=\fourteenbfxsca + \let\ssheadfont=\twelvebfxsca + \let\sssheadfont=\twelvebfxsca + \let\dsssheadfont=\twelvebfxsca + \let\captionnumfont=\twelvebfxsca + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \fourteenrmsca + \let\biggfont = \eighteenrmsca + \let\bigggfont = \twentyonermsca + \let\titlefont = \bigggfont + \let\sc=\tenrm + } + + +% ======= elevenpoint fonts not in plain.tex ======= + +\font\elevenssb = cmssbx10 scaled 1095 % no ss bold +\font\elevencsc = cmcsc10 scaled 1095 % caps and small caps +\font\elevenbfx = cmbx10 scaled 1095 % bold wide +\font\elevenbfy = cmbsy10 scaled 1095 %bold math symbols? + +% ===== elevenpoint fonts +\font\elevenrm= cmr10 scaled 1095 +\font\elevenrmsca = cmr10 scaled 1095 +\font\elevenbf = cmb10 scaled 1095 +\font\elevenbfxsca = cmbx10 scaled 1095 +\font\elevenss = cmss10 scaled 1095 +\font\elevenit = cmti10 scaled 1095 +\font\eleveni = cmmi10 scaled 1095 +\font\elevensl = cmsl10 scaled 1095 +\font\elevensy = cmsy10 scaled 1095 +\font\eleventt = cmtt10 scaled 1095 +\font\elevensc = cmcsc10 scaled 1095 +\let\sanss = \elevenss + +\let\elevenex=\tenex + + +\def\elevenpoint{\def\pointsize{eleven}% + \def\rm{\fam0\elevenrm}% + \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm + \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\sixi + \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy + \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex + \def\it{\fam\itfam\elevenit}% + \textfont\itfam=\elevenit + \def\sl{\fam\slfam\elevensl}% + \textfont\slfam=\elevensl + \def\bf{\fam\bffam\elevenbf}% + \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbfx + \scriptscriptfont\bffam=\sixbfx + \def\tt{\fam\ttfam\eleventt}% + \textfont\ttfam=\eleventt \scriptfont\ttfam=\tentt + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm % now so resets are ok. + \setstrut + \ifd@ocsty \def\documentpointsize{eleven}% + \let\footerfont=\elevenit + \let\headerfont=\elevenit + \let\footnotefont = \ninepoint + \let\smallerfont = \ninepoint + \let\cheadfont = \eighteenrmsca + \let\sheadfont=\fourteenbfxsca + \let\ssheadfont=\elevenbfxsca + \let\sssheadfont=\elevenbfxsca + \let\dsssheadfont=\elevenbfxsca + \let\captionnumfont=\elevenbfxsca + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \twelvermsca + \let\biggfont = \fourteenrmsca + \let\bigggfont = \eighteenrmsca + \let\titlefont = \bigggfont + \let\sc=\ninerm + } + + +\def\tenpoint{\def\pointsize{ten}\def\rm{\fam0\tenrm}% + \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm + \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei + \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\fam\itfam\tenit}% + \textfont\itfam=\tenit + \def\sl{\fam\slfam\tensl}% + \textfont\slfam=\tensl + \def\bf{\fam\bffam\tenbfx}% + \textfont\bffam=\tenbfx \scriptfont\bffam=\sevenbfx + \scriptscriptfont\bffam=\fivebfx + \def\tt{\fam\ttfam\tentt}% + \textfont\ttfam=\tentt + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm + \setstrut + \ifd@ocsty \def\documentpointsize{ten}\let\footerfont =\tenit + \let\headerfont=\tenit + \let\footnotefont = \eightpoint + \let\smallerfont = \eightpoint + \let\cheadfont = \eighteenrm + \let\sheadfont=\twelvebfxsca + \let\ssheadfont=\tenbfx + \let\sssheadfont=\tenbfx + \let\dsssheadfont=\tenbfx + \let\captionnumfont=\tenbfx + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \twelvermsca + \let\biggfont = \fourteenrmsca + \let\bigggfont = \eighteenrmsca + \let\titlefont = \bigggfont + \let\sc=\eightrm } + +\def\ninepoint{\def\pointsize{nine}\def\rm{\fam0\ninerm}% + \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm + \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei + \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\fam\itfam\nineit}% + \textfont\itfam=\nineit + \def\sl{\fam\slfam\ninesl}% + \textfont\slfam=\ninesl + \def\bf{\fam\bffam\ninebfx}% + \textfont\bffam=\ninebfx \scriptfont\bffam=\sixbfx + \scriptscriptfont\bffam=\fivebfx + \def\tt{\fam\ttfam\ninett}% + \textfont\ttfam=\ninett + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm + \setstrut + \ifd@ocsty \def\documentpointsize{nine}\let\footerfont =\nineit + \let\headerfont=\nineit + \let\footnotefont = \eightpoint + \let\smallerfont = \eightpoint + \let\cheadfont = \eighteenrm + \let\sheadfont=\tenbfx + \let\ssheadfont=\tenbfx + \let\sssheadfont=\tenbfx + \let\dsssheadfont=\tenbfx + \let\captionnumfont=\tenbfx + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \twelvermsca + \let\biggfont = \fourteenrmsca + \let\bigggfont = \eighteenrm + \let\titlefont = \bigggfont + \let\sc=\sevenrm } + + +\def\eightpoint{\def\pointsize{eight}\def\rm{\fam0\eightrm}% + \textfont0=\eightrm \scriptfont0=\fiverm \scriptscriptfont0=\fiverm + \textfont1=\eighti \scriptfont1=\fivei \scriptscriptfont1=\fivei + \textfont2=\eightsy \scriptfont2=\fivesy \scriptscriptfont2=\fivesy + \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex + \def\it{\fam\itfam\eightit}% + \textfont\itfam=\eightit + \def\sl{\fam\slfam\eightsl}% + \textfont\slfam=\eightsl + \def\bf{\fam\bffam\eightbfx}% + \textfont\bffam=\eightbfx \scriptfont\bffam=\fivebfx + \scriptscriptfont\bffam=\fivebfx + \def\tt{\fam\ttfam\eighttt}% + \textfont\ttfam=\eighttt + \tt \ttglue=.5em plus .25em minus .15em + \normalbaselines\rm + \setstrut + \ifd@ocsty \def\documentpointsize{eight}\let\footerfont =\eightit + \let\headerfont=\eightit + \let\footnotefont = \eightpoint + \let\smallerfont = \eightpoint + \let\cheadfont = \fourteenrmsca + \let\sheadfont=\eightbfx + \let\ssheadfont=\eightbfx + \let\sssheadfont=\eightbfx + \let\dsssheadfont=\eightbfx + \let\captionnumfont=\eightbfx + \let\captiontitlefont=\relax + \let\captionbodyfont=\relax + \let\eqnumfont=\rm + \setspacings\fi + \let\bigfont = \tenrm + \let\biggfont = \twelverm + \let\bigggfont = \fourteenrmsca + \let\titlefont = \bigggfont + \let\sc=\sevenrm } + diff --git a/macros/inrstex/inrstex/inrstex.tex b/macros/inrstex/inrstex/inrstex.tex new file mode 100644 index 0000000000..d3e0c1c8cc --- /dev/null +++ b/macros/inrstex/inrstex/inrstex.tex @@ -0,0 +1,560 @@ +% POSTSCRIPT VERSION --- AFFECTS GRAPHICS AND OUTPUT ROUTINE +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. +% Version Aug. 1991 +% ---- TeX 3 version ---- + +% Those items that are modified for different styles are indicated in +% each section. + + +\input plain_nh + +% for TeX 3.+, hyphenation tables can be inserted in a format file only +% once. This means that both plain.tex rather than an old plain.fmt file +% must be used to create a new format file. plain_nh.tex is plain.tex with +% No Hyphenation (NH). + +% This is a cm font version ... now. + +% COMMENT: INRSTeX has been designed to allow for considerable variation +% in the style of a document. This ranges from default spacing, fonts, +% formats of section heads, and headers and footers. The changes for +% a style involves the changes of the defaults in "inrsdef.tex", document +% "am" fonts in "inrsfont.tex" or "cm" fonts in inrsfncm.tex. +% The definitions of header and footer text is +% generally found in the various "xxsty.tex" files. These are incomplete +% in the sense that only those changes to the defaults in "inrsdef.tex" +% are actually done. Two examples are given, \paperstyle in "papersty.tex" +% and \bookstyle in "booksty.tex". +% + +% Those items that are modified for different styles are indicated in +% each section. + +\catcode`@= 11 % need to use some plain macros + +%======= Additional active Characters =========== +% ALL ACTIVE CHARACTERS MUST BE DECLARED AND DEFINED AT THE VERY +% BEGINNING OR THERE IS A DANGER OF INCORRECT TOKENIZATION +% ======== THESE ARE USED IN THE TABLE MACROS ========= +\message{<< Additional Active Characters >>} +\catcode`\|= \active +\def|{\ifmmode \vert\else \char`\|\fi} % effectively undoes activeness +\def\q@m{\string"} +\catcode`\"=\active \def"{\writeterm{<<< use `` or '' instead of \q@m >>>}{ + }{}\char`\"} +%=== these are redefined inside the table macros ===== + + +% ========= INRSTeX Utilities ========= +% These are generally needed for good health. They include +% Houskeeping Macros +% Single/Multicolumn Page Eject and Insert Control +% Miscellaneous Paragraph Shape Macros +% Year/Month/Day +% New Boxit +% Number Format Conversion Forms + + +%************************** +\input inrsutil.tex +%************************** + + +% ======== Extended Character Set(s) for Special Terminals ======= +% The proper catcodes for the extended characters need to go in before the +% patterns are loaded. + +% ************************* + \ifundefined{charsubdef} + \message{ << Loading Extended Character Set -- TeX 3.+ >>} + \input extdef3 + \else + \message{ << Loading Extended Character Set -- MLTeX 3.+ >>} + \input extdef + \fi + \message { << Setting Parameters for TeX 3.+ >> } + \emergencystretch =10pt + \lefthyphenmin=2 + \righthyphenmin=3 + \newcount\dischyph % to effectively disable dischyph in mltex +% ************************* + + + + +% ======= Input Hyphenation patterns ======= +% hyphenation for all languages are in the same file or accessed from it +% TeX 3 will not allow \patterns to be reopened once it has been closed. + + \input masthyph + + +% ====== Multiple Language Support ======== +% This may be done without bilingual TeX but is better done with it. +% These macros define an \englishversion and a \versionfrancaise. +% INRSTeX messages come in either English or French depending +% upon the value of \language. If \language is not yet defined, a +% \newcount is used to define it. +% THIS MUST NOT BE CALLED BEFORE THE HYPHENATION PATTERNS ARE LOADED. + +%************************** +\input multlang.tex +%************************** + + +% ====== Basic Line Spacing ========= +% The basic line spacing in a font is assumed to be scaled according to the +% ex height of the font. This is perhaps not the aesthetically best but +% does allow consistent line spacing commands. The four basic commands are +% \normalbaselines (redefined from plain), +% \normalbaselineskipsize, \spacing, and \setstrut. + +% ------- Defaults ... inrsdef.tex ----- +% \def\normalbaselineskipsize{2.8ex \normalbaselineskipglue} +% \def\normalbaselineskipglue{plus .07ex minus .07ex} +% \def\normallineskipform{\lineskip 1pt \lineskiplimit 0pt} + + +%************************** +\input linespac.tex +%************************** + + + +% ===== additional FONTS ========== +% The new fonts and font families are read in from the file "inrsfont.tex" +% These are read in by initex. +% This font list should define the font families. At the very least it must +% define fonts for the logical font names used in INRSTEX. These are + %\notefont {usually \eighttt} ... foor version and margin notes. + %\footerfont + %\headerfont + %\footnotefont {should be a font family} + %\smallerfont {should be a font family} + %\cheadfont + %\sheadfont + %\ssheadfont + %\sssheadfont + %\dsssheadfont + %\captionnumfont + %\captiontextfont + %\eqnumfont + %\bigfont + %\biggfont + %\bigggfont + %\titlefont + +% The various \..head.. fonts are used in the \shead etc +% The \footnotefont is used in footnotes and is a family +% \titlefont is used in \title +% The other fonts are for convenience. + +% INRSTeX has the notion of a Document font. This allows for local changes in +% the font without messing up the sizes of the sectionheads, headers, footers +% etc. A font change inside a \documentstyle will cause the document font +% to change. + +%************************** +%\input inrsfont.tex %am fonts +\input inrsfncm.tex % cm fonts +%************************** + + + +% ====== Marginnotes, Final and Draft Version ======= +% INRSTeX's output routine supports two main versions of a document, a +% "final version" and a "draft version". The "draft version" collects \refs +% and \cites in a margin box at the right of a page. In addition it puts on +% black marks for overfull lines and "Draft Version: <date> " at the +% bottom of the page. + +% If plain.tex output is to be used, "margform.tex" by "margform.pla" +% This will destroy all indications of \finalversion \draftversion + +%************************** +\input margform.tex +%************************** + + + + +% =========== Document Styles, Page Numbering and Page Sizes ====== +% These are the macros for setting page sizes and the various flags +% the header/footer styles. This is only used with "inrsout.tex" + +% ---- Defaults ... set in xxxsty.tex or inrsdef.tex ------- +% Examples from "booksty.tex" +% \vheadersize +% \vfootersize +% \headertext +% \specialheadertext +% \footertext +% \specialfootertext +% \hpapersize +% \vpapersize +% \vouterpagesize +% \houterpagesize +% \topmargin +% \leftmargin + + + +%************************** +\input pagsty.tex +%************************** + + + + +%======== Multicolumn format =========== +% These macros invoke multicolumnformat including balancing columns. + +% ---- Defaults ... set in inrsdef.tex +% \numcolumns +% \firstcolumnoffset +% \intercolumnsep + + +%************************** +\input multicol.tex +%************************** + + + +% ======== INRSTeX Single/Multi Column Output Routine ======== +% This is the entire output routine for INRSTeX. It does both single and +% Multicolumn since there is a rather large repetition to do otherwise. + +%************************** +\input out_ps.tex +%************************** + + + +%========= Autonumbering, Tagging and Autoreferencing ========= + +% These macros give the facility to symbolically refer to sections, equations, +% tables, and references and to automatically number them. +% Autonumber, automatically numbers sections, equations, .... +% Autoreferencing, causes \ref{tag} to drop the tag-value in the text. +% Autonumber and autoreference both true will cause tags to be generated. +% Although it is possible to have only autonumbering, referring to +% sections or other parts is quite difficult without referencing + +% ---- Defaults ... set in inrsdef.tex ----- +% \autoreferencetrue +% \autonumberfalse ... default when created +% \def\Prerefform{} \def\Postrefform ... in auto + +%************************** +\input auto.tex +%************************** + + +% ============ Tag Generation ========== +% These are the macros that generate the actual tags. They are used in +% automatic equation numbering, section heads and any \auto...num{tag} form. + +% ------ Defaults .... set in inrsdef.tex or xxxsty.tex --- +% \undeftagmessage ... set in "english.tex" or "francais.tex" + + +%************************** +\input tag.tex +%************************** + + +% ========== Equation Tags =========== +% Since equation numbering plays a big part in scientific documentation +% a special set of tag generation forms were produced for this case. + +% ------ Defaults .... set in inrsfont.tex ----- +% \eqnumfont + + +%************************** +\input eqtag.tex +%************************** + + + + +% ===== Citation generation ========== +% \cite is used with a journal/paper reference. +% The forms allow both random input order of cite forms or +% fixed order. At the moment it supports only IEEE form, ie +% a list in the order of therir occurrence in a paper. +% A data base system using a mailbox would be much better. + + + +%************************** +\input cite.tex +%************************** + + + +% ========== Section, Chapter Headings =========== +% These macros have several parts, +% -- Counter allocation and numbering styles for autonumber +% -- The format of the heading. +% -- The writing of a list file for automatic table of contents. +% -- The referencing in the text ... ie reference number styles. + +% -------- Defaults ... inrsdef.tex, inrsfont.tex, xxxsty.tex ---- +% +% \chnum=0 \def\chnumform{\the\chnum} ... inrsdef.tex +% \shnum=0 \def\shnumform{\the\shnum} ... inrsdef.tex +% \sshnum=0 \def\sshnumform{\the\sshnum} ... inrsdef.tex +% \ssshnum=0 \def\ssshnumform{\the\ssshnum} ... inrsdef.tex +% \def\chtagrefformat{\chnumform} ... secthead.tex +% \def\chtagreplaceformat{\Chapter \chtagrefformat} .. secthead.tex +% \prsheadskip= 6ex plus 2ex minus 2ex ... inrsdef.tex +% \posheadskip= 2ex ... inrsdef.tex +% \prssheadskip= 5ex plus 1.8ex minus 1.8ex ... inrsdef.tex +% \possheadskip= 2ex ... inrsdef.tex +% \prsssheadskip= 3ex plus 1ex minus 1ex ... inrsdef.tex +% \posssheadskip= 2ex ... inrsdef.tex +% \prdsssheadskip= 3ex plus 1ex minus 1ex ... inrsdef.tex +% \podsssheadskip= 2ex ... inrsdef.tex +% +% \gensheadformat#1#2#3#4 ... secthead.tex ... for major format +% surgery. +% +% \nochaptertrue ... inrsdef.tex +% \def\Chapter ... english.tex or francais.tex +% \cheadformat#1#2 ... secthead.tex +% \def\chapterstartform{} ... secthead.tex and xxxsty.tex + + +%************************** +\input secthead.tex +%************************** + + +%============ Preface/Prelude macros =========== +% this is the first of the environment macros. The problem, among others is +% that the headers, footers, pagenumbering, etc are different in preface of +% the document than elsewhere. + +% ---- Defaults ... prelhead.tex or xxxsty.tex +% \preludeheadformat#1 ... prelhead.tex + +%************************** +\input prelhead.tex +%************************** + + + +% =========== Appendices ============== +% Appendices are defined by using \shead invocations. +% Appendices are assumed to be associated with chapters, if +% they exist hence the first appendix in Chapter 2 is Appendix A. +% These macros modify the numberforms of \shead to produce Apendices. +% The "appendix head" is an \shead with a different numberform. + +% ------- Defaults ------ +% \def\Appendix ... english.tex or francais.tex + +%************************** +\input appendix.tex +%************************** + + + +% ========== List Files ========= +% General macros for making, open and closing "list' files. These are files +% where the form output includes a page reference. They are named with a +% three letter extension ... eg ".fig" ... to the \jobname form. + +%************************** +\input writfile.tex +%************************** + + + +% ======== Table of Contents, Figures, and Tables -- Examples ====== +% The "list" file is written using \writelistfile and the \shtoc ... +% are used to create the actual table of contents, figures, tables. +% Extensions to other forms should be obvious. + +% ----- Defaults ---- +% \righttocindent ... inrsdef.tex +% \tocfill ... tocform.tex ... dot form for toc list. +% tocfonts ... tocform.tex ... in actual \figtoc etc + +%************************** +\input tocform.tex +%************************** + + + + + +%======== List macros ========== +% there is only one kind of list in this system, namely on that is +% right justified in the particular box that the list appears +% extensions may be made to include a center + +% ----- Defaults ... inrsdef.tex ----- +% \prlistskip= 2ex plus 3pt minus 2pt +% \prsublistskip = 1ex plus 2pt minus 1pt +% \prsubsublistskip = .5ex plus 1pt minus 1pt +% \polistskip= 2ex plus 1pt minus 1pt +% \posublistskip= 1ex plus 1pt minus 1pt +% \posubsublistskip= .5ex plus 1pt minus 1pt + +% \listitemskip = 2ex plus 1pt minus 1pt +% \sublistitemskip =1ex plus .75pt minus .75pt +% \subsublistitemskip = .5ex plus .5pt minus .5pt + +% \listindent = 3em +% \sublistindent = 6em +% \subsublistindent = 9em +% \listitemmarksize = 1.5em + +%************************** +\input lists.tex +%************************** + + + +%=========== Footnotes ---- similar to that in the texbook ====== + +% ------ Defaults -------- +% \footnotefont ... family in inrsfont.tex +% \skip\footins ... footnote.tex +% \count\footins ... plain.tex +% \dimen\footins ... footnote.tex +% \footnoterule ... inrsout.tex + + +%************************** +\input footnote.tex +%************************** + + + +%========= ABSTRACT/TITLE ======= +% These generate a centered abstract in the \smallerfont of a family +% and define the \title macro + +% ------ Defaults ------ +% \absindent ... inrsdef.tex abstract indentation +% \ABSTRACT ... english.tex or francais.tex +% \titlemessage ... english.tex of francais.tex +% \titlefont ... inrsfont.tex +% \titlefraction ... inrsdef.tex +% \titlespacing ... inrsdef.tex + +%************************** +\input abstract.tex +%************************** + + +% ========== Captioned Table/Figure Forms and Inserts ========= +% Insert Forms + +% ----- Defaults ----- +% \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 +% \silentfigurefalse + +%************************** +\input genins.tex +%************************** + + +% ============ Table Making Forms ============ + +%************************** +\input tables.tex +%************************** + + + +%========= Verbatim or NoFill Style ======== +% The verbatim form is not part of the INRSTeX format file. +% The following brings in the verbatim macros and redefines \beginttverbatim + +\def\beginttverbatim{\input verbatim\relax} + + +%========== Special styles =============== +%----- Special Document Styles/Forms ------- +% INRSTeX learns of the existence of special document styles or forms +% from specform.tex + +%************************** +\input specform.tex +%************************** + + + +%======== Multiple part documents -- subdocuments ======= +% documents may be broken down to the chapter or section level + +%************************** +\input subdoc.tex +%************************** + + + + + +% ============ TeXGraphics Support ============= +% TeXGraphics uses \specials, assumes POSTSCRIPT and assumes a driver +% equivalent to the INRS modified version of Beebe's dvialw. + +%************************** +\input graph_ps.tex +%************************** + + + + + + +% ======== Bugs/Modifications to Plain ===== + +%************************** +\input plainmod.tex +%************************** + + + +% ====== INRSTeX defaults .... in addition to Plain .... +%************************** +\input inrsdef.tex +%************************** + + +% =========== modifications for MSDOS usage ============ + +% for Unix systems replace the \input writdos by + + \message{Input Unix write.file form} + \input writunix + +% invoke inrstex with the shell script +% inrsunix.sh ... appropriately modified + + +%\message{Input DOS write/file form} + +%\input writdos + + +\catcode`@=12 % puts at back to a non letter + +\def\fmtname{INRSTeX-Bilingual-PostScript}\def\fmtversion{3.1} + diff --git a/macros/inrstex/inrstex/inrsunix.sh b/macros/inrstex/inrstex/inrsunix.sh new file mode 100644 index 0000000000..dd1f48d528 --- /dev/null +++ b/macros/inrstex/inrstex/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/inrstex/inrsutil.tex b/macros/inrstex/inrstex/inrsutil.tex new file mode 100644 index 0000000000..d687ee7092 --- /dev/null +++ b/macros/inrstex/inrstex/inrsutil.tex @@ -0,0 +1,164 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ======== INRSTeX Utilities ====== + + +% ========= Houskeeping Utilities ========= + +% These are houskeeping utilities and should be kept. They will most likely +% not interfere with any other commands. + +\newif\ifsilent \silentfalse % defaults to not quiet ... used in \a@utonum + +\def\silent#1{\setbox0=\hbox{#1}} % causes #1 to be silently expanded + +% ----- #1 break penalty , #2 skip amount +\def\penaltybreak#1#2{\par\ifdim\lastskip<#2 + \removelastskip\penalty #1\vskip #2 \fi} + +% ------ advances only the dimension part of a glue statement +% must be of form \a@dvance #1 by #2 where #2 is a dimension + % coerces glue to be a dimen +\def\a@dvance #1#2{\dimen0 = #1\relax + \advance #1 by -\dimen0\relax + \advance #1 by #2\relax} + + +%------- appends a second token list onto a first one ---- +%#1 token list #2 token list #1 is resulting name +% used in creating autonumbers +\def\appendtoks#1#2{ \edef\next{\noexpand #1 = {\the#1 \the#2} } + \next} + +%---------- non outer allocations same as in plain --------- +\def\n@ewcount{\alloc@0\count\countdef\insc@unt} +\let\n@ewtoks=\relax % we do this to allow inrs.tex to be read in twice +\def\n@ewtoks{\alloc@5\toks\toksdef\@cclvi} +\def\n@ewwrite{\alloc@7\write\chardef\sixt@@n} +\def\n@ewswitch#1{\expandafter\let\csname if#1\endcsname\relax + \toks@{\iftrue}% + \expandafter\edef\csname#1true\endcsname + {\let\csname if#1\endcsname=\the\toks@}% + \toks@{\iffalse}% + \expandafter\edef\csname#1false\endcsname + {\let\csname if#1\endcsname=\the\toks@}% + \csname#1false\endcsname} % the switch starts out false + + +% --- undefined command check --- 7.7 from the texbook +\def\ifundefined#1{\expandafter\ifx\csname #1\endcsname\relax} % needs \fi to end + +% ------ Input a file. If it does not exist, treat it as a null file. +% #1 file name. +\def\inputwithcheck#1{\edef\i@wc{#1}\openin1=\i@wc\relax + \ifeof1 + \closein1 + \else + \closein1 + \input \i@wc \relax + \fi} + +% \writeterm +% ----------- Write to the terminal -------- +% Format is similar to \writelistfile. Its main claim is that +% it removes ugly \cr and ~ that might lead to problems. +% #1#2#3 the three arguments are concatenated in the output text. +\def\writeterm#1#2#3{{\def\cr{ }\def~{ }\immediate\write32{#1#2#3}}} + + +% ======= Single/Multicolumn Page Eject and Insert Control ====== +% "\end..." is only used in conjunction with a matched "\begin... +% However "\end" has not been redefined. + +\def\ejectcolumn{\par\vfill\eject} +\let\ejectpage=\ejectcolumn +\def\superejectpage{\par\vfill\supereject} +\def\done{\superejectpage\end} % to be modified +\def\ejectinsert{\ifnum\insertpenalties>0 \null\ejectcolumn\ejectinsert\fi} +\let\ejectinserts=\ejectinsert % historical error + + +% ========= Miscellaneous Paragraph Shape Macros ========= + +% ---- a symmetric narrowing of the page ---- +\newtoks\everynarrowtext + +\def\beginnarrowtext #1 {\par + \begingroup + \advance\leftskip by #1\relax + \advance\rightskip by #1\relax + \the\everynarrowtext} +\def\endnarrowtext {\par \endgroup} + + +% ----- centers lines in paragraph --------- +% This is used in Titles ... + +\def\paragraphcenterline{\advance\rightskip by 0pt plus 1fill + \advance\leftskip by + 0pt plus 1fill \def\cr{\par}\parindent = 0pt} + + +% --- a very ragged right ... will suppress all hyphenation for title/sections +\def\veryraggedright{\advance\rightskip by 0pt plus 1fil\relax} + +%----- linebreak in horizontal mode +\def\linebreak{\hfil\break} + +% ========= Half quad ========== +\def\hquad{\hskip .5em} + + +% ========= Year/Month/Day ========= +% This is used in the Output Routine +% --- form for version +\def\date{\the\year/\the\month/\the\day} +\def\version{Version: \date} + +% =========== New Boxit ============= + +% --- puts rules around the outside of a box +% #1 line thickness, #2 border separation #3 box +\long\def\boxit#1#2#3{\vbox{\dimen0=#1 \dimen2=#2 \hrule height \dimen0 + \hbox{\vrule width\dimen0 \hskip\dimen2\vbox{\vskip \dimen2 + \vbox{#3} + \vskip \dimen2}\hskip + \dimen2 \vrule width\dimen0} + \hrule height \dimen0}} + + +% ============== Number Format Conversion Forms ============= + +% ------ This gives an uppercase alphabetic form for a number ---- +% There should be an easier way! + +\def\Alphabetic#1{\ifcase #1\or A\or B\or C\or D\or E\or + F\or G\or H\or I\or J\or + K\or L\or M\or N\or O\or + P\or Q\or R\or S\or T\or + U\or V\or W\or X\or Y\or + Z\else #1\fi} + +\def\alphabetic#1{\ifcase #1\or a\or b\or c\or d\or e\or + f\or g\or h\or i\or j\or + k\or l\or m\or n\or o\or + p\or q\or r\or s\or t\or + u\or v\or w\or x\or y\or + z\else #1\fi} + +% ------ This does the same for roman numerals --- from TeXbook +\def\UpperRoman#1{\uppercase\expandafter{\romannumeral #1}} + + +% ========= These are dangerous macros that easily allow for loss of @ +% protection ========= + +% ======= general protect/unprotect ======= +\def\protect{\catcode`\@=12} +\def\unprotect{\catcode`@=11} + +% ======= Activate/deactivate ========= +\def\activate{\catcode`\"=\active \catcode`\|=\active} +\def\deactivate{\catcode`\"=12 \catcode`\|=12} diff --git a/macros/inrstex/inrstex/linespac.tex b/macros/inrstex/inrstex/linespac.tex new file mode 100644 index 0000000000..b8486bc456 --- /dev/null +++ b/macros/inrstex/inrstex/linespac.tex @@ -0,0 +1,33 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ====== Basic Line Spacing ========= +% The basic line spacing in a font is assumed to be scaled according to the +% ex height of the font. This is perhaps not the aesthetically best but +% does allow consistent line spacing commands. The four basic commands are +% \normalbaselines, \normalbaselineskipsize, \spacing, and \setstrut. + + +\def\normalbaselines{\baselineskip \normalbaselineskipsize + \normallineskipform} + +% ----- sets interline spacing in terms of normalbaselines ------ +% does not change baseline glue. +\def\spacing#1{\setbox0=\vbox{\vskip \normalbaselineskipsize}\baselineskip + #1\ht0 \normalbaselineskipglue + \normallineskipform} + + +% ----- a single line spacing strut ------- +% Set at current baselineskip size +\def\setstrut{\setbox0=\vbox{\vskip\normalbaselineskipsize}\setbox\strutbox= + \hbox{\vrule height .72\ht0 depth .28\ht0 width\z@}} + +% --- The default forms must also be set -- They are shown below but +% are actually set in inrsdef.tex + +% \def\normalbaselineskipsize{2.8ex \normalbaselineskipglue} +% \def\normalbaselineskipglue{plus .07ex minus .07ex} +% \def\normallineskipform{\lineskip 1pt \lineskiplimit 0pt} + diff --git a/macros/inrstex/inrstex/lists.tex b/macros/inrstex/inrstex/lists.tex new file mode 100644 index 0000000000..777d34793f --- /dev/null +++ b/macros/inrstex/inrstex/lists.tex @@ -0,0 +1,135 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%======== List macros ========== +% there is only one kind of list in this system, namely on that is +% right justified in the particular box that the list appears +% extensions may be made to include a center +% These list macros work relative to \rightskip and \leftskip defined +% outside the lists. In addition, they preserve the glue that already +% exists in \rightskip and \leftskip + +% the actual skip values are set in inrsdef.tex + +\newskip\prlistskip %\prlistskip= 2ex plus 3pt minus 2pt +\newskip\prsublistskip %\prsublistskip = 1ex plus 2pt minus 1pt +\newskip\prsubsublistskip %\prsubsublistskip = .5ex plus 1pt minus 1pt + +\newskip\polistskip %\polistskip= 2ex plus 1pt minus 1pt +\newskip\posublistskip %\posublistskip= 1ex plus 1pt minus 1pt +\newskip\posubsublistskip %\posubsublistskip= .5ex plus 1pt minus 1pt + +\newskip\listitemskip %\listitemskip = 2ex plus 1pt minus 1pt +\newskip\sublistitemskip %\sublistitemskip =1ex plus .75pt minus .75pt +\newskip\subsublistitemskip %\subsublistitemskip = .5ex plus .5pt minus .5pt + +\newskip\l@istitemskip + +\newdimen\listindent %\listindent = 3em +\newdimen\sublistindent %\sublistindent = 6em +\newdimen\subsublistindent %\subsublistindent = 9em +\newdimen\listitemmarksize %\listitemmarksize = 1.5em + +\newtoks\everylist +\newtoks\everysublist +\newtoks\everysubsublist +\newtoks\e@verylist +\newtoks\e@verysublist +\newtoks\e@verysubsublist + +\newif\iff@irstli % allows first li to set list parameters + + +% t@ightenlist will cause the list item spacing to drop to #1 of its +% original value + +%------ scales a skip .... makes plus glue .1 of skip, minus .1 ---- +% #1 is the skip, #2 is the scale +\def\s@caleskip#1#2{\setbox0=\hbox{\hskip#1} + \dimen0=.1\wd0 \dimen2=.1\wd0 + #1 = #2\wd0 plus #2\dimen0 minus #2\dimen2} + + +\def\t@ightenlist#1{\s@caleskip{\listitemskip}{#1} + \s@caleskip{\sublistitemskip}{#1} + \s@caleskip{\subsublistitemskip}{#1}} +\def\tightenlist{\t@ightenlist{.5}} +\def\loosenlist{\t@ightenlist{2}} + +%sample list mark .... used for creating lists where the listitem +%mark size may be big or varied. +% This is one of the most useful features of this list package. + +\def\samplemark#1{\setbox0 = \hbox{#1\enspace} + \advance \listindent by -\listitemmarksize + \advance \sublistindent by -\listitemmarksize + \advance \subsublistindent by -\listitemmarksize + \listitemmarksize=\wd0 + \advance \listindent by \listitemmarksize + \advance \sublistindent by \listitemmarksize + \advance \subsublistindent by \listitemmarksize} + +%beginlist takes arbitrary parameters that affect the whole list such +% as font changes ... they are local to the list and will be undone by +% the endlist +\newcount\l@iststate \l@iststate=0 % 0 -- outside lists , 1 in list, 2 sublist ... + +%#1 - liststate, #2 - break value, #3 - listskip +\newif\ifo@utsidelist \o@utsidelisttrue +\newdimen\leftlistoffset +\newdimen\rightlistoffset +\def\b@eginlist #1#2#3{\par\penaltybreak{#2}{#3}\begingroup\parskip=0pt + \normalbaselines + \f@irstlitrue + \ifo@utsidelist \rightlistoffset =\rightskip + \leftlistoffset=\leftskip \o@utsidelistfalse\fi + \the\b@@el\the\b@el\l@iststate=#1} + +%\def\endlistmessage#1{<< endlist mismatch --- expected \the\l@iststate : +% actual #1 >> } see english/french titles ... #2 .. skip #3= penalty +\def\e@ndlist #1#2#3{\par \removelastskip + \ifnum \l@iststate = #1 \else \message{\endlistmessage{#1}} \fi + \endgroup \penaltybreak{#3}{#2}} +% The first list item actually sets the list parameters. This allows for +% changes in at the beginning of a list in listitem indent and spacing. +\def\s@etlistparms{\iff@irstli \n@ewlistparms + \advance\l@istindent by \leftlistoffset + \a@dvance{\leftskip}{\l@istindent}\f@irstlifalse + \fi} +\def\n@ewlistparms{\ifcase\l@iststate + \or \let\l@istindent =\listindent + \let\l@istitemskip = \listitemskip + \or \let\l@istindent =\sublistindent + \let\l@istitemskip = \sublistitemskip + \or \let\l@istindent =\subsublistindent + \let\l@istitemskip = \subsublistitemskip \fi} + +% #1 = itemskip #2 = leftindent #3= item flag +\def\listitem#1 {\par + \penaltybreak{-50}{\l@istitemskip}\s@etlistparms + \setbox0=\hbox{#1\enspace\hss} + \ifdim\wd0 < \listitemmarksize \wd0= \listitemmarksize \fi + \noindent\hskip -\listitemmarksize + \box0\relax} +\def\beginlist {\let\b@@el=\e@verylist\let\b@el=\everylist + \b@eginlist{1}{0}{\prlistskip}} +\def\beginsublist {\let\b@@el=\e@verysublist\let\b@el=\everysublist + \b@eginlist{2}{100}{\prsublistskip}} +\def\beginsubsublist {\let\b@@el=\e@verysubsublist\let\b@el=\everysubsublist + \b@eginlist{3}{200}{\prsubsublistskip}} + + +\def\endlist {\e@ndlist{1}{\polistskip}{-200}} +\def\endsublist {\e@ndlist{2}{\posublistskip}{-100}} +\def\endsubsublist {\e@ndlist{3}{\posubsublistskip}{-50}} + +% ----- These are official short forms for the various items ----- + +\let\li =\listitem +\let\bl =\beginlist +\let\bsl=\beginsublist +\let\bssl=\beginsubsublist +\let\el=\endlist +\let\esl = \endsublist +\let\essl = \endsubsublist diff --git a/macros/inrstex/inrstex/margform.tex b/macros/inrstex/inrstex/margform.tex new file mode 100644 index 0000000000..8205fd7597 --- /dev/null +++ b/macros/inrstex/inrstex/margform.tex @@ -0,0 +1,35 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ========= Margin Box ========= +% A margin insert (box) is used to collect reference/citation values +% If a non INRSTeX output routine is used, it is necessary to remove +% the \newinsert\m@arginbox, \dimen\m@arginbox and \count\m@arginbox. +% In addition a \def\proofmargin#1{} should be inserted. +% This information could be written out to a file rather than +% printing it on the page. + + +% ----- margin notes ------ + +\newinsert\m@arginbox +\dimen\m@arginbox = 8in +\count\m@arginbox = 0 + +\newdimen\h@marginboxsize \h@marginboxsize = 1.5in +\def\margin#1{\gdef\m@ext{\insert\m@arginbox{\vskip + 1ex\hbox{\notefont\quad#1}}}\ifinner + \aftergroup\m@ext \else \m@ext \fi} +% --- margin notes will completely disappear if \marginnotesfalse, +% \proofmargin is redefined or \finalversion is in force. + +\newif\ifmarginnotes +\def\proofmargin#1{\xdef\p@ff{#1}\ifmarginnotes\margin{\p@ff}\fi} + +%------ General Style switches -------- + +\newif\ifproofmode \proofmodetrue % defaults to proofmode +\def\draftversion{\proofmodetrue \marginnotestrue \overfullrule = 5pt} +\def\finalversion{\proofmodefalse \marginnotesfalse \overfullrule = 0pt} + diff --git a/macros/inrstex/inrstex/masthyph.tex b/macros/inrstex/inrstex/masthyph.tex new file mode 100644 index 0000000000..c5139c037a --- /dev/null +++ b/macros/inrstex/inrstex/masthyph.tex @@ -0,0 +1,59 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ======== Master Multilingual Pattern Inputs ====== + +% This file defines the changes in the \lccodes needed for Multilingual TeX +% and then inputs the patterns for English and French. + +% =========== Special lccodes and hyphenation for Bilingual Version ==== + + +\gdef\accenthyphcodes{ +\def\oe{^^[} % \oe +\def\i{^^P} +\def\'##1{\csname @ac@##1\endcsname} +\def\`##1{\csname @gr@##1\endcsname} +\def\v##1{\csname @v@##1\endcsname} +\let\^^_=\v +\def\u##1{\csname @u@##1\endcsname} +\let\^^S=\u +\def\=##1{\csname @eq@##1\endcsname} +\def\^##1{\csname @hat@##1\endcsname} +\let\^^D=\^ +\def\.##1{\csname @dot@##1\endcsname} +\def\H##1{\csname @H@##1\endcsname} +\def\~##1{\csname @til@##1\endcsname} +\def\"##1{\csname @um@##1\endcsname} +\let\c@@=\c +\def\c##1{\csname c@##1\endcsname} +} + +\gdef\spechyphcodes{} + + + +% ======== Pattern Input / English and French ====== + +% english hyphenation patterns +\begingroup +\language=0 +\input enhyph \relax +\endgroup + +% french hyphenation patterns +\begingroup +\language=1 +\input frhyph \relax +\endgroup + +% english hyphenation exceptions +\begingroup +\language=0 +\input enhyphex \relax +\endgroup + +% ======= definitions for fast eng/fr hyphenation ===== +\def\ehyph{\language=0 \lccode`\'=0 \nonfrenchspacing} +\def\fhyph{\language=1 \lccode`\'=`\'\frenchspacing}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/multicol.tex b/macros/inrstex/inrstex/multicol.tex new file mode 100644 index 0000000000..1d4e9d96ed --- /dev/null +++ b/macros/inrstex/inrstex/multicol.tex @@ -0,0 +1,62 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%======== Multicolumn format =========== +% These macros invoke multicolumnformat including balancing columns. + + + +\newcount\numcolumns %\numcolumns =1 +\newdimen\firstcolumnoffset %\firstcolumnoffset= 0pt +\newtoks\intercolumnsep %\intercolumnsep = {\hskip 2em} + + +%--- check the remaining page height and set switch +\newbox\m@ulticolumnbox % accumulates multicolumn pages +\newbox\t@opmultibox \newbox\testtop +\newbox\topmulticolumnbox % user available box --- spans entire page +\newbox\botmulticolumnbox % user available box --- spans entire page +\newbox\b@otmultibox \newbox\testbot +\newdimen\multicolpageshortfall \multicolpageshortfall = 1cm +\newcount\m@ultistate \m@ultistate = 0 % 1 is just into multicolumn + % 2 is just out of multicolumn +\newcount\c@urrentcolumn \c@urrentcolumn = 1 +\def\currentcolumnnum{\the\c@urrentcolumn } + +\def\numberofcolumns{\c@urrentcolumn = 1 \afterassignment\c@omputehsize \numcolumns } +\newtoks\everymulticolumnformat +\newtoks\e@verymulticolumnformat +\def\beginmulticolumnformat{\global\m@ultistate = 1 + \hrule height 0pt depth0pt % to force eject + \eject \begingroup + \def\ejectpage{\ejectcolumn\null + \loop \relax + \ifnum \c@urrentcolumn < \numcolumns + \ejectcolumn\null + \advance\c@urrentcolumn by 1 \relax + \repeat } + \the\e@verymulticolumnformat + \the\everymulticolumnformat } + +\newdimen\b@alancevsize \b@alancevsize=\vinnerpagesize +\newif\ifb@alance +\def\balancecolumnsize {\global\b@alancetrue \global\b@alancevsize} + +\def\a@ddbalcomp{\dimen0=\pagetotal %natural residual + \count255=\c@urrentcolumn \advance\count255 by -1 \relax + \dimen2 = \vcolumnsize + \multiply\dimen2 by \count255 + \advance\dimen0 by \dimen2 + \divide\dimen0 by \numcolumns + \message{ <<Estimated Balanced Column Size : \the\dimen0 >> } + \advance\dimen0 by -\b@alancevsize + \message{ <<Estimated Addition: \the\dimen0 >> } + } +\def\endmulticolumnformat{\global\m@ultistate =2 \relax + \a@ddbalcomp \ifb@alance\par\eject\else\ejectcolumn \fi + \endgroup \numberofcolumns =1 + \ifdim\vsize<\vinnerpagesize\relax + \hrule height0ptdepth0pt\fi } + % checks to see if new page + diff --git a/macros/inrstex/inrstex/multlang.tex b/macros/inrstex/inrstex/multlang.tex new file mode 100644 index 0000000000..d392568de3 --- /dev/null +++ b/macros/inrstex/inrstex/multlang.tex @@ -0,0 +1,26 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ====== Multiple Language Support ========= +% This is done via an internal change to TeX itself or through the +% introduction of a counter called \language. If Bilingual TeX exists, +% then \language has been defined. + +\ifundefined{language} \n@ewcount\language \language=0 \fi + +\def\englishversion{\input english \relax} +\def\versionfrancaise{\input francais \relax} + + + +%======= are some commands for << and >> in French ====== +% ======== can be made neater when we modify fonts +% \newcount\language % ..... this is necessary if NOT running Multilingual TeX +\language = 0 % 0-english 1-french ... +\def\d@qf{\raise .5ex\hbox{$\scriptscriptstyle{\langle\!\langle}$}\kern.25em} +\def\g@qf{\kern.25em\raise .5ex\hbox{$\scriptscriptstyle{\rangle\!\rangle}$}} +\def\ldq{\ifcase\language + \lq\lq \else\d@qf\fi} %changes < into `` in english +\def\rdq{\ifcase\language + \rq\rq\else\g@qf\fi} %changes > into '' in english
\ No newline at end of file diff --git a/macros/inrstex/inrstex/out_ps.tex b/macros/inrstex/inrstex/out_ps.tex new file mode 100644 index 0000000000..7bb12e215d --- /dev/null +++ b/macros/inrstex/inrstex/out_ps.tex @@ -0,0 +1,169 @@ +\catcode`@=11 +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% Fix on \firstcolumnoffset 11 May 87 ... MJF + + +% Compensate for 1 inch standard print offsets Sept. 1991 ... ugh! +\newdimen \hprintoffset +\newdimen \vprintoffset +\hprintoffset=1in +\vprintoffset=1in + + +% Postscript version with arbitrary page scaling/rotation + +% ======== INRSTeX Single/Multi Column Output Routine ======== +% This is the entire output routine for INRSTeX. It does both single and +% Multicolumn since there is a rather large repetition to do otherwise. + + + +%====== Debugging rules ======= +% These can be turned on to outline the page +%\def\testhrule{\hrule} +\let\testhrule = \relax +%\def\testvrule{\vrule} +\let\testvrule =\relax + + +% ====== single/multicolumn output routine + + + + +\def\tmessage#1{} +\output{\m@ultipleoutput} +\def\m@ultipleoutput{\tmessage{Multiout - ms:\the\m@ultistate- cc:\the\c@urrentcolumn - nc:\the\numcolumns} + \ifcase\m@ultistate % 0 - only state where shipout allowed + \addcolumn{\pagecontents}\relax + \global\advance\c@urrentcolumn by 1 \relax + \ifnum\c@urrentcolumn > \numcolumns + \finaloutput % in normal state + \fi + \or \s@etuprempage % 1 - into - always go this way + \or + \addcolumn{\pagecontents}\relax + \s@etuprempage % 2 - outof - clean up the current col and store + \fi + } + + +\def\s@etuprempage{ \global\setbox\t@opmultibox = + \vbox{\boxmaxdepth 0pt \offinterlineskip + \ifvoid\t@opmultibox \else \unvbox\t@opmultibox \fi + \ifvoid\topmulticolumnbox \else \unvbox\topmulticolumnbox\fi + \ifvoid\topins \else \unvbox\topins \fi + \ifcase\m@ultistate + \tmessage{TeX System Error - misplaced multistate -- \the\pageno} + \or \ifvoid255 \else \unvbox255 \fi % top of pag + \or \ifvoid\m@ulticolumnbox + \else \box\m@ulticolumnbox + \fi % multicol part page + \fi} + \global\setbox\b@otmultibox = + \vbox{ \boxmaxdepth \maxdepth \offinterlineskip + \ifvoid\footins + \else \vskip\skip\footins + \footnoterule + \unvbox\footins + \fi + \ifvoid\botmulticolumnbox + \else \unvbox\botmulticolumnbox + \fi} + \ifb@alance \advance\parskip by 0pt plus 0pt minus 0pt \fi + \ifnum\m@ultistate=2 + \global\b@alancevsize=\vinnerpagesize + \global\numcolumns = 1 + \global\b@alancefalse + \fi + \c@omputevsize + \tmessage{Rempage: ms:\the\m@ultistate- ip:\the\vinnerpagesize- hc:\the\vcolumnsize- + cc:\the\c@urrentcolumn- nc:\the\numcolumns} + \global\c@urrentcolumn= 1\global\m@ultistate=0 + \ifnum\vcolumnsize<\multicolpageshortfall \finaloutput \fi + } + + +\def\twoperpage{\xdef\l@page{0}\def\topPS{\ifnum\l@page=0 + \special{ps:: /EOP {} bdf gsave 576 0 translate 90 + rotate .7 .7 scale }\else + \special{ps:: /EOP {} bdf gsave 576 396 translate 90 + rotate .7 .7 scale }\fi } +\def\botPS{\ifnum\l@page=0 + \special{ps:: grestore }\xdef\l@page{1} + \else + \special{ps:: grestore showpage }\xdef\l@page{0}\fi } +\let\d@one=\done \def\done{\ejectpage\ifnum\l@page=1 \finalversion + \fullpagestyle \line{} \fi + \d@one}} + + +\newif\ifpageps \pagepsfalse + +\def\topPS{\ifpageps \t@opsc \fi} +\def\botPS{\ifpageps \b@otsc \fi} + +\def\showpage{showpage } +\def\pagescale htr:#1 vtr:#2 d:#3 hsc:#4 vsc:#5 { + \xdef\t@opsc{\special{ps:: /EOP {} bdf + gsave #1 #2 translate #3 rotate #4 #5 scale }} + \xdef\b@otsc{\special{ps:: grestore \showpage }}\global\pagepstrue } +\def\finaloutput{\shipout + \hbox{\topPS\leftmarginskip \hskip -\hprintoffset + \vbox to \vpapersize{\offinterlineskip % but boxes together + \vskip -\vprintoffset + \topmarginskip\testhrule + \m@akeheadertext\testhrule + \hbox{\hskip \firstcolumnoffset \relax \pagebody}\testhrule + \m@akefootertext\testhrule + \vfill + \ifproofmode \vbox to 0pt{\boxmaxdepth 0pt \vss + \hbox{\qquad \versionform}} \fi + \vfill + \vss}\botPS} + \tmessage{Final Out: ms:\the\m@ultistate- cc:\the\c@urrentcolumn- nc:\the\numcolumns} + \ifp@agenoadv \advancepageno \fi + \global\p@agenoadvtrue + \global\h@eadertype=\d@ocumentheader % default header style + \global\f@ootertype=\d@ocumentfooter % default footer style + \c@omputevsize + \ifb@alance \advance\parskip by 0pt plus 0pt minus 0pt \fi + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi + \global\c@urrentcolumn = 1 \global\m@ultistate=0} + +\def\addcolumn#1{\tmessage{addcol: ms:\the\m@ultistate- cc:\the\c@urrentcolumn- + nc:\the\numcolumns} + \global\setbox\m@ulticolumnbox = + \hbox{\ifvoid\m@ulticolumnbox + \else\unhbox\m@ulticolumnbox\the\intercolumnsep \fi + \testvrule\hbox to \hcolumnsize{\vbox to + \vcolumnsize{\boxmaxdepth\maxdepth #1}\hss}\testvrule} + } + +\newbox\i@nnerpagebox +\def\pagebody{\setbox\i@nnerpagebox = \vbox to\vinnerpagesize{\boxmaxdepth\maxdepth\offinterlineskip + \ifvoid\t@opmultibox \else\unvbox\t@opmultibox \fi + \ifvoid\m@ulticolumnbox \else\box\m@ulticolumnbox \fi + \ifvoid\b@otmultibox\else\unvbox\b@otmultibox \fi}\relax + \setbox2= \vbox to + \vinnerpagesize{\hsize\h@marginboxsize + \vskip 1cm + \unvbox\m@arginbox + \vss}\relax + \hbox{\box\i@nnerpagebox\box2}} + + +\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi + \unvbox\@cclv % open up \box255 + \ifvoid\footins\else % footnote info is present + \vfill + \vskip\skip\footins + \footnoterule + \unvbox\footins\fi + \ifr@ggedbottom\vfil\fi} + +\def\footnoterule{\kern-3\p@ + \hrule width .2\hcolumnsize \kern 2.6\p@} % the \hrule is .4pt high diff --git a/macros/inrstex/inrstex/pagsty.tex b/macros/inrstex/inrstex/pagsty.tex new file mode 100644 index 0000000000..6eb11e719e --- /dev/null +++ b/macros/inrstex/inrstex/pagsty.tex @@ -0,0 +1,177 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% =========== Document Styles, Page Numbering and Page Sizes ====== +% These are the macros for setting page sizes nad the various flags +% the header/footer styles + + + +% ============== Document Style ============= +% Such things as page sizes, header/footer fonts headers and footers should +% be active for an entire document. \documentstyle is defined so that the +% correct switches are in force to control the document. In addition +% a \setpagesizes causes any page size changes to be made. + +\newif\ifd@ocsty % switch for document style + +\def\documentstyle#1{\d@ocstytrue + #1\setpagesizes\d@ocstyfalse} +% this is not done inside a group because the various assignments cannot be +% defined global + +% The switch \d@ocsty is used in to control the locality of the +% various page styles. + + + + + +%====== page numbering ========== +\newif\ifp@agenoadv % determines whether to advance the page number +\def\nopagenumberadvance{\p@agenoadvfalse} % lasts for one page +\p@agenoadvtrue % defaults to advanceing on first page +\def\n@egpagno{\global\multiply\pageno by -1 \relax} +\def\romanpagenumber{\afterassignment\n@egpagno \global\pageno } +\def\pagenumber{\global\pageno } + + + + + + +% ===== Macros for setting page sizes ====== +% Pages involve margins, headers, footers, and column sizes. +% These set the styles and flags for single and multicolumn. + +% ======= dimensions for pages headers etc ====== +% the simple output fixes the header and footer size but allows +% for the header and footer to be killed as required. +\newdimen\hpapersize %\hpapersize= 8.5in +\newdimen\vpapersize %\vpapersize= 11.5in +\newdimen\vouterpagesize +\newdimen\houterpagesize +\newdimen\vinnerpagesize +\newdimen\hinnerpagesize +\newdimen\hcolumnsize +\newdimen\vcolumnsize +\newdimen\topmarginsize +\newdimen\leftmarginsize +\newdimen\vheadersize +\newdimen\vfootersize + +% ===== Historical compatibilities ===== +\let\leftmargin=\leftmarginsize +\let\topmargin=\topmarginsize + +% ===== Margin Macros ====== +\def\leftmarginskip{\hskip \leftmarginsize} +\def\topmarginskip{\vskip \topmarginsize} + +%======= page style forms ====== + +\newcount\p@agetype \p@agetype=2 %normal ... not used +\newcount\h@eadertype \h@eadertype=2 %normal +\newcount\f@ootertype \f@ootertype=2 %normal + + +% ----- General forms for multicolumn ------- +\def\c@ompvinnersize{\dimen0 = \vouterpagesize + \ifcase\h@eadertype \relax % delete header + \else \advance \dimen0 by -\vheadersize \fi + \ifcase\f@ootertype \relax % delete footer + \else \advance\dimen0 by -\vfootersize \fi + \global\vinnerpagesize = \dimen0 + \ifb@alance \global\vcolumnsize = \b@alancevsize + \else + \advance\dimen0 by -\ht\t@opmultibox + \advance\dimen0 by -\ht\b@otmultibox \relax +\tmessage{Vcolsize - vc:\the\dimen0 - vt:\the\ht\t@opmultibox - vb:\the\ht\b@otmultibox - bs:\the\b@alancevsize - } + \global\vcolumnsize=\dimen0 + \fi} + +\def\s@etvsize{\global\vsize=\vcolumnsize} + +% columnsize = (hinnerpagsize - (numcols-1)intercol)/numcol + +\def\c@omphinnersize{\dimen0 = \houterpagesize + \advance\dimen0 by -\firstcolumnoffset + \advance\dimen0 by -\firstcolumnoffset \relax + \global\hinnerpagesize = \dimen0} + +\def\s@ethsize{\setbox0=\hbox{\the\intercolumnsep} + \dimen0= \numcolumns\wd0 %\the\dimen0 + \advance\dimen0 by -\wd0 %\the\dimen0 + \dimen2 = \hinnerpagesize %\the\dimen2 + \advance\dimen2 by -\dimen0 %\the\dimen0 + \divide\dimen2 by \numcolumns \relax + \global\hcolumnsize = \dimen2 + \global\hsize = \hcolumnsize} +\def\c@omputevsize{\c@ompvinnersize\s@etvsize} +\def\c@omputehsize{\c@omphinnersize\s@ethsize} +\def\setpagesizes{\c@omputevsize \c@omputehsize} + + + +% ==== headers, footers, pagestyles ======== + + +\newtoks\h@eaderline \newtoks\headertext \newtoks\specialheadertext +\long\def\h@eaderform {\vbox to \vheadersize + {\hsize\houterpagesize \headerfont + \testhrule + \the\h@eaderline\par\vfil\testhrule}\relax} + +\newtoks\f@ooterline \newtoks\footertext \newtoks\specialfootertext +\long\def\f@ooterform{ \vbox to \vfootersize + {\hsize\houterpagesize \footerfont + \testhrule + \vfil + \the\f@ooterline\par\testhrule}\relax} +\def\m@akeheadertext{\ifcase\h@eadertype \relax % deleted + \or \vskip \vheadersize % blanked + \or \let\h@eaderline = \headertext \h@eaderform + \or \let\h@eaderline = \specialheadertext + \h@eaderform \fi + } +\def\m@akefootertext{\ifcase\f@ootertype \relax % deleted + \or \vskip \vfootersize % blanked + \or \let\f@ooterline=\footertext \f@ooterform + \or \let\f@ooterline=\specialfootertext + \f@ooterform \fi + } + +%=== these last only for one page and are reset by output routine ==== +\def\blankheaderstyle{\global\h@eadertype = 1 + \ifd@ocsty \global\d@ocumentheader = 1 \fi\c@omputevsize} +\def\normalheaderstyle{\global\h@eadertype= 2 + \ifd@ocsty \global\d@ocumentheader = 2 \fi\c@omputevsize} +\def\noheaderstyle{\global\h@eadertype =0 + \ifd@ocsty \global\d@ocumentheader = 0 \fi\c@omputevsize} +\def\blankfooterstyle{\global\f@ootertype = 1 + \ifd@ocsty \global\d@ocumentfooter = 1 \fi\c@omputevsize} +\def\normalfooterstyle{\global\f@ootertype =2 + \ifd@ocsty \global\d@ocumentfooter = 2 \fi\c@omputevsize} +\def\nofooterstyle{\global\f@ootertype =0 + \ifd@ocsty \global\d@ocumentfooter = 0 \fi\c@omputevsize} +\let\specialheaderstyle=\normalheaderstyle % default +\let\specialfooterstyle=\normalfooterstyle % default + +% ----- some convenient combinations ----- +\def\titlepagestyle{\global\p@agetype=1 \blankheaderstyle + \blankfooterstyle} +\def\normalpagestyle{\global\p@agetype =2 \normalheaderstyle + \normalfooterstyle} + +\def\specialpagestyle{\global\p@agetype =2 \specialheaderstyle + \specialfooterstyle} +\def\fullpagestyle{\global\p@agetype =0 \noheaderstyle + \nofooterstyle} + + + + +% ======== #1 is one of \<...>style --- reset values for output routine +\newcount\d@ocumentheader +\newcount\d@ocumentfooter diff --git a/macros/inrstex/inrstex/papersty.tex b/macros/inrstex/inrstex/papersty.tex new file mode 100644 index 0000000000..417aafcdad --- /dev/null +++ b/macros/inrstex/inrstex/papersty.tex @@ -0,0 +1,19 @@ +% see english.tex and francais.tex for messages +\def\paperstyle{\documentstyle{\vouterpagesize = 9.25in + \houterpagesize = 6.0in + \topmargin = 1in + \leftmargin = 1.25in + \vheadersize = 0pt + \vfootersize = .35in + \headertext{} \specialheadertext{} + \footertext{\centerline{- \folio\ -}} + \let\specialfootertext = \footertext + \leftskip=0pt + \rightskip=0pt + \tenpoint + \noheaderstyle + \normalfooterstyle + \numberbysection + \specialnumberscontinuous}} + +\paperstyle
\ No newline at end of file diff --git a/macros/inrstex/inrstex/plain_nh.tex b/macros/inrstex/inrstex/plain_nh.tex new file mode 100644 index 0000000000..c56ad4a3b0 --- /dev/null +++ b/macros/inrstex/inrstex/plain_nh.tex @@ -0,0 +1,1220 @@ +% This is the plain TeX format that's described in The TeXbook. +% N.B.: A version number is defined at the very end of this file; +% please change that number whenever the file is modified! +% And don't modify the file under any circumstances. + +\catcode`\{=1 % left brace is begin-group character +\catcode`\}=2 % right brace is end-group character +\catcode`\$=3 % dollar sign is math shift +\catcode`\&=4 % ampersand is alignment tab +\catcode`\#=6 % hash mark is macro parameter character +\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts +\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts +\catcode`\^^I=10 % ascii tab is a blank space +\chardef\active=13 \catcode`\~=\active % tilde is active +\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" + +\message{Preloading the plain format: codes,} + +% We had to define the \catcodes right away, before the message line, +% since \message uses the { and } characters. +% When INITEX (the TeX initializer) starts up, +% it has defined the following \catcode values: +% \catcode`\^^@=9 % ascii null is ignored +% \catcode`\^^M=5 % ascii return is end-line +% \catcode`\\=0 % backslash is TeX escape character +% \catcode`\%=14 % percent sign is comment character +% \catcode`\ =10 % ascii space is blank space +% \catcode`\^^?=15 % ascii delete is invalid +% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters +% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters +% all others are type 12 (other) + +% Here is a list of the characters that have been specially catcoded: +\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} +% (not counting ascii null, tab, linefeed, formfeed, return, delete) +% Each symbol in the list is preceded by \do, which can be defined +% if you want to do something to every item in the list. + +% We make @ signs act like letters, temporarily, to avoid conflict +% between user names and internal control sequences of plain format. +\catcode`@=11 + +% INITEX sets up \mathcode x=x, for x=0..127, except that +% \mathcode x=x+"7100, for x = `A to `Z and `a to `z; +% \mathcode x=x+"7000, for x = `0 to `9. +% The following changes define internal codes as recommended +% in Appendix C of The TeXbook: +\mathcode`\^^@="2201 % \cdot +\mathcode`\^^A="3223 % \downarrow +\mathcode`\^^B="010B % \alpha +\mathcode`\^^C="010C % \beta +\mathcode`\^^D="225E % \land +\mathcode`\^^E="023A % \lnot +\mathcode`\^^F="3232 % \in +\mathcode`\^^G="0119 % \pi +\mathcode`\^^H="0115 % \lambda +\mathcode`\^^I="010D % \gamma +\mathcode`\^^J="010E % \delta +\mathcode`\^^K="3222 % \uparrow +\mathcode`\^^L="2206 % \pm +\mathcode`\^^M="2208 % \oplus +\mathcode`\^^N="0231 % \infty +\mathcode`\^^O="0140 % \partial +\mathcode`\^^P="321A % \subset +\mathcode`\^^Q="321B % \supset +\mathcode`\^^R="225C % \cap +\mathcode`\^^S="225B % \cup +\mathcode`\^^T="0238 % \forall +\mathcode`\^^U="0239 % \exists +\mathcode`\^^V="220A % \otimes +\mathcode`\^^W="3224 % \leftrightarrow +\mathcode`\^^X="3220 % \leftarrow +\mathcode`\^^Y="3221 % \rightarrow +\mathcode`\^^Z="8000 % \ne +\mathcode`\^^[="2205 % \diamond +\mathcode`\^^\="3214 % \le +\mathcode`\^^]="3215 % \ge +\mathcode`\^^^="3211 % \equiv +\mathcode`\^^_="225F % \lor +\mathcode`\ ="8000 % \space +\mathcode`\!="5021 +\mathcode`\'="8000 % ^\prime +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\,="613B +\mathcode`\-="2200 +\mathcode`\.="013A +\mathcode`\/="013D +\mathcode`\:="303A +\mathcode`\;="603B +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\>="313E +\mathcode`\?="503F +\mathcode`\[="405B +\mathcode`\\="026E % \backslash +\mathcode`\]="505D +\mathcode`\_="8000 % \_ +\mathcode`\{="4266 +\mathcode`\|="026A +\mathcode`\}="5267 +\mathcode`\^^?="1273 % \smallint + +% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, +% and \lccode`x=`x, \lccode`X=`x; all other values are zero. +% No changes to those tables are needed in plain TeX format. + +% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 +% for uppercase letters. The following changes are needed: +\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 +% The \nonfrenchspacing macro will make further changes to \sfcode values. + +% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\/="02F30E +\delcode`\|="26A30C +\delcode`\\="26E30F +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +% To make the plain macros more efficient in time and space, +% several constant values are declared here as control sequences. +% If they were changed, anything could happen; so they are private symbols. +\chardef\@ne=1 +\chardef\tw@=2 +\chardef\thr@@=3 +\chardef\sixt@@n=16 +\chardef\@cclv=255 +\mathchardef\@cclvi=256 +\mathchardef\@m=1000 +\mathchardef\@M=10000 +\mathchardef\@MM=20000 + +% Allocation of registers + +% Here are macros for the automatic allocation of \count, \box, \dimen, +% \skip, \muskip, and \toks registers, as well as \read and \write +% stream numbers, \fam codes, and \insert numbers. + +\message{registers,} + +% When a register is used only temporarily, it need not be allocated; +% grouping can be used, making the value previously in the register return +% after the close of the group. The main use of these macros is for +% registers that are defined by one macro and used by others, possibly at +% different nesting levels. All such registers should be defined through +% these macros; otherwise conflicts may occur, especially when two or more +% more macro packages are being used at once. + +% The following counters are reserved: +% 0 to 9 page numbering +% 10 count allocation +% 11 dimen allocation +% 12 skip allocation +% 13 muskip allocation +% 14 box allocation +% 15 toks allocation +% 16 read file allocation +% 17 write file allocation +% 18 math family allocation +% 19 insert allocation +% 20 the most recently allocated number +% 21 constant -1 +% New counters are allocated starting with 22, 23, etc. Other registers are +% allocated starting with 10. This leaves 0 through 9 for the user to play +% with safely, except that counts 0 to 9 are considered to be the page and +% subpage numbers (since they are displayed during output). In this scheme, +% \count 10 always contains the number of the highest-numbered counter that +% has been allocated, \count 14 the highest-numbered box, etc. +% Inserts are given numbers 254, 253, etc., since they require a \count, +% \dimen, \skip, and \box all with the same number; \count 19 contains the +% lowest-numbered insert that has been allocated. Of course, \box255 is +% reserved for \output; \count255, \dimen255, and \skip255 can be used freely. + +% It is recommends that macro designers always use +% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and +% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. +% This will prevent ``save stack buildup'' that might otherwise occur. + +\count10=21 % allocates \count registers 22, 23, ... +\count11=9 % allocates \dimen registers 10, 11, ... +\count12=9 % allocates \skip registers 10, 11, ... +\count13=9 % allocates \muskip registers 10, 11, ... +\count14=9 % allocates \box registers 10, 11, ... +\count15=9 % allocates \toks registers 10, 11, ... +\count16=-1 % allocates input streams 0, 1, ... +\count17=-1 % allocates output streams 0, 1, ... +\count18=3 % allocates math families 4, 5, ... +\count19=255 % allocates insertions 254, 253, ... +\countdef\insc@unt=19 % the insertion counter +\countdef\allocationnumber=20 % the most recent allocation +\countdef\m@ne=21 \m@ne=-1 % a handy constant +\def\wlog{\immediate\write\m@ne} % write on log file (only) + +% Here are abbreviations for the names of scratch registers +% that don't need to be allocated. + +\countdef\count@=255 +\dimendef\dimen@=0 +\dimendef\dimen@i=1 % global only +\dimendef\dimen@ii=2 +\skipdef\skip@=0 +\toksdef\toks@=0 + +% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo +% and \foo will be defined (with \countdef) to be the next counter. +% To find out which counter \foo is, you can look at \allocationnumber. +% Since there's no \boxdef command, \chardef is used to define a \newbox, +% \newinsert, \newfam, and so on. + +\outer\def\newcount{\alloc@0\count\countdef\insc@unt} +\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt} +\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} +\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} +\outer\def\newbox{\alloc@4\box\chardef\insc@unt} +\let\newtoks=\relax % we do this to allow plain.tex to be read in twice +\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} +\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} +\outer\def\newread{\alloc@6\read\chardef\sixt@@n} +\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} +\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} +\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne + \ch@ck#1#4#2% make sure there's still room + \allocationnumber=\count1#1% + \global#3#5=\allocationnumber + \wlog{\string#5=\string#2\the\allocationnumber}} +\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne + \ch@ck0\insc@unt\count + \ch@ck1\insc@unt\dimen + \ch@ck2\insc@unt\skip + \ch@ck4\insc@unt\box + \allocationnumber=\insc@unt + \global\chardef#1=\allocationnumber + \wlog{\string#1=\string\insert\the\allocationnumber}} +\def\ch@ck#1#2#3{\ifnum\count1#1<#2% + \else\errmessage{No room for a new #3}\fi} + +% Here are some examples of allocation. +\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen> +\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow +\newskip\centering \centering=0pt plus 1000pt minus 1000pt +\newdimen\p@ \p@=1pt % this saves macro space and time +\newdimen\z@ \z@=0pt % can be used both for 0pt and 0 +\newskip\z@skip \z@skip=0pt plus0pt minus0pt +\newbox\voidb@x % permanently void box register + +% And here's a different sort of allocation: +% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. +\outer\def\newif#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} +{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required + +% Assign initial values to TeX's parameters + +\message{parameters,} + +% All of TeX's numeric parameters are listed here, +% but the code is commented out if no special value needs to be set. +% INITEX makes all parameters zero except where noted. + +\pretolerance=100 +\tolerance=200 % INITEX sets this to 10000 +\hbadness=1000 +\vbadness=1000 +\linepenalty=10 +\hyphenpenalty=50 +\exhyphenpenalty=50 +\binoppenalty=700 +\relpenalty=500 +\clubpenalty=150 +\widowpenalty=150 +\displaywidowpenalty=50 +\brokenpenalty=100 +\predisplaypenalty=10000 +% \postdisplaypenalty=0 +% \interlinepenalty=0 +% \floatingpenalty=0, set during \insert +% \outputpenalty=0, set before TeX enters \output +\doublehyphendemerits=10000 +\finalhyphendemerits=5000 +\adjdemerits=10000 +% \looseness=0, cleared by TeX after each paragraph +% \pausing=0 +% \tracingonline=0 +% \tracingmacros=0 +% \tracingstats=0 +% \tracingparagraphs=0 +% \tracingpages=0 +% \tracingoutput=0 +\tracinglostchars=1 +% \tracingcommands=0 +% \tracingrestores=0 +\uchyph=1 +% \globaldefs=0 +% \maxdeadcycles=25 % INITEX does this +% \hangafter=1 % INITEX does this, also TeX after each paragraph +% \fam=0 +% \mag=1000 % INITEX does this +% \escapechar=`\\ % INITEX does this +\defaulthyphenchar=`\- +\defaultskewchar=-1 +% \endlinechar=`\^^M % INITEX does this +\newlinechar=-1 +\delimiterfactor=901 +% \time=now % TeX does this at beginning of job +% \day=now % TeX does this at beginning of job +% \month=now % TeX does this at beginning of job +% \year=now % TeX does this at beginning of job +\showboxbreadth=5 +\showboxdepth=3 + +\hfuzz=0.1pt +\vfuzz=0.1pt +\overfullrule=5pt +\hsize=6.5in +\vsize=8.9in +\maxdepth=4pt +\splitmaxdepth=\maxdimen +\boxmaxdepth=\maxdimen +% \lineskiplimit=0pt, changed by \normalbaselines +\delimitershortfall=5pt +\nulldelimiterspace=1.2pt +\scriptspace=0.5pt +% \mathsurround=0pt +% \predisplaysize=0pt, set before TeX enters $$ +% \displaywidth=0pt, set before TeX enters $$ +% \displayindent=0pt, set before TeX enters $$ +\parindent=20pt +% \hangindent=0pt, zeroed by TeX after each paragraph +% \hoffset=0pt +% \voffset=0pt + +% \baselineskip=0pt, changed by \normalbaselines +% \lineskip=0pt, changed by \normalbaselines +\parskip=0pt plus 1pt +\abovedisplayskip=12pt plus 3pt minus 9pt +\abovedisplayshortskip=0pt plus 3pt +\belowdisplayskip=12pt plus 3pt minus 9pt +\belowdisplayshortskip=7pt plus 3pt minus 4pt +% \leftskip=0pt +% \rightskip=0pt +\topskip=10pt +\splittopskip=10pt +% \tabskip=0pt +% \spaceskip=0pt +% \xspaceskip=0pt +\parfillskip=0pt plus 1fil + +\thinmuskip=3mu +\medmuskip=4mu plus 2mu minus 4mu +\thickmuskip=5mu plus 5mu + +% We also define special registers that function like parameters: +\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt +\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt +\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt +\newskip\normalbaselineskip \normalbaselineskip=12pt +\newskip\normallineskip \normallineskip=1pt +\newdimen\normallineskiplimit \normallineskiplimit=0pt +\newdimen\jot \jot=3pt +\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 +\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 + +% Definitions for preloaded fonts + +\def\magstephalf{1095 } +\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax} + +% Fonts assigned to \preloaded are not part of "plain TeX", +% but they are preloaded so that other format packages can use them. +% For example, if another set of macros says "\font\ninerm=cmr9", +% TeX will not have to reload the font metric information for cmr9. + +\message{fonts,} + +\font\tenrm=cmr10 % roman text +\font\preloaded=cmr9 +\font\preloaded=cmr8 +\font\sevenrm=cmr7 +\font\preloaded=cmr6 +\font\fiverm=cmr5 + +\font\teni=cmmi10 % math italic +\font\preloaded=cmmi9 +\font\preloaded=cmmi8 +\font\seveni=cmmi7 +\font\preloaded=cmmi6 +\font\fivei=cmmi5 + +\font\tensy=cmsy10 % math symbols +\font\preloaded=cmsy9 +\font\preloaded=cmsy8 +\font\sevensy=cmsy7 +\font\preloaded=cmsy6 +\font\fivesy=cmsy5 + +\font\tenex=cmex10 % math extension + +\font\preloaded=cmss10 % sans serif +\font\preloaded=cmssq8 + +\font\preloaded=cmssi10 % sans serif italic +\font\preloaded=cmssqi8 + +\font\tenbf=cmbx10 % boldface extended +\font\preloaded=cmbx9 +\font\preloaded=cmbx8 +\font\sevenbf=cmbx7 +\font\preloaded=cmbx6 +\font\fivebf=cmbx5 + +\font\tentt=cmtt10 % typewriter +\font\preloaded=cmtt9 +\font\preloaded=cmtt8 + +\font\preloaded=cmsltt10 % slanted typewriter + +\font\tensl=cmsl10 % slanted roman +\font\preloaded=cmsl9 +\font\preloaded=cmsl8 + +\font\tenit=cmti10 % text italic +\font\preloaded=cmti9 +\font\preloaded=cmti8 +\font\preloaded=cmti7 + +\message{more fonts,} +\font\preloaded=cmu10 % unslanted text italic + +\font\preloaded=cmmib10 % bold math italic +\font\preloaded=cmbsy10 % bold math symbols + +\font\preloaded=cmcsc10 % caps and small caps + +\font\preloaded=cmssbx10 % sans serif bold extended + +\font\preloaded=cmdunh10 % Dunhill style + +\font\preloaded=cmr7 scaled \magstep4 % for titles +\font\preloaded=cmtt10 scaled \magstep2 +\font\preloaded=cmssbx10 scaled \magstep2 + +% \font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols +\font\preloaded=logo10 % METAFONT logo and dragon curve and special symbols ?? + +% Additional \preloaded fonts can be specified here. +% (And those that were \preloaded above can be eliminated.) + +\let\preloaded=\undefined % preloaded fonts must be declared anew later. + +\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 +\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 + +\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm +\def\rm{\fam\z@\tenrm} +\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei +\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} +\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy +\def\cal{\fam\tw@} +\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex +\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4 +\textfont\itfam=\tenit +\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5 +\textfont\slfam=\tensl +\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6 +\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf +\scriptscriptfont\bffam=\fivebf +\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7 +\textfont\ttfam=\tentt + +% Macros for setting ordinary text +\message{macros,} + +\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m + \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} +\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } + +\def\normalbaselines{\lineskip\normallineskip + \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} + +\def\^^M{\ } % control <return> = control <space> +\def\^^I{\ } % same for <tab> + +\def\lq{`} \def\rq{'} +\def\lbrack{[} \def\rbrack{]} + +\let\endgraf=\par \let\endline=\cr + +\def\space{ } +\def\empty{} +\def\null{\hbox{}} + +\let\bgroup={ \let\egroup=} + +% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' +% since this allows, for example, `\let\par=\cr \obeylines \halign{...' +{\catcode`\^^M=\active % these lines must end with % + \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% + \global\let^^M\par} % this is in case ^^M appears in a \write +\def\obeyspaces{\catcode`\ \active} +{\obeyspaces\global\let =\space} + +\def\loop#1\repeat{\def\body{#1}\iterate} +\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} +\let\repeat=\fi % this makes \loop...\if...\repeat skippable + +\def\thinspace{\kern .16667em } +\def\negthinspace{\kern-.16667em } +\def\enspace{\kern.5em } + +\def\enskip{\hskip.5em\relax} +\def\quad{\hskip1em\relax} +\def\qquad{\hskip2em\relax} + +\def\smallskip{\vskip\smallskipamount} +\def\medskip{\vskip\medskipamount} +\def\bigskip{\vskip\bigskipamount} + +\def\nointerlineskip{\prevdepth-1000\p@} +\def\offinterlineskip{\baselineskip-1000\p@ + \lineskip\z@ \lineskiplimit\maxdimen} + +\def\vglue{\afterassignment\vgl@\skip@=} +\def\vgl@{\par \dimen@\prevdepth \hrule height\z@ + \nobreak\vskip\skip@ \prevdepth\dimen@} +\def\hglue{\afterassignment\hgl@\skip@=} +\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ + \nobreak\hskip\skip@ \spacefactor\count@} + +\def~{\penalty\@M \ } % tie +\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' + +\def\break{\penalty-\@M} +\def\nobreak{\penalty \@M} +\def\allowbreak{\penalty \z@} + +\def\filbreak{\par\vfil\penalty-200\vfilneg} +\def\goodbreak{\par\penalty-500 } +\def\eject{\par\break} +\def\supereject{\par\penalty-\@MM} + +\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} +\def\smallbreak{\par\ifdim\lastskip<\smallskipamount + \removelastskip\penalty-50\smallskip\fi} +\def\medbreak{\par\ifdim\lastskip<\medskipamount + \removelastskip\penalty-100\medskip\fi} +\def\bigbreak{\par\ifdim\lastskip<\bigskipamount + \removelastskip\penalty-200\bigskip\fi} + +\def\line{\hbox to\hsize} +\def\leftline#1{\line{#1\hss}} +\def\rightline#1{\line{\hss#1}} +\def\centerline#1{\line{\hss#1\hss}} + +\def\rlap#1{\hbox to\z@{#1\hss}} +\def\llap#1{\hbox to\z@{\hss#1}} + +\def\m@th{\mathsurround=\z@} +\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ + \m@th \underline{\box\z@}$} + +\newbox\strutbox +\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} +\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} + +\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out +\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign +\newcount\mscount +\def\multispan#1{\omit \mscount#1 + \loop\ifnum\mscount>\@ne \sp@n\repeat} +\def\sp@n{\span\omit\advance\mscount\m@ne} + +\newif\ifus@ \newif\if@cr +\newbox\tabs \newbox\tabsyet \newbox\tabsdone + +\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} +\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} +\let\+=\relax % in case this file is being read in twice +\def\sett@b{\ifx\next\+\let\next\relax + \def\next{\afterassignment\s@tt@b\let\next}% + \else\let\next\s@tcols\fi\next} +\def\s@tt@b{\let\next\relax\us@false\m@ketabbox} +\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ +\outer\def\+{\tabalign} +\def\s@tcols#1\columns{\count@#1 \dimen@\hsize + \loop\ifnum\count@>\z@ \@nother \repeat} +\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ + \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% + \advance\dimen@-\dimen@ii \advance\count@\m@ne} + +\def\m@ketabbox{\begingroup + \global\setbox\tabsyet\copy\tabs + \global\setbox\tabsdone\null + \def\cr{\@crtrue\crcr\egroup\egroup + \ifus@\unvbox\z@\lastbox\fi\endgroup + \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% + \setbox\z@\vbox\bgroup\@crfalse + \ialign\bgroup&\t@bbox##\t@bb@x\crcr} + +\def\t@bbox{\setbox\z@\hbox\bgroup} +\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column + \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet + \global\setbox\@ne\lastbox}% now \box\@ne holds its size + \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% + \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi + \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi + \box\z@} + +\def\hang{\hangindent\parindent} +\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} +\def\item{\par\hang\textindent} +\def\itemitem{\par\indent \hangindent2\parindent \textindent} +\def\narrower{\advance\leftskip\parindent + \advance\rightskip\parindent} + +\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250 + \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip + \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent} +\outer\def\proclaim #1. #2\par{\medbreak + \noindent{\bf#1.\enspace}{\sl#2}\par + \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} + +\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em } +\def\ttraggedright{\tt\rightskip\z@ plus2em } % for use with \tt only + +\chardef\%=`\% +\chardef\&=`\& +\chardef\#=`\# +\chardef\$=`\$ +\chardef\ss="19 +\chardef\ae="1A +\chardef\oe="1B +\chardef\o="1C +\chardef\AE="1D +\chardef\OE="1E +\chardef\O="1F +\chardef\i="10 \chardef\j="11 % dotless letters +\def\aa{\accent23a} +\def\l{\char32l} +\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} + +\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} +\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% + \rlap{\raise.67\dimen@\hbox{\char'27}}A} + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} + +\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% + \ialign{##\crcr#1\crcr}}} % put characters over each other +\def\ooalign{\lineskiplimit-\maxdimen \oalign} +\def\d#1{\oalign{#1\crcr\hidewidth.\hidewidth}} +\def\b#1{\oalign{#1\crcr\hidewidth + \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}} +\def\c#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% + \else{\ooalign{\hidewidth\char24\hidewidth\crcr\unhbox\z@}}\fi} +\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} + +\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi} +\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} + +\def\`#1{{\accent18 #1}} +\def\'#1{{\accent19 #1}} +\def\v#1{{\accent20 #1}} \let\^^_=\v +\def\u#1{{\accent21 #1}} \let\^^S=\u +\def\=#1{{\accent22 #1}} +\def\^#1{{\accent94 #1}} \let\^^D=\^ +\def\.#1{{\accent95 #1}} +\def\H#1{{\accent"7D #1}} +\def\~#1{{\accent"7E #1}} +\def\"#1{{\accent"7F #1}} +\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} + +\def\hrulefill{\leaders\hrule\hfill} +\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill} +\def\rightarrowfill{$\m@th\mathord-\mkern-6mu% + \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} +\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% + \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill + \mkern-6mu\mathord-$} +\mathchardef\braceld="37A \mathchardef\bracerd="37B +\mathchardef\bracelu="37C \mathchardef\braceru="37D +\def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru + \bracelu\leaders\vrule\hfill\bracerd$} +\def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd + \braceld\leaders\vrule\hfill\braceru$} + +\outer\def\bye{\par\vfill\supereject\end} + +% Macros for math setting +\message{math definitions,} + +\let\sp=^ \let\sb=_ +\def\,{\mskip\thinmuskip} +\def\>{\mskip\medmuskip} +\def\;{\mskip\thickmuskip} +\def\!{\mskip-\thinmuskip} +\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} +{\catcode`\'=\active \gdef'{^\bgroup\prim@s}} +\def\prim@s{\prime\futurelet\next\pr@m@s} +\def\pr@m@s{\ifx'\next\let\next\pr@@@s \else\ifx^\next\let\next\pr@@@t + \else\let\next\egroup\fi\fi \next} +\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} +{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math +{\catcode`\_=\active \let_=\_} % _ is like \_ if not used for subscripts + +\mathchardef\alpha="010B +\mathchardef\beta="010C +\mathchardef\gamma="010D +\mathchardef\delta="010E +\mathchardef\epsilon="010F +\mathchardef\zeta="0110 +\mathchardef\eta="0111 +\mathchardef\theta="0112 +\mathchardef\iota="0113 +\mathchardef\kappa="0114 +\mathchardef\lambda="0115 +\mathchardef\mu="0116 +\mathchardef\nu="0117 +\mathchardef\xi="0118 +\mathchardef\pi="0119 +\mathchardef\rho="011A +\mathchardef\sigma="011B +\mathchardef\tau="011C +\mathchardef\upsilon="011D +\mathchardef\phi="011E +\mathchardef\chi="011F +\mathchardef\psi="0120 +\mathchardef\omega="0121 +\mathchardef\varepsilon="0122 +\mathchardef\vartheta="0123 +\mathchardef\varpi="0124 +\mathchardef\varrho="0125 +\mathchardef\varsigma="0126 +\mathchardef\varphi="0127 +\mathchardef\Gamma="7000 +\mathchardef\Delta="7001 +\mathchardef\Theta="7002 +\mathchardef\Lambda="7003 +\mathchardef\Xi="7004 +\mathchardef\Pi="7005 +\mathchardef\Sigma="7006 +\mathchardef\Upsilon="7007 +\mathchardef\Phi="7008 +\mathchardef\Psi="7009 +\mathchardef\Omega="700A + +\mathchardef\aleph="0240 +\def\hbar{{\mathchar'26\mkern-9muh}} +\mathchardef\imath="017B +\mathchardef\jmath="017C +\mathchardef\ell="0160 +\mathchardef\wp="017D +\mathchardef\Re="023C +\mathchardef\Im="023D +\mathchardef\partial="0140 +\mathchardef\infty="0231 +\mathchardef\prime="0230 +\mathchardef\emptyset="023B +\mathchardef\nabla="0272 +\def\surd{{\mathchar"1270}} +\mathchardef\top="023E +\mathchardef\bot="023F +\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr + \not\mathrel{\mkern14mu}\crcr + \noalign{\nointerlineskip} + \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} +\mathchardef\triangle="0234 +\mathchardef\forall="0238 +\mathchardef\exists="0239 +\mathchardef\neg="023A \let\lnot=\neg +\mathchardef\flat="015B +\mathchardef\natural="015C +\mathchardef\sharp="015D +\mathchardef\clubsuit="027C +\mathchardef\diamondsuit="027D +\mathchardef\heartsuit="027E +\mathchardef\spadesuit="027F + +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 + +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F + +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\def\neq{\not=} \let\ne=\neq +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\subset="321A +\mathchardef\supseteq="3213 +\mathchardef\subseteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B + +\def\joinrel{\mathrel{\mkern-3mu}} +\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + +\def\Relbar{\mathrel=} +\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} +\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} +\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} +\def\models{\mathrel|\joinrel=} +\def\Longrightarrow{\Relbar\joinrel\Rightarrow} +\def\longrightarrow{\relbar\joinrel\rightarrow} +\def\longleftarrow{\leftarrow\joinrel\relbar} +\def\Longleftarrow{\Leftarrow\joinrel\Relbar} +\def\longmapsto{\mapstochar\longrightarrow} +\def\longleftrightarrow{\leftarrow\joinrel\rightarrow} +\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} +\def\iff{\;\Longleftrightarrow\;} + +\mathchardef\ldotp="602E % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\def\ldots{\mathinner{\ldotp\ldotp\ldotp}} +\def\cdots{\mathinner{\cdotp\cdotp\cdotp}} +\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ + \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} +\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu + \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} + +\def\acute{\mathaccent"7013 } +\def\grave{\mathaccent"7012 } +\def\ddot{\mathaccent"707F } +\def\tilde{\mathaccent"707E } +\def\bar{\mathaccent"7016 } +\def\breve{\mathaccent"7015 } +\def\check{\mathaccent"7014 } +\def\hat{\mathaccent"705E } +\def\vec{\mathaccent"017E } +\def\dot{\mathaccent"705F } +\def\widetilde{\mathaccent"0365 } +\def\widehat{\mathaccent"0362 } +\def\overrightarrow#1{\vbox{\ialign{##\crcr + \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}} +\def\overleftarrow#1{\vbox{\ialign{##\crcr + \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}} +\def\overbrace#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@} + \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} +\def\underbrace#1{\mathop{\vtop{\ialign{##\crcr + $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} + \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} +\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}} + +\def\lmoustache{\delimiter"4000340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"5000341 } % top from ), bottom from ( +\def\lgroup{\delimiter"400033A } % extensible ( with sharper tips +\def\rgroup{\delimiter"500033B } % extensible ) with sharper tips +\def\arrowvert{\delimiter"33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"33D } % double arrow without arrowheads +\def\bracevert{\delimiter"33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert +\def\vert{\delimiter"26A30C } +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } + +\def\bigl{\mathopen\big} +\def\bigm{\mathrel\big} +\def\bigr{\mathclose\big} +\def\Bigl{\mathopen\Big} +\def\Bigm{\mathrel\Big} +\def\Bigr{\mathclose\Big} +\def\biggl{\mathopen\bigg} +\def\biggm{\mathrel\bigg} +\def\biggr{\mathclose\bigg} +\def\Biggl{\mathopen\Bigg} +\def\Biggm{\mathrel\Bigg} +\def\Biggr{\mathclose\Bigg} +\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} +\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} +\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} +\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} +\def\n@space{\nulldelimiterspace\z@ \m@th} + +\def\choose{\atopwithdelims()} +\def\brack{\atopwithdelims[]} +\def\brace{\atopwithdelims\{\}} + +\def\sqrt{\radical"270370 } + +\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% + {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} +\newbox\rootbox +\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} + \mathpalette\r@@t} +\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} + \dimen@\ht\z@ \advance\dimen@-\dp\z@ + \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} +\newif\ifv@ \newif\ifh@ +\def\vphantom{\v@true\h@false\ph@nt} +\def\hphantom{\v@false\h@true\ph@nt} +\def\phantom{\v@true\h@true\ph@nt} +\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% + \else\let\next\makeph@nt\fi\next} +\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} +\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} +\def\finph@nt{\setbox\tw@\null + \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi + \ifh@ \wd\tw@\wd\z@\fi \box\tw@} +\def\mathstrut{\vphantom(} +\def\smash{\relax % \relax, in case this comes first in \halign + \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh + \fi\next} +\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} +\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} +\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} + +\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign +\def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@ + \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} +\def\notin{\mathrel{\mathpalette\c@ncel\in}} +\def\c@ncel#1#2{\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} +\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} +\def\rlh@#1{\vcenter{\hbox{\ooalign{\raise2pt + \hbox{$#1\rightharpoonup$}\crcr + $#1\leftharpoondown$}}}} +\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} +\def\doteq{\buildrel\textstyle.\over=} + +\def\log{\mathop{\rm log}\nolimits} +\def\lg{\mathop{\rm lg}\nolimits} +\def\ln{\mathop{\rm ln}\nolimits} +\def\lim{\mathop{\rm lim}} +\def\limsup{\mathop{\rm lim\,sup}} +\def\liminf{\mathop{\rm lim\,inf}} +\def\sin{\mathop{\rm sin}\nolimits} +\def\arcsin{\mathop{\rm arcsin}\nolimits} +\def\sinh{\mathop{\rm sinh}\nolimits} +\def\cos{\mathop{\rm cos}\nolimits} +\def\arccos{\mathop{\rm arccos}\nolimits} +\def\cosh{\mathop{\rm cosh}\nolimits} +\def\tan{\mathop{\rm tan}\nolimits} +\def\arctan{\mathop{\rm arctan}\nolimits} +\def\tanh{\mathop{\rm tanh}\nolimits} +\def\cot{\mathop{\rm cot}\nolimits} +\def\coth{\mathop{\rm coth}\nolimits} +\def\sec{\mathop{\rm sec}\nolimits} +\def\csc{\mathop{\rm csc}\nolimits} +\def\max{\mathop{\rm max}} +\def\min{\mathop{\rm min}} +\def\sup{\mathop{\rm sup}} +\def\inf{\mathop{\rm inf}} +\def\arg{\mathop{\rm arg}\nolimits} +\def\ker{\mathop{\rm ker}\nolimits} +\def\dim{\mathop{\rm dim}\nolimits} +\def\hom{\mathop{\rm hom}\nolimits} +\def\det{\mathop{\rm det}} +\def\exp{\mathop{\rm exp}\nolimits} +\def\Pr{\mathop{\rm Pr}} +\def\gcd{\mathop{\rm gcd}} +\def\deg{\mathop{\rm deg}\nolimits} + +\def\bmod{\mskip-\medmuskip\mkern5mu + \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip} +\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} + +\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th + \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.} +\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th + \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr + \mathstrut\crcr\noalign{\kern-\baselineskip} + #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} +\def\pmatrix#1{\left(\matrix{#1}\right)} +\newdimen\p@renwd +\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( +\def\bordermatrix#1{\begingroup \m@th + \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% + \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil + &&\quad\hfil$##$\hfil\crcr + \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% + #1\crcr\omit\strut\cr}}% + \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne + \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% + \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% + \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} + +\def\openup{\afterassignment\@penup\dimen@=} +\def\@penup{\advance\lineskip\dimen@ + \advance\baselineskip\dimen@ + \advance\lineskiplimit\dimen@} +\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th + \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil + \crcr#1\crcr}}\,} +\newif\ifdt@p +\def\displ@y{\global\dt@ptrue\openup\jot\m@th + \everycr{\noalign{\ifdt@p \global\dt@pfalse + \vskip-\lineskiplimit \vskip\normallineskiplimit + \else \penalty\interdisplaylinepenalty \fi}}} +\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y +\def\displaylines#1{\displ@y + \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr + #1\crcr}} +\def\eqalignno#1{\displ@y \tabskip\centering + \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip + &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering + &\llap{$\@lign##$}\tabskip\z@skip\crcr + #1\crcr}} +\def\leqalignno#1{\displ@y \tabskip\centering + \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip + &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering + &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr + #1\crcr}} + +% Definitions related to output + +\message{output routines,} + +\countdef\pageno=0 \pageno=1 % first page is number 1 +\newtoks\headline \headline={\hfil} % headline is normally blank +\newtoks\footline \footline={\hss\tenrm\folio\hss} + % footline is normally a centered page number in font \tenrm +\newif\ifr@ggedbottom +\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} +\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom +\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} +\def\nopagenumbers{\footline{\hfil}} % blank out the footline +\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne + \else\global\advance\pageno\@ne \fi} % increase |pageno| + +\newinsert\footins +\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi + #1\@sf\vfootnote{#1}} +\def\vfootnote#1{\insert\footins\bgroup + \interlinepenalty\interfootnotelinepenalty + \splittopskip\ht\strutbox % top baseline for broken footnotes + \splitmaxdepth\dp\strutbox \floatingpenalty\@MM + \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip + \textindent{#1}\footstrut\futurelet\next\fo@t} +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else\let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\strut\egroup} +\def\footstrut{\vbox to\splittopskip{}} +\skip\footins=\bigskipamount % space added when footnote is present +\count\footins=1000 % footnote magnification factor (1 to 1) +\dimen\footins=8in % maximum footnotes per page + +\newinsert\topins +\newif\ifp@ge \newif\if@mid +\def\topinsert{\@midfalse\p@gefalse\@ins} +\def\midinsert{\@midtrue\@ins} +\def\pageinsert{\@midfalse\p@getrue\@ins} +\skip\topins=\z@skip % no space added when a topinsert is present +\count\topins=1000 % magnification factor (1 to 1) +\dimen\topins=\maxdimen % no limit per page +\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid \bigskip\box\z@\bigbreak + \else\insert\topins{\penalty100 % floating insertion + \splittopskip\z@skip + \splitmaxdepth\maxdimen \floatingpenalty\z@ + \ifp@ge \dimen@\dp\z@ + \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero + \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} + +\output{\plainoutput} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip} +\def\makefootline{\baselineskip24\p@\line{\the\footline}} +\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject\fi} + +\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi + \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255 + \ifvoid\footins\else % footnote info is present + \vskip\skip\footins + \footnoterule + \unvbox\footins\fi + \ifr@ggedbottom \kern-\dimen@ \vfil \fi} +\def\footnoterule{\kern-3\p@ + \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high + +% Hyphenation, miscellaneous macros, and initial values for standard layout +%\message{hyphenation} + +%\input hyphen + +\def\magnification{\afterassignment\m@g\count@} +\def\m@g{\mag\count@ + \hsize6.5truein\vsize8.9truein\dimen\footins8truein} + +\def\tracingall{\tracingonline\@ne\tracingcommands\tw@\tracingstats\tw@ + \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne + \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne + \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode} + +\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm + \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} + +\normalbaselines\rm % select roman font +\nonfrenchspacing % punctuation affects the spacing +\catcode`@=12 % at signs are no longer letters + +\def\fmtname{plain}\def\fmtversion{1.5CM} % identifies the current format
\ No newline at end of file diff --git a/macros/inrstex/inrstex/plainmod.tex b/macros/inrstex/inrstex/plainmod.tex new file mode 100644 index 0000000000..feeb7cf682 --- /dev/null +++ b/macros/inrstex/inrstex/plainmod.tex @@ -0,0 +1,8 @@ +%====== bugs in plain +\catcode`\ =10 % version in plain does not stick + +%======= modifications to plain ======= +\let\newcount=\n@ewcount + % needs to be inner for assigning counts to such things as problems + % when part of subdocuments +
\ No newline at end of file diff --git a/macros/inrstex/inrstex/plaipars.tex b/macros/inrstex/inrstex/plaipars.tex new file mode 100644 index 0000000000..ab0309716b --- /dev/null +++ b/macros/inrstex/inrstex/plaipars.tex @@ -0,0 +1,127 @@ +% ======== Plain.tex parameters ... set in plain and initex ==== + +% All of TeX's numeric parameters are listed here, +% Most are untouched from plain.tex but some are indeed modified. +% The order is not the same as in plain.tex + +% These parameters are actually changed. + +\widowpenalty = 400 % needs to be more than 100 +\clubpenalty = 800 % needs to be more than 100 + +% --- Penalties --- + +% \displaywidowpenalty=50 +% \brokenpenalty=100 +% \predisplaypenalty=10000 +% \postdisplaypenalty=0 +% \interlinepenalty=0 +% \interdisplaylinepenalty=100 +% \interfootnotelinepenalty=100 + +% \pretolerance=100 +% \tolerance=200 % INITEX sets this to 10000 +% \hbadness=1000 +% \vbadness=1000 +% \linepenalty=10 +% \hyphenpenalty=50 +% \exhyphenpenalty=50 +% \binoppenalty=700 +% \relpenalty=500 +% \floatingpenalty=0, set during \insert +% \outputpenalty=0, set before TeX enters \output +% \doublehyphendemerits=10000 +% \finalhyphendemerits=5000 +% \adjdemerits=10000 + +% ---- paragraph control ---- +% \looseness=0, cleared by TeX after each paragraph +% \uchyph=1 +% \parindent=20pt +% \hangindent=0pt, zeroed by TeX after each paragraph +% \baselineskip=0pt, changed by \normalbaselines +% \lineskip=0pt, changed by \normalbaselines +% \parskip=0pt plus 1pt +% \parfillskip=0pt plus 1fil +% \normalbaselineskip=12pt +% \normallineskip=1pt +% \normallineskiplimit=0pt + +% ----- Sizes/overfull boxes ---- +% \hfuzz=0.1pt % ... \finalversion mod +% \vfuzz=0.1pt % ... \finalversion mod +% \overfullrule=5pt % ... \finalversion mod +% \hsize=6.5in % ... pagsty.tex and inrsdef.tex +% \vsize=8.9in % ... pagsty.tex and inrsdef.tex +% \maxdepth=4pt +% \splitmaxdepth=\maxdimen +% \boxmaxdepth=\maxdimen +% \lineskiplimit=0pt, changed by \normalbaselines +% \leftskip=0pt +% \rightskip=0pt +% \topskip=10pt +% \splittopskip=10pt + + +% ------- Internal Math parms ----- +% \delimitershortfall=5pt +% \nulldelimiterspace=1.2pt +% \scriptspace=0.5pt +% \mathsurround=0pt +% \thinmuskip=3mu +% \medmuskip=4mu plus 2mu minus 4mu +% \thickmuskip=5mu plus 5mu +% \jot=3pt + +% ---- Display Math Spacing ---- +% \predisplaysize=0pt, set before TeX enters $$ +% \displaywidth=0pt, set before TeX enters $$ +% \displayindent=0pt, set before TeX enters $$ +% \abovedisplayskip=12pt plus 3pt minus 9pt +% \abovedisplayshortskip=0pt plus 3pt +% \belowdisplayskip=12pt plus 3pt minus 9pt +% \belowdisplayshortskip=7pt plus 3pt minus 4pt + + +% \hoffset=0pt % modified by \leftmargin +% \voffset=0pt % not used in INRSTeX + +% \tabskip=0pt +% \spaceskip=0pt +% \xspaceskip=0pt + +% ------ Vertical Spacing ----- +% \smallskipamount=3pt plus 1pt minus 1pt +% \medskipamount=6pt plus 2pt minus 2pt +% \bigskipamount=12pt plus 4pt minus 4pt + +% ------ Debugging/Misc ----- +% \pausing=0 +% \tracingonline=0 +% \tracingmacros=0 +% \tracingstats=0 +% \tracingparagraphs=0 +% \tracingpages=0 +% \tracingoutput=0 +% \tracinglostchars=1 +% \tracingcommands=0 +% \tracingrestores=0 +% \globaldefs=0 +% \maxdeadcycles=25 % INITEX does this +% \hangafter=1 % INITEX does this, also TeX after each paragraph +% \fam=0 +% \mag=1000 % INITEX does this +% \escapechar=`\\ % INITEX does this +% \defaulthyphenchar=`\- +% \defaultskewchar=-1 +% \endlinechar=`\^^M % INITEX does this +% \newlinechar=-1 +% \delimiterfactor=901 +% \time=now % TeX does this at beginning of job +% \day=now % TeX does this at beginning of job +% \month=now % TeX does this at beginning of job +% \year=now % TeX does this at beginning of job +% \showboxbreadth=5 +% \showboxdepth=3 + + diff --git a/macros/inrstex/inrstex/prelhead.tex b/macros/inrstex/inrstex/prelhead.tex new file mode 100644 index 0000000000..e14d1850f8 --- /dev/null +++ b/macros/inrstex/inrstex/prelhead.tex @@ -0,0 +1,31 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%============ Preface/Prelude macros =========== +% this is the first of the environment macros. The problem, among others is +% that the headers, footers, pagenumbering, etc are different in preface of +% the document than elsewhere. + +% These attempt to set this up in such a way +% that they will work with books and reports .... it may not be possible and +% perhaps they should be parchuted in as a complete package for reports +% and books ... There will be more put in these as time goes on +% these are the paperstyle/report style macros +\newtoks\everyprelude +\newtoks\e@veryprelude +\def\beginprelude{\begingroup\the\e@veryprelude\the\everyprelude} + +\def\preludeheadformat#1{\centerline{\sheadfont #1}\vskip 1cm} +\newtoks\preludetitle +\def\preludeheadmark{\mark{\hfill \the\preludetitle\hfill}} +\def\preludehead#1{ \preludetitle = {#1} + \writeterm{< }{\the\preludetitle}{ >} + \preludeheadformat{#1} + \preludeheadmark + \writelistfile{toc}{\prtocout}{}{#1} + } + +\def\endprelude{\endgroup\ejectpage} + +% \def\prtocout{\string\prtoc} % actually set in inrsdef.tex diff --git a/macros/inrstex/inrstex/secthead.tex b/macros/inrstex/inrstex/secthead.tex new file mode 100644 index 0000000000..9a8a7de40d --- /dev/null +++ b/macros/inrstex/inrstex/secthead.tex @@ -0,0 +1,228 @@ +%-*-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 + \w@ritetag\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} + \xdef\w@ritetag{\noexpand\newtag{#1}{\shtagrefformat}} + \edef\t@agtext{\shtagreplaceformat} + \else + \edef\t@agtext{#1} + \xdef\w@ritetag{\relax} + \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} + \xdef\w@ritetag{\noexpand\newtag{#1}{\sshtagrefformat}} + \edef\t@agtext{\sshtagreplaceformat} + \else + \edef\t@agtext{#1} + \xdef\w@ritetag{\relax} + \fi + \g@head{\prssheadskip}{\possheadskip + }{\ssheadfont}{\t@agtext}{#2}{\sshtocout + }{\quad}} +\def\innerssshead #1#2{\ifautonumber + \global\advance \ssshnum by 1 + \updatespecialnumbers{4} + \xdef\w@ritetag{\noexpand\newtag{#1}{\ssshtagrefformat}} + \edef\t@agtext{\ssshtagreplaceformat} + \else + \edef\t@agtext{#1} + \xdef\w@ritetag{\relax} + \fi + \g@head{\prsssheadskip}{\posssheadskip + }{\sssheadfont}{\t@agtext}{#2}{\ssshtocout + }{\quad}} +\def\innerdssshead #1{\xdef\w@ritetag{\relax}\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 + \xdef\w@ritetag{\noexpand\newtag{#1}{\chtagrefformat}} + \updatespecialnumbers{1} + \edef\t@agtext{\chtagreplaceformat} + \else + \edef\t@agtext{#1} + \xdef\w@ritetag{\relax} + \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 + \cheadformat{\t@agtext}{#2} % format of chead + \w@ritetag + \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}
\ No newline at end of file diff --git a/macros/inrstex/inrstex/specform.tex b/macros/inrstex/inrstex/specform.tex new file mode 100644 index 0000000000..c735d87d7b --- /dev/null +++ b/macros/inrstex/inrstex/specform.tex @@ -0,0 +1,37 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% added PostScript forms of BNR Reports + +%========== Special styles =============== + +%----- Special Document Styles ------- +% INRSTeX learns of the existence of special document styles +% from spformats.tex +% and the actual code is in the particular name given +% The general form of a call for a specific style is \<...>style +% This call should translate into \input <filename> which should then +% redefine \<...>style and finally call it. +% Two special styles available through INRSTeX are a \bookstyle and a +% \bnrreportstyle. The latter is an example of a rather complex report +% style. Care should be taken that the appropriate messages are generated in +% the two languages. This means that the messages must be put in the +% english.tex and francais.tex files. These should be placed in inputs. They +% are read when \englishversion or \versionfrancaise are executed. + +% This is list of the special formats in INRSTeX. It is assumed that +% there is an actual format file for each of them. Paperstyle is the default +% for INRSTeX and this is actually embedded in the inrs.fmt file +% extra \relax forces the input before it expands the next token + +\def\paperstyle{\input papersty \relax} +\def\bookstyle {\input booksty \relax} +\def\bnrreportstyle{\input bnrsty \relax} % special local form +\def\bnrreportstyleps{\input bnrsty_ps \relax} % special local form +\def\inrsreportstyle{\input inrssty \relax} +\let\formatjournal=\paperstyle +\let\formatlivre=\bookstyle +\let\formatbnr = \bnrreportstyle % special local form +\let\formatbnrps = \bnrreportstyleps % special local form +\let\formatinrs =\inrsreportstyle diff --git a/macros/inrstex/inrstex/subdoc.tex b/macros/inrstex/inrstex/subdoc.tex new file mode 100644 index 0000000000..80ca49abf6 --- /dev/null +++ b/macros/inrstex/inrstex/subdoc.tex @@ -0,0 +1,43 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +%======== macros for handling multiple part documents ======= +% documents may be broken down to the chapter or section level + + +% each part of the document will start with the command +% \subdocument +% it simply allows for the insertion of special macros or other stuff +% that normally would be brought in only once. In addition, the page numbering +% can be modified at this point to make sense at this point. + +% parameters should be entered to tell whether the sub document is just a +% section, chapter, or a section in a chapter. +% anything can be set inside the command +% For a chapter (or series) \following\chnum = <chapter number> +% \the\chaptername = {<Chapter name>} +% \nochaptersfalse +% \pagenumber [=] <pagenumber> + +%For a section in a document without chapters +% \following\shnum = <section number> +% \pagenumber [=] <pagenumber> + +% for a section in a document with chapters put both together +% it is assumed that the subdocument will start with a section or +% chead. The toplevel will set \subdocumentfalse immediately + +% this is here because it is most useful in sub document context +% multiple documents basically, \following\chnum =2 will set \chnum =1 + +\def\following#1{\def\a@df{\global\advance #1 by -1\relax} + \afterassignment \a@df \global#1 } + +\newif\ifs@ubdocument \s@ubdocumenttrue +\def\subdocumentmacros#1{\ifs@ubdocument #1 \fi\s@ubdocumentfalse} +\outer\def\inputsubdocument #1{\begingroup + \s@ubdocumentfalse + \let\done=\relax + \input #1 \relax + \endgroup} diff --git a/macros/inrstex/inrstex/tables.tex b/macros/inrstex/inrstex/tables.tex new file mode 100644 index 0000000000..144169e9a2 --- /dev/null +++ b/macros/inrstex/inrstex/tables.tex @@ -0,0 +1,106 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. +% \left and \right redefined to remove primitive conflict MJF Oct 87 + + +%============= Table making macros ============ +% the basic format is +% \begintable +% <special definitions for this table> +% \table format <format as in halign except it needs ## instead of #> +% \br{<struts>} .... | .... | .... " ..... | .... \er{<stuff>} +% \- +% ....etc + +% these macros require that | and " be active during the entire +% document to work correctly. ... although some definitions specifically +% set them active +\newcount\a@lignstate \a@lignstate=0 %0 -- between lines after \cr + %1 -- beginning of line in \bl + %2 -- midline + %3 -- endline in \el +\def\hssf{\hskip 0pt plus 1fill minus 1fill\relax} +\def\n@ewaligndefs{\def\center##1{\hssf ##1\hssf\null} + \def\left##1{\ifmmode\l@f##1\else##1\hssf\null\fi} + \def\right##1{\ifmmode\r@t##1\else\hssf ##1\null\fi}} +\def\s@avelr{\let\l@f=\left\let\r@t=\right} +\newdimen\trulesize +\let\tr=\trulesize +\trulesize = .4pt +\def\zerocenteredbox#1{\ifmmode \ifinner \setbox2 =\hbox{$#1$}\else + \setbox2 =\hbox{$\displaystyle#1$}\fi + \else \setbox2 =\hbox{#1}\fi + \setbox0=\hbox{\lower.5ex\hbox{$\vcenter{\box2}$}}\ht0=0pt\dp0 =0pt\box0} +\let\zb=\zerocenteredbox + +%this macro creates a strut with the that is higher by #2 and deeper than #3 +% than the natural size of #1 ... the sizes may be negative +\def\modifystrut#1#2#3{\setbox4=\hbox{#1}\dimen0=\ht4 + \advance \dimen0 by #2 \dimen2 = \dp4 + \advance \dimen2 by #3 + \vrule width 0pt height \dimen0 depth \dimen2} +\let\mst=\modifystrut +%general math form +\def\math#1{\relax $\relax#1\relax$} +\def\displaymath #1{\relax$\displaystyle #1\relax$} + + +% +\newskip\tcs +\newtoks\tablespread +\newskip\midtabglue \midtabglue = 0pt plus 1fill +\newtoks\everytable \everytable = {\relax} + +{\catcode`\|=\active \catcode`\" = \active + \gdef\begintable{\vbox\bgroup \s@avelr \tcs=.5em % uses font in force when entering + \catcode`\|=\active + \catcode`\"=\active + \def\:{\relax \vrule height 2.5ex depth .9ex width 0pt} + \def\-{\ifcase\a@lignstate \fulltablerule{\tr} + \else + \thrule{\tr}\fi} + \let\t@xx =\relax % for premature expansions + \everycr={\noalign{\global\a@lignstate=0}} + \def\fulltablerule##1{\noalign{\hrule height + ##1}} + \def\thrule##1{\omit\leaders\hrule height ##1\hfill} + \def\center{\hskip\tcs\hss ########\hss\hskip\tcs} + \def\left{\hskip\tcs ########\hss\hskip\tcs} + \def\right{\hskip\tcs\hss ########\hskip\tcs} + \def\sprule{\tvrule{2.5\tr}} + \def|{\ifcase\a@lignstate \def\t@xx{\tvrule{\tr}}\or + \def\t@xx{\tvrule{\tr}}\or + \def\t@xx{\unskip&\tvrule{\tr}&}\else + \def\t@xx{\tvrule{\tr}}\fi\t@xx} + \def\|{\ifcase\a@lignstate \def\t@xx{\sprule}\or + \def\t@xx{\sprule}\or + \def\t@xx{\unskip&\sprule&}\else + \def\t@xx{\sprule}\fi\t@xx} + \def"{&########&} % for table format + \def\br##1{\global\a@lignstate=1 ##1\unskip\global\a@lignstate=2&} + \def\er##1{\global\a@lignstate=3\unskip&##1\unskip + \global\a@lignstate=0\cr} + \def\tvrule##1{\hss\vrule width ##1\hss} + \def~{\penalty\@M \hphantom{0}} % changes ~ to be phantom of width .5em + \tablespread = {} + \the\everytable + } + \gdef\begintableformat #1\endtableformat{\offinterlineskip \tabskip = 0pt + \edef\t@blform{####\tabskip =\midtabglue &####\tabskip=0pt\cr} %adds rules front and back + \n@ewaligndefs + \def"{\ifcase\a@lignstate \def\t@xx{\relax}\or + \def\t@xx{\relax}\or + \def\t@xx{\unskip&&}\else + \def\t@xx{\relax}\fi\t@xx} + \edef\h@align{\halign \the\tablespread} + \h@align\bgroup\span\t@blform} + }% " and | are always active in INRSTEX + +\def\use#1{\omit\mscount=#1 \advance\mscount by -1\multiply\mscount by2 + \loop\ifnum\mscount>1 \sp@n\repeat + \ifnum\mscount>0 \span \else \relax \fi} +\let\sp=\span +\let\om = \omit +\def\sa#1{\setbox0=\hbox{#1}\hbox to \wd0{}} +\def\endtable{\crcr\egroup\egroup} diff --git a/macros/inrstex/inrstex/tag.tex b/macros/inrstex/inrstex/tag.tex new file mode 100644 index 0000000000..dc16574388 --- /dev/null +++ b/macros/inrstex/inrstex/tag.tex @@ -0,0 +1,93 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ============ Tag Generation ========== +% These are the macros that generate the actual tags. They are used in +% automatic equation numbering, section heads and any \auto...num{tag} form. + + +% ============== Symbol that is dropped in when a tag is undefined ====== +\def\undefsymbol{\hbox{\vrule width 1em height .7em}} + +% ========== Tag types ============ +% Two types of tags are now supported. They differ in that one form is +% immediate, and hence can refer only to things that have been defined while +% the other is delayed until the page is printed. These latter sometimes do +% migrate all the way out of internal boxes. +% \ptag is the delayed form and \tag is the immediate form + +% page tags may turn out to be rather expensive. They are turned on through +% the following form +\newif\ifp@tag +\def\pagetagson{\p@tagtrue} % this may require more work later +\def\pagetagsoff{\p@tagfalse} % this is the default + + +% ============ Tag macros ========= +% #1 is tag string +% #2 is tag value (defined as the macro ":@#1") + +\def\tag#1#2{\expandafter\xdef\csname :@#1\endcsname{#2}} + +% #1 is tag string +% #2 is tag value (defined as the macro ";@#1") + +\def\ptag#1#2{\expandafter\xdef\csname ;@#1\endcsname{#2}} + +% \newttag makes an immediate \tag and writes it out immediately + +\def\newttag#1#2{\def\next{#1}\ifx \next\empty\tag{#1}{#2}\else + \tag{#1}{#2}\ift@agfilein \immediate\write\t@agfile + {\string\tag{#1}{#2}}\fi\proofmargin{#1 ==> #2}\fi} + +% \newptag makes a page tag by writing it out to a file .. it is +% not made immediately + + +\def\newptag#1{\def\next{#1}\ifx \next\empty\relax\else + \ift@agfilein + {\let\folio=\relax\xdef\next{\write\t@agfile + {\string\ptag{#1}{\folio}}}}\else\xdef\next{\relax}\fi + \fi\next} + +\def\newtag#1#2{\newttag{#1}{#2}\ifp@tag\newptag{#1}\fi} + + +%undefined tag message + +%\def\undeftagmessage#1{ <<<tag:#1 = undefined>>> } see english/french titles + +% Tag reference macro +% #1 is the string that was originally used in the tag +\def\r@ef#1#2{\def\doit{\ifundefined{#2#1}\writeterm{\undeftagmessage{#1}}{}{}\proofmargin + {tag: #1 <-- undefined}\undefsymbol\else + \proofmargin{ #1 <-- \csname #2#1\endcsname + }\csname #2#1\endcsname + \fi}\relax + \ifautoreference \doit \else#1\fi} +\def\q@ref#1#2{\ifautoreference \csname #2#1\endcsname\else#1\fi} + +% ========= Normal Section Tag References =========== +\def\ref#1{\r@ef{#1}{:@}} +\def\quietref#1{\q@ref{#1}{:@}} + +% ======== Page References ========== +\def\pageref#1{\r@ef{#1}{;@}} +\def\pagequietref#1{\q@ref{#1}{;@}} +\let\pref=\pageref +\let\qref=\quietref +\let\pqref=\pagequietref + + +% General autotag generation, used for equation numbers, figure numbers etc. +% #1 = tag +% #2 = counter +% #3 = tag format +% #4 = auto text +% #5 = noauto text +% does not generate text if \silenttrue +\def\a@utotag#1#2#3#4#5{\ifautonumber + \global\advance #2 by 1 \relax + \newtag{#1}{#3}\edef\t@ext{#4}\else \edef\t@ext{#5}\fi + \ifsilent\else\t@ext\fi} diff --git a/macros/inrstex/inrstex/tocform.tex b/macros/inrstex/inrstex/tocform.tex new file mode 100644 index 0000000000..86999ba0d1 --- /dev/null +++ b/macros/inrstex/inrstex/tocform.tex @@ -0,0 +1,108 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ======== Table of Contents, Figures, and Tables -- Examples ====== +% The "list" file is written using \writelistfile and the \shtoc ... +% are used to create the actual table of contents, figures, tables. +% Extensions to other forms should be obvious. + + + +%====== general structure for making table of contents, tables, etc. +% ------ table of contents is slightly different because it refers to itself + +% file names (defaults) \jobname.toc --- table of contents +% \jobname.fig --- list of figures +% \jobname.tbl --- list of tables + +% to initiate a build of any of these it is only necessary to +% \openlistfile{<...>} --- This should be only done once +% when this is done a <..>list flag or switch is also created + +% To print any of these lists it is only necessary to +% use the following format +% \begingroup +% \def\sshtoc#1#2#3{} % omits or specially defines . and any other +% \preludehead{<name list>} % .... or what you wish +% \maketoclist % This is for toc files only ... self referential +% \input \jobname.<extension> +% \ejectpage % if desired +% \endgroup + +% a few special macros are defined for toc/list file management (VAX/VMS) + +\newif\ifnotdefined % \ifundefined is sensitive if it fails +\def\checklistopen#1{\notdefinedfalse\ifundefined{if#1list}\notdefinedtrue\relax + \fi} +\def\c@k#1{\csname if#1list\endcsname \jobname.#1;-1 \else \jobname.#1 \fi} +\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % \c@k is necessary because of the way TeX expands + +\newtoks\inputtocfiles +\inputtocfiles = {\checklistopen{toc}\inputwithcheck{\newlistfilename{toc}}} +\def\maketoclist{\begingroup\captionbodyoff\the\inputtocfiles\endgroup} + +\newtoks\inputfigfiles +\inputfigfiles = {\checklistopen{fig}\inputwithcheck{\newlistfilename{fig}}} +\def\makefiglist{\begingroup\captionbodyoff\the\inputfigfiles\endgroup} + +\newtoks\inputtblfiles +\inputtblfiles = {\checklistopen{tbl}\inputwithcheck{\newlistfilename{tbl}}} +\def\maketbllist{\begingroup\captionbodyoff\the\inputtblfiles\endgroup} + + +% ======== macro forms for toc, fig, tbl ========= +% Some of these are defined as null to suppress printing of the +% corresponding entries. +% #1 Number +% #2 Text +% #3 Page number +% ========== toc macro forms ========== +% special forms that allow for multiple line titles ... auto line breaking +% only +%#1--indent #2 --section number #3--title +% #4-- pagenumber +\newdimen\t@ocsize +\newdimen\righttocindent %\righttocindent = 5em + +\def\tocfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip .5em} + +% default font is \rm ... may be changed in the actual \figtoc ...etc +% macros as given below. + +\def\tocbox#1#2#3#4{\line{\rm \t@ocsize=\hsize + \setbox2=\hbox {\hskip#1\relax#2\quad} + \advance\t@ocsize by -\righttocindent + \vbox{\hsize \t@ocsize \normalbaselines + \setstrut + \hangindent 1\wd2 + \hangafter 1 \def\cr{\linebreak}\frenchspacing + \veryraggedright \parindent=0pt\leavevmode + \box2\relax#3\strut\null\nobreak\rm\tocfill + #4\hskip -\righttocindent\strut}\hss}} + +% ---------- figure forms ------- +\def\figtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{2em}{#1}{#2}{#3}} +% ---------- table forms ------- +\let\tbltoc=\figtoc + +\def\prtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{0em}{\it#1}{\it#2}{\it#3}} + +\def\chtoc#1#2#3{ \goodbreak\vskip 2ex plus 1pt minus 1pt + \tocbox{0em}{\sheadfont#1}{\sheadfont\def\cr{ }#2}{#3}} +\def\shtoc#1#2#3{ \vskip 1ex plus 1pt minus 1pt + \tocbox{2em}{#1}{#2}{#3}} +\def\sshtoc#1#2#3{ \vskip .5ex plus 1pt minus 1pt + \tocbox{4em}{#1}{#2}{#3}} +\def\intssshtoc#1#2#3{ \vskip .3ex plus 1pt minus 1pt + \tocbox{6em}{#1}{#2}{#3}} +\def\intdssshtoc#1#2#3{ \vskip 1pt plus 1pt minus 1pt + \tocbox{8em}{#1}{#2}{#3}} +\def\ssshtoc#1#2#3{} +\def\dssshtoc#1#2#3{} + +% the upper two forms are defaulted to be omitted. They are easily included +% with a \let\ssshtoc = \intssshtoc ... etc .
\ No newline at end of file diff --git a/macros/inrstex/inrstex/writdos.tex b/macros/inrstex/inrstex/writdos.tex new file mode 100644 index 0000000000..124ef3b99c --- /dev/null +++ b/macros/inrstex/inrstex/writdos.tex @@ -0,0 +1,39 @@ +% This is a file that modifies the file nameing conventions in INRSTeX +% for IBM DOS 3.0 ... It works in conjunction with a command file that +% renames old versions of files produced by INRSTeX. The convention is +% to add "@" to the beginning of the filename. This has the advantage of +% leaving the extensions intact but has the disadvantage of +% truncating 8 letter filenames. The "@" is not sacrosanct. + +% if a job is aborted, the old files may be made current with +% rename @<jobname>.* <jobname>.* + +% There are several places in INRSTeX that require changes. + +\catcode`\@=11 + +% ------ auto.tex ----- + +% \inputtagfiles={\inputwithcheck {\jobname.tag}} +\inputtagfiles={\inputwithcheck {@\jobname.tag}} % will have been renamed + + +% -------- tocform.tex ------ + +%\def\c@k#1{\csname if#1list\endcsname \jobname.#1;-1 \else \jobname.#1 \fi} +%\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % VAX/VMS \c@k is necessary because of the way TeX expands + +\def\c@k#1{\csname if#1list\endcsname @\jobname.#1 \else \jobname.#1 \fi} +\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % \c@k is necessary because of the way TeX expands + +% ----------- cite.tex --------- + +% This does not need changing as long as the citation list ALWAYS follows +% the citations. If this is not the case, then an old version will have to +% used. This might lead to other problems later. + +% \citetagfilename = {\jobname.ctg} %compatible Ugh! + +\catcode `\@=12 diff --git a/macros/inrstex/inrstex/writfile.tex b/macros/inrstex/inrstex/writfile.tex new file mode 100644 index 0000000000..91cfc9244f --- /dev/null +++ b/macros/inrstex/inrstex/writfile.tex @@ -0,0 +1,62 @@ +%-*-tex-*- +% Copyright Michael J. Ferguson, INRS-Telecommunications +% All rights reserved. + +% ========== List Files ========= +% General macros for making, open and closing "list' files. These are files +% where the form output includes a page reference. They are named with a +% three letter extension ... eg ".fig" ... to the \jobname form. + + +% \writelistfile +% #1 file type to write +% #2 command form (\string\cs) +% #3 number ..... expanded +% #4 text .... not expanded +% Write to the appropriate list file if #1list is true and defined +% This means that the arguments must be +% expanded to reflect the state of affairs at the time of invocation. +% However, the page number must not be expanded until the +% output routine has had a chance to decide which page it will go on. + + +% this uses the upper toks registers for scratch writing. +% when the number of token registers used is within 10 of the +% newtoks count, it is reset ... there is no checking ... however +% there should be no problems ... except for token space (ugh!!!) +% This is necessary (at least in TeX 1.1) in order to prevent spurious +% expansion. + + +\newcount\sptoks \sptoks=255 % start at top with this counter +\xdef\maxlistmess{224} % 10 less than the min toks number allowed ... 20 +\def\nextsptoks{\advance\sptoks by -10 \relax \ifnum\sptoks < \count15 + \global\sptoks=255 \else + {\ifnum\sptoks<\maxlistmess + \global\sptoks=255\else \global\advance\sptoks by 9\relax\fi}\fi} +\def\settoks#1{\xdef\sptoksnum{\the\sptoks}\global\expandafter\toks\sptoksnum = {#1}} + +\def\writelistfile#1#2#3#4{\ifundefined{if#1list}\n@ewswitch{#1list}\fi + \csname if#1list\endcsname + {\let\folio=\relax %do not expand \folio + \nextsptoks\settoks{#4}\edef\next{\write\csname #1@file\endcsname + {#2{#3}{\noexpand\the\noexpand\toks\sptoksnum}{\folio}}}\next}\fi\nobreak} + +%checks to see if open +\def\openlistfile#1{\ifundefined{if#1list}\n@ewswitch{#1list}\fi + \def\n@extwrite{\relax}\ifundefined{#1@file}\def\n@extwrite + {\expandafter\n@ewwrite\csname #1@file\endcsname}\fi + \csname if#1list\endcsname + \else + \n@extwrite + \edef\n@ext{\immediate\openout\csname #1@file\endcsname + = \jobname.#1}\n@ext + \expandafter\global\csname #1listtrue\endcsname + \fi } %opens the list file + + +\def\closelistfile#1{\expandafter\global\csname #1listfalse\endcsname + \edef\n@ext{ + \closeout\csname #1@file\endcsname} + \n@ext} %closes the list file + diff --git a/macros/inrstex/inrstex/writunix.tex b/macros/inrstex/inrstex/writunix.tex new file mode 100644 index 0000000000..ada5c6a0b9 --- /dev/null +++ b/macros/inrstex/inrstex/writunix.tex @@ -0,0 +1,41 @@ +% This is a file that modifies the file naming conventions in INRSTeX +% for Berkeley Unix ... It works in conjunction with a command file that +% renames old versions of files produced by INRSTeX. The convention is +% to add "~" to the end of the filename. This is the same indication that +% EMACS uses for old versions. Note that there is no concern with file +% name length in Berkeley Unix. The "~" is not sacrosanct. + +% if a job is aborted, the old files may be made current (in csh) with +% foreach i (<jobname>.*~) +% mv $i `basename $i \~` +% end + +% There are several places in INRSTeX that require changes. + +\catcode`\~=11 + +% ------ auto.tex ----- + +% \inputtagfiles={\inputwithcheck {\jobname.tag}} +\inputtagfiles={\inputwithcheck {\jobname.tag~}} % will have been renamed + + +% -------- tocform.tex ------ + +%\def\c@k#1{\csname if#1list\endcsname \jobname.#1;-1 \else \jobname.#1 \fi} +%\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % VAX/VMS \c@k is necessary because of the way TeX expands + +\def\c@k#1{\csname if#1list\endcsname \jobname.#1~ \else \jobname.#1 \fi} +\def\newlistfilename#1{\ifnotdefined \jobname.#1 \else \c@k{#1} \fi} + % \c@k is necessary because of the way TeX expands + +% ----------- cite.tex --------- + +% This does not need changing as long as the citation list ALWAYS follows +% the citations. If this is not the case, then an old version will have to +% used. This might lead to other problems later. + +% \citetagfilename = {\jobname.ctg} %compatible Ugh! + +\catcode `\~=\active diff --git a/macros/inrstex/pc/readme.txt b/macros/inrstex/pc/readme.txt new file mode 100644 index 0000000000..21db003ce7 --- /dev/null +++ b/macros/inrstex/pc/readme.txt @@ -0,0 +1,258 @@ +
+Michael Ferguson -- Aug. 1991
+mike@inrs-telecom.uquebec.ca
+(514)765-7834
+
+INRSTeX is a complete document preparation package, including graphics for
+document preparation. It was designed from the beginning for use in a
+bilingual (French/English) environement.
+The system, excluding its graphics component, is usable
+with any TeX system but is most useful, when using ordinary "cm"
+fonts with an MLTeX system. TeXGraph will work with any reasonable
+PostScript driver ans has been specialized here to work with a modified
+modified version of Nelson~Beebe's DVIALW on the IBM~PC and
+uses Tom~Rokiki's DVIPS on the UNIX workstations. The PC Version of the
+package includes an MSDOS version of the modified DVIALW.
+
+The INRSTeX macro package kernel is built on top of PLAIN. All the
+facilties of plain are left intact and available. Additional facilities are
+included for
+
+* section and chapter heads,
+* lists,
+* easy tables,
+* floating figure and table insertions,
+* footnotes,
+* automatic generation of table of contents, list of figures, and
+ list of tables,
+* automatic numbering of equations, section heads, etc.,
+* symbolic referencing of equations, sections, etc.,
+* optional margin notes to aid in keeping track of symbolic
+ references,
+* automatic generation of citation lists (IEEE style only)
+* a subdocument feature for building large documents in pieces.
+* a verbatim style using {\tt typewriter} fonts for such things as
+ program listings,
+* a several document styles including a paperstyle and bookstyle.
+* TeXgraph, a graphics system for drawing figures and inserting
+ external figures. This uses the graphics primitives of PostScript.
+ It is inside rather than outside the TeX system.
+* slide making including graphics for letterhead,
+Installation Guide for INRSTeX with MLTeX 3.+ or TeX 3.+
+
+-------------------------------------------------------------------
+
+The system is supplied as compressed *.zip files that can be unpacked with
+PKUNZIP. The file list is as follows:
+
+README TXT 7032 8-22-91 7:53a --- This file
+
+DVIALW TXT 1251 8-23-91 10:43a --- List of command line options
+ for DVIALW
+
+INRSTEX ZIP 117630 8-04-91 7:47a --- INRSTeX sources ... These are
+ only needed for creating an INRSTeX format file.
+INRSINPU ZIP 36841 8-04-91 7:54a --- This is a complete set of
+ additional macros, including the graphics that may be called as
+ needed by INRSTeX. These should be put in your TEXINPUTS directory.
+TEXGRAPH ZIP 115632 8-04-91 7:59a --- These are the TeXgraph macros,
+ both for INRSTeX and LaTeX. It also the INRS modified includes
+ DVIALW.
+DOC_TEX ZIP 201034 8-22-91 8:31p --- These are the TeX source files
+ for the INRSTeX Refernce book.
+DOC_DVI ZIP 256912 8-22-91 8:28p --- These are DVI files, for each
+ chapter of the Reference Book. The file THGRAPH.DVI is the
+ documentation for TeXGraph.
+PKZIP EXE 31408 10-01-89 1:02a
+PKUNZIP EXE 22022 10-01-89 1:02a
+BATCH ZIP 1532 8-04-91 8:05a --- These are some batch files,
+ including INRSTEX.BAT that should be used for invoking INRSTeX.
+
+-----------------------------------------------------------------------
+
+
+
+
+
+INRSTeX is a multilingual document preparation system. It comes in many
+flavors, unfortunately, and is easily customized. The main documentation is
+the "INRSTeX Reference Manual". The graphics part of INRSTeX requires a
+driver that will interpret inline PostScript correctly and process the
+information in the *.dvi file in the order that it occurs. An INRS modified
+version of Nelson Beebe's DVIALW driver does this and is included with the
+TeXGraph files. The only documentation of TeXGraph at the moment is in the
+detailed comments in the texgraph.sty file. This requires that your print
+driver be able to interpret a few commands. Plot files are assumed to be
+Encapsulated PostScript with a correct bounding box. TeXGraph reads this
+box and leaves the appropriate space. It is also possible to rotate and/or
+scale a graph.
+
+
+INRSTeX as supplied gives messages in English and French. These messages
+should be changed for other languages. Most of the messages are found in
+inrsdef.tex
+
+
+Customizing INRSTeX
+
+Different flavors of INRSTeX are needed for different operating systems and
+versions of TeX. Changes are made by editing the file inrs.tex or one of the
+specialized files. These files are very heavily documented ... to make
+changes easier. The master file inrs.tex brings in the specialized files for
+various services. In some cases, this file must be editied to bring in the
+correct version of the file for a particular installation. A good example is
+given below for fonts.
+
+Customizing changes may be necessary in the following areas:
+
+1. Fonts
+
+TeX 3.0 uses Computer Modern (cm...) fonts. This version of INRSTeX does not
+require the new 256 character extended fonts. Modifications to include
+these fonts should be quite easy when they become available. The current
+INRSTeX book was made with (am...) fonts and includes many fonts that are
+not available on the current distribution. INRSTeX, in addition to defining
+point families, adds fonts necessary to complete font families at various
+point sizes. It may be necessary to add/delete fonts and font families for
+your specific installation.
+
+In addition there is a file spfont.tex that defines an arbitrarily scaled
+family of \tenpoint. It is used only in the slide package and is the
+(cm...) version only. Some TeX distribution tapes do not have diminished
+pixel versions of the fonts.
+
+2. File Naming:
+
+INRSTeX writes out a number of auxiliary files. They have the same name as
+the input file but with different extensions. These are used to create
+tables of contents, figures, tables, .... The design is such that the page
+numbers for the "table of contents", for example may be in the table of
+contents. If INRSTeX has already opened the "job.toc" file and then tries
+to bring in the "job.toc" file to write the table of contents, it will
+bring in the previous version. For systems without versions, such as MSDOS
+or Unix, this is done by inputting files with the name "@job.toc" or
+"job.toc~" respectively. This means that INRSTeX must be invoked using an
+INRSTEX.BAT file for MSDOS or a shell script like INRSTEX.SH for Unix.
+
+To build an INRSTeX format file for MSDOS, it is necessary to
+
+\input writdos
+
+This is included in the INRS3_PC.TEX master file.
+
+For Unix, the \input writdos should be replaced by
+
+\input writunix
+
+For systems with version numbers, and the concept of version "-1" such as
+VAX/VMS, neither of these are required.
+
+The auxiliary files normally written have the extensions:
+
+.toc -- table of contents
+.tbl -- list of tables
+.fig -- list of figures
+.ctg -- list of citations
+.tag -- list of internal references such as equations or sections
+
+In addition, for the INRSTeX reference manual a chapter status file and
+an index file
+
+masth.sta
+masth.ind
+
+are written.
+
+
+3. inrsdef.tex
+
+All of the default spacings, fonts, etc. for INRSTeX are given in this file.
+For information this file also includes any defaults set in PLAIN. Those
+defaults may be changed in this file. In fact, it was intended that all of
+the defaults would be found in this file.
+
+4. Graphics and INRSTeX
+
+This version of INRSTeX includes TeXGraph, a system for creating graphics
+and including EPSF (Encapsulated PostScript Format) files in a TeX
+document. In order to make the package self contained, we have included a
+modified version of Nelson Beebe's DVIALW (for MSDOS only).
+This, along with a PostScript printer will allow you to produce "complete"
+documents.
+
+
+5. Installation:
+
+To create a format file for INRSTeX, with French and English hyphenation
+patterns, you should INITEX the inrs3_pc file. inrs3_pc brings in a version
+of plain.tex, called plain_nh.tex that does not call the hyphenation
+tables. The hyphenation tables are called later in masthyph.tex.
+
+The inrs3_pc.tex file has a switch that checks to see if \charsubdef is
+defined in the INITEX to distinguish between MLTeX 3.+ and TeX 3.+. It then
+brings in the appropriate files to access and define extended characters.
+
+If necessary, you might have to increase some of TeX's internal parameters
+such as font memory. For TeX 2.+, it was necessary to have \f 25000 when
+invoking PCTeX.
+
+6. Documentation
+
+The INRSTeX reference manual is included on these floppies. It is over 200
+pages longs so that printing it all at once might either break your printer
+and/or cause you to be accused of antisocial behaviour.
+
+The complete sources and a complete set of .DVI files are included in the
+\inrsdoc directory in .ZIP compressed form. Both PKZIP and PKUNZIP are
+included. They have been supplied as approximately one chapter per file. To
+obtain the .DVI files just type
+
+pkunzip doc_dvi
+
+The uncompressed .dvi files are approximately 1 megabyte. This set also
+includes IEEELOGO.PS which is needed to create the corresponding .PS files.
+To create the corresponding PostScript files just execute MASTPS.BAT
+
+mastps
+
+The PostScript files take up about 3.5 meg while the uncompressed .DVI
+files take up about 1 meg.
+
+In addition, the complete sources for the Reference Book are included.
+These are uncompressed by
+
+pkunzip doc_tex
+
+To create a new set of .dvi files, if you should follow this path.
+
+a) Tex the master file masth.tex to create a complete set of index,
+status, and table of contents files by
+
+tex masth
+
+b) Massage and sort the index file MASTH.IND to create a MASTH.SOR by
+running the program
+
+indsort
+
+The C sources for this program are included.
+
+c) Create .dvi files for each chapter by running the MASTH.BAT file.
+
+masth
+
+d) Create the PostScript files by running the MASTPS.BAT file.
+
+mastps
+
+e) To print the all of the resulting files use the MASTPR.BAT file.
+
+mastpr
+
+This, after feeding paper to your printer will give you the complete book.
+
+Yours
+Michael J. Ferguson
+
+
+
\ No newline at end of file diff --git a/macros/inrstex/texgraph/ieeelogo.ps b/macros/inrstex/texgraph/ieeelogo.ps new file mode 100644 index 0000000000..c0eeab6ec3 --- /dev/null +++ b/macros/inrstex/texgraph/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
\ No newline at end of file diff --git a/macros/inrstex/texgraph/inrslogo.tex b/macros/inrstex/texgraph/inrslogo.tex new file mode 100644 index 0000000000..483eb81ec1 --- /dev/null +++ b/macros/inrstex/texgraph/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}
\ No newline at end of file diff --git a/macros/inrstex/texgraph/inrssl.tex b/macros/inrstex/texgraph/inrssl.tex new file mode 100644 index 0000000000..925a824779 --- /dev/null +++ b/macros/inrstex/texgraph/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} +\formscale 1 +%====== end defaults ===== + +\catcode`\@=12 + diff --git a/macros/inrstex/texgraph/readme b/macros/inrstex/texgraph/readme new file mode 100644 index 0000000000..de17f961fd --- /dev/null +++ b/macros/inrstex/texgraph/readme @@ -0,0 +1,25 @@ +Michael J. Ferguson +(514) 765-7834 +mike@inrs-telecom.uquebec.ca + +Montreal, July 30, 1991 + +This directory contains + +The files are + +1. texgraph.sty --- a texgraph style file for LaTeX +2. test_lat.tex --- This is a latex file that performs some simple graphics, + includes an EPS, encapsulated postscript file and plays + some scaling and rotating games, and also the code for + INRS letterhead. +3. ieeelogo.ps --- Scanned PostScript logo +4. inrslogo.tex --- TeXgraph commands for the INRS letterhead. +5. testinrs.tex --- A test file for INRSTeX but augmented by the slide macros. +6. inrssl.tex --- The slide macros package ... for INRSTeX +7. texgraph.tex --- the TeXGraph macros in a form compatible with INRSTeX and + --- the master format file inrs3_pc.tex +8. texgraph.ps --- A PostScript version of the TeXGraph Chapter in the + INRSTeX Reference Manual. +9. spfont.tex --- A scaled font family used in the inrssl.tex +10. readme --- This file. diff --git a/macros/inrstex/texgraph/spfont.tex b/macros/inrstex/texgraph/spfont.tex new file mode 100644 index 0000000000..ecf578ed5b --- /dev/null +++ b/macros/inrstex/texgraph/spfont.tex @@ -0,0 +1,79 @@ +\catcode`\@=11 +% --------- This is the "cm" version -------- +% a family is produced by redefining the special font forms in + +% \genpoint ... the names reflect the base fonts + + +\def\rescale #1#2{\count255=#1\multiply\count255 by #2\relax + \divide\count255 by 100 + \advance\count 255 by 5 % rounding + \divide\count 255 by 10 } + +\def\fontset scaled #1 { +\font\tensprm =cmr10 scaled #1 +\font\sevensprm = cmr7 scaled #1 +\font\fivesprm = cmr5 scaled #1 +\font\tenspi = cmmi10 scaled #1 +\font\sevenspi = cmmi7 scaled #1 +\font\fivespi = cmmi5 scaled #1 +\font\tenspsy = cmsy10 scaled #1 +\font\sevenspsy = cmsy7 scaled #1 +\font\fivespsy = cmsy5 scaled #1 +\font\tenspit = cmti10 scaled #1 +\font\tenspsl = cmsl10 scaled #1 +\font\tenspbfx = cmbx10 scaled #1 +\font\sevenspbfx = cmbx7 scaled #1 +\font\fivespbfx = cmbx5 scaled #1 +\font\tensptt = cmtt10 scaled #1 +\font\tenspex = cmex10 scaled #1 +\def\tenspscsm{\rescale {800}{#1} + \font\t@enspscsm = cmcc10 scaled \the\count255\relax + \let\tenspscsm=\t@enspscsm\tenspscsm} +\def\tensprmbig{\rescale {1200}{#1} + \font\t@ensprmbig = cmr10 scaled \the\count255\relax + \let\tensprmbig=\t@ensprmbig\tensprmbig} +\def\tenspbfxbig{\rescale {1200}{#1} + \font\t@enspbfxbig = cmbx10 scaled \the\count255\relax + \let\tenspbfxbig=\t@enspbfxbig\tenspbfxbig} +\def\tenspbfxbigg{\rescale {1440}{#1} + \font\t@enspbfxbigg = cmbx10 scaled \the\count255\relax + \let\tenspbfxbigg=\t@enspbfxbigg\tenspbfxbigg} +\def\tensprmbigg{\rescale {1440}{#1} + \font\t@ensprmbigg = cmr10 scaled \the\count255\relax + \let\tensprmbigg=\t@ensprmbigg\tensprmbigg} + \let\tensprmbiggg = \tensprmbigg } + +\def\genpoint{\def\rm{\fam0\tensprm}% + \textfont0=\tensprm \scriptfont0=\sevensprm \scriptscriptfont0=\fivesprm + \textfont1=\tenspi \scriptfont1=\sevenspi \scriptscriptfont1=\fivespi + \textfont2=\tenspsy \scriptfont2=\sevenspsy \scriptscriptfont2=\fivespsy + \textfont3=\tenspex \scriptfont3=\tenspex \scriptscriptfont3=\tenspex +\def\it{\fam\itfam\tenspit}% +\textfont\itfam=\tenspit +\def\sl{\fam\slfam\tenspsl}% +\textfont\slfam=\tenspsl +\def\bf{\fam\bffam\tenspbfx}% + \textfont\bffam=\tenspbfx \scriptfont\bffam=\sevenspbfx +\scriptscriptfont\bffam=\fivespbfx +\def\tt{\fam\ttfam\tensptt}% +\textfont\ttfam=\tensptt +\tt \ttglue=.5em plus .25em minus .15em +\def\normalbaselines{\baselineskip 2.8ex \lineskip 1pt \lineskiplimit \z@}% +\setbox\strutbox=\hbox{\vrule height 2.32ex depth .48ex width\z@}% +\normalbaselines\rm + \ifd@ocsty \let\footerfont =\tenspit + \let\headerfont=\tenspit +% \let\footnotefont = \smallpoint +% \let\smallerfont = \smallpoint + \def\cheadfont{\tensprmbigg}\relax + \def\sheadfont{\tenspbfxbig}\relax + \def\ssheadfont{\tenspbfx}\relax + \def\sssheadfont{\tenspbfx}\relax + \def\dsssheadfont{\tenspbfx}\relax + \setspacings \fi +\def\bigfont{\tenspbfxbig}\def\biggfont{\tenspbfxbigg}\relax +\def\bigggfont{\tenspbfxbiggg}\let\titlefont = \biggfont + \let\sc=\tenspccsm } + +\catcode`\@=12 diff --git a/macros/inrstex/texgraph/test_lat.aux b/macros/inrstex/texgraph/test_lat.aux new file mode 100644 index 0000000000..f23e54680b --- /dev/null +++ b/macros/inrstex/texgraph/test_lat.aux @@ -0,0 +1 @@ +\relax diff --git a/macros/inrstex/texgraph/test_lat.tex b/macros/inrstex/texgraph/test_lat.tex new file mode 100644 index 0000000000..7be4ba281a --- /dev/null +++ b/macros/inrstex/texgraph/test_lat.tex @@ -0,0 +1,59 @@ +\documentstyle[texgraph]{article} + +\begin{document} + +\hrule +\centergraph{ \begin{TeXgraph} + \lvec h:2 v:2 + \end{TeXgraph} + } +\hrule + +Now for some text. +\bigskip +\hrule +\centerplotfile{ieeelogo.ps} +\hrule +\bigskip +\centergraph{ \begin{TeXgraph} + \incscfile f:{ieeelogo.ps} sc:.3 d:45 + \end{TeXgraph}} +\hrule +\vskip 1in +Now for the INRS Logo to demonstrate some of the \TeX Graph language. + +\input inrslogo + +\font\eightrm = cmr8 + +\inrslogoadd h:-.5 v:0 + + + +\centergraph{ \begin{TeXgraph} + \move h:2 v:2 + \rtext d:45 t:{--- --- Some text at 45 degrees} + \rtext d:90 t:{--- --- Some text at 90 degrees} + \rtext d:180 t:{--- --- Some text at 180 degrees} + \rtext d:270 t:{--- --- Some text at 270 degrees} + \vtext {\begin{TeXgraph} + \move h:-2 v:2 + \rtext d:45 t:{*** *** Some text at 45 degrees +90} + \rtext d:90 t:{*** *** Some text at 90 degrees +90} + \rtext d:180 t:{*** *** Some text at 180 degrees +90} + \rtext d:270 t:{*** *** Some text at 270 degrees +90} + \end{TeXgraph}} + \move h:4 v:4 + \end{TeXgraph} + } + +\end{document} + + + + + + + + + diff --git a/macros/inrstex/texgraph/testinrs.tex b/macros/inrstex/texgraph/testinrs.tex new file mode 100644 index 0000000000..13e5ffa24c --- /dev/null +++ b/macros/inrstex/texgraph/testinrs.tex @@ -0,0 +1,99 @@ + +\hrule +\centergraph{ \btg + \lvec h:2 v:2 + \etg + } +\hrule + +Now for some text. +\bigskip +\hrule +\centerplotfile{ieeelogo.ps} +\hrule +\bigskip +\centergraph{ \btg + \incscfile f:{ieeelogo.ps} sc:.3 d:45 + \etg} +\hrule +\vskip 1in +Now for the INRS Logo to demonstrate some of the \TeX Graph language. + +\input inrslogo + +\inrslogoadd h:-.5 v:0 + + +\ejectpage + +\input inrssl % namechange to avoid problems with Latex naming. +\formscale .7 + +\inrsform % creates inrs logo ... and text .... replace by something + % else appropriate. + +\fullform % this creates a full sized version of this slide + +\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 and a comment + +\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 {//} // + +\textform % this creates a reduced version of the slide ... up to two per page + +% now we modify the logos and such + +\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 {//} // + + +\bigskip +\centergraph{ \btg + \move h:2 v:2 + \rtext d:45 t:{--- --- Some text at 45 degrees} + \rtext d:90 t:{--- --- Some text at 90 degrees} + \rtext d:180 t:{--- --- Some text at 180 degrees} + \rtext d:270 t:{--- --- Some text at 270 degrees} + \vtext {\btg + \move h:-2 v:2 + \rtext d:45 t:{*** *** Some text at 45 degrees +90} + \rtext d:90 t:{*** *** Some text at 90 degrees +90} + \rtext d:180 t:{*** *** Some text at 180 degrees +90} + \rtext d:270 t:{*** *** Some text at 270 degrees +90} + \etg} + \move h:4 v:4 + \etg + } + + + + + +\done + + diff --git a/macros/inrstex/texgraph/texgraph.sty b/macros/inrstex/texgraph/texgraph.sty new file mode 100644 index 0000000000..073efec127 --- /dev/null +++ b/macros/inrstex/texgraph/texgraph.sty @@ -0,0 +1,858 @@ +% DVIPS version + +% included are the changes required to make it work with DVIPS +% It should be modifiable to any other decent driver too + +% This is the complete texgraph macros ... for use with the INRS/Beebe +% Postscript driver + +% LaTeX version + +% Graphics macros for TeX using POSTCRIPT + +% ----- Needs mod to count characters in special ... some drivers have an +% input limit of 500 characters in a \special + + +% =============================================================== +% THIS VERSION IS FOR USE with a PostScript Driver with +% \p@sfile to signal a file name +% \p@sinline to signal inline PostScript +% processes \specials and dvi commands in order. +% does not place a (save restore) pair about a \special. +% +% \printhv defines scale/directions for inline Postscript +% \filehv defines scale/directions for file Postscript +% +% Both INRS's modification of Beebe's DVIALW and ArborText's PostScript +% drivers satisfy these minimal requirements. + +% It assumes that the underlying units are 300 pix/in +% Standard PostScript Conventions +% This is easily changed by changing the \hpix or \vpix +% It assumes that x,y are in the "normal" up/left direction. + +% File inclusions require the existence of a bounding box for the correct +% spacing to be left. + +% =============================== +% Most arguments, excepting file names, are delimited by spaces. Thus +% braces { .... } will usually only occur around inserted text ... which +% still must be followed by a space or end of line. + + +% ====================== + +\catcode`\@=11 + +% =============== Driver Signal Forms ======================= + +%\xdef\p@sfile{ps: } % file signal INRS DVIALW + \xdef\p@sfile{ps: plotfile } % file signal DVIPS +\xdef\p@sinline{ps:: } % inline signal DVIPS ... INRS DVIALW + +% This translates the direction of the page if the printer assumptions +% are different than TeX. The values should be +-1. +\gdef\printhv #1 #2 {\gdef\p@hv{ #1 #2 scale }} +\gdef\filehv #1 #2 {\gdef\f@schv{ #1 #2 scale }} +\gdef\rtdir #1 {\gdef\r@tdir{ #1 }} % neg or nothing PS has no pos + + + + + +% ============== LateX support ================= + +\newenvironment{TeXgraph}{\btg}{\etg} + +% This is the only change between the LateX and INRSTeX versions + +% ======= Simple Plotfile support =========== + +% These are vanilla forms for inserting an encapsulated PostScript file +% or creating a centered graphics environment. + +% \centergraph needs to be very \long + +\long\gdef\centergraph#1{\hbox to + \hsize{\hss\vbox{#1\vgraphskip}\hgraphskip\hss}} +\gdef\centerplotfile#1{\centergraph{\btg\includefile #1 \etg}} + + +% if you use the Latex command to create the new texgraph environment, +% then you will automatically be "inside" Texgraph. This +% means that you should use such commands as +% \includefile \incscmvfile \incscfile + + + + +% ========= error messages ========= +% \language=0 -- English, 1 - French +\ifnum \language=0 \message{<< WARNING -- TeXGraph needs DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \else + \message{<< AVERTISSMENT -- TeXGraph a besoin du DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \fi + +% ===== debugging code ===== +% will send out specials as messages +\gdef\dmess #1{} +\gdef\bmess #1{} + +% ======== \global\newif ======= +% Plain defines the \newif as a local variable. We need a global +% version if TeXgraph is to be brought in while inside a group. +% This is a simpler, but less elegant version of \newif + +%#1 is \if<..> #2 -...true #3 ...false +\gdef\gnewif#1#2#3{\global\let#1=\iffalse \gdef#2{\let#1=\iftrue}\relax + \gdef#3{\let#1=\iffalse}} + +% ======== TeXGraph Macros ========== + +% Postcript allows for arbitrary translation, scaling, rotation and clipping. +% This version saves the current segment scale(s), unit scale(s), rotation +% and translation and painfully computes and retores the correct form after +% a segment exit. The reason for this is that Postcript can stack only one +% CTM, text needs to have correct rotation and translation but default +% scaling ... + +% It would be preferable not to convert any of the units. However, it is +% necessary to know the maximum excursions. Since the PS currentpoint is +% not accessible to TeX, we must keep it ourselves. +% Since negative numbers can be used both maximum and minimum excursions +% are required. + + +% ====== begin -- end graphics ======= + +% The maximum and minimum extent in the h and v direction is recorded +% and is accessible +% at the end of a \btg \etg pair (in points). The same value, in pixels is accessible at +% all times +\newcount\maxhpospix +\newcount\maxvpospix +\newcount\minhpospix +\newcount\minvpospix +\newdimen\hgraphsize +\newdimen\vgraphsize + +\gdef\vgraphskip{\vskip\vgraphsize} +\gdef\hgraphskip{\hskip\hgraphsize} + + +\gdef\beginTeXGraphics{\t@exgraphdef \i@ncgdepth + \vbox\bgroup\offinterlineskip + \h@pos=0 + \global\maxhpospix=\h@pos + \global\minhpospix=\h@pos + \v@pos=0 + \global\maxvpospix=\v@pos + \global\minvpospix=\v@pos + \h@segoff=\h@pos \v@segoff=\v@pos + \edef\o@form{}\ifnum\g@depth=1 + \p@sinit \fi \p@sset % PS initialization + \s@save} +% \s@save saves the initialization for the special output. +% \g@save saves some local condition + +\gdef\endTeXGraphics{\g@raphout\egroup\maxhvpos\p@srestore \d@ecgdepth } +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics + +% ========== TeXGraph Nesting Depth ========== +\newcount\g@depth \global\g@depth=0 % initializes at zero +\gdef\i@ncgdepth{\global\advance\g@depth by 1 } +\gdef\d@ecgdepth{\global\advance\g@depth by -1 } + + + +% =========== Complete Graph Scaling =============== +% There is a separate scaling for the horizontal, vertical, and text + + +\gdef\grscale h:#1 v:#2 {\gdef\h@grsc{#1}\gdef\v@grsc{#1}\e@xtend + {\o@form}{#1 #2 scale }} + +\gdef\tgrscale #1 {\e@xtend{\o@form}{#1 #1 scale }} + % text scale h and v the same + + + + +% ======== PostScript initialization ========= +% + +\gdef\t@exgrdictdef{/td 50 dict def } + + + +\gdef\t@exgrdictinit{ td begin /mv {moveto} def + /lv {lineto} def + /st {stroke} def + /np {newpath} def + /sl {setlinewidth} def + /sd {setdash} def + /rt {rotate} def + /gs {gsave} def + /gr {grestore} def + /tr {translate} def + /cp {closepath} def + /sg {setgray} def + /chv {currentpoint} def + /cv {curveto} def + /slc {setlinecap} def + /slj {setlinejoin} def + /sc {scale} def + /at {neg atan rt} def + /mx {mv gs chv tr} def +% \h@vinit + end } +% ----- initial point move ... driver dependent ----- +\gdef\Xpos{Xp\the\g@depth\b@} +\gdef\Ypos{Yp\the\g@depth\b@} + +\gdef\h@vinit{ chv /\Ypos exch + def /\Xpos exch def } +\gdef\h@vset{\t@rhv \p@hv } +\gdef\m@vhv{ \Xpos \Ypos mv } % INRS +\gdef\t@rhv{ \Xpos \Ypos tr } % INRS +\gdef\t@rneghv{ \Xpos neg \Ypos neg tr } % INRS + +\gdef\p@sinit{\edef\e@form{\special{\p@sinline + \t@exgrdictdef + \t@exgrdictinit}} +\gdef\p@sset{\special{\p@sinline td begin \h@vinit gs \t@rhv + \p@hv end }}\e@form\dmess{\e@form}} + +% ======== PostScript termination ========= +\gdef\p@srestore{\edef\e@form{\special{\p@sinline grestore }}\e@form + \dmess{\e@form}} + % resets to entry into TeXgraph and recovers memory + +%========= macros for converting dimensions/units ========= +% --------- \box0 must not be void ---------- +\global\setbox0=\hbox{} + +%default values +\gdef\graphdim#1 {\gdef\g@dim{#1\relax}} + +%pixels /dim unit +\newcount\h@pix % sp/pixel +\gdef\hpix#1/#2 {\wd0=1true#2\relax + \h@pix=\wd0 \divide\h@pix by #1 \relax} +\newcount\v@pix % sp/pixel +\gdef\vpix#1/#2 {\wd0=1true#2\relax + \v@pix=\wd0 \divide\v@pix by #1 \relax} + +% Assumes #1 is dimension #2 is count in pixels, #3 sp/pix, #4 scalefactor (real) +% #2 is returned +\gdef\gendimtopix#1#2#3#4{\wd0=#1\dimen0=#4\wd0\relax + \wd0=\dimen0 #2=\wd0 \divide #2 by #3\relax} +% #1 is returned, #5 -\global or {} +\gdef\genpixtopt#1#2#3#4#5{\multiply #2 by #3\relax\wd0=#2sp + #5#1=#4\wd0\relax} + +% ---------- Converts maxpix to maxdim removes offset ----- +\gdef\maxhvpos{\global\advance\maxhpospix by -\minhpospix\relax + \genpixtopt{\hgraphsize}{\maxhpospix}{\h@pix}{\h@grsc}{\global}\relax + \global\advance\maxvpospix by -\minvpospix\relax + \genpixtopt{\vgraphsize}{\maxvpospix}{\v@pix}{\v@grsc}{\global}} + + + +% ======== The vector offsets my be relative or absolute ===== + +\gnewif{\ifr@elpos}{\r@elpostrue}{\r@elposfalse} %default is absolute +\gdef\absoluteposition{\r@elposfalse} +\gdef\relativeposition{\r@elpostrue} +\global\let\abspos=\absoluteposition +\global\let\relpos=\relativeposition +\global\let\absolute=\absoluteposition % historical +\global\let\relative=\relativeposition % historical + +% ====== update #1 by #2 r@elpos to #3, #4 is max #5 is min======= +\gdef\u@pdate#1#2#3#4#5{\ifr@elpos \advance #1 by #2\else + \advance #2 by #3\relax + #1=#2\fi + \ifnum #1>#4\global #4=#1\fi + \ifnum #1<#5\global #5=#1\fi + } +\gdef\h@update #1{\u@pdate{\h@pos}{#1}{\h@segoff}{\maxhpospix}{\minhpospix}} +\gdef\v@update #1{\u@pdate{\v@pos}{#1}{\v@segoff}{\maxvpospix}{\minvpospix}} + +% === pixel position r@elpos to initial offset starting position +\newcount\h@pos \h@pos=0 +\newcount\v@pos \v@pos=0 +\newcount\r@ang \r@ang=0 % 1000 times degrees ? + + +% ===== Check for pen up moves only ===== +% penup/down are used to determine whether a line needs to be stroked +% when a line pattern or penwidth is changed. + \gnewif{\ifp@down}{\p@downtrue}{\p@downfalse} + + +% ===== present segment origin and rotation ========== + +\newcount\h@segoff +\newcount\v@segoff +\newcount\r@segoff % 1000 times degrees + + +\gdef\beginsegment{\g@raphout\begingroup\s@eginit} + +% segment initialization is a trifle messy +\gdef\s@eginit{\h@segoff =\h@pos \v@segoff=\v@pos} + + +% PS has the concept of a path that is either +% completed with a "stroke" or "fill" ... stroking +% at the end or beginning of a segment, the special is written out. This is +% to ensure that the input order of the graphics reflects what entities are +% on top of what others. Further it is assumed that the origin does not +% change during an entire \btg ...\etg section. This means that every special +% must first move to the point where the previous one left off. \s@save +% defines \s@restore that restores, in case they had been modified, the line +% width, pattern, hpos, vpos, ... and any future things that need restoration. +% all graphic specials are ended with a stroke (st), whether it needs it not. + +% we need a special form to force a space after a \the\nnn form or \p@w + +\gdef\b@{ } + +\gdef\endsegment{\g@raphout\endgroup + \edef\o@form{}\s@save} +\gdef\s@pout #1#2{\edef\e@form{\special{#1\s@restore\o@form#2}}\dmess{\e@form}\e@form + \edef\o@form{}\s@save} +%\h@vset if there is a move before each special +\gdef\g@raphout{\ifx\empty\o@form \else \ifp@down + \s@pout{\p@sinline td begin }{ st end }\fi\fi\p@downfalse} +\global\let\graphout=\g@raphout + +% ====== Segment and units scaling ======== +% The units in any segment may be scaled arbitrarily. A unit scale is local +% to a segment but affects enclosed segments unless specifically overidden +% in that segment. In addition there is a graph or segment scale. This +% scaling factor is accumulative and is applied on top of the unit scale. +% These two scaling factors allow for a segment to be designed in nominal +% units, scaled to a nominal size and then be affected by relative scaling +% of an entire graph or segment. In addition there is a relative/absolute +% scale switch that allows for any segment to be unaffected by a graphscale. + +% \u@nitsc -- present unit scale, \s@egsc -- present segment scale +% \g@rsc -- present graphscale ... changes when ever either of the former do. + +% present implementation does not allow separate v h scaling + +% ------ Relative/Absolute Scale ------ +\gnewif{\ifr@elscale}{\r@elscaletrue}{\r@elscalefalse} +\gdef\absolutescale{\r@elscalefalse} +\gdef\relativescale{\r@elscaletrue} +\global\let\abssc=\absolutescale +\global\let\relsc=\relativescale + +% ----- unit scale ----- +\gdef\unitscale#1 {\edef\u@nitsc{#1}\newgraphscale} + +\global\let\graphscale=\unitscale % Historical + +% ----- Segment Scale ----- + +\gdef\segmentscale#1 {\ifr@elscale \realmult{#1}{\s@egsc}{\s@egsc}\else + \edef\s@egsc{#1}\fi + \newgraphscale} + +% ---- Graph Scale -------- +% This changes whenever either of the above change +\gdef\newgraphscale{\realmult{\u@nitsc}{\s@egsc}{\g@rsc}} + + +% ------ "Real" Multiplication -------- +% These functions use the fact that a box dimension may be scaled by +% a real. The final step is to "clean" off the pt on the resulting dim + +% Cleans off the pt in a dimension ... pt has catcode 12 +{\catcode`\p=12 \catcode`\t=12 +\gdef\c@lean#1pt{\edef\cx{#1}}} +% #1 and #2 are multiplicands #3 is a command to capture result +\gdef\realmult#1#2#3{\wd0=1pt\dimen0=#1\wd0\wd0=\dimen0\dimen0=#2\wd0 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} +\gdef\realadd#1#2#3{\dimen0=#1pt\dimen2=#2pt\advance\dimen0by\dimen2 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} + + +% -------- Command to convert nominal values to pixels ------ +% #1 is a decimal number, #2 must be a count, #3 is sp/pix +% This includes all scalings +\gdef\grdimtopix#1#2#3{\gendimtopix{#1\g@dim}{#2}{#3}{\g@rsc}} + + +% ------- special forms to update positions ------ + +\gdef\i@h#1{\grdimtopix{#1}{\d@umc}{\h@pix}\h@update{\d@umc}} +\gdef\i@v#1{\grdimtopix{#1}{\d@umc}{\v@pix}\v@update{\d@umc}} +\gdef\h@num#1#2{\grdimtopix{#1}{#2}{\h@pix}} +\gdef\v@num#1#2{\grdimtopix{#1}{#2}{\v@pix}} + + +%dummy variables +\newcount\d@uma +\newcount\d@umb +\newcount\d@umc +\newcount\d@umd +\newcount\d@ume + +% ====== end macros for converting dimensions + +% ======== Some more Utility Macros ======== +% ======== recursive macros ======== +\gdef\e@xtend #1#2{\let\d@x=#1\edef #1{\d@x #2}} +\xdef\s@pex{} +\xdef\s@pin{ } +\gdef\s@pexpand #1 #2!{\e@xtend{\s@pex}{#1\s@pin}\edef\t@x{#2}\ifx\t@x\empty\relax \else + \s@pexpand #2!\fi} + +% ========== A Do Loop Construction ========= +% \do <something> for <number of times>\od +% This is a specialization of the \loop in Plain. + +\newcount\d@count +\gdef\do #1 for #2\od{\d@count=#2\loop #1 \ifnum\d@count>1\advance + \d@count by -1\repeat} + + +% ========= Graphics specials ======= +\xdef\o@form{} +\gdef\penwidth #1 {\h@num{#1}{\d@umc}\edef\p@w{\the\d@umc}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\p@w\b@ sl }\fi} +\gdef\linecap #1 {\edef\s@lc{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lc\b@ slc }\fi} +\gdef\linejoin #1 {\edef\s@lj{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lj\b@ slj }\fi} +\gdef\lpatt p:#1 {\edef\v@p{#1 0}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\v@p\b@ sd }\fi} + + +% ==== parameters are in units of the nominal dimension \g@dim ====== + +\gdef\p@move #1#2#3{\i@h{#1}\i@v{#2}\e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ #3 }} + +\gdef\lvec h:#1 v:#2 {\p@move{#1}{#2}{lv}\p@downtrue} %draws a line + +\gdef\move h:#1 v:#2 {\p@move{#1}{#2}{mv}} %moves + + +% ====== a general vector with dimensions in pixels ====== + +% ========= General pixel dim vector ========== + +\gdef\lpix h:#1 v:#2 f:#3 {\e@xtend{\o@form}{ #1 #2 #3 }} + + +%============== puts TeX text at this position +% These are pure TeX macros that use \h@pos and \v@pos for orientation +% Text may be put horizontally (left/right) or vertically (down/up) + +% ======== sp form of \h@pos and \v@pos respectively ======== +\newdimen\t@hpos +\newdimen\t@vpos +\gdef\s@ettpos{\d@umc=\h@pos + \genpixtopt{\t@hpos}{\d@umc}{\h@pix}{}{}\relax + \d@umc=\v@pos + \genpixtopt{\t@vpos}{\d@umc}{\v@pix}{}{}\relax} + + + +% any one of nine reference point may be specified on the +% TeX box. This is Vertical T,C,B and Horizontal L,C,R +% The actual box is 0 height and width. +\newbox\t@box +% #1 LCR default/error L #2 TCB default/error T #3 text -- in hbox + +% Sets the box glues \lhglue \rhglue \tvglue \bvglue +% #1 x/h ref, #2 v/y ref +\gdef\textref h:#1 v:#2 {\ifx#1R\edef\lhglue{\hss}\edef\rhglue{}\else + \ifx#1C\edef\lhglue{\hss}\edef\rhglue{\hss}\else + \edef\lhglue{}\edef\rhglue{\hss}\fi\fi + \ifx#2B\edef\tvglue{\vss}\edef\bvglue{}\else + \ifx#2C\edef\tvglue{\vss}\edef\bvglue{\vss}\else + \edef\tvglue{}\edef\bvglue{\vss}\fi\fi} +\global\let\tboxref=\textref + +\newcount\h@oldmaxpos \newcount\v@oldmaxpos + + %needed to save max pos when texgraph is inside an h/vtext + +% ========== assumes driver location at initial \btg entry ======== +% + +% #1 text #2 - begin rotation form #3 - end rotation form +\long\gdef\m@text#1#2#3{\g@raphout\h@oldmaxpos=\maxhpospix\relax + \v@oldmaxpos=\maxvpospix\relax + \edef\h@oldgrsc{\h@grsc}\edef\v@oldgrsc{\v@grsc}\s@ettpos + \setbox\t@box=\vbox{\normalbaselines + \vskip\t@vpos\hbox{\hskip\t@hpos + \t@init{#2}\relax + \vbox to 0pt{\normalbaselines + \tvglue\hbox to 0pt{\lhglue\hbox{#1}\rhglue + }\bvglue}}}\relax + \dp\t@box=0pt\ht\t@box=0pt\wd\t@box=0pt + \box\t@box + \t@fin{#3} + \global\maxhpospix=\h@oldmaxpos\relax + \global\maxvpospix=\v@oldmaxpos\relax + \xdef\h@grsc{\h@oldgrsc}\edef\v@grsc{\v@oldgrsc}} + % saves maxh(v)pospix on stack + + +% ========== PS text initializations and terminations =========== +\gdef\t@init#1{\special{\p@sinline td begin \h@vinit gr gs + \t@rhv #1 \t@rneghv end }} + +\gdef\t@fin#1{\special{\p@sinline td begin \h@vinit gr gs \m@vhv \t@rhv \p@hv end }} + +% .... special test +%\gdef\t@init#1{} +%\gdef\t@fin#1{} +% ... end special test + + + +\long\gdef\htext #1 {\m@text{#1}{}{}} +\long\gdef\vtext #1 {\m@text{#1}{ 90 \r@tdir rt }{}} +\long\gdef\rtext d:#1 t:#2 {\m@text{#2}{ #1 \r@tdir rt }{}} +\long\gdef\rstext d:#1 sc:#2 t:#3 {\m@text{#3}{ #1 \r@tdir rt #2 #2 sc }{}} +\global\let\tbox=\htext + +% ========= Various Restore forms ======== +\gdef\g@save{\edef\g@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} +\gdef\s@save{\edef\s@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} + + + + +% ======== circle, arcs ========= +% The PS arc will connect the center of the arc to the circumference +% if the newpath includes the move to this point. Thus we define a +% set of arc functions that include/exclude this feature. The default +% does not include this form. + +\gdef\larc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{ st np \the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc + st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +\gdef\lcir r:#1 {\larc r:#1 sd:0 ed:360 } + +% ------ this is a raw arc ... can be used in fills -------- + +\gdef\arcc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc }} + +\gdef\arcn r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ + \the\d@umc\b@ #2 #3 arcn }} + +% ======= fill command ========== +% The fill command is essentially a polygonal fill ... not a point spreading +% this means that it is possible to erase with white ... The form here +% completes with a closepath applies the fill, starts a newpath and moves +% to the current point. Pattern is a grey level. +% 0 is black 1 is white + +\gdef\pfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp #1 sg fill np \the\h@pos\b@ \the\v@pos\b@ mv }} + + +% this form both fills and strokes around the path +\gdef\lpfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp gs #1 sg fill gr st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +% ======== Postscript special forms ======== +% This allows "raw" postscript to be put in the graph. +\gdef\pst #1{\e@xtend{\o@form}{#1 }} + +% These are some useful postscript compatible forms. + +\gdef\closepath{\e@xtend{\o@form}{cp }} +\gdef\newpath{\e@xtend{\o@form}{np }} +\gdef\stroke{\e@xtend{\o@form}{st }} + + + +% ========= including external files ========== +% an external file is included at the present point on the graph area +% moves are required to get there +% The actual file is placed inside a \t@box and tex commands are used +% to get to the place ... They probably can be nested +% #1 is the filename + +% The file is opened, if possible, to read its size. If this exists, it +% is used to update the maximum h/v position. +% The BoundingBox is determined + + +\newread\q@file +% #1 is the file name +\gnewif{\ifq@read}{\q@readtrue}{\q@readfalse} +\gnewif{\ifq@file}{\q@filetrue}{\q@filefalse} +\gnewif{\ifb@boxexists}{\b@boxexiststrue}{\b@boxexistsfalse} +% #1 == %%BoundingBox, #2 llh #3 llv #4 urh #5 urv #6 rest of line + + +\gdef\uncat{\catcode`"=12} + +{\catcode`\%=12 +\gdef\l@shift{\ifx\l@lh\empty \xdef\l@lh{\l@lv}\xdef\l@lv{\u@rh}\xdef + \u@rh{\u@rv}\xdef\u@rv{\e@xt}\fi} +\gdef\B@Box{%%BoundingBox} +\gdef\a@tend{(atend)} +\gdef\a@tendtest{\l@shift\ifx\l@lh\a@tend\relax\else + \global\b@boxexiststrue\q@readfalse\bmess{<< At End Test >>}\fi} + +\long\gdef\q@inline #1:#2 #3 #4 #5 #6 #7//{\xdef + \q@bbtest{#1}\xdef\l@lh{#2}\xdef + \l@lv{#3}\xdef\u@rh{#4}\xdef\u@rv{#5}\xdef + \e@xt{#6}\ifx\q@bbtest\B@Box + \a@tendtest\fi + \ifeof\q@file \q@readfalse \fi} + +\gdef\s@bbox{\b@boxexistsfalse + \message{<< \bbmess -- \f@ilename>>}\q@readtrue + \loop \relax \ifq@read\r@eadline\repeat} + +\gdef\r@eadline{ {\uncat \global\read\q@file to\q@parms } + \expandafter\q@inline\q@parms {}:{\relax} {\relax} {\relax} {\relax} +{\relax} \relax//\bmess{<<\q@parms>>}} + +\gdef\g@etpsize #1{{\catcode`\%=12\openin\q@file = #1\relax + \edef\q@parms{}\global\q@filetrue\xdef\f@ilename{#1} + \ifeof\q@file \message{<<\noincfile: #1 >>}\relax + \global\q@filefalse\else + \s@bbox + \closein\q@file\fi}} + +} % end of % disable + +\newcount\h@px \newcount\v@px \newcount\h@mx \newcount\v@mx +\gdef\s@avemaxpos{\global\h@px=\maxhpospix\global\v@px=\maxvpospix + \global\h@mx=\minhpospix\global\v@mx=\minvpospix} +\gdef\r@estoremaxpos{\global\maxhpospix=\h@px\global\maxvpospix\v@px + \global\minhpospix=\h@mx\global\minvpospix\v@mx} + +\gdef\f@sc{\b@} +\gdef\f@rt{\b@} +\gdef\filerotate#1{\edef\f@rt{ XposR YposR tr #1 \r@tdir rt XposR neg + YposR neg tr }} + +\gdef\filescale #1{\edef\f@sc{#1 #1 sc \f@schv}} +\gdef\p@fileinit{ td begin \h@vinit gr gs \f@rt \t@rhv \f@sc end + /texgraph save def /showpage {} def } +\xdef\p@filefin{ texgraph restore } +\global\let\mvec=\move + + + +\gdef\includefile #1 {\incscfile f:#1 sc:1 d:0 } + +\gdef\incscfile f:#1 sc:#2 d:#3 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + +\gdef\incscmvfile f:#1 sc:#2 d:#3 h:#4 v:#5 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \ifx#4L \edef\f@h{0}\else \ifx#4C \edef\f@h{1} \else \edef\f@h{2}\fi\fi + \ifx#5T \edef\f@v{0}\else \ifx#5C \edef\f@v{1} \else\edef\f@v{2}\fi\fi + \realmult{\p@lhh}{\f@h}{\h@off} + \realmult{\p@lvh}{\f@v}{\v@off} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{-\h@off} v:{-\v@off} + \beginsegment + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \beginsegment + \mvec h:{-\h@off} v:{-\v@off} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + + + +% ============ Design Grid ============== +% This will lay down a grid at the present location. The grid nominally +% at unit dimension intervals. The scale factor sc modifies this. The +% sc is local only to the grid + +\newcount\gcount +\gdef\grid nh:#1 nv:#2 sc:#3 {\gcount= #1 + \beginsegment + \relative + \penwidth .005 + \graphscale #3 + \beginsegment + \loop \lvec h:#2 v:0 + \move h:-#2 v:1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \gcount = #2 + \beginsegment + \loop \lvec h:0 v:#1 + \move h:1 v:-#1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \endsegment} +%========= end design grid ================ + + +% =========== Arrow Vectors ============== +% There are three types of arrow heads, filled, open V and triangle +% These are always placed on the end of a vector. + +% The basic design has the arrow head which is placed on the vector +% It theoretically can be placed on any curve where the angle is known or +% computable. + + +\newcount\a@len +\newcount\a@wid + +% Parameter specification for arrowheads. +% #1 -- length #2 -- width +% The dimensions are interpreted at current graphscale in force and +% are local to the segment group. +\gdef\arrowheadscale{\arrowheadsize l:.16 w:.04 } +\gdef\arrowheadsize l:#1 w:#2 {\grdimtopix{#1}{\a@len}{\h@pix + }\grdimtopix{#2}{\a@wid}{\h@pix + }} +% postcript commands for inidividual arrow form +\gdef\arrowheadtype t:#1 {\ifx#1T\edef\a@com{cp gs 1 sg fill gr st }\else + \ifx#1F\edef\a@com{cp 0 sg fill }\else + \edef\a@com{st }\fi\fi} +\newcount\h@lp +\newcount\v@lp + +% assumes that the dh and dv is in \h@lp \v@lp and present location is tip +% of arrowhead +\gdef\a@draw{st np \the\h@pos\b@ \the\v@pos\b@ mx + \the\v@lp\b@ neg \the\h@lp\b@ at + -\the\a@len\b@ \the\a@wid\b@ mv 0 0 lv + -\the\a@len\b@ -\the\a@wid\b@ lv + \a@com gr } + + + +\gdef\avec h:#1 v:#2 {\h@lp=\h@pos\relax \v@lp=\v@pos\relax + \lvec h:#1 v:#2 \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} + + +% ============= End Arrow Vectors ============= + +% ========= Bezier Curve ========== +% this is a cubic spline that is determined by four points. The initial +% point is assumed to be the current point. An arrow is easily added. + + +\gdef\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\i@h{#1}\d@uma=\h@pos + \i@v{#2}\d@umb=\v@pos\i@h{#3}\d@ume=\h@pos\i@v{#4}\d@umd=\v@pos + \i@h{#5}\i@v{#6}\e@xtend{\o@form}{\the\d@uma\b@ \the\d@umb\b@ + \the\d@ume\b@ \the\d@umd\b@ \the\h@pos\b@ \the\v@pos\b@ + cv }\p@downtrue} +\gdef\clv (#1 #2) (#3 #4) (#5 #6){\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + +\gdef\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 + \h@lp=\d@ume \relax \v@lp=\d@umd \relax + \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} +\gdef\cav (#1 #2) (#3 #4) (#5 #6){\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + + + + + +% ======= default values ========= +% These are reset each time \btg is called +\gdef\t@exgraphdef{\setbox0=\hbox{}\graphdim in +\hpix 300/in % INRS Default +\vpix 300/in % INRS Default +\printhv 1 1 % DVIPS 300 dpi +\filehv 4.17 -4.17 % DVIPS 300/72 +\rtdir neg % DVIPS +\def\h@grsc{1}\def\v@grsc{1}%sets default hor/vert scales +\absoluteposition +\relativescale +\unitscale 1 +\penwidth .015 +\lpatt p:{[]} +\linecap 1 +\linejoin 1 +\arrowheadsize l:.16 w:.04 +\arrowheadtype t:T +\textref h:L v:T } + +\xdef\s@egsc{1}% initial default + +\catcode`\@=12 + + diff --git a/macros/inrstex/texgraph/texgraph.tex b/macros/inrstex/texgraph/texgraph.tex new file mode 100644 index 0000000000..14c065d753 --- /dev/null +++ b/macros/inrstex/texgraph/texgraph.tex @@ -0,0 +1,859 @@ +% DVIPS version + +% included are the changes required to make it work with DVIPS +% It should be modifiable to any other decent driver too + +% This is the complete texgraph macros ... for use with the INRS/Beebe +% Postscript driver + +% This is the INRSTEX version + +% Graphics macros for TeX using POSTCRIPT + +% ----- Needs mod to count characters in special ... some drivers have an +% input limit of 500 characters in a \special + + +% =============================================================== +% THIS VERSION IS FOR USE with a PostScript Driver with +% \p@sfile to signal a file name +% \p@sinline to signal inline PostScript +% processes \specials and dvi commands in order. +% does not place a (save restore) pair about a \special. +% +% \printhv defines scale/directions for inline Postscript +% \filehv defines scale/directions for file Postscript +% +% Both INRS's modification of Beebe's DVIALW and ArborText's PostScript +% drivers satisfy these minimal requirements. + +% It assumes that the underlying units are 300 pix/in +% Standard PostScript Conventions +% This is easily changed by changing the \hpix or \vpix +% It assumes that x,y are in the "normal" up/left direction. + +% File inclusions require the existence of a bounding box for the correct +% spacing to be left. + +% =============================== +% Most arguments, excepting file names, are delimited by spaces. Thus +% braces { .... } will usually only occur around inserted text ... which +% still must be followed by a space or end of line. + + +% ====================== + +\catcode`\@=11 + +% =============== Driver Signal Forms ======================= + +%\xdef\p@sfile{ps: } % file signal INRS DVIALW + \xdef\p@sfile{ps: plotfile } % file signal DVIPS +\xdef\p@sinline{ps:: } % inline signal DVIPS ... INRS DVIALW + +% This translates the direction of the page if the printer assumptions +% are different than TeX. The values should be +-1. +\gdef\printhv #1 #2 {\gdef\p@hv{ #1 #2 scale }} +\gdef\filehv #1 #2 {\gdef\f@schv{ #1 #2 scale }} +\gdef\rtdir #1 {\gdef\r@tdir{ #1 }} % neg or nothing PS has no pos + + + + + +% ============== LateX support ================= + +%\newenvironment{TeXgraph}{\btg}{\etg} + +% This is the only change between the LateX and INRSTeX versions + +% ======= Simple Plotfile support =========== + +% These are vanilla forms for inserting an encapsulated PostScript file +% or creating a centered graphics environment. + +% \centergraph needs to be very \long + +\long\gdef\centergraph#1{\hbox to + \hsize{\hss\vbox{#1\vgraphskip}\hgraphskip\hss}} +\gdef\centerplotfile#1{\centergraph{\btg\includefile {#1} \etg}} + + +% if you use the Latex command to create the new texgraph environment, +% then you will automatically be "inside" Texgraph. This +% means that you should use such commands as +% \includefile \incscmvfile \incscfile + + + + +% ========= error messages ========= +% \language=0 -- English, 1 - French +\ifnum \language=0 \message{<< WARNING -- TeXGraph needs DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \else + \message{<< AVERTISSMENT -- TeXGraph a besoin du DVIPS >>} + \xdef\bbmess{Searching for BoundingBox } + \xdef\incfile{Graphics file} + \xdef\badincfile{Size/Format Error in Graphics File} + \xdef\noincfile{Missing Graphics File} + \fi + +% ===== debugging code ===== +% will send out specials as messages +\gdef\dmess #1{} +\gdef\bmess #1{} + +% ======== \global\newif ======= +% Plain defines the \newif as a local variable. We need a global +% version if TeXgraph is to be brought in while inside a group. +% This is a simpler, but less elegant version of \newif + +%#1 is \if<..> #2 -...true #3 ...false +\gdef\gnewif#1#2#3{\global\let#1=\iffalse \gdef#2{\let#1=\iftrue}\relax + \gdef#3{\let#1=\iffalse}} + +% ======== TeXGraph Macros ========== + +% Postcript allows for arbitrary translation, scaling, rotation and clipping. +% This version saves the current segment scale(s), unit scale(s), rotation +% and translation and painfully computes and retores the correct form after +% a segment exit. The reason for this is that Postcript can stack only one +% CTM, text needs to have correct rotation and translation but default +% scaling ... + +% It would be preferable not to convert any of the units. However, it is +% necessary to know the maximum excursions. Since the PS currentpoint is +% not accessible to TeX, we must keep it ourselves. +% Since negative numbers can be used both maximum and minimum excursions +% are required. + + +% ====== begin -- end graphics ======= + +% The maximum and minimum extent in the h and v direction is recorded +% and is accessible +% at the end of a \btg \etg pair (in points). The same value, in pixels is accessible at +% all times +\newcount\maxhpospix +\newcount\maxvpospix +\newcount\minhpospix +\newcount\minvpospix +\newdimen\hgraphsize +\newdimen\vgraphsize + +\gdef\vgraphskip{\vskip\vgraphsize} +\gdef\hgraphskip{\hskip\hgraphsize} + + +\gdef\beginTeXGraphics{\t@exgraphdef \i@ncgdepth + \vbox\bgroup\offinterlineskip + \h@pos=0 + \global\maxhpospix=\h@pos + \global\minhpospix=\h@pos + \v@pos=0 + \global\maxvpospix=\v@pos + \global\minvpospix=\v@pos + \h@segoff=\h@pos \v@segoff=\v@pos + \edef\o@form{}\ifnum\g@depth=1 + \p@sinit \fi \p@sset % PS initialization + \s@save} +% \s@save saves the initialization for the special output. +% \g@save saves some local condition + +\gdef\endTeXGraphics{\g@raphout\egroup\maxhvpos\p@srestore \d@ecgdepth } +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics +\global\let\btg=\beginTeXGraphics +\global\let\etg=\endTeXGraphics + +% ========== TeXGraph Nesting Depth ========== +\newcount\g@depth \global\g@depth=0 % initializes at zero +\gdef\i@ncgdepth{\global\advance\g@depth by 1 } +\gdef\d@ecgdepth{\global\advance\g@depth by -1 } + + + +% =========== Complete Graph Scaling =============== +% There is a separate scaling for the horizontal, vertical, and text + + +\gdef\grscale h:#1 v:#2 {\gdef\h@grsc{#1}\gdef\v@grsc{#1}\e@xtend + {\o@form}{#1 #2 scale }} + +\gdef\tgrscale #1 {\e@xtend{\o@form}{#1 #1 scale }} + % text scale h and v the same + + + + +% ======== PostScript initialization ========= +% + +\gdef\t@exgrdictdef{/td 50 dict def } + + + +\gdef\t@exgrdictinit{ td begin /mv {moveto} def + /lv {lineto} def + /st {stroke} def + /np {newpath} def + /sl {setlinewidth} def + /sd {setdash} def + /rt {rotate} def + /gs {gsave} def + /gr {grestore} def + /tr {translate} def + /cp {closepath} def + /sg {setgray} def + /chv {currentpoint} def + /cv {curveto} def + /slc {setlinecap} def + /slj {setlinejoin} def + /sc {scale} def + /at {neg atan rt} def + /mx {mv gs chv tr} def +% \h@vinit + end } +% ----- initial point move ... driver dependent ----- +\gdef\Xpos{Xp\the\g@depth\b@} +\gdef\Ypos{Yp\the\g@depth\b@} + +\gdef\h@vinit{ chv /\Ypos exch + def /\Xpos exch def } +\gdef\h@vset{\t@rhv \p@hv } +\gdef\m@vhv{ \Xpos \Ypos mv } % INRS +\gdef\t@rhv{ \Xpos \Ypos tr } % INRS +\gdef\t@rneghv{ \Xpos neg \Ypos neg tr } % INRS + +\gdef\p@sinit{\edef\e@form{\special{\p@sinline + \t@exgrdictdef + \t@exgrdictinit}} +\gdef\p@sset{\special{\p@sinline td begin \h@vinit gs \t@rhv + \p@hv end }}\e@form\dmess{\e@form}} + +% ======== PostScript termination ========= +\gdef\p@srestore{\edef\e@form{\special{\p@sinline grestore }}\e@form + \dmess{\e@form}} + % resets to entry into TeXgraph and recovers memory + +%========= macros for converting dimensions/units ========= +% --------- \box0 must not be void ---------- +\global\setbox0=\hbox{} + +%default values +\gdef\graphdim#1 {\gdef\g@dim{#1\relax}} + +%pixels /dim unit +\newcount\h@pix % sp/pixel +\gdef\hpix#1/#2 {\wd0=1true#2\relax + \h@pix=\wd0 \divide\h@pix by #1 \relax} +\newcount\v@pix % sp/pixel +\gdef\vpix#1/#2 {\wd0=1true#2\relax + \v@pix=\wd0 \divide\v@pix by #1 \relax} + +% Assumes #1 is dimension #2 is count in pixels, #3 sp/pix, #4 scalefactor (real) +% #2 is returned +\gdef\gendimtopix#1#2#3#4{\wd0=#1\dimen0=#4\wd0\relax + \wd0=\dimen0 #2=\wd0 \divide #2 by #3\relax} +% #1 is returned, #5 -\global or {} +\gdef\genpixtopt#1#2#3#4#5{\multiply #2 by #3\relax\wd0=#2sp + #5#1=#4\wd0\relax} + +% ---------- Converts maxpix to maxdim removes offset ----- +\gdef\maxhvpos{\global\advance\maxhpospix by -\minhpospix\relax + \genpixtopt{\hgraphsize}{\maxhpospix}{\h@pix}{\h@grsc}{\global}\relax + \global\advance\maxvpospix by -\minvpospix\relax + \genpixtopt{\vgraphsize}{\maxvpospix}{\v@pix}{\v@grsc}{\global}} + + + +% ======== The vector offsets my be relative or absolute ===== + +\gnewif{\ifr@elpos}{\r@elpostrue}{\r@elposfalse} %default is absolute +\gdef\absoluteposition{\r@elposfalse} +\gdef\relativeposition{\r@elpostrue} +\global\let\abspos=\absoluteposition +\global\let\relpos=\relativeposition +\global\let\absolute=\absoluteposition % historical +\global\let\relative=\relativeposition % historical + +% ====== update #1 by #2 r@elpos to #3, #4 is max #5 is min======= +\gdef\u@pdate#1#2#3#4#5{\ifr@elpos \advance #1 by #2\else + \advance #2 by #3\relax + #1=#2\fi + \ifnum #1>#4\global #4=#1\fi + \ifnum #1<#5\global #5=#1\fi + } +\gdef\h@update #1{\u@pdate{\h@pos}{#1}{\h@segoff}{\maxhpospix}{\minhpospix}} +\gdef\v@update #1{\u@pdate{\v@pos}{#1}{\v@segoff}{\maxvpospix}{\minvpospix}} + +% === pixel position r@elpos to initial offset starting position +\newcount\h@pos \h@pos=0 +\newcount\v@pos \v@pos=0 +\newcount\r@ang \r@ang=0 % 1000 times degrees ? + + +% ===== Check for pen up moves only ===== +% penup/down are used to determine whether a line needs to be stroked +% when a line pattern or penwidth is changed. + \gnewif{\ifp@down}{\p@downtrue}{\p@downfalse} + + +% ===== present segment origin and rotation ========== + +\newcount\h@segoff +\newcount\v@segoff +\newcount\r@segoff % 1000 times degrees + + +\gdef\beginsegment{\g@raphout\begingroup\s@eginit} + +% segment initialization is a trifle messy +\gdef\s@eginit{\h@segoff =\h@pos \v@segoff=\v@pos} + + +% PS has the concept of a path that is either +% completed with a "stroke" or "fill" ... stroking +% at the end or beginning of a segment, the special is written out. This is +% to ensure that the input order of the graphics reflects what entities are +% on top of what others. Further it is assumed that the origin does not +% change during an entire \btg ...\etg section. This means that every special +% must first move to the point where the previous one left off. \s@save +% defines \s@restore that restores, in case they had been modified, the line +% width, pattern, hpos, vpos, ... and any future things that need restoration. +% all graphic specials are ended with a stroke (st), whether it needs it not. + +% we need a special form to force a space after a \the\nnn form or \p@w + +\gdef\b@{ } + +\gdef\endsegment{\g@raphout\endgroup + \edef\o@form{}\s@save} +\gdef\s@pout #1#2{\edef\e@form{\special{#1\s@restore\o@form#2}}\dmess{\e@form}\e@form + \edef\o@form{}\s@save} +%\h@vset if there is a move before each special +\gdef\g@raphout{\ifx\empty\o@form \else \ifp@down + \s@pout{\p@sinline td begin }{ st end }\fi\fi\p@downfalse} +\global\let\graphout=\g@raphout + +% ====== Segment and units scaling ======== +% The units in any segment may be scaled arbitrarily. A unit scale is local +% to a segment but affects enclosed segments unless specifically overidden +% in that segment. In addition there is a graph or segment scale. This +% scaling factor is accumulative and is applied on top of the unit scale. +% These two scaling factors allow for a segment to be designed in nominal +% units, scaled to a nominal size and then be affected by relative scaling +% of an entire graph or segment. In addition there is a relative/absolute +% scale switch that allows for any segment to be unaffected by a graphscale. + +% \u@nitsc -- present unit scale, \s@egsc -- present segment scale +% \g@rsc -- present graphscale ... changes when ever either of the former do. + +% present implementation does not allow separate v h scaling + +% ------ Relative/Absolute Scale ------ +\gnewif{\ifr@elscale}{\r@elscaletrue}{\r@elscalefalse} +\gdef\absolutescale{\r@elscalefalse} +\gdef\relativescale{\r@elscaletrue} +\global\let\abssc=\absolutescale +\global\let\relsc=\relativescale + +% ----- unit scale ----- +\gdef\unitscale#1 {\edef\u@nitsc{#1}\newgraphscale} + +\global\let\graphscale=\unitscale % Historical + +% ----- Segment Scale ----- + +\gdef\segmentscale#1 {\ifr@elscale \realmult{#1}{\s@egsc}{\s@egsc}\else + \edef\s@egsc{#1}\fi + \newgraphscale} + +% ---- Graph Scale -------- +% This changes whenever either of the above change +\gdef\newgraphscale{\realmult{\u@nitsc}{\s@egsc}{\g@rsc}} + + +% ------ "Real" Multiplication -------- +% These functions use the fact that a box dimension may be scaled by +% a real. The final step is to "clean" off the pt on the resulting dim + +% Cleans off the pt in a dimension ... pt has catcode 12 +{\catcode`\p=12 \catcode`\t=12 +\gdef\c@lean#1pt{\edef\cx{#1}}} +% #1 and #2 are multiplicands #3 is a command to capture result +\gdef\realmult#1#2#3{\wd0=1pt\dimen0=#1\wd0\wd0=\dimen0\dimen0=#2\wd0 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} +\gdef\realadd#1#2#3{\dimen0=#1pt\dimen2=#2pt\advance\dimen0by\dimen2 + \edef\R@M{\the\dimen0}\expandafter\c@lean\R@M\edef#3{\cx}} + + +% -------- Command to convert nominal values to pixels ------ +% #1 is a decimal number, #2 must be a count, #3 is sp/pix +% This includes all scalings +\gdef\grdimtopix#1#2#3{\gendimtopix{#1\g@dim}{#2}{#3}{\g@rsc}} + + +% ------- special forms to update positions ------ + +\gdef\i@h#1{\grdimtopix{#1}{\d@umc}{\h@pix}\h@update{\d@umc}} +\gdef\i@v#1{\grdimtopix{#1}{\d@umc}{\v@pix}\v@update{\d@umc}} +\gdef\h@num#1#2{\grdimtopix{#1}{#2}{\h@pix}} +\gdef\v@num#1#2{\grdimtopix{#1}{#2}{\v@pix}} + + +%dummy variables +\newcount\d@uma +\newcount\d@umb +\newcount\d@umc +\newcount\d@umd +\newcount\d@ume + +% ====== end macros for converting dimensions + +% ======== Some more Utility Macros ======== +% ======== recursive macros ======== +\gdef\e@xtend #1#2{\let\d@x=#1\edef #1{\d@x #2}} +\xdef\s@pex{} +\xdef\s@pin{ } +\gdef\s@pexpand #1 #2!{\e@xtend{\s@pex}{#1\s@pin}\edef\t@x{#2}\ifx\t@x\empty\relax \else + \s@pexpand #2!\fi} + +% ========== A Do Loop Construction ========= +% \do <something> for <number of times>\od +% This is a specialization of the \loop in Plain. + +\newcount\d@count +\gdef\do #1 for #2\od{\d@count=#2\loop #1 \ifnum\d@count>1\advance + \d@count by -1\repeat} + + +% ========= Graphics specials ======= +\xdef\o@form{} +\gdef\penwidth #1 {\h@num{#1}{\d@umc}\edef\p@w{\the\d@umc}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\p@w\b@ sl }\fi} +\gdef\linecap #1 {\edef\s@lc{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lc\b@ slc }\fi} +\gdef\linejoin #1 {\edef\s@lj{#1}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\s@lj\b@ slj }\fi} +\gdef\lpatt p:#1 {\edef\v@p{#1 0}\ifp@down \g@save + \e@xtend{\o@form}{st \g@restore } + \else \e@xtend{\o@form}{\v@p\b@ sd }\fi} + + +% ==== parameters are in units of the nominal dimension \g@dim ====== + +\gdef\p@move #1#2#3{\i@h{#1}\i@v{#2}\e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ #3 }} + +\gdef\lvec h:#1 v:#2 {\p@move{#1}{#2}{lv}\p@downtrue} %draws a line + +\gdef\move h:#1 v:#2 {\p@move{#1}{#2}{mv}} %moves + + +% ====== a general vector with dimensions in pixels ====== + +% ========= General pixel dim vector ========== + +\gdef\lpix h:#1 v:#2 f:#3 {\e@xtend{\o@form}{ #1 #2 #3 }} + + +%============== puts TeX text at this position +% These are pure TeX macros that use \h@pos and \v@pos for orientation +% Text may be put horizontally (left/right) or vertically (down/up) + +% ======== sp form of \h@pos and \v@pos respectively ======== +\newdimen\t@hpos +\newdimen\t@vpos +\gdef\s@ettpos{\d@umc=\h@pos + \genpixtopt{\t@hpos}{\d@umc}{\h@pix}{}{}\relax + \d@umc=\v@pos + \genpixtopt{\t@vpos}{\d@umc}{\v@pix}{}{}\relax} + + + +% any one of nine reference point may be specified on the +% TeX box. This is Vertical T,C,B and Horizontal L,C,R +% The actual box is 0 height and width. +\newbox\t@box +% #1 LCR default/error L #2 TCB default/error T #3 text -- in hbox + +% Sets the box glues \lhglue \rhglue \tvglue \bvglue +% #1 x/h ref, #2 v/y ref +\gdef\textref h:#1 v:#2 {\ifx#1R\edef\lhglue{\hss}\edef\rhglue{}\else + \ifx#1C\edef\lhglue{\hss}\edef\rhglue{\hss}\else + \edef\lhglue{}\edef\rhglue{\hss}\fi\fi + \ifx#2B\edef\tvglue{\vss}\edef\bvglue{}\else + \ifx#2C\edef\tvglue{\vss}\edef\bvglue{\vss}\else + \edef\tvglue{}\edef\bvglue{\vss}\fi\fi} +\global\let\tboxref=\textref + +\newcount\h@oldmaxpos \newcount\v@oldmaxpos + + %needed to save max pos when texgraph is inside an h/vtext + +% ========== assumes driver location at initial \btg entry ======== +% + +% #1 text #2 - begin rotation form #3 - end rotation form +\long\gdef\m@text#1#2#3{\g@raphout\h@oldmaxpos=\maxhpospix\relax + \v@oldmaxpos=\maxvpospix\relax + \edef\h@oldgrsc{\h@grsc}\edef\v@oldgrsc{\v@grsc}\s@ettpos + \setbox\t@box=\vbox{\normalbaselines + \vskip\t@vpos\hbox{\hskip\t@hpos + \t@init{#2}\relax + \vbox to 0pt{\normalbaselines + \tvglue\hbox to 0pt{\lhglue\hbox{#1}\rhglue + }\bvglue}}}\relax + \dp\t@box=0pt\ht\t@box=0pt\wd\t@box=0pt + \box\t@box + \t@fin{#3} + \global\maxhpospix=\h@oldmaxpos\relax + \global\maxvpospix=\v@oldmaxpos\relax + \xdef\h@grsc{\h@oldgrsc}\edef\v@grsc{\v@oldgrsc}} + % saves maxh(v)pospix on stack + + +% ========== PS text initializations and terminations =========== +\gdef\t@init#1{\special{\p@sinline td begin \h@vinit gr gs + \t@rhv #1 \t@rneghv end }} + +\gdef\t@fin#1{\special{\p@sinline td begin \h@vinit gr gs \m@vhv \t@rhv \p@hv end }} + +% .... special test +%\gdef\t@init#1{} +%\gdef\t@fin#1{} +% ... end special test + + + +\long\gdef\htext #1 {\m@text{#1}{}{}} +\long\gdef\vtext #1 {\m@text{#1}{ 90 \r@tdir rt }{}} +\long\gdef\rtext d:#1 t:#2 {\m@text{#2}{ #1 \r@tdir rt }{}} +\long\gdef\rstext d:#1 sc:#2 t:#3 {\m@text{#3}{ #1 \r@tdir rt #2 #2 sc }{}} +\global\let\tbox=\htext + +% ========= Various Restore forms ======== +\gdef\g@save{\edef\g@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} +\gdef\s@save{\edef\s@restore{\p@w\b@ sl \v@p\b@ sd \s@lc\b@ slc \s@lj\b@ slj + np \the\h@pos\b@ \the\v@pos\b@ mv }} + + + + +% ======== circle, arcs ========= +% The PS arc will connect the center of the arc to the circumference +% if the newpath includes the move to this point. Thus we define a +% set of arc functions that include/exclude this feature. The default +% does not include this form. + +\gdef\larc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{ st np \the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc + st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +\gdef\lcir r:#1 {\larc r:#1 sd:0 ed:360 } + +% ------ this is a raw arc ... can be used in fills -------- + +\gdef\arcc r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ \the\d@umc\b@ #2 #3 arc }} + +\gdef\arcn r:#1 sd:#2 ed:#3 {\h@num{#1}{\d@umc}\p@downtrue + \e@xtend{\o@form}{\the\h@pos\b@ \the\v@pos\b@ + \the\d@umc\b@ #2 #3 arcn }} + +% ======= fill command ========== +% The fill command is essentially a polygonal fill ... not a point spreading +% this means that it is possible to erase with white ... The form here +% completes with a closepath applies the fill, starts a newpath and moves +% to the current point. Pattern is a grey level. +% 0 is black 1 is white + +\gdef\pfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp #1 sg fill np \the\h@pos\b@ \the\v@pos\b@ mv }} + + +% this form both fills and strokes around the path +\gdef\lpfill p:#1 {\p@downtrue + \e@xtend{\o@form}{cp gs #1 sg fill gr st np \the\h@pos\b@ \the\v@pos\b@ mv }} + +% ======== Postscript special forms ======== +% This allows "raw" postscript to be put in the graph. +\gdef\pst #1{\e@xtend{\o@form}{#1 }} + +% These are some useful postscript compatible forms. + +\gdef\closepath{\e@xtend{\o@form}{cp }} +\gdef\newpath{\e@xtend{\o@form}{np }} +\gdef\stroke{\e@xtend{\o@form}{st }} + + + +% ========= including external files ========== +% an external file is included at the present point on the graph area +% moves are required to get there +% The actual file is placed inside a \t@box and tex commands are used +% to get to the place ... They probably can be nested +% #1 is the filename + +% The file is opened, if possible, to read its size. If this exists, it +% is used to update the maximum h/v position. +% The BoundingBox is determined + + +\newread\q@file +% #1 is the file name +\gnewif{\ifq@read}{\q@readtrue}{\q@readfalse} +\gnewif{\ifq@file}{\q@filetrue}{\q@filefalse} +\gnewif{\ifb@boxexists}{\b@boxexiststrue}{\b@boxexistsfalse} +% #1 == %%BoundingBox, #2 llh #3 llv #4 urh #5 urv #6 rest of line + + +\gdef\uncat{\catcode`"=12} + +{\catcode`\%=12 +\gdef\l@shift{\ifx\l@lh\empty \xdef\l@lh{\l@lv}\xdef\l@lv{\u@rh}\xdef + \u@rh{\u@rv}\xdef\u@rv{\e@xt}\fi} +\gdef\B@Box{%%BoundingBox} +\gdef\a@tend{(atend)} +\gdef\a@tendtest{\l@shift\ifx\l@lh\a@tend\relax\else + \global\b@boxexiststrue\q@readfalse\bmess{<< At End Test >>}\fi} + +\long\gdef\q@inline #1:#2 #3 #4 #5 #6 #7//{\xdef + \q@bbtest{#1}\xdef\l@lh{#2}\xdef + \l@lv{#3}\xdef\u@rh{#4}\xdef\u@rv{#5}\xdef + \e@xt{#6}\ifx\q@bbtest\B@Box + \a@tendtest\fi + \ifeof\q@file \q@readfalse \fi} + +\gdef\s@bbox{\b@boxexistsfalse + \message{<< \bbmess -- \f@ilename>>}\q@readtrue + \loop \relax \ifq@read\r@eadline\repeat} + +\gdef\r@eadline{ {\uncat \global\read\q@file to\q@parms } + \expandafter\q@inline\q@parms {}:{\relax} {\relax} {\relax} {\relax} +{\relax} \relax//\bmess{<<\q@parms>>}} + +\gdef\g@etpsize #1{{\catcode`\%=12\openin\q@file = #1\relax + \edef\q@parms{}\global\q@filetrue\xdef\f@ilename{#1} + \ifeof\q@file \message{<<\noincfile: #1 >>}\relax + \global\q@filefalse\else + \s@bbox + \closein\q@file\fi}} + +} % end of % disable + +\newcount\h@px \newcount\v@px \newcount\h@mx \newcount\v@mx +\gdef\s@avemaxpos{\global\h@px=\maxhpospix\global\v@px=\maxvpospix + \global\h@mx=\minhpospix\global\v@mx=\minvpospix} +\gdef\r@estoremaxpos{\global\maxhpospix=\h@px\global\maxvpospix\v@px + \global\minhpospix=\h@mx\global\minvpospix\v@mx} + +\gdef\f@sc{\b@} +\gdef\f@rt{\b@} +\gdef\filerotate#1{\edef\f@rt{ XposR YposR tr #1 \r@tdir rt XposR neg + YposR neg tr }} + +\gdef\filescale #1{\edef\f@sc{#1 #1 sc \f@schv}} +\gdef\p@fileinit{ td begin \h@vinit gr gs \f@rt \t@rhv \f@sc end + /texgraph save def /showpage {} def } +\xdef\p@filefin{ texgraph restore } +\global\let\mvec=\move + + + +\gdef\includefile #1 {\incscfile f:{#1} sc:1 d:0 } + +\gdef\incscfile f:#1 sc:#2 d:#3 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + +\gdef\incscmvfile f:#1 sc:#2 d:#3 h:#4 v:#5 {\g@etpsize{#1}\ifb@boxexists + \message{<<\incfile: #1 >>}\realadd{\u@rh}{-\l@lh}{\p@lh} + \realadd{\u@rv}{-\l@lv}{\p@lv} + \realmult{\p@lh}{.5}{\p@lhh} + \realmult{\p@lv}{.5}{\p@lvh} + \ifx#4L \edef\f@h{0}\else \ifx#4C \edef\f@h{1} \else \edef\f@h{2}\fi\fi + \ifx#5T \edef\f@v{0}\else \ifx#5C \edef\f@v{1} \else\edef\f@v{2}\fi\fi + \realmult{\p@lhh}{\f@h}{\h@off} + \realmult{\p@lvh}{\f@v}{\v@off} + \beginsegment + \segmentscale #2 + \global\let\g@dimo=\g@dim + \graphdim pt + \mvec h:{-\h@off} v:{-\v@off} + \beginsegment + \mvec h:{\p@lh} v:{\p@lv} + \mvec h:{\p@lhh} v:{\p@lvh} + \m@text{}{ /XposR \Xpos\b@ def + /YposR \Ypos\b@ def }{} + \endsegment + \endsegment + \s@avemaxpos + \beginsegment \segmentscale #2 + \mvec h:{-\l@lh} v:{\u@rv} + \beginsegment + \mvec h:{-\h@off} v:{-\v@off} + \htext{\filescale{#2}\filerotate{#3}\relax + \special{\p@sinline\p@fileinit } + \special{\p@sfile #1 } + \special{\p@sinline\p@filefin }} + \endsegment + \endsegment + \r@estoremaxpos + \global\let\g@dim=\g@dimo + \else\message{<<\badincfile: #1 >>}\fi } + + + +% ============ Design Grid ============== +% This will lay down a grid at the present location. The grid nominally +% at unit dimension intervals. The scale factor sc modifies this. The +% sc is local only to the grid + +\newcount\gcount +\gdef\grid nh:#1 nv:#2 sc:#3 {\gcount= #1 + \beginsegment + \relative + \penwidth .005 + \graphscale #3 + \beginsegment + \loop \lvec h:#2 v:0 + \move h:-#2 v:1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \gcount = #2 + \beginsegment + \loop \lvec h:0 v:#1 + \move h:1 v:-#1 + \ifnum \gcount > 1 + \advance\gcount by -1 \repeat + \endsegment + \endsegment} +%========= end design grid ================ + + +% =========== Arrow Vectors ============== +% There are three types of arrow heads, filled, open V and triangle +% These are always placed on the end of a vector. + +% The basic design has the arrow head which is placed on the vector +% It theoretically can be placed on any curve where the angle is known or +% computable. + + +\newcount\a@len +\newcount\a@wid + +% Parameter specification for arrowheads. +% #1 -- length #2 -- width +% The dimensions are interpreted at current graphscale in force and +% are local to the segment group. +\gdef\arrowheadscale{\arrowheadsize l:.16 w:.04 } +\gdef\arrowheadsize l:#1 w:#2 {\grdimtopix{#1}{\a@len}{\h@pix + }\grdimtopix{#2}{\a@wid}{\h@pix + }} +% postcript commands for inidividual arrow form +\gdef\arrowheadtype t:#1 {\ifx#1T\edef\a@com{cp gs 1 sg fill gr st }\else + \ifx#1F\edef\a@com{cp 0 sg fill }\else + \edef\a@com{st }\fi\fi} +\newcount\h@lp +\newcount\v@lp + +% assumes that the dh and dv is in \h@lp \v@lp and present location is tip +% of arrowhead +\gdef\a@draw{st np \the\h@pos\b@ \the\v@pos\b@ mx + \the\v@lp\b@ neg \the\h@lp\b@ at + -\the\a@len\b@ \the\a@wid\b@ mv 0 0 lv + -\the\a@len\b@ -\the\a@wid\b@ lv + \a@com gr } + + + +\gdef\avec h:#1 v:#2 {\h@lp=\h@pos\relax \v@lp=\v@pos\relax + \lvec h:#1 v:#2 \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} + + +% ============= End Arrow Vectors ============= + +% ========= Bezier Curve ========== +% this is a cubic spline that is determined by four points. The initial +% point is assumed to be the current point. An arrow is easily added. + + +\gdef\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\i@h{#1}\d@uma=\h@pos + \i@v{#2}\d@umb=\v@pos\i@h{#3}\d@ume=\h@pos\i@v{#4}\d@umd=\v@pos + \i@h{#5}\i@v{#6}\e@xtend{\o@form}{\the\d@uma\b@ \the\d@umb\b@ + \the\d@ume\b@ \the\d@umd\b@ \the\h@pos\b@ \the\v@pos\b@ + cv }\p@downtrue} +\gdef\clv (#1 #2) (#3 #4) (#5 #6){\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + +\gdef\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 {\clvec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 + \h@lp=\d@ume \relax \v@lp=\d@umd \relax + \advance\h@lp by -\h@pos\relax + \advance\v@lp by -\v@pos\relax + \e@xtend{\o@form}{\a@draw}} +\gdef\cav (#1 #2) (#3 #4) (#5 #6){\cavec h1:#1 v1:#2 h2:#3 v2:#4 h3:#5 v3:#6 } + + + + + +% ======= default values ========= +% These are reset each time \btg is called +\gdef\t@exgraphdef{\setbox0=\hbox{}\graphdim in +\hpix 300/in % INRS Default +\vpix 300/in % INRS Default +\printhv 1 1 % DVIPS 300 dpi +\filehv 4.17 -4.17 % DVIPS 300/72 +\rtdir neg % DVIPS +\def\h@grsc{1}\def\v@grsc{1}%sets default hor/vert scales +\absoluteposition +\relativescale +\unitscale 1 +\penwidth .015 +\lpatt p:{[]} +\linecap 1 +\linejoin 1 +\arrowheadsize l:.16 w:.04 +\arrowheadtype t:T +\textref h:L v:T } + +\xdef\s@egsc{1}% initial default + +\catcode`\@=12 + + + diff --git a/macros/inrstex/texgraph/thgraph.ps b/macros/inrstex/texgraph/thgraph.ps new file mode 100644 index 0000000000..69809624c9 --- /dev/null +++ b/macros/inrstex/texgraph/thgraph.ps @@ -0,0 +1,4832 @@ +%!PS-Adobe-2.0 +%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software +%%Title: thgraph.dvi +%%Pages: 24 1 +%%BoundingBox: 0 0 612 792 +%%EndComments +%%BeginProcSet: tex.pro +/TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch +load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{ +isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get +round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10 +N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{ +/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{ +statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N +/FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin +/FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array +/BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 +array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail} +B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont +setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup +length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ +ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B +/ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 +N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S +dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 +ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice +ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image} +imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr +put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf +div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook +known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore +showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook +known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 +array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N +/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X +/rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0 +7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 +TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 +-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{ +moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{ +S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B +/j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w +}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{clear SS restore}B end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs +792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP false N /BBcalc false N +/p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{ +@scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true +N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X} +B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B +/magscale true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{md begin /letter{}N /note{}N /legal{}N /od{txpose 1 0 mtx +defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{ +itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2 +roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll +itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array +astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{ +PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR +pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if +yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 +rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not +and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip +not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if} +ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy +TR .96 dup scale neg S neg S TR}if}N /cp{pop pop showpage pm restore}N end}if} +if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{ +DVImag dup scale}if}N /psfts{S 65536 div N}N /startTexFig{/psf$SavedState save +N userdict maxlength dict begin /magscale false def normalscale currentpoint +TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx +sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx +psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N +/erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{psf$llx psf$lly +psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll +S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end +psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave +normalscale currentpoint TR @SpecialDefaults}N /@setspecial{CLIP{newpath 0 0 +moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR +hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg +TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore +clear SpecialSave restore end}N /@defspecial{SDict begin}N /@fedspecial{end}B +/li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY X N 1 +setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY +moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix +currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix +setmatrix}N end +%%EndProcSet +TeXDict begin 1000 300 300 @start /Fa 23 122 df<3078FCFC7830060676851A>46 +D<0000C00001E00001E00003E00003C00007C0000780000F80000F00000F00001F00001E00003E +00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C00007C0000780 +000F80000F00001F00001E00001E00003E00003C00007C0000780000F80000F00000F000006000 +0013277DA21A>I<0000C00003E00007E0000FC0003F80007E0000FC0003F80007E0000FC0003F +80007E0000FC0000FC00007E00003F80000FC00007E00003F80000FC00007E00003F80000FC000 +07E00003E00000C0131A7D9B1A>60 D<600000F80000FC00007E00003F80000FC00007E00003F8 +0000FC00007E00003F80000FC00007E00007E0000FC0003F80007E0000FC0003F80007E0000FC0 +003F80007E0000FC0000F80000600000131A7D9B1A>62 D<600000F00000F00000F80000780000 +7C00003C00003E00001E00001E00001F00000F00000F800007800007C00003C00003C00003E000 +01E00001F00000F00000F800007800007800007C00003C00003E00001E00001F00000F00000F00 +000F800007800007C00003C00003E00001E00001E00000C013277DA21A>92 +D<FE0000FE0000FE00000E00000E00000E00000E00000E00000E00000E3E000EFF800FFFE00FC1 +F00F80700F00380E00380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80 +F00FC1E00FFFC00EFF80063E00161E7F9D1A>98 D<001FC0001FC0001FC00001C00001C00001C0 +0001C00001C00001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0 +E001C0E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC07FDFC01F1FC161E7E9D1A> +100 D<01F80007FF000FFF801E07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFFF0 +E000007000007000007800703C00701F01F00FFFE003FFC000FE0014157D941A>I<0007E0001F +F0003FF800787800F03000E00000E00000E00000E0007FFFF0FFFFF0FFFFF000E00000E00000E0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0007FFF +C07FFFC07FFFC0151E7F9D1A>I<00F87C03FFFE07FFFE0F078C0E03801C01C01C01C01C01C01C +01C01C01C00E03800F07800FFF000FFE001CF8001C00001C00000E00000FFF800FFFE03FFFF87C +007C70001CE0000EE0000EE0000EE0000E70001C78003C3E00F81FFFF007FFC001FF0017217F94 +1A>I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC0 +0FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 +0E00E00E00E0FFE3FEFFE3FEFFE3FE171E7F9D1A>I<01C00003E00003E00003E00001C0000000 +000000000000000000000000007FE000FFE0007FE00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E000FFFFC0FFFFC0FFFFC0121F +7C9E1A>I<FFE000FFE000FFE00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E00000E000FFFFE0FFFFE0FFFFE0131E7D9D1A>108 D<7CE0E000FFFBF8007FFFF8001F +1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00 +1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FF9F9F807F1F1F00191580941A>I< +FE3E00FEFF80FFFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 +0E00E00E00E00E00E00E00E00E00E0FFE3FEFFE3FEFFE3FE17157F941A>I<01F00007FC001FFF +003E0F803C07807803C07001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07803 +C03C07803E0F801FFF0007FC0001F00013157D941A>I<FE3E00FEFF80FFFFE00FC1F00F80700F +00380E00380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00F +FFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000FFE000FF +E00016207F941A>I<FF83F0FF8FF8FFBFFC03FC3C03F01803E00003C00003C000038000038000 +038000038000038000038000038000038000038000038000FFFF00FFFF80FFFF0016157E941A> +114 D<07FB801FFF807FFF80780780E00380E00380E003807800007FC0003FFC0007FF00003F80 +0003806001C0E001C0E001C0F003C0FC0780FFFF00EFFE00E3F80012157C941A>I<00C00001C0 +0001C00001C00001C00001C00001C0007FFFE0FFFFE0FFFFE001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C07001C07001C07001C07000E0E000FFE0007FC0001F +00141C7F9B1A>I<FE0FE0FE0FE0FE0FE00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFE03FFFE00FCFE17157F941A>I< +7FC7F87FCFFC7FC7F80703C003878003C70001EE0000FE00007C00007800003800007C0000EE00 +01EE0001C7000383800783C00701C07FC7FCFFC7FE7FC7FC17157F941A>120 +D<7FC7FCFFC7FE7FC7FC0E00E00F00E00701E00701C00781C00381C003838001C38001C38001C7 +0000E70000E70000E600006600006E00003C00003C00003C00003C000038000038000078000070 +0030700078E00079E0007FC0003F80001E000017207F941A>I E /Fb 3 +16 df<00C00000C00000C00000C00000C000C0C0C0F0C3C038C7000EDC0003F00000C00003F000 +0EDC0038C700F0C3C0C0C0C000C00000C00000C00000C00000C00012157D9619>3 +D<03F0000FFC001C0E00300300600180600180C000C0C000C0C000C0C000C0C000C0C000C0C000 +C0C000C06001806001803003001C0E000FFC0003F00012147D9519>14 D<03F0000FFC001FFE00 +3FFF007FFF807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF80 +3FFF001FFE000FFC0003F00012147D9519>I E /Fc 32 117 df<1C003E007F00FF80FF80FF80 +7F003E001C0009097B8813>46 D<000003800000000007C00000000007C0000000000FE0000000 +000FE0000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF8 +0000000073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF000000 +01C0FF00000003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003F +E000000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000 +780007FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000 +FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65 +D<FFFFFFF80000FFFFFFFF8000FFFFFFFFE00003FC001FF80003FC0007FC0003FC0001FE0003FC +0000FF0003FC00007F8003FC00003FC003FC00001FC003FC00001FE003FC00001FE003FC00000F +F003FC00000FF003FC00000FF003FC00000FF003FC00000FF803FC00000FF803FC00000FF803FC +00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000F +F803FC00000FF003FC00000FF003FC00000FF003FC00001FE003FC00001FE003FC00001FC003FC +00003FC003FC00007F8003FC00007F0003FC0001FE0003FC0003FC0003FC001FF800FFFFFFFFE0 +00FFFFFFFF8000FFFFFFFC00002D297DA835>68 D<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC00 +1FE003FC0007F003FC0001F003FC0001F003FC0000F003FC00007003FC00007003FC00007003FC +01C07803FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC00003 +FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03FC01C00E +03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC00007803FC0000 +F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFFF027297DA82D>I<FF +FFF01FFFFEFFFFF01FFFFEFFFFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003 +FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFF +FF8003FFFFFFFF8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003 +FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFF +FFF01FFFFEFFFFF01FFFFE2F297DA836>72 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE +0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE +0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE +0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFF001FFFCFF +FFF001FFFCFFFFF001FFFC03FC00001E0003FC00003C0003FC0000780003FC0000F00003FC0001 +E00003FC0003C00003FC0007000003FC001E000003FC003C000003FC0078000003FC00F0000003 +FC01E0000003FC0380000003FC07C0000003FC1FC0000003FC3FE0000003FC7FF0000003FCFFF8 +000003FDE7F8000003FF83FC000003FF01FE000003FE01FF000003FC00FF000003FC007F800003 +FC003FC00003FC003FC00003FC001FE00003FC000FF00003FC000FF80003FC0007F80003FC0003 +FC0003FC0001FE0003FC0001FF0003FC0000FF0003FC00007F80FFFFF00FFFFEFFFFF00FFFFEFF +FFF00FFFFE2F297DA836>75 D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003 +FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000 +0003FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00 +03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F8003FC +007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>I<FFFE0000001FFFC0FF +FE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF0000003FF00003BF80000077F000 +03BF80000077F000039FC00000E7F000039FC00000E7F000038FE00001C7F000038FE00001C7F0 +000387F0000387F0000387F0000387F0000387F0000387F0000383F8000707F0000383F8000707 +F0000381FC000E07F0000381FC000E07F0000380FE001C07F0000380FE001C07F0000380FF0038 +07F00003807F003807F00003807F003807F00003803F807007F00003803F807007F00003801FC0 +E007F00003801FC0E007F00003800FE1C007F00003800FE1C007F00003800FE1C007F000038007 +F38007F000038007F38007F000038003FF0007F000038003FF0007F000038001FE0007F0000380 +01FE0007F000038000FC0007F000038000FC0007F000FFFE00FC01FFFFC0FFFE007801FFFFC0FF +FE007801FFFFC03A297DA841>I<FFFC0000FFFEFFFE0000FFFEFFFF0000FFFE03FF8000038003 +FF8000038003BFC0000380039FE0000380039FF0000380038FF80003800387F80003800383FC00 +03800381FE0003800381FF0003800380FF80038003807FC0038003803FC0038003801FE0038003 +800FF0038003800FF80380038007FC0380038003FC0380038001FE0380038000FF0380038000FF +83800380007FC3800380003FE3800380001FE3800380000FF38003800007FB8003800007FF8003 +800003FF8003800001FF8003800000FF80038000007F80038000007F80038000003F8003800000 +1F80038000000F80FFFE00000780FFFE00000380FFFE000003802F297DA836>I<0000FFE00000 +0007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F80007F00001FC000FF000 +01FE001FE00000FF001FE00000FF003FC000007F803FC000007F807FC000007FC07F8000003FC0 +7F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000 +003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F8000003FC0 +7FC000007FC07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF000 +01FE0007F00001FC0003F80003F80001FC0007F00000FF001FE000003FC07F8000000FFFFE0000 +0000FFE000002B297CA834>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC000FF003 +FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FE +03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC0007F803FC000FF003FC003FE003FFFFFF +8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00 +000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC000000FFFFF00000FFFFF00000FFFFF0000027297DA82F>I<FFFFFFE00000FFFFFF +FE0000FFFFFFFF800003FC007FE00003FC000FF00003FC0007F80003FC0007FC0003FC0003FC00 +03FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC00 +03FC0003FC0007F80003FC0007F80003FC001FE00003FC007FC00003FFFFFE000003FFFFF00000 +03FC00FC000003FC007F000003FC003F800003FC003F800003FC001FC00003FC001FE00003FC00 +1FE00003FC001FE00003FC001FE00003FC001FE00003FC001FF00003FC001FF00003FC001FF000 +03FC001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003FE1CFFFFF001FFF8FFFFF0 +003FF030297DA834>82 D<007F806003FFF0E007FFF9E00F807FE01F001FE03E0007E07C0003E0 +7C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFE00007FFFE0 +003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF000007FF000000FF80000 +07F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001F0F80003F0FC0003E0FF +0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA826>I<7FFFFFFFFFC07FFFFFFFFFC07F +FFFFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C070003FC001C0F0003FC0 +01E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000 +003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 +000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000 +003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 +000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFFFFE0002B287EA730>I< +FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003FC0001FE00001C0003FC00 +01FE00001C0001FE0001FF0000380001FE0000FF0000380001FF0000FF0000780000FF0000FF80 +00700000FF0000FF8000700000FF8000FF8000F000007F8001FFC000E000007F8001FFC000E000 +003FC003FFE001C000003FC0039FE001C000003FE0039FE003C000001FE0070FF0038000001FE0 +070FF0038000001FF00F0FF0078000000FF00E07F8070000000FF00E07F80700000007F81E07FC +0E00000007F81C03FC0E00000007FC1C03FC1E00000003FC3801FE1C00000003FC3801FE1C0000 +0001FE7801FF3800000001FE7000FF3800000001FE7000FF3800000000FFF000FFF000000000FF +E0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC0003FE0000000003FC0003F +C0000000003F80001FC0000000003F80001FC0000000001F80001F80000000001F00000F800000 +00001F00000F80000000000E00000700000044297FA847>87 D<7FFFF81FFFF07FFFF81FFFF07F +FFF81FFFF001FF0000780000FF8000F000007FC001E000007FC001C000003FE003C000001FF007 +8000000FF80F0000000FF80E00000007FC1E00000003FE3C00000003FE7800000001FF70000000 +00FFF0000000007FE0000000007FC0000000003FE0000000001FF0000000001FF0000000001FF8 +000000001FFC000000003FFE000000007BFE00000000F1FF00000000E0FF80000001E0FFC00000 +03C07FC0000007803FE0000007001FF000000F001FF000001E000FF800003C0007FC0000380003 +FE0000780003FE0000F00001FF0000E00000FF80FFFF801FFFFEFFFF801FFFFEFFFF801FFFFE2F +297EA834>I<00800001C00003E00007F0001FFC003F7E007C1F00F80F80700700110978A922> +94 D<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F80 +00003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F80FE003F +80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A21> +97 D<00003FF80000003FF80000003FF800000003F800000003F800000003F800000003F80000 +0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +001FE3F80000FFFBF80003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F0003F8 +007F0003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003 +F800FF0003F8007F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C0 +0FF80003F03BFF8000FFF3FF80003FC3FF80212A7EA926>100 D<003FE00001FFF80003F07E00 +07C01F000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFF +E0FFFFFFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC0 +01C007E0038003F81F0000FFFE00001FF0001B1B7E9A20>I<00FF81F003FFE7F80FC1FE7C1F80 +FC7C1F007C383F007E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F +007C001F80FC000FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF800 +1FFFFF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000 +F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>103 +D<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE00000000FE000 +00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0 +7F00000FE1FFC0000FE787E0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003F8000F +E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800 +0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 +00FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926>I<07000F801FC03FE03FE03FE01FC00F80 +07000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00F +E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FF +E00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000 +0FE000000FE000000FE000000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F +000FE01E000FE03C000FE078000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3 +F8000FE3F8000FC1FC000FC0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FF +FC3FFEFFFC3FFEFFFC3FFE1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00F +E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F800FF0 +00FFC1FFE03FFC00FFC383F0707E000FC603F8C07F000FCC01F9803F000FD801FF003F800FF001 +FE003F800FF001FE003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80 +0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC +003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F +E001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC07F0000 +FFC1FFC000FFC787E0000FCE03F0000FD803F0000FD803F8000FF003F8000FF003F8000FE003F8 +000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003 +F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE +3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F0 +000FF001F8000FE000FC000FE000FE000FE000FF000FE0007F000FE0007F000FE0007F800FE000 +7F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE000FF000FE0 +00FF000FE000FE000FE001FC000FF001F8000FF803F0000FFE0FE0000FE7FF80000FE1FC00000F +E00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000 +0FE0000000FFFE000000FFFE000000FFFE00000021277E9A26>112 D<FFC1F0FFC7FCFFCE3E0F +D87F0FD87F0FF07F0FF03E0FF01C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F +E0000FE0000FE0000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C> +114 D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007FFF80 +3FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC0070FF01E0 +F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F00003F0 +0003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F0 +0007F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03803F03803F8 +7001F86000FFC0001F8015267FA51B>I E /Fd 22 122 df<60F0F06004047D830A>46 +D<007E080381980600580C0038180018300018700008700008E00008E00000E00000E00000E000 +00E003FEE000387000387000383000381800380C00380600380380D8007F0817177E961C>71 +D<7FFFF86038184038084038088038048038048038040038000038000038000038000038000038 +0000380000380000380000380000380000380000380000380000380007FFC016177F9619>84 +D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97 +D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001F06001C03001C03 +801C01801C01C01C01C01C01C01C01C01C01801C03801C03001B0E0010F8001217809614>I<00 +7E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E00700E0060 +0E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007CFC012177F9614>100 +D<0FC0186030307038E018FFF8E000E000E000600070083010183007C00D0E7F8D10>I<03E006 +700E701C201C001C001C001C001C00FF801C001C001C001C001C001C001C001C001C001C001C00 +1C00FF800C1780960B>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC +600EC006C006C006600C38380FE010157F8D12>I<FC00001C00001C00001C00001C00001C0000 +1C00001C00001C00001C7C001D8E001E07001C07001C07001C07001C07001C07001C07001C0700 +1C07001C07001C0700FF9FE01317809614>I<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C +1C1CFF081780960A>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C00FF80091780960A>108 D<FC7C1F001D8E63801E0781C01C +0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0 +FF9FE7F81D0E808D1E>I<FC7C001D8E001E07001C07001C07001C07001C07001C07001C07001C +07001C07001C07001C0700FF9FE0130E808D14>I<07C018303018600C600CE00EE00EE00EE00E +E00E701C3018183007C00F0E7F8D12>I<FCF8001F0E001C03001C03801C01801C01C01C01C01C +01C01C01C01C01801C03801C07001F0E001CF8001C00001C00001C00001C00001C0000FF800012 +14808D14>I<FCF01D381E381C101C001C001C001C001C001C001C001C001C00FF800D0E808D0E> +114 D<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<08 +0008000800180018003800FF80380038003800380038003800380038403840384038401C800F00 +0A147F930E>I<FC3F001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07 +001C0F000E170003E7E0130E808D14>I<FCFE7C3838383838101C3C201C3C201C4C200E4E400E +4E400E8640078780078780070380030300030300160E7F8D19>119 D<FE1F3C0E3C0C1C081C08 +0E100E100720072003C003C003C00180018001000100E200E200A400780010147F8D13>121 +D E /Fe 1 34 df<40E0E0E0E040404000000040E040030E7D8D08>33 D +E /Ff 1 15 df<0E001F00318060C060C0C060C060C060C06060C060C031801F000E000B0E7E8D +11>14 D E /Fg 3 62 df<40E0E0E0E0E0E04040404040400000000040E04003147D9309>33 +D<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C00FFC0 +0A137D9211>49 D<7FFFE0FFFFF0000000000000000000000000000000000000FFFFF07FFFE014 +0A7E8B19>61 D E /Fh 2 111 df<06070600000000384C4C8C98181830326262643808147F93 +0C>105 D<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15>110 +D E /Fi 1 81 df<FFFFFFFFE0FFFFFFFFF07000001FF078000001F03C000000781C000000180E +0000000C0F000000040700000004038000000203C000000001E000000000E00000000070000000 +00780000000038000000001C000000001E000000000F0000000007000000000380000000038000 +00000300000000070000000006000000000C000000001800000000380000000030000000006000 +000000C000000001C00000000180000002030000000406000000040E0000000C0C000000181800 +00007830000001F07000001FF07FFFFFFFF0FFFFFFFFE0272A7E7F2C>80 +D E /Fj 70 126 df<071C00071C00071C00071C00071C007FFF00FFFF80FFFF800E38000E3800 +0E38000E38000E38000E38000E3800FFFF80FFFF807FFF001C70001C70001C70001C70001C7000 +11177F9614>35 D<00800180018007E01FF039BC619CC18EC18EC18EC18471807F803FE00FF001 +F8019C018E4186E186E186E186718C39B81FF00FC00180018000800F1D7E9914>I<3806007C0E +006C0E00EE1C00EE1C00EE3800EE38006C38007C700038700000700000E00000E00001C00001C0 +0001C000038000038000070000070E00071F000E1B000E3B800E3B801C3B801C3B80381B00381F +00180E00111D7F9914>I<0700000F800018C00038E00038E00038E00038C00039CF80398F801F +1C001E1C001E38001E38001E38003F7000677000E3F000E3E000E1E380E1E38073F3803F3F001E +1E0011177F9614>I<00C001C0030006000C001C0038003000700070006000E000E000E000E000 +E000E000E000600070007000300038001C000C000600030001C000C00A1D7A9914>40 +D<8000C0006000300018001C000E00060007000700030003800380038003800380038003800300 +0700070006000E001C00180030006000C0008000091D7C9914>I<038003800380638CF39EFFFE +3FF80FE00FE03FF8FFFEF39E638C0380038003800F107E9214>I<70F8FCFC7C0C1830E0C0060A +798414>44 D<FFFEFFFEFFFE0F037E8C14>I<70F8F8F8700505798414>I<07C00FE01C70383830 +18701C701CE00EE00EE00EE00EE00EE00EE00EE00EE00E701C701C383838381C700FE007C00F17 +7E9614>48 D<0300030007000F003F00F700470007000700070007000700070007000700070007 +0007000700070007007FF07FF00C177C9614>I<0FC01FF03838701CE00EE00EE00E400E000E00 +1C001C00380030007000E001C0030006000C00180E300E7FFE7FFE0F177E9614>I<0FC01FF038 +38701C701C201C001C001C0038007007E007F00038001C000E000E400EE00EE00E701C78383FF0 +0FC00F177E9614>I<00780000F80001B80001B8000338000338000638000E38000C38001C3800 +383800303800703800E03800FFFF80FFFF8000380000380000380000380000380001FF0001FF00 +11177F9614>I<3FFC7FFC700070007000700070007000700077C07FF07838201C000C000E000E +400EE00EE01C601C78783FF00FC00F177E9614>I<01F007F80E1C1C1C381C300070007000E000 +E7C0EFF0F838F01CF00CE00EE00E600E700E700C381C1C380FF007C00F177E9614>I<E000FFFE +FFFEE01CE0380030007000E000C001C001800380038007000700070007000E000E000E000E000E +000E0004000F187E9714>I<0FE03FF8783C701CE00EE00EE00EE00E701C1EF003801FF0383870 +1CE00EE00EE00EE00EF01E701C38381FF007C00F177E9614>I<07C01FE038307038601CE01CE0 +0CE00EE00E601E701E383E1FEE07CE000E001C001C001C7038707070E03FC01F000F177E9614> +I<70F8F8F87000000000000070F8F8F8700510798F14>I<70F8F8F87000000000000060F0F8F8 +78183070E0800515798F14>I<FFFF80FFFF807FFF800000000000000000007FFF80FFFF80FFFF +8011097F8F14>61 D<1FE03FF8701CE00EE00E400E003C007000E001C003800380038003800300 +000000000000000003000780078003000F177E9614>63 D<01C00003E00003E000036000036000 +0770000770000770000770000630000E38000E38000E38000E38000E38001FFC001FFC001C1C00 +1C1C003C1E00380E00FE3F80FE3F8011177F9614>65 D<FFF0FFFC381E380E3807380738073807 +380E381E3FFC3FFC381E380E38073807380738073807380E381EFFFCFFF810177F9614>I<03C6 +0FFE1C3E181E381E700E700E600EE000E000E000E000E000E000E000600E700E700E380C181C1C +380FF003C00F177E9614>I<FFE000FFF800383C00381E00380E00380700380700380700380380 +380380380380380380380380380380380380380380380700380700380E00381E00383C00FFF800 +FFE00011177F9614>I<FFFF00FFFF003807003807003807003807003800003800003870003870 +003FF0003FF000387000387000380000380000380000380380380380380380380380FFFF80FFFF +8011177F9614>I<FFFFFFFF380738073807380738003800387038703FF03FF038703870380038 +0038003800380038003800FF00FF0010177E9614>I<07FC07FC00700070007000700070007000 +70007000700070007000700070007000700070E070E070F0E07FC01F000E177D9614>74 +D<FE0FE0FE0FE03E0F803B1B803B1B803B1B803B1B803BBB803BBB8039B38039B38039B38039F3 +8038E38038E380380380380380380380380380380380380380FE0FE0FE0FE01317809614>77 +D<1FF07FFC783C701CE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00E +701C783C7FFC1FF00F177E9614>79 D<FFF0FFFC381E380E38073807380738073807380E381E3F +FC3FF038003800380038003800380038003800FE00FE0010177F9614>I<FFE000FFF800383C00 +381C00380E00380E00380E00380E00381C00383C003FF8003FF000383800381C00381C00381C00 +381C00381C00381C80381DC0381DC0FE0F80FE070012177F9614>82 D<0FCC1FFC307C603CE01C +E01CE01CE00070007E003FE00FF001F8001C001E000E600EE00EE00EF01CF838FFF0C7E00F177E +9614>I<7FFF80FFFF80E1C380E1C380E1C380E1C38001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF80011177F9614 +>I<7E3E007E3E001C38001E38000E78000F700007F00007E00003E00003C00001C00003C00003 +E00003E0000770000770000E78000E38001C3C001C1C003C1E00FE3F80FE3F8011177F9614>88 +D<C000E000E00070007000380038001C001C000E000E000700070003800380038001C001C000E0 +00E00070007000380038001C001C000E000E00060F1D7E9914>92 D<04001F007FC0F1E0E0E00B +057C9614>94 D<FFFEFFFEFFFE0F037E7E14>I<1FC0007FF000707800201800001C00001C0007 +FC001FFC003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97 +D<FC0000FC00001C00001C00001C00001C00001C00001CF8001DFE001F07001E03001C03801C01 +C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC000CF8001217809614>I<03 +F80FFC1C1C380870006000E000E000E000E00060007000380E1C1E0FFC03F00F107E8F14>I<00 +7E00007E00000E00000E00000E00000E00000E0007CE000FFE001C3E00301E00700E00E00E00E0 +0E00E00E00E00E00E00E00E00E00700E00301E00383E001FEFC007CFC012177F9614>I<07E00F +F01C38301C700CE00EE00EFFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F14>I<007C00 +FE01CE03840380038003807FFEFFFE038003800380038003800380038003800380038003800380 +7FFC7FFC0F177F9614>I<07CF001FFF80383B80301800701C00701C00701C003018003838003F +F00037C0007000007000003FF8001FFC003FFE00700F00E00380E00380E00380E003807007003C +1E001FFC0007F00011197F8F14>I<FC0000FC00001C00001C00001C00001C00001C00001C7800 +1DFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700 +FF8FE0FF8FE01317809614>I<030007800780030000000000000000007F807F80038003800380 +038003800380038003800380038003800380FFFCFFFC0E187D9714>I<006000F000F000600000 +0000000000001FF01FF00070007000700070007000700070007000700070007000700070007000 +7000700070007040E0E0C07F803F000C207E9714>I<FC0000FC00001C00001C00001C00001C00 +001C00001DFF801DFF801C3C001C78001CF0001DE0001FC0001FC0001FE0001EF0001C70001C38 +001C38001C1C00FE3F80FE3F8011177F9614>I<FF80FF80038003800380038003800380038003 +8003800380038003800380038003800380038003800380FFFEFFFE0F177E9614>I<FB8E00FFDF +003CF3803CF38038E38038E38038E38038E38038E38038E38038E38038E38038E38038E380FEFB +E0FE79E01310808F14>I<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C +07001C07001C07001C07001C0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00E +E00EE00EE00EE00EE00E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E0300 +1C03801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C0000 +1C00001C00001C00001C00001C0000FF8000FF80001218808F14>I<03CE000FFE001C3E00301E +00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00301E001C3E000FEE0007CE00000E +00000E00000E00000E00000E00000E00007FC0007FC012187F8F14>I<FE1F00FE7F800EE3800F +81000F00000F00000E00000E00000E00000E00000E00000E00000E00000E0000FFF000FFF00011 +107F8F14>I<0FD83FF86038C038C038F0007F803FF007F8001C6006E006F006F81CFFF8CFE00F +107E8F14>I<030007000700070007007FFCFFFC07000700070007000700070007000700070E07 +0E070E070C03FC00F00F157F9414>I<FC3F00FC3F001C07001C07001C07001C07001C07001C07 +001C07001C07001C07001C07001C07001C1F000FFFE003E7E01310808F14>I<FE3F80FE3F801C +1C001C1C001C1C001C1C000E38000E38000E380006300007700007700007700003E00003E00003 +E00011107F8F14>I<FF7F80FF7F80380E00380E00380E00380E0039CE0039CE0019CC001B6C00 +1B6C001A6C001A6C001E7C000E78000E780011107F8F14>I<7E3F007E3F001E38000E78000770 +0007E00003E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F8F14 +>I<FE3F80FE3F801C1C001C1C001C1C000E1C000E38000E380007380007300007300003700003 +700001E00001E00001E00001C00001C00001C0000380007380007700007E00003C000011187F8F +14>I<3FFF7FFF700E701C7038007000E001C0038007000E001C0738077007FFFFFFFF10107F8F +14>I<003E00FE01E003800380038003800380038003800380038003807F00FE007F0003800380 +0380038003800380038003800380038001E000FE003E0F1D7E9914>I<E0E0E0E0E0E0E0E0E0E0 +E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0031D789914>I<7800FE000F0003800380038003 +8003800380038003800380038001FC00FE01FC0380038003800380038003800380038003800380 +0F00FE0078000F1D7E9914>I E /Fk 6 64 df<001E0000718000C0C00180C00380C00300E007 +00E00700E00E01C00E01C00E01C00E01801C03801C03001C06001E0C003A180039E00038000038 +0000700000700000700000700000E00000E00000C00000131B7F9115>26 +D<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C830C>I<0000038000000F +0000003C000000F0000003C000000F0000003C000000F0000003C000000F0000003C000000F000 +0000F00000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F00000 +003C0000000F000000038019187D9520>I<E0000000780000001E0000000780000001E0000000 +780000001E0000000780000001E0000000780000001E00000007800000078000001E0000007800 +0001E00000078000001E00000078000001E00000078000001E00000078000000E000000019187D +9520>62 D<002000002000002000002000002000002000007000C070187C71F00FFF8003FE0000 +F80000F80001DC00018C000306000202000603000C01800800801514809315>I +E /Fl 57 124 df<010007C00FC00FE01FE03FC07F807E00F800E0000B0A74A31D>19 +D<3C01E07E03F0FF07F8FF07F8FF87FCFF87FC7F83FC3D81EC01800C01800C0300180300180700 +380600300C00601C00E03801C020010016127EA21E>34 D<FFFCFFFCFFFCFFFCFFFC0E057F8D13 +>45 D<3C7EFFFFFFFF7E3C08087C8710>I<00000C00001C00001C000038000038000070000070 +0000700000E00000E00001C00001C0000380000380000380000700000700000E00000E00000E00 +001C00001C0000380000380000700000700000700000E00000E00001C00001C00001C000038000 +0380000700000700000700000E00000E00001C00001C0000380000380000380000700000700000 +E00000E00000C0000016317DA41D>I<00FF0003FFC00FC3F01F00F83E007C3E007C7C003E7C00 +3E7C003E7C003EFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC00 +3FFC003FFC003F7C003E7C003E7E007E3E007C3E007C1F00F80FC3F003FFC000FF0018207E9F1D +>I<00380000780003F800FFF800FDF80001F80001F80001F80001F80001F80001F80001F80001 +F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 +F80001F80001F80001F80001F8007FFFF07FFFF014207C9F1D>I<03FC000FFF803C0FE07007F0 +7C03F8FE01F8FE01FCFE01FCFE01FC7C01FC3801FC0001FC0001F80003F80003F00007E0000FC0 +000F80001E00003C0000780000E00C01C00C03801C0300180600180FFFF81FFFF83FFFF87FFFF0 +FFFFF0FFFFF016207D9F1D>I<00FF0007FFC00F03F01E01F83F01F83F01FC3F81FC3F01FC1F01 +FC0C01F80001F80003F00003E0000FC000FF0000FF000003E00001F80001FC0000FE0000FE0000 +FF7C00FF7C00FFFE00FFFE00FFFE00FE7C01FC7801FC3C03F00FFFE001FF0018207E9F1D>I<00 +00E00001E00003E00003E00007E0000FE0001FE0001BE00033E00073E000E3E001C3E00183E003 +03E00703E00E03E00C03E01803E03803E07003E0E003E0FFFFFFFFFFFF0007E00007E00007E000 +07E00007E00007E00007E001FFFF01FFFF18207E9F1D>I<1000301E00F01FFFE01FFFE01FFFC0 +1FFF001FFE001FF80018000018000018000018000019FE001FFF801E07E01803F01001F00001F8 +0001F80001FC0001FC7801FCFC01FCFC01FCFC01FCFC01F8F801F86003F03003E01C0FC00FFF00 +03FC0016207D9F1D>I<001FC000FFF001F03807C0780F80FC1F00FC1F00FC3F00FC7E00787E00 +007E0000FE0000FE3FC0FE7FF0FE80F8FF807CFF007EFF007EFE007FFE007FFE007FFE007F7E00 +7F7E007F7E007F3E007E3E007E1F007C0F00F807C1F003FFE000FF0018207E9F1D>I<3000003C +00003FFFFF3FFFFF3FFFFE7FFFFC7FFFF87FFFF0600060600060E000C0C00180C0030000060000 +0E00000C00001C00001C00003C00003C0000780000780000F80000F80000F80000F80001F80001 +F80001F80001F80001F80001F80000F00000600018227DA11D>I<00FF0003FFE00701F00E0078 +1C00781C003C3C003C3E003C3F003C3FC03C3FE0781FF8F01FFFE00FFF8007FFE003FFF007FFF8 +1F3FFC3C0FFE7803FE7801FFF0007FF0001FF0000FF0000FF0000EF8000E78001C3C001C1F00F0 +0FFFE001FF0018207E9F1D>I<00FF0007FFC00F83E01F00F03E00F87E007C7E007CFE007EFE00 +7EFE007EFE007FFE007FFE007FFE007F7E00FF7E00FF3E01FF1F017F0FFE7F03FC7F00007F0000 +7E00007E1E007E3F00FC3F00FC3F00F83F01F01E03E01C0FC00FFF0003F80018207E9F1D>I<00 +00300000000078000000007800000000FC00000000FC00000000FC00000001FE00000001FE0000 +0003FF000000037F000000037F000000063F800000063F8000000E3FC000000C1FC000000C1FC0 +0000180FE00000180FE00000300FF000003007F000007007F800006003F800006003F80000FFFF +FC0000FFFFFC0001C001FE00018000FE00018000FE000300007F000300007F000700007F800700 +003F80FFF007FFFCFFF007FFFC26227EA12B>65 D<FFFFFF8000FFFFFFE00007E003F80007E001 +FC0007E000FE0007E000FE0007E000FF0007E0007F0007E0007F0007E0007F0007E000FF0007E0 +00FE0007E000FE0007E001FC0007E003F80007FFFFE00007FFFFF00007E003FC0007E000FE0007 +E0007F0007E0007F8007E0003F8007E0003FC007E0003FC007E0003FC007E0003FC007E0003FC0 +07E0003FC007E0003F8007E0007F8007E000FF0007E001FE00FFFFFFF800FFFFFFC00022227DA1 +29>I<0001FF0040001FFFC1C0007F80F3C001FC001FC003F0000FC007E00007C00FC00003C01F +C00003C03F800001C03F800001C07F800000C07F000000C07F000000C0FF00000000FF00000000 +FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F000000 +C07F800000C03F800000C03F800001C01FC00001800FC000018007E000030003F000060001FC00 +1C00007F807800001FFFE0000001FF000022227DA129>I<FFFFFF8000FFFFFFF80007F001FC00 +07F0007F0007F0003F8007F0000FC007F0000FE007F00007E007F00007F007F00003F007F00003 +F807F00003F807F00003F807F00003FC07F00003FC07F00003FC07F00003FC07F00003FC07F000 +03FC07F00003FC07F00003FC07F00003FC07F00003F807F00003F807F00003F807F00007F007F0 +0007F007F0000FE007F0000FC007F0001F8007F0007F0007F001FE00FFFFFFF800FFFFFFC00026 +227EA12C>I<FFFFFFFC00FFFFFFFC0007F000FC0007F0003E0007F0001E0007F0000E0007F000 +060007F000060007F000060007F00C030007F00C030007F00C030007F00C000007F01C000007F0 +3C000007FFFC000007FFFC000007F03C000007F01C000007F00C000007F00C000007F00C018007 +F00C018007F000018007F000030007F000030007F000030007F000070007F000070007F0000F00 +07F0001F0007F000FE00FFFFFFFE00FFFFFFFE0021227EA126>I<FFFFFFF8FFFFFFF807F001F8 +07F0007C07F0003C07F0001C07F0000C07F0000C07F0000C07F0000607F0180607F0180607F018 +0007F0180007F0380007F0780007FFF80007FFF80007F0780007F0380007F0180007F0180007F0 +180007F0180007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000FF +FFE000FFFFE0001F227EA124>I<0001FF0020001FFFE0E0007F8079E001FC001FE003F80007E0 +07E00003E00FC00001E01FC00001E03F800000E03F800000E07F800000607F000000607F000000 +60FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0007FFFEFF0007 +FFFE7F00000FE07F00000FE07F80000FE03F80000FE03F80000FE01FC0000FE00FE0000FE007E0 +000FE003F8000FE001FC001FE0007F8073E0001FFFE1E00001FF806027227DA12D>I<FFFFE0FF +FFE003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F800FFFFE0FFFFE013227FA116>73 D<FFFFE000FFFFE00007F000 +0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 +000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0001807 +F0001807F0003807F0003007F0003007F0003007F0007007F000F007F001F007F003F007F00FE0 +FFFFFFE0FFFFFFE01D227EA122>76 D<FFF000001FFEFFF800003FFE07F800003FC007F800003F +C006FC00006FC006FC00006FC0067E0000CFC0067E0000CFC0063F00018FC0063F00018FC0063F +00018FC0061F80030FC0061F80030FC0060FC0060FC0060FC0060FC00607E00C0FC00607E00C0F +C00607E00C0FC00603F0180FC00603F0180FC00601F8300FC00601F8300FC00600FC600FC00600 +FC600FC00600FC600FC006007EC00FC006007EC00FC006003F800FC006003F800FC006001F000F +C006001F000FC006001F000FC0FFF00E01FFFEFFF00E01FFFE2F227DA136>I<FFF0000FFFFFF8 +000FFF07FC00006007FE00006006FF000060067F000060063F800060061FC00060060FE0006006 +0FF000600607F800600603FC00600601FE00600600FE006006007F006006003F806006001FC060 +06001FE06006000FF060060007F860060003FC60060001FC60060000FE600600007F600600003F +E00600003FE00600001FE00600000FE006000007E006000003E006000001E006000000E0FFF000 +0060FFF000006028227EA12D>I<FFFFFF8000FFFFFFF00007F003F80007F001FC0007F000FE00 +07F0007F0007F0007F0007F0007F8007F0007F8007F0007F8007F0007F8007F0007F8007F0007F +0007F0007F0007F000FE0007F001FC0007F003F80007FFFFF00007FFFF800007F000000007F000 +000007F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 +00000007F000000007F000000007F0000000FFFF800000FFFF80000021227EA127>80 +D<FFFFFF0000FFFFFFE00007F007F80007F001FC0007F000FE0007F0007F0007F0007F8007F000 +7F8007F0007F8007F0007F8007F0007F8007F0007F8007F0007F0007F000FE0007F001FC0007F0 +07F80007FFFFE00007FFFF800007F00FC00007F003F00007F003F80007F001F80007F001FC0007 +F001FC0007F001FC0007F001FC0007F001FE0007F001FE0007F001FE0307F001FF0307F000FF03 +07F0007F86FFFF803FFCFFFF800FF828227EA12B>82 D<01FE020007FFCE001F01FE003C007E00 +3C001E0078000E0078000E00F8000600F8000600FC000600FC000000FF000000FFF000007FFF80 +003FFFE0003FFFF8001FFFFC0007FFFE0003FFFF00003FFF000001FF0000003F8000001F800000 +1F80C0000F80C0000F80C0000F80E0000F00E0000F00F0001E00FC001C00FF807800E7FFF00080 +7FC00019227DA120>I<7FFFFFFFC07FFFFFFFC07E03F80FC07803F803C07003F801C06003F800 +C0E003F800E0E003F800E0C003F80060C003F80060C003F80060C003F800600003F800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003 +F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 +03F800000003F8000003FFFFF80003FFFFF80023217EA028>I<FFFF801FFEFFFF801FFE07F000 +00C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F0 +0000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007 +F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C0 +03F000018003F800018001F800030000FC000600007E000C00003F807800000FFFF0000000FF80 +0027227EA12C>I<FFFF800FFFFFFF800FFF07F00000E007F80000E003F80000C003FC0000C001 +FC00018001FE00018000FE00030000FE00030000FF000700007F000600007F800E00003F800C00 +003FC00C00001FC01800001FE01800000FE03000000FE03000000FF070000007F060000007F8E0 +000003F8C0000003FCC0000001FD80000001FD80000000FF00000000FF00000000FF000000007E +000000007E000000003C000000003C0000000018000028227FA12B>I<7FFF83FFF07FFF83FFF0 +07F8003C0003FC00180001FE00300001FE00700000FF00E000007F80C000003F818000003FC380 +00001FE70000000FE60000000FFC00000007FC00000003FC00000003FC00000001FE00000000FF +00000001FF00000001FF800000033FC00000071FC000000E1FE000000C0FF000001807F8000038 +07F800003003FC00006001FE0000E001FE0001C000FF000180007F800380003F80FFF807FFFCFF +F807FFFC26227EA12B>88 D<0200100E00701C00E01800C0300180700380600300600300C00600 +C00600DE06F0FF07F8FF87FCFF87FC7F83FC7F83FC3F01F81E00F016127BA21E>92 +D<07FE00001FFF80003F07E0003F03F0003F01F0003F01F8001E01F8000001F8000001F800003F +F80003FDF8001F81F8003E01F8007C01F800F801F800F801F800F801F800F801F8007C02F8007E +0CF8001FF87F8007E03F8019167E951C>97 D<FF800000FF8000001F8000001F8000001F800000 +1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F87F0001FBFFC +001FF03E001FC01F001F800F801F800FC01F8007C01F8007E01F8007E01F8007E01F8007E01F80 +07E01F8007E01F8007E01F8007C01F8007C01F800FC01F800F801FC01F001E707E001C3FFC0018 +0FE0001B237EA220>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC00 +00FC0000FC0000FC0000FC00007C00007E00007E00003F00301F00600FC0E007FF8000FE001416 +7E9519>I<0001FF000001FF0000003F0000003F0000003F0000003F0000003F0000003F000000 +3F0000003F0000003F0000003F0000003F0000FE3F0007FFBF000FC1FF001F007F003E003F007E +003F007C003F007C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00 +7C003F007E003F003E003F001F007F000F81FF0007FF3FE001FC3FE01B237EA220>I<00FE0007 +FF800F83C01F01E03E00F07E00F07C00F87C0078FC0078FFFFF8FFFFF8FC0000FC0000FC00007C +00007C00003E00183E00181F00300F80E003FFC000FF0015167E951A>I<001F8000FFE001F1F0 +03E3F007E3F00FC3F00FC1E00FC0000FC0000FC0000FC0000FC0000FC000FFFE00FFFE000FC000 +0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 +0FC0000FC0000FC0000FC0007FFC007FFC0014237EA212>I<00FE0F8003FF9FC00F83E3C01F01 +F3C01E00F0003E00F8003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000B +FF800008FE000018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF80 +7C001FC078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001FFE0 +001A217F951D>I<FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000 +001F8000001F8000001F8000001F8000001F8000001F83F0001F8FFC001F987E001FA03E001FC0 +3F001FC03F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F +803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0FFF1FFE01B237DA220>I<1E +003F007F807F807F807F803F001E00000000000000000000000000FF80FF801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F80FFF0FFF00C247EA30F>I< +FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 +001F8000001F8000001F8000001F80FF801F80FF801F803C001F8030001F80E0001F81C0001F83 +00001F8600001F9E00001FBE00001FFF00001FDF80001F8FC0001F07C0001F07E0001F03F0001F +01F8001F00F8001F00FC001F007E00FFE1FFC0FFE1FFC01A237EA21E>107 +D<FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F80FFF0FFF00C237EA20F>I< +FF03F803F800FF0FFE0FFE001F183F183F001F201F201F001F401FC01F801F401FC01F801F801F +801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F +801F80FFF0FFF0FFF0FFF0FFF0FFF02C167D9531>I<FF03F000FF0FFC001F187E001F203E001F +403F001F403F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00 +1F803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0FFF1FFE01B167D9520>I< +00FF0007FFE00F81F01F00F83E007C7C003E7C003E7C003EFC003FFC003FFC003FFC003FFC003F +FC003FFC003F7C003E7E007E3E007C1F00F80F81F007FFE000FF0018167E951D>I<FF87F000FF +BFFC001FF07E001FC01F001F800F801F800FC01F800FC01F8007E01F8007E01F8007E01F8007E0 +1F8007E01F8007E01F8007E01F8007C01F800FC01F800FC01F801F801FC01F001FF07E001FBFFC +001F8FE0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000FFF0 +0000FFF000001B207E9520>I<FF0F80FF1FE01F33F01F63F01F43F01F43F01FC1E01F80001F80 +001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8000FFF800FFF8 +0014167E9518>114 D<07F9801FFF80380780700380F00180F00180F80000FF0000FFF8007FFE +003FFF001FFF8007FF80003FC0C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F8001216 +7E9517>I<00C00000C00000C00000C00001C00001C00003C00007C0000FC0001FC000FFFF00FF +FF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC1800F +C1800FC1800FC1800FC18007C18007E30003FE0000FC0011207F9F16>I<FF81FF00FF81FF001F +803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00 +1F803F001F803F001F803F001F803F001F803F001F807F001F80FF000FC1BF0007FF3FE001FC3F +E01B167D9520>I<FFF01FE0FFF01FE00FC007000FC006000FE00E0007E00C0007F01C0003F018 +0003F8180001F8300001F8300000FC600000FC6000007EC000007EC000007FC000003F8000003F +8000001F0000001F0000000E0000000E00001B167F951E>I<FFF3FF87FCFFF3FF87FC1F807C00 +E00FC07C00C00FC07E00C00FE03E01C007E03F018007E07F018003F07F030003F0CF830001F8CF +860001F8CFC60001FD87C60000FD87CC0000FF03EC00007F03F800007F03F800007E01F800003E +01F000003C00F000001C00E000001800600026167F9529>I<FFF0FFC0FFF0FFC00FC01C0007E0 +380007F0700003F0E00001F8C00000FD8000007F0000007F0000003F0000001F8000003FC00000 +37E0000067F00000C3F00001C1F8000380FC000700FE000E007E00FFC1FFE0FFC1FFE01B167F95 +1E>I<FFFFFFF0FFFFFFF01C02808E1D>123 D E /Fm 38 121 df<003C0000C600018300030300 +0603000603800E03800C03801C03801C0300380700380700380700380700700E00700E00700E00 +700E00E01C00E01C00E01C00E03800E03800E03000C06000E0600060C0007180001E0000111D7B +9B15>48 D<003E0000C1800101800200C00400C00440C00841C00841C00841C008838007038000 +0700000E0001F800003800000C00000C00000E00000E00000E00000E00700E00E01C00801C0080 +380080300040600021C0001F0000121D7C9B15>51 D<060F0F06000000000000000000003078F0 +6008127C910D>58 D<0000180000001800000038000000380000007800000078000000B8000001 +B800000138000002380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000 +201C00007FFC0000401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E00 +1C001E00FF00FFC01A1D7E9C1F>65 D<01FFFE00003C0780003803C0003801C0003801C0003801 +C0007001C0007003C0007003C00070078000E0070000E00E0000E03C0000FFF80001C01C0001C0 +0E0001C00F0001C00F0003800F0003800F0003800F0003800F0007001E0007001C0007003C0007 +0078000E01E000FFFF80001A1C7D9B1D>I<0003F020001E0C60003002E000E003C001C001C003 +8001C0070000C00E0000801E0000801C0000803C0000803C000000780000007800000078000000 +F0000000F0000000F0000000F0000000F0000400F0000400F0000400F000080070000800700010 +0038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFFE0003C00E0003800 +600038004000380040003800400070004000700040007020400070200000E0400000E0400000E0 +C00000FFC00001C0800001C0800001C0800001C080000381010003800100038002000380020007 +0004000700040007000C00070018000E007800FFFFF0001B1C7D9B1C>69 +D<01FFFFC0003C01C0003800C00038008000380080003800800070008000700080007020800070 +200000E0400000E0400000E0C00000FFC00001C0800001C0800001C0800001C080000381000003 +8000000380000003800000070000000700000007000000070000000F000000FFF000001A1C7D9B +1B>I<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000801E000080 +1C0000803C0000803C000000780000007800000078000000F0000000F0000000F001FFC0F0001E +00F0001C00F0001C00F0001C00F0001C00700038007000380038003800180078000C0090000707 +100001F800001B1E7A9C20>I<01FFCFFE003C01E0003801C0003801C0003801C0003801C00070 +038000700380007003800070038000E0070000E0070000E0070000FFFF0001C00E0001C00E0001 +C00E0001C00E0003801C0003801C0003801C0003801C0007003800070038000700380007003800 +0F007800FFE7FF001F1C7D9B1F>I<01FFC0003C00003800003800003800003800007000007000 +00700000700000E00000E00000E00000E00001C00001C00001C00001C000038000038000038000 +0380000700000700000700000700000F0000FFE000121C7E9B10>I<01FE0007F8003E00078000 +2E000F00002E001700002E001700002E002700004E002E00004E004E00004E004E00004E008E00 +008E011C00008E011C00008E021C00008E021C0001070438000107043800010708380001071038 +000207107000020720700002072070000207407000040740E000040780E000040700E0000C0700 +E0001C0601E000FF861FFC00251C7D9B25>77 D<01FFFC00003C070000380380003801C0003801 +C0003801C0007003C0007003C0007003C00070038000E0078000E0070000E00E0000E0380001FF +E00001C0000001C0000001C0000003800000038000000380000003800000070000000700000007 +000000070000000F000000FFE000001A1C7D9B1C>80 D<01FFF800003C0E000038070000380380 +003803800038038000700780007007800070078000700F0000E00E0000E01C0000E0700000FFC0 +0001C0C00001C0600001C0700001C07000038070000380700003807000038070000700F0000700 +F0400700F0400700F0800F007880FFE0790000001E001A1D7D9B1E>82 D<000F8400304C00403C +00801801001803001803001806001006001006000007000007000003E00003FC0001FF00007F80 +0007C00001C00001C00000C00000C02000C02000C0600180600180600300600200F00400CC1800 +83E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E0080400E0080401C008080 +1C0080801C0080001C000000380000003800000038000000380000007000000070000000700000 +0070000000E0000000E0000000E0000000E0000001C0000001C0000001C0000001C0000003C000 +007FFE00001A1C799B1E>I<FF803FC01C000F001C0004001C0008001C0008001C0010001C0010 +001C0020001C0040001C0040001E0080000E0080000E0100000E0200000E0200000E0400000E04 +00000E0800000E1800000E1000000E200000072000000740000007C00000078000000700000007 +00000006000000060000001A1D779B1F>86 D<01FF81FE001E00F0001C0060001E0080000E0180 +000E0100000F02000007040000070800000790000003A0000003C0000001C0000001C0000001E0 +000002E0000004E0000008F0000010700000207000006038000040380000803C0001001C000200 +1C0006001E001E001E00FF80FFC01F1C7E9B1F>88 D<03CC063C0C3C181C3838303870387038E0 +70E070E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<01F007080C08181C38383000 +70007000E000E000E000E000E000E008E010602030C01F000E127B9113>99 +D<001F80000380000380000700000700000700000700000E00000E00000E00000E0003DC00063C +000C3C00181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E200C0E2 +0061E4006264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000 +E000E000E0086010602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C00 +00380000380000380000380000380003FF8000700000700000700000700000700000E00000E000 +00E00000E00000E00001C00001C00001C00001C00001C000038000038000038000030000030000 +070000C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E38 +1C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D91 +13>I<0FC00001C00001C0000380000380000380000380000700000700000700000700000E7800 +0E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C00383800703880703880 +707080707100E03200601C00111D7D9C15>I<0180038001000000000000000000000000000000 +1C002600470047008E008E000E001C001C001C0038003800710071007100720072003C00091C7C +9B0D>I<0FC00001C00001C0000380000380000380000380000700000700000700000700000E0F +000E11000E23800E43801C83001C80001D00001E00003F800039C00038E00038E00070E20070E2 +0070E20070E400E06400603800111D7D9C13>107 D<1F800380038007000700070007000E000E +000E000E001C001C001C001C0038003800380038007000700070007000E400E400E400E4006800 +3800091D7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E03 +80E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C032030 +0C01C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E +001C0E001C1C00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C18 +0C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I<078700 +04D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C0038180070380070300 +0707000706000E8C000E70000E00000E00001C00001C00001C00001C00003C0000FF8000131A7F +9115>I<3C3C26C2468747078E068E000E000E001C001C001C001C003800380038003800700030 +0010127C9112>114 D<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C0 +30806060C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E +000E000E000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E03002707 +00470700470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C003838803838801838 +801839001C5900078E0011127C9116>I<1E06270E470E4706870287020E020E021C041C041C04 +1C0818083808181018200C4007800F127C9113>I<070E0019910010E38020E38041C30041C000 +01C00001C000038000038000038000038000070200670200E70400CB04008B080070F00011127D +9113>120 D E /Fn 48 124 df<78FCFCFEFE7A0202040408083040070E7D850D>44 +D<FFE0FFE0FFE0FFE00B047F8A10>I<78FCFCFCFC7806067D850D>I<03F8000F1E001C07003C07 +803803807803C07803C07803C0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803 +E0F803E0F803E0F803E07803C07803C03803803C07801C07000F1E0003F800131B7E9A18>48 +D<00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003E00003E0 +0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0007FFF +807FFF80111B7D9A18>I<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E07803E000 +07E00007C00007C0000F80001F00001E0000380000700000E0000180600300600600600800E01F +FFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F8001FFE003C1F003C0F807C07C07E07C0 +7C07C03807C0000F80000F80001E00003C0003F800001E00000F800007C00007C00007E03007E0 +7807E0FC07E0FC07E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<0001800003800007 +80000F80001F80003F80006F8000CF80008F80018F80030F80060F800C0F80180F80300F80600F +80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F8001FFF801FFF8151B7F9A18 +>I<1801801FFF001FFE001FFC001FF8001FC00018000018000018000018000019F8001E0E0018 +0F801007800007C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F80381F001F +FE0007F000131B7E9A18>I<007E0003FF000781800F03C01E07C03C07C03C0380780000780000 +F80000F8F800FB0E00FA0780FC0380FC03C0F803E0F803E0F803E0F803E07803E07803E07803C0 +3C03C03C07801E0F0007FE0003F800131B7E9A18>I<6000007FFFE07FFFE07FFFC07FFF807FFF +80E00300C00600C00C00C0180000300000300000600000E00000E00001E00001C00003C00003C0 +0003C00003C00007C00007C00007C00007C00007C00007C000038000131C7D9B18>I<03F8000F +FE001E0F803807803803C07803C07803C07E03C07F83807FC7003FFE001FFC000FFE0007FF801D +FF80387FC0781FE0F007E0F003E0F001E0F001E0F001E07801C07803803E07801FFE0003F80013 +1B7E9A18>I<03F8000FFE001E0F003C07807807807803C0F803C0F803C0F803E0F803E0F803E0 +F803E07807E03807E03C0BE00E1BE003E3E00003E00003C00003C03807C07C07807C0700780F00 +383C001FF8000FE000131B7E9A18>I<00038000000380000007C0000007C0000007C000000FE0 +00000FE000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C0 +7E0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C +0007E0FFC07FFEFFC07FFE1F1C7E9B24>65 D<001FE02000FFF8E003F80FE007C003E00F8001E0 +1F0000E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC0000 +00FC000000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007C0 +030003F80E0000FFFC00001FE0001B1C7D9B22>67 D<FFFFFF00FFFFFF000FC01F000FC007000F +C003000FC003800FC003800FC181800FC181800FC181800FC180000FC380000FFF80000FFF8000 +0FC380000FC180000FC180000FC180600FC180600FC000E00FC000C00FC000C00FC001C00FC001 +C00FC003C00FC00F80FFFFFF80FFFFFF801B1C7E9B1F>69 D<FFFFFF00FFFFFF000FC01F000FC0 +07000FC003000FC003800FC003800FC001800FC181800FC181800FC180000FC180000FC380000F +FF80000FFF80000FC380000FC180000FC180000FC180000FC180000FC000000FC000000FC00000 +0FC000000FC000000FC00000FFFF0000FFFF0000191C7E9B1E>I<000FF008007FFE3801FC07F8 +07E001F80F8000781F0000783F0000383E0000387E0000187C000018FC000000FC000000FC0000 +00FC000000FC000000FC000000FC007FFFFC007FFF7C0001F87E0001F83E0001F83F0001F81F00 +01F80F8001F807E001F801FC07F8007FFE78000FF818201C7D9B26>I<FFFFFFFF07E007E007E0 +07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 +E007E0FFFFFFFF101C7F9B12>73 D<07FFF007FFF0001F80001F80001F80001F80001F80001F80 +001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80301F80 +781F80FC1F80FC1F80FC1F00783E00387C000FF000141C7F9B19>I<FFFFF800FFFFFE000FC03F +800FC00F800FC007C00FC007E00FC007E00FC007E00FC007E00FC007E00FC007C00FC007C00FC0 +0F800FC03F000FFFFC000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC000000FC00000FFFC0000FFFC00001B1C7E9B21>80 +D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE003FFF +003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03 +C0EFFF0083FC00141C7D9B1B>83 D<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070 +C01F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F +800007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03FF0FC000300FC000300FC000300FC0 +00300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300F +C000300FC000300FC000300FC000300FC000300FC0003007C0003007C0006003E000E001F001C0 +00FC0780007FFE00000FF800201C7E9B25>I<7FFE1FFE007FFE1FFE0007F001800003F8038000 +01FC07000000FC06000000FE0C0000007F1C0000003F380000003FB00000001FE00000000FE000 +00000FE000000007F000000003F800000007F80000000FFC0000000CFE000000187E000000387F +000000703F800000601F800000C01FC00001C00FE000018007F000030007F000FFF03FFF80FFF0 +3FFF80211C7F9B24>88 D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F +07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 +D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F3F801FE1 +E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F003C1F00 +781F80701EC1E01C3F00171D7F9C1B>I<03FC000E0E001C1F003C1F00781F00780E00F80000F8 +0000F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115>I< +000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F001F9F00F07F0 +1C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F0 +1C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C01C07801C07801E0F801E0F801 +E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F038001FC0013127F9116>I<00 +7F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F8000FFF800FFF8000F +80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F +80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C07803C07803C07803C0780 +1C07001E0F000E0E001BF8001000001800001800001FFF001FFFC00FFFE01FFFF07801F8F00078 +F00078F000787000707800F01E03C007FF00151B7F9118>I<FF0000FF00001F00001F00001F00 +001F00001F00001F00001F00001F00001F00001F0FC01F31E01F40F01F80F81F80F81F00F81F00 +F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF181D7F9C1B +>I<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F001F001F001F +001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>I<FF00FF001F001F001F +001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 +1F001F001F00FFE0FFE00B1D7F9C0E>108 D<FF0FC07E00FF31E18F001F40F207801F80FC07C0 +1F80FC07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807 +C01F00F807C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128>I<FF +0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F +00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C01E07800F07800F0 +F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F +9118>I<FF3F80FFE1E01F80F01F00781F007C1F003C1F003E1F003E1F003E1F003E1F003E1F00 +3E1F003C1F007C1F00781F80F01FC1E01F3F001F00001F00001F00001F00001F00001F0000FFE0 +00FFE000171A7F911B>I<FE3E00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F +00001F00001F00001F00001F00001F00001F0000FFF000FFF00011127F9114>114 +D<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E12 +7E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F00 +1F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>I<FF07F8FF07F81F00F81F00F81F00 +F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786FF01F8 +FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001 +F60001F60001FE0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8FF8FE1F +03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003F83D80 +01F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7FC1F81 +800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00070F800607C00C03 +E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003 +E30003E30001F70001F60000FE0000FC0000FC00007800007800003000003000007000706000F8 +6000F8C000F980007300003E0000161A7F9119>I<FFFFFE1701808B18>123 +D E /Fo 21 121 df<0018003800380070007000E000E001C001C001C003800380070007000E00 +0E001C001C001C003800380070007000E000E000C0000D1A7E9612>47 D<060006000E001E00FE +00EE000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B147D9312>49 +D<0F803FC070E0E070E038E038403800380030007000E000C00180030006000C00183830387FF8 +7FF80D147E9312>I<00F001F00370037006700E700C701C70387038707070E070FFFEFFFE0070 +00700070007003FE03FE0F147F9312>52 D<07C01FF03C78783C701C701C701C38380FE007C03C +78701CE00EE00EE00EE00E701C783C1FF00FE00F147F9312>56 D<07C01FF038387018E01CE00C +E00EE00E701E383E1FEE0FCE000E001C001C7018703870F03FC00F800F147F9312>I<60F0F060 +00000000000060F0F060040E798D12>I<1FC07FF0F078E038403800F001E00380070007000700 +0700000000000000000006000F000F0006000D147E9312>63 D<FFC0FFF038783838381C381C38 +1E380E380E380E380E380E380E380E381C381C38383878FFF0FFC00F147F9312>68 +D<FC7EFC7E38383838383838383C781C701C701C701C700C600EE00EE00EE006C006C007C007C0 +03800F147F9312>86 D<C000E000E00070007000380038001C001C001C000E000E000700070003 +80038001C001C001C000E000E0007000700038003800180D1A7E9612>92 +D<3F807FC070E0207000700FF03FF07870E070E070E07070F03FFE1F3E0F0E7E8D12>97 +D<07801FE0387070706038E038FFF8FFF8E0006000703838381FF007C00D0E7E8D12>101 +D<007E00FF01C70382038003807FFEFFFE03800380038003800380038003800380038003803FF8 +3FF81014809312>I<06000F000F000600000000000000FF00FF00070007000700070007000700 +0700070007000700FFF0FFF00C157D9412>105 D<F9E0FFF03E383C3838383838383838383838 +383838383838FE3EFE3E0F0E7F8D12>110 D<0F803FE038E07070E038E038E038E038E038F078 +707038E03FE00F800D0E7E8D12>I<FCF8FDFC1F1C1E081E001C001C001C001C001C001C001C00 +FFC0FFC00E0E7E8D12>114 D<1FF03FF06070C070E0007F003FE00FF000786018E018F030FFE0 +DFC00D0E7E8D12>I<06000E000E000E007FF8FFF80E000E000E000E000E000E000E000E380E38 +0E3807F003C00D127F9112>I<7C7C7C7C1CF00EE00FC007C00380078007C00EE01EF01C70FC7E +FC7E0F0E7F8D12>120 D E /Fp 76 126 df<C00180C00180C00180C00180C00180C00180C001 +80C00180C00180C00180C00180C00180C00180C00180FFFF80FFFF8011107E8916>32 +D<0387000387000387000387000387000387007FFFC0FFFFE0FFFFE0070E00070E00070E000E1C +000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C38001C38001C38001C38001C38001319 +7F9816>35 D<3801807C03807C0380EE0700EE0700EE0E00EE0E00EE0E00EE1C007C1C007C3800 +38380000700000700000700000E00000E00001C00001C00001C0000380000383800707C00707C0 +0E0EE00E0EE00E0EE01C0EE01C0EE03807C03807C018038013207F9C16>37 +D<30787C3C1C1C1C1C3878F0E040060D789816>39 D<00E001E0038007000E001C001C00380038 +00700070007000E000E000E000E000E000E000E000E000E000700070007000380038001C001C00 +0E000700038001E000E00B217A9C16>I<C000E000700038001C000E000E000700070003800380 +038001C001C001C001C001C001C001C001C001C0038003800380070007000E000E001C00380070 +00E000C0000A217B9C16>I<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F000 +07F0001FFC007FFF00F9CF8071C70001C00001C00001C00001C00011127E9516>I<387C7E7E3E +0E1E1C78F060070B798416>44 D<FFFF80FFFF80FFFF8011037E8D16>I<70F8F8F87005057884 +16>I<000180000380000380000700000700000E00000E00001C00001C00003800003800007000 +00700000E00000E00001C00001C0000380000380000700000700000E00000E00001C00001C0000 +380000380000700000700000E00000E00000C0000011207E9C16>I<03E0000FF8001FFC001E3C +00380E00780F00700700700700E00380E00380E00380E00380E00380E00380E00380E00380F007 +80700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816>I<01800380038007 +800F807F80FF807380038003800380038003800380038003800380038003800380038003807FF8 +7FFC7FF80E197C9816>I<07E0001FF8003FFC00783E00E00700F00780F0038060038000038000 +0380000700000700000E00001C0000380000700000E00001C0000380000F00001E03803803807F +FF80FFFF807FFF8011197E9816>I<07E0001FF8003FFC00781E00780700300700000700000700 +000E00003E0007FC0007F00007FC00001E00000700000300000380000380600380F00380E00700 +781E003FFC001FF80007E00011197E9816>I<007C0000FC0000DC0001DC00039C00039C00071C +000F1C000E1C001E1C003C1C00381C00781C00F01C00FFFFE0FFFFE0FFFFE0001C00001C00001C +00001C00001C0001FFC001FFC001FFC013197F9816>I<3FFE003FFE003FFE0038000038000038 +00003800003800003800003800003BF0003FFC003FFE003C0F00300700000380000380600380F0 +0380F00380E00700781E003FFC001FF80007E00011197E9816>I<E00000FFFF80FFFF80FFFF80 +E00F00E01E00001C0000380000780000700000E00000E00001C00001C00001C000038000038000 +038000038000070000070000070000070000070000070000070000111A7E9916>55 +D<07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001FFC0007F0001FFC +003C1E00700700F00780E00380E00380E00380F007807007007C1F003FFE001FFC0007F0001119 +7E9816>I<70F8F8F870000000000000000070F8F8F8700512789116>58 +D<000180000780001F80003E0000F80001F00007C0000F80003E0000FC0000F00000FC00003E00 +000F800007C00001F00000F800003E00001F8000078000018011157E9616>60 +D<7FFF00FFFF80FFFF80000000000000000000000000000000FFFF80FFFF807FFF00110B7E9116 +>I<C00000F00000FC00003E00000F800007C00001F00000F800003E00001F80000780001F8000 +3E0000F80001F00007C0000F80003E0000FC0000F00000C0000011157E9616>I<0FE03FF87FFC +F01EF00EF00E601E003C007800F001C00380038003800380038003000000000000000000030007 +80078003000F197D9816>I<00E00001F00001F00001B00001B00003B80003B80003B800031800 +071C00071C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C0700 +7F1FC0FF1FE07F1FC013197F9816>65 D<7FF800FFFE007FFF001C0F001C07801C03801C03801C +03801C07801C07001FFF001FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C +03C01C07807FFF80FFFF007FFC0012197F9816>I<01F18007FB800FFF801F0F803C0780380380 +700380700380F00000E00000E00000E00000E00000E00000E00000E00000F00000700380700380 +3803803C07001F0F000FFE0007FC0001F00011197E9816>I<7FF800FFFE007FFF001C0F001C07 +801C03C01C01C01C01C01C01E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01 +C01C01C01C03C01C07801C0F807FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C +01C01C01C01C01C01C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C +00001C00E01C00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>I<FFFFE0FFFFE0 +FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C00 +1C1C001C00001C00001C00001C00001C00001C0000FF8000FFC000FF800013197F9816>I<03E3 +0007FF000FFF001E1F003C0F00380700700700700700F00000E00000E00000E00000E00000E03F +80E07FC0E03F80F00700700700700700380F003C0F001E1F000FFF0007F70003E70012197E9816 +>I<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C07001C07001C07001FFF001FFF001F +FF001C07001C07001C07001C07001C07001C07001C07001C07001C07007F1FC0FFBFE07F1FC013 +197F9816>I<FFFEFFFEFFFE038003800380038003800380038003800380038003800380038003 +8003800380038003800380FFFEFFFEFFFE0F197D9816>I<07FE07FF07FE003800380038003800 +38003800380038003800380038003800380038003800386038F038F0707FF07FE01F8010197D98 +16>I<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF000 +1FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C07001C03807F07E0FF8FF07F07E0 +1419809816>I<FFC000FFC000FFC0001C00001C00001C00001C00001C00001C00001C00001C00 +001C00001C00001C00001C00001C00001C00001C00401C00E01C00E01C00E01C00E0FFFFE0FFFF +E0FFFFE013197F9816>I<FC07E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B803B1B803B +BB8039B38039B38039B38039B38039F38038E38038E380380380380380380380380380380380FE +0FE0FE0FE0FE0FE013197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380 +E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780F00780 +780F007FFF003FFE001FFC0011197E9816>79 D<7FF800FFFE007FFF001C0F801C03801C03C01C +01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00001C00001C00001C +00001C00001C00007F0000FF80007F000012197F9816>I<7FE000FFF8007FFC001C1E001C0F00 +1C07001C07001C07001C07001C0F001C1E001FFC001FF8001FFC001C1C001C0E001C0E001C0E00 +1C0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>82 D<07E3001FFF003FFF0078 +1F00F00700E00700E00700E00000F000007800003F80001FF00007FC0000FE00000F0000070000 +0380000380600380E00380E00700F80F00FFFE00FFFC00C7F00011197E9816>I<7FFFE0FFFFE0 +FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000E00000E00000E00000E000 +00E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC0013197F9816>I<7F07 +F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01 +C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF0003FE0000F8001519809816 +>I<FC07E0FE0FE0FC07E07001C07001C07001C030018038038038038038038038E38039F38039 +F38039B38019B30019B30019B30019B30019B30019B3001913001B1B000F1E000F1E000E0E0013 +197F9816>87 D<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003F00001F00001E0 +0000E00001E00001F00003F00003B80007B800071C00071C000E0E000E0E001C07007F1FC0FF1F +E07F1FC013197F9816>I<FFF0FFF0FFF0E000E000E000E000E000E000E000E000E000E000E000 +E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000FFF0FFF0FFF00C2078 +9C16>91 D<C00000E00000E000007000007000003800003800001C00001C00000E00000E000007 +000007000003800003800001C00001C00000E00000E000007000007000003800003800001C0000 +1C00000E00000E0000070000070000038000038000018011207E9C16>I<FFF0FFF0FFF0007000 +700070007000700070007000700070007000700070007000700070007000700070007000700070 +00700070007000700070FFF0FFF0FFF00C207F9C16>I<081C3C7870E0E0E0E0F0F87830060D78 +9B16>96 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE003E0E00700E00E0 +0E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>I<7E0000FE00007E00000E0000 +0E00000E00000E00000E3E000EFF000FFF800F83C00F00E00E00E00E00700E00700E00700E0070 +0E00700E00700E00E00F01E00F83C00FFF800EFF00063C001419809816>I<03F80FFC1FFE3C1E +780C7000E000E000E000E000E000F000700778073E0E1FFC0FF803F010127D9116>I<003F0000 +7F00003F0000070000070000070000070003C7000FF7001FFF003C1F00780F00700700E00700E0 +0700E00700E00700E00700E00700700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I< +03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D +9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003FFE007FFF003FFE +0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E001C1C000F +F8001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0E000E0E000E070 +01C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00000E00000E00000E0000 +0E00000E3C000EFE000FFF000F87800F03800E03800E03800E03800E03800E03800E03800E0380 +0E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003C003C00180000000000000 +00007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001C001C07FFFFFFF7FFF10 +1A7D9916>I<003000780078003000000000000000001FF81FF81FF80038003800380038003800 +3800380038003800380038003800380038003800380038003800386070F0F0FFE07FC03F800D23 +7E9916>I<7E0000FE00007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E +1E000E3C000E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F +87F01419809816>I<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF80 +FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78E03C78E03870E03870E03870E03870 +E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C781512809116>I<7E3C00FE +FE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E03800E03800E03800E +03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E00780F00700700E00380 +E00380E00380E00380E00380F00780700700780F003C1E001FFC000FF80003E00011127E9116> +I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00700E00700E00700E00700E00700E00 +E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00000E00000E00000E00007FC000FFE0 +007FC000141B809116>I<FF0FC0FF3FE0FF7FE007F04007C00007800007800007000007000007 +0000070000070000070000070000070000FFFC00FFFC00FFFC0013127F9116>114 +D<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F12 +7D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF0007000007000007000007 +000007000007000007000007010007038007038007038007870003FE0001FC0000F80011177F96 +16>I<7E1F80FE3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E0380 +0E03800E03800E0F800FFFF007FBF803E3F01512809116>I<7F1FC0FF1FE07F1FC01C07001E0F +000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001F00001F00000E0 +0013127F9116>I<FF1FE0FFBFE0FF1FE038038038038038038038038038E38019F30019F30019 +B3001DB7001DB7001DB7001DB7000F1E000F1E000F1E0013127F9116>I<7F1FC07F3FC07F1FC0 +0F1C00073C0003B80003F00001F00000E00001E00001F00003B800073C00071C000E0E007F1FC0 +FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C +00071C00039C00039C0003980001B80001B80000F00000F00000F00000E00000E00000E00001C0 +0079C0007BC0007F80003F00003C0000131B7F9116>I<3FFFC07FFFC07FFFC0700780700F0070 +1E00003C0000780001F00003E0000780000F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC012 +127F9116>I<001F80007F8000FF8001E00001C00001C00001C00001C00001C00001C00001C000 +01C00001C00003C0007F8000FF0000FF00007F800003C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001E00000FF80007F80001F8011207E9C16>I<7C0000FF0000FF80 +0003C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001E00000FF00007F +80007F8000FF0001E00001C00001C00001C00001C00001C00001C00001C00001C00001C00003C0 +00FF8000FF00007C000011207E9C16>125 D E /Fq 5 111 df<03C00FF01C38300C60066006C0 +03C003C003C00360066006300C1C380FF003C010107E9115>14 D<03C00FF01FF83FFC7FFE7FFE +FFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>I<003C00E001C0018003800380 +03800380038003800380038003800380038003800380030007001C00F0001C0007000300038003 +8003800380038003800380038003800380038003800380018001C000E0003C0E297D9E15>102 +D<F0001C00070003000380038003800380038003800380038003800380038003800380018001C0 +00E0003C00E001C001800380038003800380038003800380038003800380038003800380030007 +001C00F0000E297D9E15>I<C000C0006000600060003000300030001800180018000C000C000C +000600060003000300030001800180018000C000C000C000600060003000300030001800180018 +000C000C000C0006000600060003000110297E9E15>110 D E /Fr 79 125 +df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E +01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC +001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E0000 +0E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 +0E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01 +C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17 +>I<003F07E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00 +E000000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E +00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C00 +0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<1C1C +3C3870C0800607779C15>19 D<6060F0F0F8F86868080808080808101010102020404080800D0C +7F9C15>34 D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C +0018001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E000 +E000600060006000700030003000180018000C000C00060002000100008000400A2A7D9E10>I< +800040002000100018000C000C000600060003000300038001800180018001C001C001C001C001 +C001C001C001C001C001C001C001C0018001800180038003000300060006000C000C0018001000 +2000400080000A2A7E9E10>I<60F0F0701010101020204080040C7C830C>44 +D<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<00010003000600060006000C000C000C00 +18001800180030003000300060006000C000C000C0018001800180030003000300060006000C00 +0C000C00180018001800300030003000600060006000C000C00010297E9E15>I<03C00C301818 +300C300C700E60066006E007E007E007E007E007E007E007E007E007E007E007E007E007600660 +06700E300C300C18180C3007E0101D7E9B15>I<030007003F00C7000700070007000700070007 +0007000700070007000700070007000700070007000700070007000700070007000F80FFF80D1C +7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C00380070 +006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E +780E781E381E001C001C00180030006007E00030001C001C000E000F000F700FF80FF80FF80FF0 +0E401C201C183007E0101D7E9B15>I<000C00000C00001C00003C00003C00005C0000DC00009C +00011C00031C00021C00041C000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C +00001C00001C00001C00001C00001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC02000 +2000200020002000200023E024302818301C200E000E000F000F000F600FF00FF00FF00F800E40 +1E401C2038187007C0101D7E9B15>I<00F0030C06040C0E181E301E300C700070006000E3E0E4 +30E818F00CF00EE006E007E007E007E007E007600760077006300E300C18180C3003E0101D7E9B +15>I<4000007FFF807FFF007FFF00400200800400800400800800001000001000002000006000 +00400000C00000C00001C000018000018000038000038000038000038000078000078000078000 +078000078000078000030000111D7E9B15>I<03E00C301008200C20066006600660067006780C +3E083FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C1007E010 +1D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E0076007700F300F18 +170C2707C700060006000E300C780C78187010203030C00F80101D7E9B15>I<60F0F060000000 +0000000000000060F0F06004127C910C>I<7FFFFFC0FFFFFFE000000000000000000000000000 +00000000000000000000000000000000000000FFFFFFE07FFFFFC01B0C7E8F20>61 +D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C00080018001000100010001000100 +01000000000000000000000003000780078003000F1D7E9C14>63 D<0006000000060000000600 +00000F0000000F0000000F00000017800000178000001780000023C0000023C0000023C0000041 +E0000041E0000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002 +003C0006003E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 +D<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01 +F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F00 +3C0F0078FFFFE0181C7E9B1D>I<001F808000E0618001801980070007800E0003801C0003801C +00018038000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000 +F0000000F0000000F0000000700000807800008078000080380000801C0001001C0001000E0002 +00070004000180080000E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E +000F0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E00F00 +01E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F +0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>I<FFFFFC0F003C0F000C0F00040F +00040F00060F00020F00020F02020F02000F02000F02000F06000FFE000F06000F02000F02000F +02000F02010F00010F00020F00020F00020F00060F00060F000C0F003CFFFFFC181C7E9B1C>I< +FFFFF80F00780F00180F00080F00080F000C0F00040F00040F02040F02000F02000F02000F0600 +0FFE000F06000F02000F02000F02000F02000F00000F00000F00000F00000F00000F00000F0000 +0F8000FFF800161C7E9B1B>I<001F808000E0618001801980070007800E0003801C0003801C00 +018038000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000F0 +000000F000FFF0F0000F80700007807800078078000780380007801C0007801C0007800E000780 +07000B800180118000E06080001F80001C1E7E9C21>I<FFF3FFC00F003C000F003C000F003C00 +0F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC +000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00 +3C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<FFF00F000F000F000F000F000F00 +0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F +00FFF00C1C7F9B0F>I<1FFF00F800780078007800780078007800780078007800780078007800 +780078007800780078007800787078F878F878F878F0F040E021C01F00101D7F9B15>I<FFF800 +0F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000 +0F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F00300F00700F01F0 +FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC001 +780009E002780009E002780008F004780008F004780008F0047800087808780008780878000878 +087800083C107800083C107800083C107800081E207800081E207800081E207800080F40780008 +0F40780008078078000807807800080780780008030078001C03007800FF8307FF80211C7E9B26 +>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F804000878040008 +3C0400083C0400081E0400080F0400080F0400080784000807C4000803C4000801E4000801E400 +0800F40008007C0008007C0008003C0008003C0008001C0008000C001C000C00FF8004001A1C7E +9B1F>I<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003 +C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000 +01E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C000380380000 +E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F001E0F +001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F00000F +00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0000F007800 +0F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E0 +000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F0078000F00 +78000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82 +D<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800007C00007FC0 +003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001C0C00180C001 +80E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F00 +40C00F0020800F0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F +0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F +0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000400 +0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F00040007000800078008 +00038010000180100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001 +800F0001000F800300078002000780020003C0040003C0040003C0040001E0080001E0080001F0 +080000F0100000F0100000F830000078200000782000003C4000003C4000003C4000001E800000 +1E8000001F8000000F0000000F00000006000000060000000600001C1D7F9B1F>I<FFE0FFE0FF +1F001F003C1E001E00180F001F00100F001F00100F001F001007801F0020078027802007802780 +2003C027804003C043C04003C043C04003E043C04001E081E08001E081E08001E081E08000F100 +F10000F100F10000F100F100007900FA00007A007A00007A007A00003E007C00003C003C00003C +003C00003C003C00001800180000180018000018001800281D7F9B2B>I<7FF0FFC00FC03E0007 +80180003C0180003E0100001E0200001F0600000F0400000788000007D8000003D0000001E0000 +001F0000000F0000000F8000000F80000013C0000023E0000021E0000041F00000C0F800008078 +0001007C0003003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F>I<FFF007FC0F8001 +E00780008007C0018003C0010003E0020001F0020000F0040000F8040000780800007C1800003C +1000001E2000001F2000000F4000000FC000000780000007800000078000000780000007800000 +0780000007800000078000000780000007800000078000007FF8001E1C809B1F>I<0808101020 +2040404040808080808080B0B0F8F8787830300D0C7A9C15>92 D<0C0012002100408080400A05 +7B9B15>94 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00 +601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C7C001D86001E03001C01801C01C01C +00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E030019060010F80013 +1D7F9C17>I<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C +3007C00E127E9112>I<003F000007000007000007000007000007000007000007000007000007 +0000070003E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E007 +00600700700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E0 +06FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E +0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E00 +0E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C0038 +1C00381C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF8030038060 +01C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C0000 +1C00001C00001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C0380 +1C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0 +141D7F9C17>I<18003C003C0018000000000000000000000000000000FC001C001C001C001C00 +1C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E0 +00C000000000000000000000000000000FE000E000E000E000E000E000E000E000E000E000E000 +E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC0000 +1C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C00 +1C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F00 +1C0F80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I< +FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C +001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0 +1C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03801C03 +801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF014127F9117 +>I<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C060 +01807003803003001806000E1C0003F00012127F9115>I<FC7C001D86001E03001C01801C01C0 +1C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C01801E03001D06001CF800 +1C00001C00001C00001C00001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B +00300F00700700700700E00700E00700E00700E00700E00700E00700600700700700300F00180F +000C370007C700000700000700000700000700000700000700000700003FE0131A7E9116>I<FC +E01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F91 +10>I<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0608FC0 +0D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C00 +1C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C03801C0380 +1C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C07800E1B80 +03E3F014127F9117>I<FF07E03C03801C01001C01000E02000E02000704000704000704000388 +0003880003D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03 +801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003A0 +E80003A0E80003C0680001C0700001C0700001803000008020001B127F911E>I<7F8FF00F0380 +0F030007020003840001C80001D80000F00000700000780000F800009C00010E00020E00060700 +0403801E07C0FF0FF81512809116>I<FF07E03C03801C01001C01000E02000E02000704000704 +0007040003880003880003D80001D00001D00000E00000E00000E0000040000040000080000080 +00F08000F10000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003C0 +038007000F040E041C043C0C380870087038FFF80E127F9112>I<FFFFF01401808B15>I<FFFFFF +FFFF802901808B2A>I E /Fs 13 117 df<003F800000E0E0000380380007001C000F001E000E +000E001E000F001C0007003C0007803C0007803C000780780003C0780003C0780003C0780003C0 +F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003 +E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0F80003E0780003C07800 +03C0780003C07C0007C03C0007803C0007803C0007801C0007001E000F000E000E000F001E0007 +001C000380380000E0E000003F80001B307DAE21>48 D<003F800001FFF00003C0F80006003C00 +08001E0010001F0010000F003C000F803E000F803E000F803E000F801E000F8000000F8000000F +0000000F0000001F0000001E0000003C0000003800000070000000E0000003800000FF80000000 +F0000000380000001E0000000F000000078000000780000007C0000003C0000003E0000003E030 +0003E0780003E0FC0003E0FC0003E0FC0003E0F80003C0400007C0400007C06000078030000F00 +18001E000E003C000780F80001FFF000003F80001B307DAE21>51 D<00003FE0010001FFF80300 +07F01E03001F800307003E000087007800004F00F000002F01E000001F03C000000F078000000F +0F800000070F000000071F000000031E000000033E000000033C000000017C000000017C000000 +017C000000017800000000F800000000F800000000F800000000F800000000F800000000F80000 +0000F800000000F800000000F800000000F800000000F80000000078000000007C000000007C00 +0000017C000000013C000000013E000000011E000000011F000000020F000000020F8000000607 +8000000403C000000801E000000800F00000100078000020003E0000C0001F8003800007F00F00 +0001FFFC0000003FE00028337CB130>67 D<FFFFFFFFE0FFFFFFFFE007E0000FE003E00001E003 +E00000F003E000007003E000003003E000003003E000001003E000001003E000001003E0000010 +03E000000803E000000803E000000803E000800803E000800003E000800003E000800003E00080 +0003E001800003E001800003E007800003FFFF800003FFFF800003E007800003E001800003E001 +800003E000800003E000800003E000800003E000800203E000800203E000000203E000000403E0 +00000403E000000403E000000403E000000C03E000000C03E000000803E000001803E000001803 +E000003803E000007803E00001F807E0000FF0FFFFFFFFF0FFFFFFFFF027317CB02D>69 +D<00001FE000800000FFFC01800007F00F0180000F80018380003E0000C38000780000278000F0 +0000178001E000000F8003C000000F800780000007800780000003800F00000003801F00000001 +801E00000001803E00000001803C00000001803C00000000807C00000000807C00000000807800 +00000000F80000000000F80000000000F80000000000F80000000000F80000000000F800000000 +00F80000000000F80000000000F80000000000F80000000000F800000FFFFC7800000FFFFC7C00 +00001FC07C0000000F803C0000000F803C0000000F803E0000000F801E0000000F801F0000000F +800F0000000F80078000000F8007C000000F8003C000000F8001E000000F8000F000001780007C +00001780003E00006380000F8000C3800007F00781800000FFFE008000001FF000002E337CB134 +>71 D<7FFFFFFFFFE07FFFFFFFFFE07E000F8007E078000F8001E070000F8000E060000F800060 +40000F80002040000F800020C0000F800030C0000F80003080000F80001080000F80001080000F +80001080000F80001080000F80001080000F80001000000F80000000000F80000000000F800000 +00000F80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F +80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F800000 +00000F80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F +80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F800000 +00000F80000000001FC00000000FFFFF8000000FFFFF80002C317EB030>84 +D<7FFF8000FFF87FFF8000FFF803FE00003F8000FC00001E0000FC00001800007E00001000003E +00003000003F00002000001F80004000000F80008000000FC00080000007E00100000003E00200 +000003F00200000001F80400000000F80800000000FC18000000007E10000000003E2000000000 +3F60000000001FC0000000000F80000000000FC00000000007E00000000003E00000000007F000 +00000005F80000000008F80000000010FC00000000107E00000000203E00000000403F00000000 +401F80000000800F80000001000FC00000030007E00000020003E00000040003F000000C0001F8 +0000080000F80000100000FC00003000007E00002000003E00004000003F0000C000001F8001E0 +00001F800FF000003FE0FFF80000FFFFFFF80000FFFF30317FB032>88 D<00FE00000303C0000C +00E00010007000100038003C003C003E001C003E001E003E001E0008001E0000001E0000001E00 +00001E00000FFE0000FC1E0003E01E000F801E001F001E003E001E003C001E007C001E00F8001E +04F8001E04F8001E04F8003E04F8003E0478003E047C005E043E008F080F0307F003FC03E01E1F +7D9E21>97 D<003F800000E0E0000380380007003C000E001E001E001E001C000F003C000F007C +000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F8000000F8000000F8000000 +F8000000F8000000780000007C0000003C0000003C0000801E0000800E0001000F000200078002 +0001C00C0000F03000001FC000191F7E9E1D>101 D<0780000000FF80000000FF800000000F80 +000000078000000007800000000780000000078000000007800000000780000000078000000007 +800000000780000000078000000007800000000780000000078000000007800000000780000000 +0780FE00000783078000078C03C000079001E00007A001E00007A000F00007C000F00007C000F0 +00078000F000078000F000078000F000078000F000078000F000078000F000078000F000078000 +F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780 +00F000078000F000078000F000078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF8021 +327EB125>104 D<0781FC00FF860700FF8803C00F9001E007A000F007C0007807800078078000 +3C0780003C0780003E0780001E0780001F0780001F0780001F0780001F0780001F0780001F0780 +001F0780001F0780001F0780003E0780003E0780003C0780007C0780007807C000F007A000F007 +A001E00798038007860F000781F800078000000780000007800000078000000780000007800000 +07800000078000000780000007800000078000000FC00000FFFC0000FFFC0000202D7E9E25> +112 D<0783E0FF8C18FF907C0F907C07A07C07C03807C00007C00007C000078000078000078000 +078000078000078000078000078000078000078000078000078000078000078000078000078000 +0780000780000780000FC000FFFE00FFFE00161F7E9E19>114 D<004000004000004000004000 +00400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FFFFE003C00003C000 +03C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000 +03C00003C01003C01003C01003C01003C01003C01003C01003C01001C02001E02000E0400078C0 +001F00142C7FAB19>116 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300 +TeXDict begin +%%EndSetup +%%Page: 179 1 +bop 267 602 a Fs(Chapter)22 b(30)790 b(T)1416 617 y(E)1453 +602 y(X)n(Graph)350 961 y Fr(The)14 b(graphics)g(pac)o(k)n(age)f(that)g(is)h +(a)f(part)g(of)g(INRST)1181 959 y(^)1177 970 y(E)1200 961 y(X)h(adds)f(the)i +(follo)o(wing)10 b(capa-)267 1010 y(bilities)329 1087 y Fq(\017)21 +b Fr(The)12 b(pro)q(duction)g(of)f(a)g(complete)h(pap)q(er/rep)q(ort)h +(requiring)e(no)h(additional)e(inser-)371 1136 y(tions)j(\(except)j(p)q +(erhaps)f(colour)f(photographs)f(if)g(required\).)329 1217 +y Fq(\017)21 b Fr(The)11 b(abilit)o(y)e(to)h(insert)i(a)e(\014le,)h(for)f +(example)g(a)g(plot)g(or)h(halftone,)f(in)g(Encapsulated)371 +1266 y(P)o(ostScript)16 b(F)m(ormat)e(\(EPSF\),)i(and)g(to)f(automatically)e +(lea)o(v)o(e)i(enough)h(space)h(in)371 1315 y(the)d(text.)329 +1396 y Fq(\017)21 b Fr(The)12 b(mixing)d(of)i(a)h(v)o(ector)g(graphics)g(and) +g(T)1053 1405 y(E)1076 1396 y(X)g(text.)18 b(In)12 b(fact)f(T)1373 +1405 y(E)1397 1396 y(X)g(text)i(ma)o(y)d(no)o(w)371 1445 y(b)q(e)k(prin)o +(ted)g(at)g(an)o(y)g(arbitrary)f(angle.)350 1526 y(The)g(pac)o(k)n(age)f +(requires)i(a)e(sensible)i(P)o(ostScript)f(driv)o(er.)18 b(The)13 +b(basic)g(requiremen)o(ts)267 1574 y(for)g(the)i(driv)o(er)f(are)g(as)g +(follo)o(ws:)329 1652 y Fq(\017)21 b Fr(The)16 b Fp(\\special)f +Fr(commands)e(and)j(the)h(other)g(information)c(in)j(the)h(.dvi)e(\014le)h +(are)371 1701 y(pro)q(cessed)i(in)d(the)h(order)h(they)f(are)g(found)g(in)f +(the)h(.dvi)f(\014le.)24 b(This)16 b(is)f(necessary)371 1750 +y(in)g(order)i(to)f(b)q(e)g(able)g(to)g(rotate)g(tables)g(and)g(arbitrary)g +(text)h(.)7 b(.)g(.)21 b(among)14 b(other)371 1798 y(things.)329 +1879 y Fq(\017)21 b Fr(The)e(driv)o(er)f(do)q(es)i(not)e(p)q(erform)g(P)o +(ostScript)h Fp(save)e Fr(and)i Fp(restore)e Fr(commands)371 +1928 y(around)c Fp(\\special)g Fr(commands.)329 2009 y Fq(\017)21 +b Fr(The)15 b(driv)o(er)g(uses)i(the)e(co)q(de)h Fp(ps:)k Fr(is)15 +b(used)h(to)f(signal)f(a)g(\014le)h(name)f(and)h(the)g(co)q(de)371 +2058 y Fp(ps::)i Fr(to)d(signal)f(inline)g(co)q(de.)329 2139 +y Fq(\017)21 b Fr(The)14 b(driv)o(er)g(sets)h(the)g Fp(currentpoint)c +Fr(b)q(efore)k(en)o(tering)f(a)g Fp(\\special)p Fr(.)350 2414 +y Fo(Draft)i(Version:)32 b(1991/8/24)p eop +%%Page: 180 2 +bop 100 83 a Fn(180)95 b Fm(CHAPTER)21 b(30:)h(T)596 92 y(E)619 +83 y(X)o(Gr)n(aph)267 214 y Fl(30.1)56 b(Command)16 b(List)k(-)g(T)885 +225 y(E)915 214 y(X)n(Graph)246 294 y Fk(?)h Fp(\\absolutepositio)o(n)246 +344 y Fk(?)g Fp(\\absolutescale)246 394 y Fk(?)g Fp(\\arcc)246 +444 y Fk(?)g Fp(\\arcn)246 494 y Fk(?)g Fp(\\arrowheadscale)246 +544 y Fk(?)g Fp(\\arrowheadsize)246 594 y Fk(?)g Fp(\\arrowheadtype)246 +644 y Fk(?)g Fp(\\avec)246 694 y Fk(?)g Fp(\\beginsegment)246 +744 y Fk(?)g Fp(\\beginTeXgraph)e(\\btg)246 794 y Fk(?)i Fp(\\cavec)246 +844 y Fk(?)g Fp(\\cav)246 894 y Fk(?)g Fp(\\centergraph)246 +944 y Fk(?)g Fp(\\centerplotfile)246 994 y Fk(?)g Fp(\\clvec)246 +1044 y Fk(?)g Fp(\\clv)246 1094 y Fk(?)g Fp(\\endsegment)246 +1144 y Fk(?)g Fp(\\endTeXgraph)e(\\etg)246 1195 y Fk(?)i Fp(\\graphdim)246 +1245 y Fk(?)g Fp(\\hgraphsize)246 1295 y Fk(?)g Fp(\\hgraphskip)246 +1345 y Fk(?)g Fp(\\hpix)976 294 y Fk(?)f Fp(\\htext)976 344 +y Fk(?)g Fp(\\includefile)976 394 y Fk(?)g Fp(\\incscfile)976 +444 y Fk(?)g Fp(\\incscmvfile)976 494 y Fk(?)g Fp(\\larc)976 +544 y Fk(?)g Fp(\\lcir)976 594 y Fk(?)g Fp(\\linecap)976 644 +y Fk(?)g Fp(\\linejoin)976 694 y Fk(?)g Fp(\\lpatt)976 744 +y Fk(?)g Fp(\\lvec)976 794 y Fk(?)g Fp(\\move)976 844 y Fk(?)g +Fp(\\penwidth)976 894 y Fk(?)g Fp(\\relativeposition)976 944 +y Fk(?)g Fp(\\relativescale)976 994 y Fk(?)g Fp(\\rstext)976 +1044 y Fk(?)g Fp(\\rtext)976 1094 y Fk(?)g Fp(\\segmentscale)976 +1144 y Fk(?)g Fp(\\unitscale)976 1195 y Fk(?)g Fp(\\vgraphsize)976 +1245 y Fk(?)g Fp(\\vgraphskip)976 1295 y Fk(?)g Fp(\\vpix)976 +1345 y Fk(?)g Fp(\\vtext)267 1511 y Fl(30.2)56 b(The)19 b(Inclusion)h(of)e +(Encapsulated)h(P)n(ostScript)350 1597 y Fr(All)c(the)i(commands)d(that)i +(are)g(used)h(to)f(include)h(encapsulated)g(P)o(ostScript)g(\014les)267 +1647 y(read)12 b(the)g Fp(Boundingbox)d Fr(and)i(lea)o(v)o(e)g(enough)h +(space)g(in)f(the)h(text)g(for)f(the)h(graphics.)18 b(The)267 +1697 y Fp(Boundingbox)13 b Fr(ma)o(y)g(b)q(e)j(at)f(either)h(the)g(b)q +(eginning)e(or)h(the)h(end)g(of)f(the)g(\014le.)22 b(Ho)o(w)o(ev)o(er,)267 +1747 y(if)12 b(the)i Fp(Boundingbox)d Fr(is)i(at)g(the)h(the)f(end,)h(it)e +(migh)o(t)f(tak)o(e)j(T)1221 1756 y(E)1244 1747 y(X)f(some)f(time)g(to)h +(read)h(the)267 1797 y(en)o(tire)h(\014le)e(to)h(\014nd)g(it.)350 +1847 y(The)g(simplest)f(command)e(for)j(including)f(a)g(graphics)h(\014le)g +(is)644 1944 y Fq(n)p Fp(centerplotfile)p Fq(f)p Fk(<)9 b Fp(file)21 +b(name)10 b Fk(>)p Fq(g)p Fk(:)267 2040 y Fr(F)m(or)i(instance)h(the)h +(\(old\))e(IEEE)h(Comm)o(uni)o(cations)d(So)q(ciet)o(y)j(logo)e(w)o(as)h +(brough)o(t)h(in)f(sim-)267 2090 y(ply)h(b)o(y)h(sa)o(ying)267 +2180 y Fj(\\medskip)345 2422 y Fo(Draft)20 b(Version:)f(1991/8/24)p +eop +%%Page: 181 3 +bop 934 83 a Fm(The)14 b(Inclusion)i(of)f(Enc)n(apsulate)n(d)g(PostScript)96 +b Fn(181)267 214 y Fj(\\hrule)267 260 y(\\centerpl)o(otf)o(ile)o({i)o(eee)o +(lo)o(go.)o(ps)o(})267 307 y(\\hrule)267 353 y(\\medskip)267 +404 y Fr(righ)o(t)13 b(here.)p 267 441 1418 2 v 599 441 a + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +599 441 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +976 581 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr /XposR Xp1 def /YposR Yp1 def Xp1 neg Yp1 neg tr end +599 441 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +-293 2225 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +-293 2225 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs XposR YposR tr 0 neg rt XposR neg YposR neg tr Xp1 Yp1 tr 1 1 sc 4.17 -4.17 scale end /texgraph save def /showpage {} def +-280 2225 a +%%BeginDocument: ieeelogo.ps +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 +%%EndDocument + -266 2225 a + texgraph restore +599 441 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +599 441 a + grestore +267 723 1418 2 v 350 780 a Fr(The)j Fp(\\hrule)e Fr(commands)f(w)o(ere)k(put) +e(in)g(to)h(sho)o(w)f(ho)o(w)g(m)o(uc)o(h)f(space)j(w)o(as)e(left)g(b)o(y)267 +830 y(T)290 839 y(E)313 830 y(X)o(Graph.)i(A)10 b(sligh)o(tly)f(more)h +(complicated)f(example)g(illustrating)g(b)q(oth)i(rotation)e(and)267 +880 y(scaling)k(is)h(giv)o(en)f(b)q(elo)o(w.)p 267 944 V 863 +944 a + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +863 944 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +976 986 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr /XposR Xp1 def /YposR Yp1 def Xp1 neg Yp1 neg tr end +863 944 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +596 1479 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +596 1479 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs XposR YposR tr 45 neg rt XposR neg YposR neg tr Xp1 Yp1 tr .3 .3 sc 4.17 -4.17 scale end /texgraph save def /showpage {} def +609 1479 a +%%BeginDocument: ieeelogo.ps +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 +%%EndDocument + 623 1479 a + texgraph restore +863 944 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +863 944 a + grestore +267 1030 1418 2 v 350 1114 a Fr(The)h(co)q(de)h(for)f(this)f(is)267 +1165 y Fp(\\hrule)267 1216 y(\\centergraph{)19 b(\\btg)572 +1268 y(\\incscfile)h(f:{ieeelogo.ps})e(sc:.3)j(d:45)572 1319 +y(\\etg})267 1371 y(\\hrule)350 1473 y Fr(Notice)16 b(that)g(the)g +(computation)e(of)h(the)i(space)f(to)g(lea)o(v)o(e)f(w)o(as)h(incorrect.)25 +b(This)15 b(is)267 1524 y(due)c(to)g(the)g(di\016cult)o(y)e(in)i(p)q +(erforming)e(the)i(computations)e(for)h(obtaining)g(the)h(b)q(ounding)267 +1574 y(b)q(o)o(x)i(for)h(an)g(arbitrarily)f(rotated)h(and)g(scaled)g +(\014gure.)350 1626 y(The)k(most)e(general)i(inclusion)f(command)e(is)i +Fp(\\incscmvfile)e Fr(whic)o(h)i(allo)o(ws)g(for)267 1676 y(arbitrary)12 +b(scaling,)g(rotation,)g(and)g(o\013set.)19 b(Finally)m(,)10 +b(the)j(rotation,)f(scaling,)g(and)g(place-)267 1726 y(men)o(t)e(ma)o(y)e(b)q +(e)k(applied)e(around)g(an)o(y)g(of)g(the)i(nine)e(text)h(b)q(o)o(x)g +(reference)i(p)q(oin)o(ts)d(describ)q(ed)267 1777 y(in)j(Section)i(30.4.)267 +1943 y Fl(30.3)56 b(T)456 1954 y(E)487 1943 y(X)n(Graph)19 +b(Basics)350 2029 y Fr(T)373 2038 y(E)396 2029 y(X)o(Graph)12 +b(has)h(a)g(n)o(um)o(b)q(er)f(of)g(capabilities)g(that)h(range)g(from)d +(primitiv)o(e)h(to)i(p)q(o)o(w-)267 2080 y(erful.)19 b(The)14 +b(follo)o(wing)e(list)i(of)f(classes)j(is)e(for)g(reference)i(only)m(.)i +(More)d(detail)e(will)g(follo)o(w)267 2130 y(with)i(examples)f(in)h(the)h(v)n +(arious)e(sections)j(to)e(follo)o(w.)20 b(This)15 b(section)h(ma)o(y)e(b)q(e) +i(omitted)267 2180 y(on)e(\014rst)g(reading.)350 2422 y Fo(Draft)i(Version:) +32 b(1991/8/24)p eop +%%Page: 182 4 +bop 100 83 a Fn(182)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fn(T)292 223 y(E)318 214 +y(X)o(Graph)14 b(Classes)329 327 y Fq(\017)21 b Fr(Dra)o(wing)d(primitiv)o +(es)f(consist)j(of)f(commands)e(for)i(circles,)i(circular)f(arcs,)h(line)371 +376 y(v)o(ectors,)13 b(v)o(ectors)g(with)e(arro)o(wheads,)h(spline)g(curv)o +(es,)h(spline)f(curv)o(es)h(with)f(arro)o(w-)371 425 y(heads,)i(line)f +(dotting)g(commands,)e(and)j(v)n(arious)f(shades)i(of)f(gra)o(y)f(for)g +(\014lls.)329 507 y Fq(\017)21 b Fr(There)f(are)g(commands)d(for)i(c)o +(hanging)g(whether)h(the)g(distances)h(sp)q(eci\014ed)g(are)371 +556 y(to)14 b(b)q(e)i(in)o(terpreted)h(absolutely)m(,)c(with)i(resp)q(ect)i +(to)e(an)g(origin)e(or)i(relativ)o(ely)g(with)371 604 y(resp)q(ect)h(to)e +(the)g(presen)o(t)i(p)q(osition.)329 686 y Fq(\017)21 b Fr(There)14 +b(is)g(a)f(command)e(to)i(c)o(hange)h(the)g(\(p)q(en\)width)h(of)e(the)h(dra) +o(wn)f(lines)h(and)f(to)371 735 y(c)o(hange)h(the)g(in)o(terpreted)i(scale)e +(of)g(the)g(units)g(of)f(distance.)329 816 y Fq(\017)21 b Fr(There)11 +b(is)g(a)f(command)e(to)i(c)o(hange)h(the)g(default)f(units.)17 +b(Ho)o(w)o(ev)o(er,)11 b(since)g(arbitrary)371 865 y(scaling)f(of)h(units)g +(is)g(allo)o(w)o(ed,)f(this)h(command)e(is)i(of)f(limited)f(use)j(except)h +(for)d(those)371 914 y(that)h(visualize)g(distances)i(in)e(di\013eren)o(t)h +(dimensions.)k(The)c(dimensions)e(a)o(v)n(ailable)371 963 y(are)k(those)h(a)o +(v)n(ailable)c(in)j(INRST)895 961 y(^)891 972 y(E)914 963 y(X.)329 +1044 y Fq(\017)21 b Fr(There)14 b(is)g(a)f(\\graphical)f(segmen)o(t")h(whic)o +(h)g(can)h(b)q(e)g(placed)g(at)f(an)o(y)g(sp)q(eci\014c)i(lo)q(ca-)371 +1093 y(tion.)24 b(Distances)18 b(inside)e(a)g(graphical)f(segmen)o(t)h(are)h +(in)o(terpreted)h(with)e(resp)q(ect)371 1142 y(to)d(the)h(segmen)o(t)f +(origin.)k(The)d(distances)h(inside)f(a)f(segmen)o(t)g(ma)o(y)f(b)q(e)i +(either)g(rel-)371 1191 y(ativ)o(e)f(or)i(absolute)f(with)g(resp)q(ect)i(to)e +(the)h(segmen)o(t)f(origin.)k(There)d(is)f(a)g Fm(se)n(gment)371 +1240 y(sc)n(ale)f Fr(whic)o(h)f(allo)o(ws)g(for)h(segmen)o(ts)g(to)g(b)q(e)h +(scaled)f(relativ)o(ely)f(with)h(resp)q(ect)j(to)c(an)371 1289 +y(o)o(v)o(erall)g(graph.)329 1370 y Fq(\017)21 b Fr(T)m(ext,)15 +b(with)g(all)g(the)h(capabilities)e(of)h(INRST)1104 1369 y(^)1100 +1379 y(E)1123 1370 y(X)h(ma)o(y)d(b)q(e)j(written)g(at)g(an)o(y)f(arbi-)371 +1419 y(trary)f(angle.)329 1500 y Fq(\017)21 b Fr(T)394 1509 +y(E)417 1500 y(X)o(Graph)d(k)o(eeps)i(trac)o(k)e(of)g(the)h(maxim)o(um)14 +b(exten)o(t)19 b(of)f(a)g(graph.)32 b(These)20 b(are)371 1549 +y(a)o(v)n(ailable)10 b(after)j(the)h(graph)e(is)h(terminated)f(in)g(the)i(v)n +(ariables)e Fp(\\hgraphsize)e Fr(and)371 1598 y Fp(\\vgraphsize)p +Fr(.)32 b Fp(\\hgraphskip)18 b Fr(and)h Fp(\\vgraphskip)e Fr(will)h(cause)j +(a)e(horizon)o(tal)371 1647 y(or)g(v)o(ertical)h(skip)f(of)g(the)h +(appropriate)g(graphsize.)35 b Fn(Unfortunatel)o(y)l(,)22 b(these)371 +1696 y(v)m(alues)15 b(ma)o(y)h(b)q(e)f(incorrect)f(for)h(a)h(n)o(um)o(b)q(er) +e(of)h(reasons.)39 b Fr(These)15 b(are)454 1777 y Fq(\016)20 +b Fr(T)m(ext)14 b(ma)o(y)e(stic)o(k)i(out)g(the)g(edge)h(of)e(the)i(graph.) +454 1842 y Fq(\016)20 b Fr(A)14 b(circle)h(or)f(arc)g(cen)o(ter)h(is)f +(outside)g(the)h(main)d(graph)h(area.)454 1906 y Fq(\016)20 +b Fr(The)15 b(visible)e(part)h(of)f(a)h(circle)g(or)g(arc)g(ma)o(y)e(b)q(e)j +(to)q(o)e(far)h(to)g(the)g(righ)o(t.)454 1970 y Fq(\016)20 +b Fr(A)g(v)o(ertical)f(segmen)o(t)g(ma)o(y)f(ha)o(v)o(e)i(inadv)o(erten)o +(tly)f(reset)i(the)f(maxim)o(um)495 2019 y(p)q(ositions.)454 +2082 y(In)13 b(some)g(cases)i(it)e(ma)o(y)e(b)q(e)j(necessary)i(to)d(mak)o(e) +f(a)h(fak)o(e)g(mo)o(v)o(e)f(to)i(the)g(lo)o(w)o(er)371 2131 +y(righ)o(t)g(hand)h(corner)h(of)e(a)h(graph)f(to)h(tell)g(T)1055 +2140 y(E)1078 2131 y(X)o(Graph)f(the)i(correct)g(size)g(.)7 +b(.)g(.)20 b(after)371 2180 y(y)o(ou)13 b(ha)o(v)o(e)h(seen)h(a)f +(preliminary)d(v)o(ersion)j(and)g(kno)o(w)f(what)h(it)g(should)f(b)q(e.)350 +2422 y Fo(Draft)j(Version:)32 b(1991/8/24)p eop +%%Page: 183 5 +bop 1360 83 a Fm(T)1383 92 y(E)1405 83 y(X)o(Gr)n(aph)22 b(Basics)96 +b Fn(183)329 214 y Fq(\017)21 b Fr(All)13 b(of)h(T)510 223 +y(E)533 214 y(X's)g(de\014nitional)f(capabilities)h(are)g(a)o(v)n(ailable.)j +(These)f(can)e(b)q(e)h(used)g(to)371 264 y(replace)d(a)e(complex)g(structure) +j(b)o(y)e(a)f(single)h(command)d(or)j(to)f(c)o(hange)i(the)f(surface)371 +315 y(syn)o(tax)j(of)f(T)574 324 y(E)597 315 y(X)o(Graph.)329 +402 y Fq(\017)21 b Fr(Explicit)g(use)h(of)f(grouping)g(in)g(T)929 +411 y(E)952 402 y(X)o(Graph,)i(through)f Fq(fg)p Fr(,)g(or)g +Fp(\\begingroup)p Fr(,)371 452 y Fp(\\endgroup)14 b Fr(pairs)i(is)h(not)f +(allo)o(w)o(ed.)24 b(This)16 b(will)f(foul)h(up)g(the)h(p)q(ositional)e +(record)371 503 y(k)o(eeping)i(inside.)29 b(Groups)18 b(ma)o(y)e(b)q(e)i(pro) +q(duced)h(only)e(through)g(the)h(use)h(of)e(seg-)371 553 y(men)o(ts,)c +(namely)f(the)i Fp(\\beginsegment)p Fr(,)d Fp(\\endsegment)g +Fr(pair.)267 757 y Fl(30.4)56 b(Simple)20 b(T)645 768 y(E)675 +757 y(X)n(Graphics)350 843 y Fr(T)373 852 y(E)396 843 y(X)o(Graph)c(will)g +(allo)o(w)f(for)h(rather)i(sophisticated)f(graphics.)27 b(Y)m(ou)16 +b(can)h(use)h(the)267 893 y(de\014nition)12 b(capabilities)f(of)h(INRST)838 +892 y(^)834 902 y(E)857 893 y(X)g(to)h(create)g(libraries)f(of)g(sym)o(b)q +(ols)f(for)h(future)h(use.)350 945 y(Directions)k(in)f(T)625 +954 y(E)648 945 y(X)o(Graph)g(are)h(describ)q(ed)h(as)e(horizon)o(tal,)g +Fp(h:)p Fr(,)g(increasing)h(from)267 995 y(left)e(to)h(righ)o(t)f(across)i +(the)g(page)e(and)h(v)o(ertical,)g Fp(v:)p Fr(,)f(increaseing)h(from)e(top)i +(to)g(b)q(ottom)267 1045 y Fn(do)o(wn)d Fr(the)h(page.)k(Th)o(us)c(the)h +(fundamen)o(tal)d(directions)i(are)526 1111 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +526 1111 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +526 1111 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 90 90 mv 900 90 lv st np 900 90 mx 0 neg -810 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 90 90 mv 90 600 lv st np 90 600 mx -510 neg 0 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 450 44 mv st end +976 1155 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +748 1169 a Fr(Horizon)o(tal)f({)g Fp(h:<number>)526 1111 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +570 1411 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 90 neg rt Xp1 neg Yp1 neg tr end +366 1425 a Fr(V)m(ertical)h({)f Fp(v:<number>)526 1111 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +526 1111 a + grestore +267 1814 a Fr(T)290 1823 y(E)313 1814 y(X)o(Graph)h(capabilities)f(will)f(b)q +(e)j(in)o(tro)q(duced)f(slo)o(wly)m(.)j(The)d(follo)o(wing)d(diamond)h(b)q(o) +o(x)826 1880 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +826 1880 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +826 1880 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 150 mv 150 0 lv 300 150 lv 150 300 lv 0 150 lv 150 150 mv st end +976 2030 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +900 2010 a Fi(P)944 2020 y Fh(n)944 2053 y(i)p Fg(=1)1007 2041 +y Fk(\032)1028 2047 y Fh(n)826 1880 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +826 1880 a + grestore +345 2414 a Fo(Draft)20 b(Version:)f(1991/8/24)p eop +%%Page: 184 6 +bop 100 83 a Fn(184)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fr(w)o(as)14 b(put)g(in)f(place)h(with) +267 264 y Fj($$)43 b(\045)21 b(a)h(convenie)o(nt)c(way)j(to)g(use)g +(displayma)o(th)d(spacing)267 314 y(\\centergr)o(aph)o({)332 +365 y(\\beginTeXg)o(rap)o(hic)o(s)h(\045)i(also)f(known)g(as)h(\\btg)376 +415 y(\\move)f(h:0)g(v:.5)42 b(\045)22 b(moves)e(penup)g(to)h(\(0,.5\))376 +465 y(\\lvec)f(h:.5)g(v:0)42 b(\045)22 b(draws)e(a)h(line)f(to)h(\(.5,0\))376 +516 y(\\lvec)f(h:1)g(v:.5)376 566 y(\\lvec)g(h:.5)g(v:.1)376 +616 y(\\lvec)g(h:0)g(v:.5)376 666 y(\\textref)f(h:C)h(v:C)43 +b(\045)21 b(sets)f(the)h(reference)d(point)i(in)h(the)g(center.)376 +717 y(\\move)f(h:.5)g(v:.5)376 767 y(\\htext)f({$\\sum_{i=1)o(}^)o(n)g +(\\rho_n$})f(\045)k(horizonta)o(l)d(text)h(box)354 817 y(\\endTeXgra)o(ph)o +(ics)40 b(\045)21 b(also)g(known)e(as)i(\\etg)376 867 y(})267 +918 y($$)350 1028 y Fr(The)12 b(command)c Fp(\\centergraph{<...)o(>})g +Fr(uses)13 b(the)e(information)e(ab)q(out)i(plot)f(size)267 +1080 y(to)k(cen)o(ter)h(the)g(graphics)f(horizon)o(tally)e(and)i(to)g(lea)o +(v)o(e)f(enough)h(ro)q(om)f(v)o(ertically)m(.)350 1135 y(Argumen)o(ts)e(for)g +(all)f(T)699 1144 y(E)722 1135 y(X)o(Graph)h(primitiv)o(e)f(commands)f(are)i +(delimited)f(b)o(y)h(spaces.)267 1186 y(The)i(units)h(of)e(the)i(dimensions)e +(are)h(implicit,)d(but)j(c)o(hangable.)18 b(The)13 b(default)g(is)g(inc)o +(hes.)267 1238 y(Th)o(us)i Fp(h:<number>)d Fr(is)j(the)g(distance)h(in)e(the) +h(horizon)o(tal)f(\(to)g(righ)o(t\))h(and)f Fp(v:<number>)267 +1289 y Fr(is)19 b(the)g(distance)h(in)e(the)i(v)o(ertical)e(\(do)o(wn\))h +(direction.)33 b(The)20 b(lo)q(cations)e(are)h(absolute)267 +1340 y(distances)c(with)f(resp)q(ect)i(to)d(an)h(origin)f(in)g(the)i(upp)q +(er)g(left)e(hand)h(corner.)267 1534 y Fl(30.5)56 b(Simple)20 +b(V)-5 b(ector)19 b(F)-5 b(orms)350 1621 y Fr(This)15 b(in)o(tro)q(duces)i +(some)e(baisc)g(dra)o(wing)g(commands.)20 b(There)d Fn(m)o(ust)d +Fr(b)q(e)i(either)g(a)267 1672 y(space)g(or)f(an)g(end)g(of)g(line)f(after)h +(eac)o(h)h Fp(<coordinate> )m Fr(.)22 b(The)15 b(dimensional)e(units)i(are) +267 1724 y(implicit.)25 b(W)m(e)17 b(usually)f(use)i Fp(<..>)e +Fr(instead)i(of)e(the)i(less)g(economical)d Fp(<coordinate>)p +Fr(.)225 1775 y Fk(?)21 b Fp(\\move)g(h:<..>)f(v:<..>)267 1859 +y Fr(This)c(is)g(a)f(mo)o(v)o(e)g(from)f(the)i(curren)o(t)i(p)q(osition)d(to) +h(the)h(co)q(ordinates)f(giv)o(en)g(b)o(y)f Fp(h:<..>)267 1911 +y(v:<..>)p Fr(.)i(The)c(p)q(en)i(is)e(up.)18 b(It)13 b(ma)o(y)f(b)q(e)i(used) +g(to)g(mo)o(v)o(e)d(the)j(curren)o(t)h(reference)h(p)q(oin)o(t)d(or)267 +1962 y(to)h(describ)q(e)h(a)f(b)q(oundary)g(when)g(creating)g(a)g(\014lled)f +(p)q(olygon.)225 2096 y Fk(?)21 b Fp(\\lvec)g(h:<..>)f(v:<..>)267 +2180 y Fr(This)14 b(dra)o(ws)g(a)f(line)h(from)e(the)i(curren)o(t)i(p)q +(osition)d(to)h Fp(h:<..>)20 b(v:<..>)p Fr(.)350 2422 y Fo(Draft)c(Version:) +32 b(1991/8/24)p eop +%%Page: 185 7 +bop 1304 83 a Fm(Simple)15 b(V)m(e)n(ctor)f(F)m(orms)95 b Fn(185)225 +214 y Fk(?)21 b Fp(\\clvec)f(h1:<..>)h(v1:<..>)f(h2:<..>)h(v2:<..>)f(h3:<..>) +g(v3:<..>)267 289 y Fr(This)15 b(dra)o(ws)g(a)g(Bezier)i(spline)e(curv)o(e)h +(from)d(the)j(curren)o(t)h(p)q(oin)o(t)d(to)h Fp(h3:<..>)21 +b(v3:<..>)267 339 y Fr(with)d(resp)q(ect)i(to)e(the)h(con)o(trol)f(p)q(oin)o +(ts)g Fp(h1:<..>)i(v1:<..>)d Fr(and)h Fp(h2:<..>)i(v2:<..>)p +Fr(.)267 389 y(These)e(curv)o(es)g(are)f(v)o(ery)g(v)o(ersatile)g(and)f(can)h +(create)h(man)o(y)d(e\013ects,)j(including)e(lo)q(ops,)267 +439 y(b)o(y)e(v)n(arying)e(the)j(con)o(trol)e(p)q(oin)o(ts.)225 +552 y Fk(?)21 b Fp(\\clv)43 b(\(<h1>)20 b(<v1>\))43 b(\(<h2>)21 +b(<v2>\))42 b(\(<h3>)21 b(<v3>\))267 627 y Fr(This)14 b(command)d(is)j(iden)o +(tical)f(to)g Fp(\\clvec)g Fr(but)h(with)g(a)f(less)i(v)o(erb)q(ose)g(syn)o +(tax.)350 677 y(Lines)10 b(ma)o(y)d(b)q(e)j(either)g(solid)f(of)g(v)n(arious) +f(widths,)i(or)g(dotted)g(with)f(custom)f(patterns.)267 728 +y(In)17 b(addition)f(the)i(ends)g(of)f(the)g(lines)h(ma)o(y)d(b)q(e)j(of)e +(di\013eren)o(t)i(shap)q(es)h(and)e(joined)g(with)267 778 y(di\013eren)o(t)h +(defaults.)27 b(In)17 b(most)f(cases)j(y)o(ou)d(will)g(not)h(ha)o(v)o(e)g(to) +g(c)o(hange)g(the)h(defaults)f(in)267 828 y(T)290 837 y(E)313 +828 y(X)o(Graph)d(but)g(the)g(capabilit)o(y)f(is)g(there.)225 +890 y Fk(?)21 b Fp(\\penwidth)f(<size>)267 965 y Fr(This)c(sets)i(the)f +(width)f(of)g(the)h(p)q(en)g(or)g(line)e(in)h(the)h(curren)o(t)h(units.)26 +b(The)17 b(default)f(is)g(is)267 1016 y(.015)d(\(in\).)225 +1128 y Fk(?)21 b Fp(\\linecap)f(<integer>)267 1203 y Fr(This)14 +b(sets)h(the)f(end)g(shap)q(es)h(of)e(the)i(lines)e(using)h(P)o(ostScript)h +(notation.)i(The)d(default)f(is)267 1254 y(1)f(or)g(a)g(round)h(cap.)18 +b(A)12 b(v)n(alue)g(of)f(0)h(is)h(a)f(butt)g(cap)h(with)f(the)h(line)f(cut)h +(o\013)f(square)h(exactly)267 1304 y(to)i(its)g(length.)20 +b(A)15 b(v)n(alue)g(of)f(2)g(is)h(a)g(square)g(cap)g(with)g(the)g(line)g +(extended)h(b)o(y)f(a)f(square)267 1354 y(cap)g(the)g(thikness)h(of)e(half)g +(its)g(width.)18 b(F)m(or)13 b(narro)o(w)h(lines)g(the)g(di\013erence)h(is)f +(negligible.)225 1466 y Fk(?)21 b Fp(\\linejoin)f(<integer>)267 +1542 y Fr(This)15 b(sets)i(the)f(form)e(in)h(whic)o(h)g(lines)g(join)g(\(P)o +(ostScript)h(notation\).)22 b(The)16 b(default)f(is)g(1)267 +1592 y(whic)o(h)f(corresp)q(onds)h(to)f(a)g(round)g(line)f(join.)k(A)d(v)n +(alue)f(of)g(0)h(is)f(a)h(mitre)f(or)g(p)q(oin)o(ted)h(join)267 +1642 y(while)h(a)f(v)n(alue)h(of)g(2)f(is)h(a)g(b)q(ev)o(eled)h(or)f +(\015attened)i(join.)j(F)m(or)15 b(thin)g(lines)g(the)h(di\013erences)267 +1692 y(are)e(negligible.)225 1805 y Fk(?)21 b Fp(\\lpatt)f(p:<pattern>)267 +1880 y Fr(This)13 b(sets)i(the)f(dotting)f(pattern)h(of)f(the)h(line)e(in)h +(P)o(ostScript)i(notation.)i(The)c(default)g(is)267 1930 y(a)j(solid)g(line)g +(describ)q(ed)i(b)o(y)e Fp({[]})p Fr(.)25 b(The)17 b(simplest)e(form)g(is)h +Fp({[a]})g Fr(where)h(the)g(line)f(is)267 1980 y(blac)o(k)c(for)g +Fp(a)g Fr(pixels)g(and)h(white)f(for)g(1.)18 b Fp({[a)i(b]})11 +b Fr(w)o(ould)h(mean)f Fp(a)i Fr(pixels)f(blac)o(k)g(follo)o(w)o(ed)267 +2030 y(b)o(y)h Fp(b)g Fr(pixels)g(white.)18 b(A)c(sp)q(eci\014cation)g(of)e +Fp([a1)21 b(b1)g(a2)g(b2])12 b Fr(w)o(ould)h(b)q(e)h(a)f(cyclic)g(pattern)267 +2080 y(with)g(the)i(line)e(blac)o(k)h(for)f(the)i Fp(a?)j Fr(pixels)c(and)f +(white)h(for)g(the)g(corresp)q(onding)h Fp(b?)p Fr(.)350 2130 +y(T)373 2139 y(E)396 2130 y(X)o(Graph)h(alos)g(supplies)g(lines)g(with)g +(arro)o(wheads.)26 b(These)17 b(ma)o(y)e(b)q(e)h(com)o(bined)267 +2180 y(dotting)11 b(patterns)j(giv)o(en)d(ab)q(o)o(v)o(e)h(but)g(a)g +(decision)h(will)d(ha)o(v)o(e)i(to)g(b)q(e)h(made)e(as)h(to)g(whether)350 +2422 y Fo(Draft)k(Version:)32 b(1991/8/24)p eop +%%Page: 186 8 +bop 100 83 a Fn(186)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fr(y)o(ou)e(w)o(an)o(t)f(the)i(arro)o +(whead)f(itself)g(dotted.)31 b(There)20 b(are)e(three)i(st)o(yles)e(of)g +(arro)o(wheads)267 264 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +267 264 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +267 264 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 -15 mv 90 -15 lv st np 90 -15 mx 0 neg -90 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 180 -15 lv st np 180 -15 mx 0 neg -90 at -48 11 mv 0 0 lv -48 -11 lv st gr 270 -15 lv st np 270 -15 mx 0 neg -90 at -48 11 mv 0 0 lv -48 -11 lv cp 0 sg fill gr st end +267 264 a + grestore +554 264 a Fr(triangle)f Fp(T)p Fr(,)f(op)q(en)i Fp(O)p Fr(,)e(and)h(\014lled) +g Fp(F)p Fr(.)f(The)i(size)g(ma)o(y)d(also)h(b)q(e)i(v)n(aried.)267 +314 y(There)d(are)f(no)g(restriction)h(on)e(the)i(direction)f(of)f(the)i +(arro)o(ws.)j(The)c(commands)e(are)225 376 y Fk(?)21 b Fp(\\avec)g(h:<..>)f +(v:<..>)267 449 y Fr(This)15 b(dra)o(ws)h(a)g(v)o(ector)g(with)f(an)h(arro)o +(w)f(head)h(from)e(the)i(curren)o(t)h(p)q(osition)e(to)g Fp(h:<..>)267 +499 y(v:<..>)p Fr(.)225 609 y Fk(?)21 b Fp(\\cavec)f(h1:<..>)h(v1:<..>)f +(h2:<..>)h(v2:<..>)f(h3:<..>)g(v3:<..>)225 682 y Fk(?)h Fp(\\cav)g(\(<h1>)g +(<v1>\))f(\(<h2>)h(<v2>\))g(\(<h3>)g(<v3>\))267 756 y Fr(These)15 +b(are)f(the)h(spline)f(v)o(ersions)g(of)f(the)i(v)o(ectors)g(with)e(arro)o +(wheads.)225 866 y Fk(?)21 b Fp(\\arrowheadtype)e(t:<type>)267 +939 y Fr(The)14 b Fp(<type>)f Fr(is)h Fp(T)21 b(O)h(F)13 b +Fr(for)h(triangle,)f(op)q(en,)h(or)f(\014lled)h(resp)q(ectiv)o(ely)m(.)225 +1049 y Fk(?)21 b Fp(\\arrowheadsize)e(l:<length>)h(w:<width>)267 +1123 y Fr(The)15 b Fp(<length>)e Fr(and)h Fp(<width>)f Fr(are)i(in)f(the)i +(curren)o(t)g(units.)k(The)15 b(default)f(is)h(0.16in)d(b)o(y)267 +1173 y(0.04in.)24 b(This)16 b(size)i(is)e Fp(independent)e +Fr(of)i(the)h(curren)o(t)h(scales.)26 b(This)17 b(prev)o(en)o(ts)h(arro)o(w-) +267 1222 y(heads)c(from)f(disapp)q(earing)g(as)h(a)g(graph)g(is)f(scaled.)225 +1332 y Fk(?)21 b Fp(\\arrowheadscale)11 b Fr(This)j(mak)o(es)f(the)i(arro)o +(wheadsize)g(sensitiv)o(e)g(to)f(the)h(segmen)o(t)e(and)267 +1382 y(unit)k(scales)i(in)e(force)i(when)f(it)g(is)f(called.)30 +b(It)18 b(is)f(not)h(global)e(but)i(is)g(a\013ected)h(b)o(y)f(the)267 +1432 y(grouping)13 b(imp)q(osed)g(b)o(y)g Fp(\\beginsegment)f +Fr(and)h Fp(\\endsegment)f Fr(pairs.)350 1482 y(F)m(or)d(most)g +(applications,)g(the)h Fp(\\arrowheadsize)d Fr(and)j(the)g +Fp(\\arrowheadscale)d Fr(will)267 1531 y(not)14 b(b)q(e)g(needed.)350 +1581 y(The)g(follo)o(wing)c(example)i(of)h(a)g(\(partial\))g(blo)q(c)o(k)g +(diagram)e(uses)j(these)h(commands.)751 1641 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +751 1641 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +751 1641 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 90 mv 150 90 lv st np 150 90 mx 0 neg -150 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 150 180 mv 150 0 lv 450 0 lv 450 180 lv 150 180 lv st end +751 1641 a + grestore +267 1911 a Fr(This)f(w)o(as)g(pro)q(duced)h(b)o(y)e(the)i(follo)o(wing:)267 +1956 y Fj(\\centergr)o(aph)o({\\b)o(tg)441 2001 y(\\move)20 +b(h:0)h(v:.3)441 2046 y(\\avec)f(h:.5)g(v:.3)h(\045)g(arrow)f(vector)f +(leading)g(into)i(box)441 2091 y(\\move)f(h:.5)g(v:.6)h(\045)g(moves)f(to)h +(lower)f(lefthand)e(corner)i(of)h(box)441 2135 y(\\lvec)f(h:.5)g(v:0)43 +b(\045)21 b(four)f(sides)441 2180 y(\\lvec)g(h:1.5)g(v:0)350 +2417 y Fo(Draft)c(Version:)32 b(1991/8/24)p eop +%%Page: 187 9 +bop 1290 83 a Fm(Simple)22 b(V)m(e)n(ctor)f(F)m(orms)95 b Fn(187)441 +214 y Fj(\\lvec)20 b(h:1.5)g(v:.6)441 259 y(\\lvec)g(h:.5)g(v:.6)485 +304 y(\\etg})350 404 y Fr(W)m(e)d(can)h(c)o(hange)f(the)i(t)o(yp)q(e)f(of)e +(arro)o(whead)i(on)f(this)h(and)f(all)f(subsequen)o(t)j(arro)o(w)267 +454 y(v)o(ectors)c(b)o(y)f(adding)f(adding)g Fp(\\arrowheadtype)19 +b(t:O)13 b Fr(b)q(efore)h(the)h Fp(\\avec)21 b(...)d Fr(to)13 +b(giv)o(e)751 515 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +751 515 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +751 515 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 90 mv 150 90 lv st np 150 90 mx 0 neg -150 at -48 11 mv 0 0 lv -48 -11 lv cp 0 sg fill gr 150 180 mv 150 0 lv 450 0 lv 450 180 lv 150 180 lv st end +751 515 a + grestore +267 787 a Fr(This)h(w)o(as)g(pro)q(duced)h(b)o(y)267 832 y +Fj(\\centergr)o(aph)o({\\b)o(tg)441 877 y(\\move)20 b(h:0)h(v:.3)441 +922 y(\\arrowhead)o(typ)o(e)e(t:F)h(\045)i(changes)d(default)g(filled)441 +967 y(\\avec)h(h:.5)g(v:.3)h(\045)g(arrow)f(vector)f(leading)g(into)i(box)441 +1012 y(\\move)f(h:.5)g(v:.6)h(\045)g(moves)f(to)h(lower)f(lefthand)e(corner)i +(of)h(box)441 1057 y(\\lvec)f(h:.5)g(v:0)43 b(\045)21 b(four)f(sides)441 +1102 y(\\lvec)g(h:1.5)g(v:0)441 1147 y(\\lvec)g(h:1.5)g(v:.6)441 +1192 y(\\lvec)g(h:.5)g(v:.6)485 1237 y(\\etg})225 1349 y Fk(?)h +Fp(\\unitscale)f(<scale>)267 1423 y Fr(This)g(command)e(causes)k(all)e +(subsequen)o(t)i(units)f(in)f(this)h(or)f(enclosed)i(segmen)o(ts)e(to)267 +1473 y(b)q(e)e(scaled)g(b)o(y)f(the)i Fp(<scale>)p Fr(.)27 +b(Th)o(us)18 b Fp(\\unitscale)k(2.54)16 b Fr(w)o(ould)h(ha)o(v)o(e)g(the)i +(e\013ect)g(of)267 1523 y(c)o(hanging)11 b(a)g(\014gure)i(where)g(the)f +(units)g(w)o(ere)h(originally)c(in)i(inc)o(hes)i(to)e(b)q(e)i(in)e(cen)o +(timetres.)350 1573 y(Th)o(us)16 b(the)g(en)o(tire)g(graph)f(is)g(reduced)i +(to)e(half)g(size)h(b)o(y)f(adding)f Fp(\\unitscale)21 b(.5 )267 +1623 y Fr(at)14 b(the)g(v)o(ery)g(b)q(eginning.)863 1683 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +863 1683 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +863 1683 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 45 mv 75 45 lv st np 75 45 mx 0 neg -75 at -48 11 mv 0 0 lv -48 -11 lv cp 0 sg fill gr 75 90 mv 75 0 lv 225 0 lv 225 90 lv 75 90 lv st end +863 1683 a + grestore +267 1866 a Fr(Note)j(that)f(the)h(arro)o(whead)f(has)h(not)f(c)o(hanged)h(in) +e(size.)26 b(The)17 b(commands)d(to)i(do)g(this)267 1910 y(are)267 +1955 y Fj(\\centergr)o(aph)o({\\b)o(tg)441 2000 y(\\unitscale)i(.5)43 +b(\045)21 b(causes)f(all)h(subseque)o(nt)d(units)i(to)h(be)g(multiplied)768 +2045 y(\045)h(by)f(.5)441 2090 y(\\move)f(h:0)h(v:.3)441 2135 +y(\\arrowhead)o(typ)o(e)e(t:F)h(\045)i(changes)d(default)g(filled)441 +2180 y(\\avec)h(h:.5)g(v:.3)h(\045)g(arrow)f(vector)f(leading)g(into)i(box) +345 2422 y Fo(Draft)f(Version:)f(1991/8/24)p eop +%%Page: 188 10 +bop 100 83 a Fn(188)95 b Fm(CHAPTER)21 b(30:)h(T)596 92 y(E)619 +83 y(X)o(Gr)n(aph)441 214 y Fj(\\move)e(h:.5)g(v:.6)h(\045)g(moves)f(to)h +(lower)f(lefthand)e(corner)i(of)h(box)441 259 y(\\lvec)f(h:.5)g(v:0)43 +b(\045)21 b(four)f(sides)441 304 y(\\lvec)g(h:1.5)g(v:0)441 +349 y(\\lvec)g(h:1.5)g(v:.6)441 394 y(\\lvec)g(h:.5)g(v:.6)485 +439 y(\\etg})267 489 y Fr(If)13 b(the)h(arro)o(whead)g(size)h(needed)g(to)e +(b)q(e)h(reduced)i(in)d(the)h(same)f(scale)h(it)f(is)h(necessary)h(to)267 +539 y(add)f Fp(\\arrowheadscale)e Fr(after)j(the)g Fp(\\unitscale)e +Fr(and)h(b)q(efore)h(the)h(\014rst)f(arro)o(wv)o(ector.)267 +589 y(Th)o(us)f(w)o(e)g(get)863 650 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +863 650 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +863 650 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 45 mv 75 45 lv st np 75 45 mx 0 neg -75 at -24 5 mv 0 0 lv -24 -5 lv cp 0 sg fill gr 75 90 mv 75 0 lv 225 0 lv 225 90 lv 75 90 lv st end +863 650 a + grestore +267 834 a Fr(This)g(is)f(pro)q(duced)j(b)o(y)267 879 y Fj(\\centergr)o(aph)o +({\\b)o(tg)441 924 y(\\unitscale)i(.5)43 b(\045)21 b(causes)f(all)h(subseque) +o(nt)d(units)i(to)h(be)g(multiplied)768 969 y(\045)h(by)f(.5)441 +1014 y(\\move)f(h:0)h(v:.3)441 1059 y(\\arrowhead)o(sca)o(le)d(\045)k(makes)e +(arrowhea)o(d)f(size)h(sensitive)e(to)j(scalings.)441 1104 +y(\\arrowhead)o(typ)o(e)e(t:F)h(\045)i(changes)d(default)g(filled)441 +1149 y(\\avec)h(h:.5)g(v:.3)h(\045)g(arrow)f(vector)f(leading)g(into)i(box) +441 1194 y(\\move)f(h:.5)g(v:.6)h(\045)g(moves)f(to)h(lower)f(lefthand)e +(corner)i(of)h(box)441 1239 y(\\lvec)f(h:.5)g(v:0)43 b(\045)21 +b(four)f(sides)441 1284 y(\\lvec)g(h:1.5)g(v:0)441 1329 y(\\lvec)g(h:1.5)g +(v:.6)441 1374 y(\\lvec)g(h:.5)g(v:.6)485 1419 y(\\etg})350 +1519 y Fr(Finally)12 b(w)o(e)i(ha)o(v)o(e)g(an)g(example)e(with)i(dotted)g +(Bezier)i(splines.)226 1580 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +226 1580 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +226 1580 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv [20 30 20] 0 sd 0 600 lv 0 0 mv st 4 sl [20 20 10 10] 0 sd 1 slc 1 slj np 0 0 mv 300 300 600 300 900 0 cv st np 900 0 mx 300 neg -300 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr st 4 sl [20 20] 0 sd 1 slc 1 slj np 900 0 mv 1200 300 mv 0 600 1500 600 300 300 cv st np 300 300 mx 300 neg 1200 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr st end +226 1580 a + grestore +354 2414 a Fo(Draft)k(Version:)f(1991/8/24)p eop +%%Page: 189 11 +bop 1304 83 a Fm(Simple)15 b(V)m(e)n(ctor)f(F)m(orms)95 b Fn(189)350 +214 y Fr(whic)o(h)14 b(w)o(as)g(giv)o(en)f(b)o(y)267 266 y +Fp(\\centergraph{)19 b(\\btg)i(\\lpatt)g(p:{[20)f(30)h(20]})681 +319 y(\\lvec)g(h:0)g(v:2)681 371 y(\\move)g(h:0)g(v:0)681 423 +y(\\lpatt)g(p:{[20)f(20)h(10)h(10]})659 475 y(\\cav)f(\(1)h(1\))f(\(2)g(1\))h +(\(3)f(0\))681 528 y(\\lpatt)g(p:{[20)f(20]})659 580 y(\\move)h(h:4)g(v:1)659 +632 y(\\cav)g(\(0)h(2\))f(\(5)g(2\))h(\(1)f(1\))594 685 y(\\etg)528 +737 y(})267 789 y Fr(This)d(is)h(o\013)f(cen)o(ter)i(b)q(ecause)g(the)g +(width)e(computation)f(includes)i(the)g(\(5)f(2\))g(con)o(trol)267 +840 y(p)q(oin)o(t)13 b(of)h(the)g(Bezier)h(curv)o(e.)267 993 +y Fn(30.5.1)48 b(T)l(ext)15 b(in)g(Graphs)350 1080 y Fr(All)c(text)i(within)f +(T)652 1088 y(E)675 1080 y(X)o(Graph)g(is)g(actually)f(t)o(yp)q(eset)j(b)o(y) +e(T)1251 1088 y(E)1274 1080 y(X.)g(Since)h(T)1459 1088 y(E)1482 +1080 y(X)f(do)q(es)h(this)267 1130 y(so)h(b)q(eautifully)m(,)f(it)h(seems)g +(coun)o(ter)i(pro)q(ductiv)o(e)f(to)f(do)g(it)g(otherwise.)21 +b(The)15 b(commands)267 1181 y(for)e(including)g(text)i(at)f(v)n(arious)f +(angles)h(are)225 1245 y Fk(?)21 b Fp(\\htext)f({<text>})267 +1324 y Fr(This)14 b(puts)g(the)h(text)f(in)g(a)f(horizon)o(tal)g +Fp(\\hbox)g Fr(running)h(from)e(left)h(to)h(righ)o(t.)225 1446 +y Fk(?)21 b Fp(\\vtext)f({<text>})267 1525 y Fr(This)14 b(puts)g(the)h(text)f +(in)g(a)f(v)o(ertical)h Fp(\\hbox)f Fr(going)f(up)o(w)o(ards.)225 +1646 y Fk(?)21 b Fp(\\rtext)f(d:<degrees>)g(t:{<text>})267 +1725 y Fr(This)14 b(puts)g(text)h(in)e(an)h Fp(\\hbox)f Fr(with)g(an)h +(arbitrary)g(rotation)f(of)g Fp(<degrees>)p Fr(.)225 1847 y +Fk(?)21 b Fp(\\rstext)f(d:<degrees>)g(sc:<scale>)g(t:{<text>})267 +1926 y Fr(This)14 b(puts)h(text)f(in)g(an)g Fp(\\hbox)f Fr(with)h(an)g +(arbitrary)g(rotation)f(of)h Fp(<degrees>)e Fr(and)i(scale)267 +1976 y Fp(<scale>)p Fr(.)350 2029 y(T)m(ext)g(is)g(placed)h(in)f(an)g +Fp(\\hbox)p Fr(.)k(This)c(b)q(o)o(x)g(is)g(lo)q(cated)h(at)f(the)h(p)q(oin)o +(t)f(in)f(the)i(graph)267 2079 y(where)i(the)g Fp(\\?text)e +Fr(command)e(is)k(called.)24 b(In)16 b(order)h(to)g(mak)o(e)d(the)j(exact)g +(placemen)o(t)267 2130 y(of)f(the)i(b)q(o)o(x)f(in)f(a)h(graph)g(easier,)h +(the)g(b)q(o)o(x)e(is)h(actually)f(orien)o(ted)i(at)f(an)o(y)f(one)i(of)e +(nine)267 2180 y(reference)g(p)q(oin)o(ts.)i(The)d(command)c(is)350 +2422 y Fo(Draft)16 b(Version:)32 b(1991/8/24)p eop +%%Page: 190 12 +bop 100 83 a Fn(190)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)225 214 y Fk(?)h Fp(\\textref)f(h:<L)h(C)h(R>)f +(v:<T)g(C)h(B>)267 284 y Fr(The)13 b(c)o(hoices)g(of)f Fp(L)22 +b(C)g(R)12 b Fr(are)h(Left,)f(Cen)o(ter,)i(and)e(Righ)o(t)g(resp)q(ectiv)o +(ely)i(in)e(the)h(horizon)o(tal)267 334 y(and)h(v)o(ertical)f(p)q(ositions.) +350 383 y(The)h(nine)g(c)o(hoices)h(are)f(sho)o(wn)g(b)q(elo)o(w:)640 +429 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +640 429 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +488 443 a Fr(h:L)f(v:T)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 42 0 lv 126 84 lv st np 126 84 mx -84 neg -84 at -16 4 mv 0 0 lv -16 -4 lv st gr 0 189 mv st end +640 618 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +488 632 a Fr(h:L)g(v:C)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 189 mv 126 189 lv st np 126 189 mx 0 neg -126 at -16 4 mv 0 0 lv -16 -4 lv st gr 0 378 mv st end +640 807 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +489 821 a Fr(h:L)g(v:B)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 378 mv 42 378 lv 126 294 lv st np 126 294 mx 84 neg -84 at -16 4 mv 0 0 lv -16 -4 lv st gr 672 0 mv st end +1312 429 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1325 443 a Fr(h:R)g(v:T)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 672 0 mv 630 0 lv 546 84 lv st np 546 84 mx -84 neg 84 at -16 4 mv 0 0 lv -16 -4 lv st gr 672 189 mv st end +1312 618 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1325 632 a Fr(h:R)g(v:C)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 672 189 mv 546 189 lv st np 546 189 mx 0 neg 126 at -16 4 mv 0 0 lv -16 -4 lv st gr 672 378 mv st end +1312 807 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1325 821 a Fr(h:R)g(v:B)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 672 378 mv 630 378 lv 546 294 lv st np 546 294 mx 84 neg 84 at -16 4 mv 0 0 lv -16 -4 lv st gr 336 0 mv st end +976 429 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +905 429 a Fr(h:C)g(v:T)-407 b + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 336 0 mv 336 10 mv 336 84 lv st np 336 84 mx -74 neg 0 at -16 4 mv 0 0 lv -16 -4 lv st gr 420 147 mv st end +1060 576 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1073 590 a Fr(h:C)14 b(v:C)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 420 147 mv 388 147 lv 336 189 lv st np 336 189 mx -42 neg 52 at -16 4 mv 0 0 lv -16 -4 lv st gr 336 378 mv st end +976 807 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +905 836 a Fr(h:C)f(v:B)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 336 378 mv 336 367 mv 336 294 lv st np 336 294 mx 73 neg 0 at -16 4 mv 0 0 lv -16 -4 lv st gr 126 84 mv st end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 126 84 mv 336 84 lv st end +976 513 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +966 522 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 336 84 mv 546 84 lv st end +1186 513 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1176 522 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 546 84 mv 546 189 lv st end +1186 618 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1176 627 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 546 189 mv 546 294 lv st end +1186 723 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1176 732 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 546 294 mv 336 294 lv st end +976 723 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +966 732 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 336 294 mv 126 294 lv st end +766 723 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +756 732 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 126 294 mv 126 189 lv st end +766 618 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +756 627 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 126 189 mv 126 84 lv st end +766 513 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +756 522 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +976 618 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +966 627 a Fq(\017)640 429 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +640 429 a + grestore +350 877 a Fr(These)i(reference)h(p)q(oin)o(ts)e(mo)o(v)o(e)e(with)i(the)g(b)q +(o)o(x)g(as)g(it)g(is)f(rotated)i(or)f(scaled.)350 926 y(As)e(an)g(example)e +(w)o(e)i(add)f(the)i(follo)o(wing)c Fk(\032)j Fr(=)1082 895 +y Fi(P)1125 905 y Fh(n)1125 939 y(i)p Fg(=1)1188 926 y Fk(\032)1209 +932 y Fh(i)1235 926 y Fr(to)g(the)g(cen)o(ter)h(of)e(the)i(blo)q(c)o(k)267 +976 y(diagram)e(used)k(previously)f(to)g(giv)o(e)751 1019 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +751 1019 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +1051 1109 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +941 1120 a Fk(\032)e Fr(=)1018 1088 y Fi(P)1062 1099 y Fh(n)1062 +1132 y(i)p Fg(=1)1125 1120 y Fk(\032)1146 1126 y Fh(i)751 1019 +y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +751 1019 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 300 90 mv 0 90 mv 150 90 lv st np 150 90 mx 0 neg -150 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 150 180 mv 150 0 lv 450 0 lv 450 180 lv 150 180 lv st end +751 1019 a + grestore +267 1275 a Fr(The)i(commands)e(to)h(do)h(this)g(are)267 1319 +y Fj(\\centergr)o(aph)o({\\b)o(tg)441 1364 y(\\move)20 b(h:1.0)g(v:.3)g(\045) +i(moves)e(to)h(center)e(of)i(box)441 1408 y(\\textref)e(h:C)i(v:C)f(\045)i +(sets)e(text)g(reference)e(to)j(dead)g(center)441 1453 y(\\htext)f +({$\\rho=\\s)o(um)o(_{i)o(=1})o(^{)o(n}\\)o(rh)o(o_i)o($})e(\045)k(puts)e(in) +h(text)441 1497 y(\\move)f(h:0)h(v:.3)441 1542 y(\\avec)f(h:.5)g(v:.3)h(\045) +g(arrow)f(vector)f(leading)g(into)i(box)441 1586 y(\\move)f(h:.5)g(v:.6)h +(\045)g(moves)f(to)h(lower)f(lefthand)e(corner)i(of)h(box)441 +1631 y(\\lvec)f(h:.5)g(v:0)43 b(\045)21 b(four)f(sides)441 +1675 y(\\lvec)g(h:1.5)g(v:0)441 1720 y(\\lvec)g(h:1.5)g(v:.6)441 +1764 y(\\lvec)g(h:.5)g(v:.6)485 1809 y(\\etg})350 1907 y Fr(Arbitrary)14 +b(rotation)g(of)f(text)i(or)f(graphics)g Fp(\\rtext)p Fr(.)j(This)d(example)f +(uses)i Fp(\\rtext)267 1957 y(d:45)21 b(t:<text>)12 b Fr(in)i(place)g(of)f +(the)h Fp(\\htext)p Fr(.)751 2000 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +751 2000 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +1051 2090 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 45 neg rt Xp1 neg Yp1 neg tr end +941 2101 a Fk(\032)e Fr(=)1018 2070 y Fi(P)1062 2080 y Fh(n)1062 +2113 y(i)p Fg(=1)1125 2101 y Fk(\032)1146 2107 y Fh(i)751 2000 +y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +751 2000 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 300 90 mv 0 90 mv 150 90 lv st np 150 90 mx 0 neg -150 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 150 180 mv 150 0 lv 450 0 lv 450 180 lv 150 180 lv st end +751 2000 a + grestore +350 2414 a Fo(Draft)k(Version:)32 b(1991/8/24)p eop +%%Page: 191 13 +bop 1290 83 a Fm(Simple)22 b(V)m(e)n(ctor)f(F)m(orms)95 b Fn(191)267 +214 y Fr(Note)15 b(that)f(the)h(text)g(spills)f(out)g(o)o(v)o(er)h(the)g +(edges)g(of)f(the)h(b)q(o)o(x.)20 b(There)15 b(is)g(no)f(guaran)o(tee)267 +264 y(that)g(the)h(text)f(will)f(\014t)h(in)g(the)h(b)q(o)o(x.)j(In)c(fact)g +(if)f(w)o(e)i(tak)o(e)f(the)g(horizon)o(tal)g(example)e(and)267 +315 y(add)i(a)f Fp(\\unitscale)20 b(.7)h(\\arrowheadscale)11 +b Fr(the)k(follo)o(wing)c(results:)818 381 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +818 381 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +1028 444 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +919 455 a Fk(\032)h Fr(=)996 424 y Fi(P)1039 434 y Fh(n)1039 +467 y(i)p Fg(=1)1102 455 y Fk(\032)1123 461 y Fh(i)818 381 +y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +818 381 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 210 63 mv 0 63 mv 105 63 lv st np 105 63 mx 0 neg -105 at -33 8 mv 0 0 lv -33 -8 lv cp gs 1 sg fill gr st gr 105 126 mv 105 0 lv 315 0 lv 315 126 lv 105 126 lv st end +818 381 a + grestore +350 613 a Fr(Note)j(that)g(the)h(fon)o(t)e(is)h(not)g(scaled.)21 +b(If)15 b(w)o(e)g(use)h Fp(\\rstext)21 b(d:0)g(sc:.8)h(t:<...>)267 +664 y Fr(w)o(e)14 b(get)818 730 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +818 730 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +1028 793 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .8 .8 sc Xp1 neg Yp1 neg tr end +919 804 a Fk(\032)e Fr(=)996 773 y Fi(P)1039 783 y Fh(n)1039 +816 y(i)p Fg(=1)1102 804 y Fk(\032)1123 810 y Fh(i)818 730 +y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +818 730 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 210 63 mv 0 63 mv 105 63 lv st np 105 63 mx 0 neg -105 at -33 8 mv 0 0 lv -33 -8 lv cp gs 1 sg fill gr st gr 105 126 mv 105 0 lv 315 0 lv 315 126 lv 105 126 lv st end +818 730 a + grestore +267 1081 a Fl(30.6)56 b(Rotated)19 b(Graphics)g(and)g(T)-5 +b(ext)350 1167 y Fr(It)20 b(is)f(p)q(ossible)h(to)g(place)g(graphics)g(or)f +(text)i(at)e(an)o(y)g(arbitrary)h(direction)g(on)f(a)267 1218 +y(page.)k(It)16 b(is)f(only)g(necessary)j(to)d(include)h(it)f(in)g(a)h +Fp(\\vtext)e Fr(for)h(v)o(ertical)h(or)f(an)g Fp(\\rtext)267 +1268 y Fr(for)c(an)h(arbitrary)f(rotation.)17 b(Ho)o(w)o(ev)o(er,)12 +b(it)g(should)f(b)q(e)h(remem)o(b)q(ered)g(that)f(the)i(reference)267 +1319 y(p)q(oin)o(t)18 b(is)h(that)g(p)q(osition)f(on)h(the)g(page)g(where)h +(the)f Fp(\\?text)f Fr(w)o(as)h(en)o(tered)h Fn(and)e Fr(that)267 +1369 y(the)c(text/graphics)g(go)q(es)g(at)g(the)g(appropriate)f(angle.)18 +b(The)c(follo)o(wing)d(sho)o(ws)i(a)h(simple)267 1420 y(table)h(angled)g(on)g +(the)g(page.)22 b(T)m(o)15 b(do)g(this)g(correctly)m(,)h(requires)g(that)f(y) +o(ou)g(disco)o(v)o(er)h(the)267 1470 y(size)f(of)e(the)h(table.)676 +1580 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +676 1580 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +676 1580 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 300 lv st end +676 1880 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 45 neg rt Xp1 neg Yp1 neg tr end +689 1880 a + td begin chv /Yp2 exch def /Xp2 exch def gs Xp2 Yp2 tr 1 1 scale end +689 1880 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 300 0 lv st end +1083 1915 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 tr /XposR Xp2 def /YposR Yp2 def Xp2 neg Yp2 neg tr end +689 1880 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 mv Xp2 Yp2 tr 1 1 scale end +766 2326 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 tr Xp2 neg Yp2 neg tr end +766 2326 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs XposR YposR tr 0 neg rt XposR neg YposR neg tr Xp2 Yp2 tr .25 .25 sc 4.17 -4.17 scale end /texgraph save def /showpage {} def +780 2326 a +%%BeginDocument: ieeelogo.ps +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 +%%EndDocument + 794 2326 a + texgraph restore +689 1880 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 mv Xp2 Yp2 tr 1 1 scale end +689 1880 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 300 0 mv 0 150 lv st end +689 2030 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 tr Xp2 neg Yp2 neg tr end +689 2032 627 2 v 689 2093 2 61 v 727 2077 a Fr(PR)o(OJECT)g(|)f(Squidget)h(F) +m(orms)p 1315 2093 V 689 2094 627 2 v 689 2155 2 61 v 712 2139 +a(Milestone)p 907 2155 V 80 w(Due)p 1097 2155 V 80 w(Pro)r(jected)p +1315 2155 V 689 2157 627 2 v 689 2218 2 61 v 783 2202 a(A)p +907 2218 V 115 w(Aug.)k(94)p 1097 2218 V 62 w(Jan.)g(95)p 1315 +2218 V 689 2219 627 2 v 689 2280 2 61 v 784 2264 a(B)p 907 +2280 V 120 w(Dec.)g(94)p 1097 2280 V 63 w(Dec.)h(95)p 1315 +2280 V 689 2282 627 2 v 689 2342 2 61 v 783 2326 a(A)p 907 +2342 V 120 w(Jan.)f(95)p 1097 2342 V 126 w(?)p 1315 2342 V +689 2344 627 2 v 689 1880 a + + td begin chv /Yp2 exch def /Xp2 exch def gr gs Xp2 Yp2 mv Xp2 Yp2 tr 1 1 scale end +689 1880 a + grestore +676 1580 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +676 1580 a + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 300 mv 600 600 lv st end +676 1580 a + grestore +345 2414 a Fo(Draft)i(Version:)f(1991/8/24)p eop +%%Page: 192 14 +bop 100 83 a Fn(192)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)350 214 y Fr(This)13 b(w)o(as)h(done)f(with)g(the)h +(follo)o(wing)d(set)j(of)f(commands.)i(Note)f(that)g(a)f Fp(\\def)f +Fr(w)o(as)267 259 y(used)18 b(to)f(mak)o(e)f(the)i(construction)g(easier)g +(to)f(follo)o(w.)26 b Fp(\\lvec)16 b Fr(w)o(as)h(used)h(rather)g(than)267 +305 y Fp(\\move)13 b Fr(in)g(order)i(to)f(mak)o(e)e(the)i(origin)f(mo)o(v)o +(emen)o(ts)f(visible.)267 351 y Fj(\\def\\samp)o(le{)332 397 +y(\\btg)332 443 y(\\lvec)20 b(h;1)h(v:0)332 490 y(\\incscalef)o(ile)d +(f:ieeelogo)o(.p)o(s)h(sc:.25)41 b(d:0)332 536 y(\\lvec)20 +b(h:0)h(v:.5)332 582 y(\\htext{\\be)o(gin)o(tab)o(le)507 629 +y(\\begintab)o(le)o(for)o(ma)o(t)528 675 y(&\\center)507 721 +y(\\endtable)o(fo)o(rma)o(t)507 767 y(\\-)507 814 y(\\br{\\:|}\\)o(us)o(e{3)o +(})e(PROJECT)g(---)h(Squidget)f(Forms)42 b(\\er{|})507 860 +y(\\-)507 906 y(\\br{\\:|})18 b(Milestone)h(|)i(Due)108 b(|)43 +b(Projected)84 b(\\er{|})507 953 y(\\-)507 999 y(\\br{\\:|})g(A)130 +b(|)22 b(Aug.)e(94)h(|)g(Jan.)f(95)152 b(\\er{|})507 1045 y(\\-)507 +1091 y(\\br{\\:|})84 b(B)130 b(|)22 b(Dec.)e(94)h(|)g(Dec.)f(95)152 +b(\\er{|})507 1138 y(\\-)507 1184 y(\\br{\\:|})84 b(A)130 b(|)22 +b(Jan.)e(95)h(|)g(?)283 b(\\er{|})507 1230 y(\\-)463 1277 y(\\endtable})398 +1323 y(\\etg})267 1421 y(\\medskip)267 1467 y(\\centergr)o(aph)o({)354 +1513 y(\\btg)20 b(\\textref)f(h:C)i(v:C)398 1559 y(\\lvec)f(h:0)g(v:1)h(\045) +g(sets)f(origin)398 1606 y(\\rtext)f(d:45)h(t:{\\sample})398 +1652 y(\\lvec)g(h:2)g(v:2)h(\045)g(sets)f(size)h(of)g(graph)f(...)354 +1698 y(\\etg})267 1745 y(\\medskip)267 1796 y Fr(In)15 b(fact,)f(this)h +(example)e(w)o(as)i(\014rst)g(done)g(as)g(a)f(separate)i(\014le)f(to)f(learn) +h(the)g(appropriate)267 1846 y(dimensions)e(and)g(then)i(inputted)f(in)g(the) +g(appropriate)g(place.)267 1994 y Fn(30.6.1)48 b(Circles,)14 +b(Arcs)i(and)f(Fills)350 2080 y Fr(T)373 2089 y(E)396 2080 +y(X)o(Graph)c(uses)i(the)g(circle,)f(arc,)g(and)g(\014ll)e(commands)g(of)h(P) +o(ostScript)h(to)g(pro)q(duce)267 2130 y(curv)o(es.)19 b(P)o(ostScript)13 +b(uses)h(a)e(p)q(olygonal)e(\014ll)i(on)g(the)h Fn(inside)d +Fr(of)h(the)i(curv)o(e.)19 b(This)12 b(means)267 2180 y(that)i(the)g +(direction)g(of)g(the)g(arcs)h(are)f(imp)q(ortan)o(t.)350 2422 +y Fo(Draft)i(Version:)32 b(1991/8/24)p eop +%%Page: 193 15 +bop 1199 83 a Fm(R)n(otate)n(d)15 b(Gr)n(aphics)g(and)h(T)m(ext)95 +b Fn(193)350 214 y Fr(The)14 b(commands)e(are)-14 b Fk(?)21 +b Fp(\\lcir)g(r:<radius>)267 290 y Fr(This)e(is)f(a)h(circle)g(with)f(the)i +(cen)o(ter)g(at)e(the)i(curren)o(t)g(loaction)e(and)g(a)h(radius)f(of)g(size) +267 340 y Fp(<radius>)12 b Fr(in)i(the)g(curren)o(t)h(dimensions.)225 +453 y Fk(?)21 b Fp(\\arcc)g(r:<radius>)e(sd:<degrees>)h(ed:<degrees>)267 +529 y Fr(This)d(is)g(an)f(\\unstrok)o(ed"arc,)i(ie)f(equiv)n(alen)o(t)g(to)f +(a)h Fp(\\move)f Fr(in)g(the)i(coun)o(ter)g(clo)q(c)o(kwise)267 +579 y(direction)e(from)e Fp(sd:<..>)g Fr(to)i Fp(ed:<..>)p +Fr(.)22 b(If)16 b(this)f(is)h(used)h(in)e(a)h(\014ll,)f(the)h(cen)o(ter)h(of) +f(the)267 629 y(circle)e(is)g(the)h(b)q(eginning)e(of)g(the)i(path.)225 +743 y Fk(?)21 b Fp(\\arcn)g(r:<radius>)e(sd:<degrees>)h(ed:<degrees>)267 +819 y Fr(This)14 b(is)f(the)i(same)e(as)h Fp(\\arcc)f Fr(except)i(that)f(it)f +(is)h(coun)o(ter)h(clo)q(c)o(kwise.)225 932 y Fk(?)21 b Fp(\\pfill)f +(p:<fraction>)267 1008 y Fr(This)11 b(completes)g(a)g(path)g(a)g(\014lls)f +(the)i(path)f(with)g(a)g(shade)g(of)g(gra)o(y)f(with)h Fp(p:0)g +Fr(b)q(eing)g(blac)o(k)267 1058 y(and)j Fp(p:1)f Fr(b)q(eing)h(white.)350 +1109 y(The)g(angles)g(are)g(in)g(the)g(directions)h(sho)o(wn)f(here.)766 +1171 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +766 1171 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +766 1171 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 210 420 mv 210 0 lv st np 210 0 mx 420 neg 0 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 0 210 mv 420 210 lv st np 420 210 mx 0 neg -420 at -48 11 mv 0 0 lv -48 -11 lv cp gs 1 sg fill gr st gr 210 430 mv st end +976 1601 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +946 1630 a Fr(90)988 1615 y Ff(\016)766 1171 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +766 1381 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +670 1396 a Fr(180)733 1381 y Ff(\016)766 1171 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +976 1161 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +935 1161 a Fr(270)998 1146 y Ff(\016)766 1171 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +1186 1381 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1199 1392 a Fr(0)1220 1377 y Ff(\016)1239 1392 y Fk(;)21 b +Fr(360)1335 1377 y Ff(\016)766 1171 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +766 1171 a + grestore +350 1712 a Fr(Some)13 b(shades)i(of)e(gra)o(y)g(are)h(as)g(follo)o(ws:)361 +1775 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +361 1775 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 120 0 mv 270 0 lv 270 150 lv 120 150 lv cp 0 sg fill np 120 150 mv 195 165 mv st end +556 1940 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +546 1967 a Fr(0)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 120 0 mv 240 0 mv 360 0 mv 510 0 lv 510 150 lv 360 150 lv cp .1 sg fill np 360 150 mv 435 165 mv st end +796 1940 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +780 1967 a Fr(.1)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 360 0 mv 480 0 mv 600 0 mv 750 0 lv 750 150 lv 600 150 lv cp .2 sg fill np 600 150 mv 675 165 mv st end +1036 1940 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1020 1967 a Fr(.2)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 600 0 mv 720 0 mv 840 0 mv 990 0 lv 990 150 lv 840 150 lv cp .3 sg fill np 840 150 mv 915 165 mv st end +1276 1940 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1260 1967 a Fr(.3)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 840 0 mv 960 0 mv 1080 0 mv 1230 0 lv 1230 150 lv 1080 150 lv cp .4 sg fill np 1080 150 mv 1155 165 mv st end +1516 1940 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1500 1967 a Fr(.4)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 1080 0 mv 1200 0 mv 0 240 mv 120 240 mv 270 240 lv 270 390 lv 120 390 lv cp .5 sg fill np 120 390 mv 195 405 mv st end +556 2180 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +540 2207 a Fr(.5)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 120 240 mv 240 240 mv 360 240 mv 510 240 lv 510 390 lv 360 390 lv cp .6 sg fill np 360 390 mv 435 405 mv st end +796 2180 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +780 2207 a Fr(.6)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 360 240 mv 480 240 mv 600 240 mv 750 240 lv 750 390 lv 600 390 lv cp .7 sg fill np 600 390 mv 675 405 mv st end +1036 2180 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1020 2207 a Fr(.7)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 600 240 mv 720 240 mv 840 240 mv 990 240 lv 990 390 lv 840 390 lv cp .8 sg fill np 840 390 mv 915 405 mv st end +1276 2180 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1260 2207 a Fr(.8)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 840 240 mv 960 240 mv 1080 240 mv 1230 240 lv 1230 390 lv 1080 390 lv cp .9 sg fill np 1080 390 mv 1155 405 mv st end +1516 2180 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1500 2207 a Fr(.9)361 1775 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +361 1775 a + grestore +350 2414 a Fo(Draft)i(Version:)32 b(1991/8/24)p eop +%%Page: 194 16 +bop 100 83 a Fn(194)95 b Fm(CHAPTER)21 b(30:)h(T)596 92 y(E)619 +83 y(X)o(Gr)n(aph)350 214 y Fr(An)14 b(example)f(of)g(a)g(use)i(of)e(arcs)i +(and)f(\014ll)f(is)h(giv)o(en)f(b)q(elo)o(w.)676 273 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +676 273 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +676 273 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 0 0 600 0 45 arc cp .5 sg fill np 0 0 mv 0 0 300 0 45 arc cp 1 sg fill np 0 0 mv 600 450 mv st end +676 273 a + grestore +350 815 a Fr(This)h(logo)e(is)i(giv)o(en)g(b)o(y)267 860 y +Fj(\\centergr)o(aph)o({\\b)o(tg)572 905 y(\\arcc)20 b(r:2)h(sd:0)f(ed:45)572 +950 y(\\pfill)g(p:.5)572 995 y(\\arcc)g(r:1)h(sd:0)f(ed:45)572 +1040 y(\\pfill)g(p:1)42 b(\045)21 b(fills)f(the)h(inside)e(with)i(white)572 +1085 y(\\move)f(h:2)h(v:1.5)e(\045)j(to)f(leave)f(enough)f(space)550 +1130 y(\\etg})267 1180 y Fr(This)12 b(sho)o(ws)g(that)h(a)e(\014ll)h(of)f +(\\white")h(\(1\))g(is)g(opaque)g(and)g(obliterates)g(the)h(blac)o(k)f(or)g +(gra)o(y)267 1229 y(underneath.)19 b(This)14 b(strategy)h(is)e(necessary)j +(in)e(P)o(ostScript)g(\014lling.)267 1384 y Fl(30.7)56 b(Adv)m(anced)20 +b(T)721 1395 y(E)751 1384 y(X)n(Graphics)g(and)f(Segmen)n(ts)350 +1470 y Fr(The)d(most)e(imp)q(ortan)o(t)g(adv)n(anced)h(feature)h(of)f(T)1133 +1479 y(E)1156 1470 y(X)o(Graph)g(is)g(the)h(graphical)f(seg-)267 +1520 y(men)o(t.)25 b(These)18 b(are)f(delimited)e(b)o(y)h Fp(\\beginsegment)e +(\\endsegment)h Fr(pairs.)26 b(They)17 b(are)267 1569 y(used)e(to)f(create)i +(graphical)e(items)f(that)h(can)h(b)q(e)g(placed)f(at)h(an)o(y)e(sp)q +(eci\014c)j(lo)q(cation)e(in)f(a)267 1619 y(graph.)k(This)11 +b(capabilit)o(y)m(,)f(com)o(bined)g(with)h(T)988 1628 y(E)1011 +1619 y(X's)g(abilit)o(y)f(to)h(create)i(de\014nitions)e(allo)o(ws)267 +1669 y(for)g(the)h(creation)g(of)f(libraries)g(of)g(sym)o(b)q(ols.)16 +b Fn(Segmen)o(ts)11 b(are)i(the)f(only)g(groups)f(that)267 +1719 y(should)j(b)q(e)j(used)f(within)f(a)g Fp(\\btg)f(\\etg)g +Fn(pair.)1086 1704 y Fg(!)1117 1719 y Fr(A)h(simple)f(example)f(of)i(the)g +(use)h(of)267 1769 y(this)i(facilit)o(y)e(w)o(as)i(the)h(de\014nition)e(of)h +(a)f Fp(\\fillbox)g Fr(to)g(create)j(the)e(b)q(o)o(x)g(with)g(the)g(\014ll) +267 1819 y(pattern)d(sho)o(wn)f(in)f(Section)h(30.6.1.)i(The)f(de\014nition)e +(w)o(as)267 1864 y Fj(\\def\\fill)o(box)18 b(#1)j({\\move)f(h:.4)g(v:0)659 +1909 y(\\beginsegm)o(ent)681 1954 y(\\absolutep)o(os)o(iti)o(on)681 +1999 y(\\lvec)g(h:.5)g(v:0)681 2044 y(\\lvec)g(h:.5)g(v:.5)p +267 2089 284 2 v 322 2129 a Fe(!)350 2140 y Fd(This)d(is)g(almost)e(true.)30 +b(Groups)15 b(ma)o(y)h(b)q(e)h(used)e(freely)h(within)g(the)g(argumen)o(t)e +(of)j(either)e(an)350 2180 y Fo(\\??text)p Fd(.)345 2425 y +Fo(Draft)20 b(Version:)f(1991/8/24)p eop +%%Page: 195 17 +bop 1003 83 a Fm(A)n(dvanc)n(e)n(d)16 b(T)1210 92 y(E)1232 +83 y(X)o(Gr)n(aphics)f(and)h(Se)n(gments)96 b Fn(195)681 214 +y Fj(\\lvec)20 b(h:0)g(v:.5)681 262 y(\\pfill)f(p:{#1})681 +309 y(\\move)h(h:.25)g(v:.55)g(\\textref)e(h:C)j(v:T)g(\\htext{#)o(1})637 +357 y(\\endsegment)637 404 y(\\move)f(h:.4)h(v:0)f(\045)i(for)e(symmetry)637 +452 y(})350 557 y Fr(The)13 b(relativ)o(e)g(p)q(osition)f(in)g(outside)i(the) +f(segmen)o(t)f(allo)o(ws)g(the)h(b)q(o)o(xes)h(to)e(b)q(e)i(placed)267 +608 y(b)q(eside)h(eac)o(h)f(other)h(with)e(ev)o(en)i(spacing)f(and)f(no)h +(additional)e(instructions.)350 661 y(Eac)o(h)17 b(segmen)o(t)f(has)h(a)f +Fm(se)n(gment)h(r)n(efer)n(enc)n(e)g(p)n(oint)p Fr(.)26 b(This)16 +b(is)h(the)g(lo)q(cation)f(in)g(the)267 711 y(enclosing)d(segmen)o(t)f(or)h +Fp(\\btg)g(\\etg)p Fr(,)e(whic)o(h)i(is)g(really)g(just)g(a)f(sp)q(ecial)i +(segmen)o(t.)j Fn(Abso-)267 762 y(lute)12 b(p)q(ositions)d +Fr(within)j(a)g(segmen)o(t)g(are)h(actually)e(relativ)o(e)h(to)g(the)h +Fm(se)n(gment)h(r)n(efer)n(enc)n(e)267 813 y(p)n(oint)p Fr(.)k(Relativ)o(e)13 +b(p)q(ositions)h(are)g(relativ)o(e.)k(The)c(three)h(b)q(o)o(xes)g(b)q(elo)o +(w)601 881 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +601 881 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +601 881 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 120 0 mv 270 0 lv 270 150 lv 120 150 lv cp .3 sg fill np 120 150 mv 195 165 mv st end +796 1046 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +780 1072 a Fr(.3)601 881 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +601 881 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 120 0 mv 240 0 mv 360 0 mv 510 0 lv 510 150 lv 360 150 lv cp .5 sg fill np 360 150 mv 435 165 mv st end +1036 1046 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1020 1072 a Fr(.5)601 881 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +601 881 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 360 0 mv 480 0 mv 600 0 mv 750 0 lv 750 150 lv 600 150 lv cp .7 sg fill np 600 150 mv 675 165 mv st end +1276 1046 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1260 1072 a Fr(.7)601 881 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +601 881 a + grestore +267 1147 a Fr(w)o(ere)g(pro)q(duced)g(b)o(y)267 1195 y Fj(\\medskip)289 +1242 y(\\centergr)o(ap)o(h{\\)o(btg)j(\\relative)o(pos)o(iti)o(on)594 +1290 y(\\fillbox)h(.3)594 1338 y(\\fillbox)g(.5)594 1385 y(\\fillbox)g(.7)572 +1433 y(\\etg})267 1480 y(\\medskip)267 1533 y Fr(Note)13 b(that)g(the)h +(space)g(after)f(the)h Fp(#1)e Fr(in)h(the)g(de\014nition)g(for)f +Fp(\\fillbox)f Fr(means)i(that)g(the)267 1584 y(n)o(um)o(b)q(ers)j(are)h +(delimited)e(b)o(y)i(implicit)d(space)j(at)g(the)g(end)g(of)f(the)h(line.)26 +b(If)16 b(this)h(space)267 1634 y(had)g(b)q(een)i(left)e(out,)h(only)f(the)h +(\014rst)h(digit)d(in)h(eac)o(h)h(of)f(the)h(pattern)h(n)o(um)o(b)q(ers)e(w)o +(ould)267 1685 y(ha)o(v)o(e)e(b)q(een)i(read)f(and)g(the)g(other)g(w)o(ould)f +(ha)o(v)o(e)h(b)q(een)h(prin)o(ted)f(at)f(some)g(o)q(dd)h(place)f(on)267 +1736 y(the)f(page.)267 1891 y Fn(30.7.1)48 b(Segmen)o(t)13 +b(Scaling)350 1978 y Fr(There)j(are)f(sev)o(eral)h(scaling)e(parameters)h +(that)g(can)h(b)q(e)f(used)h(with)f(segmen)o(ts.)21 b(In)267 +2028 y(addition)13 b(to)i(the)g Fp(\\unitscale)e Fr(there)j(is)e(a)h +Fp(\\segmentscale)p Fr(.)j(Roughly)13 b(sp)q(eaking)i(the)267 +2079 y Fp(\\segmentscale)i Fr(is)j(used)h(to)f(c)o(hange)g(the)h(scale)f(of)f +(the)i(presen)o(t)h(and)d(all)g(enclosed)267 2130 y(segmen)o(ts)h(while)f +(the)i Fp(\\unitscale)d Fr(is)i(used)h(to)f(set)h(the)f(nominal)d(size)k(of)f +(segmen)o(t)267 2180 y(ob)r(ject.)e(The)10 b(ma)r(jor)e(di\013erence)k(b)q +(et)o(w)o(een)g(the)f(t)o(w)o(o)e(is)h(that)g(segmen)o(t)g(scales)h(accum)o +(ulate)350 2422 y Fo(Draft)16 b(Version:)32 b(1991/8/24)p eop +%%Page: 196 18 +bop 100 83 a Fn(196)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fr(while)g(unitscales)h(do)f(not.)38 +b(An)20 b(example)f(is)i(obtained)f(using)g(the)h Fp(\\fillbox)e +Fr(in)g(a)267 266 y(segmen)o(t.)f(The)c(follo)o(wing)d(three)k(b)q(o)o(xes)g +(illustrate)e(the)i(e\013ect.)669 346 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +669 346 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +669 346 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 72 0 mv 162 0 lv 162 90 lv 72 90 lv cp .5 sg fill np 72 90 mv 117 99 mv st end +786 445 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +770 472 a Fr(.5)669 346 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +669 346 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 72 0 mv 72 0 mv 144 0 mv 228 0 mv 333 0 lv 333 105 lv 228 105 lv cp .7 sg fill np 228 105 mv 280 115 mv st end +949 461 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +933 488 a Fr(.7)669 346 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +669 346 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 228 0 mv 228 0 mv 312 0 mv 446 0 mv 614 0 lv 614 168 lv 446 168 lv cp .9 sg fill np 446 168 mv 530 184 mv st end +1199 530 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr Xp1 neg Yp1 neg tr end +1183 557 a Fr(.9)669 346 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +669 346 a + grestore +350 651 a Fr(This)20 b(example)f(should)h(b)q(e)h(studied)g(carefully)m(.)37 +b(The)20 b(actual)g(commands)e(that)267 697 y(pro)q(duced)d(it)f(are)267 +750 y Fj(\\centergr)o(aph)o({\\b)o(tg)k(\\unitscale)g(.3)j(\045)h(changes)d +(units)594 803 y(\\segments)o(cal)o(e)g(2)855 855 y(\045)j(doubles)d(scale)h +(of)h(all)f(enclosed)f(segments)855 908 y(\045)j(actual)d(scale)h(is)h +(.3*2=.6)594 961 y(\\fillbox)e(.5)594 1014 y(\\move)h(h:.8)g(v:0)42 +b(\045)22 b(moves)e(to)h(right)f(beyond)f(box)594 1066 y(\\beginseg)o(men)o +(t)616 1119 y(\\unitscal)o(e)g(.5)i(\045)g(now)g(unit)f(scale)g(is)h(.5)616 +1172 y(\\segments)o(ca)o(le)d(.7)855 1224 y(\045)k(reduces)d(scale)h(by)h(.5) +g(--)g(actual)e(scale)h(is)855 1277 y(\045)i(.5*2*.7=.)o(7)616 +1330 y(\\fillbox)c(.7)616 1383 y(\\move)h(h:.8)i(v:0)616 1435 +y(\\beginseg)o(me)o(nt)637 1488 y(\\unitscale)d(1)637 1541 +y(\\segmentsca)o(le)g(.8)43 b(\045)21 b(actual)f(scale)g(is)h(1*2*.7*.8)o +(=1.)o(12)637 1593 y(\\fillbox)e(.9)616 1646 y(\\endsegme)o(nt)659 +1699 y(\045)j(actual)d(scale)h(is)h(back)f(to)h(.5*2*.7=.7)572 +1752 y(\\endsegmen)o(t)659 1804 y(\045)h(actual)d(scale)h(is)h(back)f(to)h +(.3*2=.6)550 1857 y(\\etg})267 1915 y Fr(Note)11 b(ho)o(w)e(the)i(segmen)o(t) +f(scale)h(accum)o(ulates)e(while)h(the)h(unitscale)g(do)q(es)f(not.)17 +b(Note)11 b(also)267 1967 y(that)j(the)g(scale)h(rev)o(erts)g(to)f(that)g(of) +f(the)i(enclosing)f(segmen)o(t)f(after)h(an)g Fp(\\endsegment)p +Fr(.)350 2025 y(It)19 b(is)f(p)q(ossible)h(to)g(prev)o(en)o(t)g(a)g(segmen)o +(t)f(from)f(b)q(eing)i(a\013ected)h(b)o(y)e(the)i(external)267 +2077 y(segmen)o(t)c(scales)i(b)o(y)f(inserting)g(the)g(command)d +Fp(\\absolutescale)p Fr(.)24 b(This)17 b(is)g(used)h(for)267 +2128 y(sym)o(b)q(ols)12 b(that)i(y)o(ou)g(wish)g(to)g(ha)o(v)o(e)f(the)i +(same)e(size)i(no)e(matter)h(the)g(actual)g(scale)g(of)g(the)267 +2180 y(graph.)350 2422 y Fo(Draft)i(Version:)32 b(1991/8/24)p +eop +%%Page: 197 19 +bop 1003 83 a Fm(A)n(dvanc)n(e)n(d)16 b(T)1210 92 y(E)1232 +83 y(X)o(Gr)n(aphics)f(and)h(Se)n(gments)96 b Fn(197)267 214 +y(30.7.2)48 b(Segmen)o(t)13 b(Command)i(Summaries)350 302 y +Fr(The)c(follo)o(wing)c(is)j(a)g(list)f(of)h(some)f(of)h(the)g(imp)q(ortan)o +(t)f(p)q(oin)o(ts)h(concerning)h(segmen)o(ts:)225 353 y Fk(?)21 +b Fp(\\beginsegment)267 442 y Fr(This)15 b(b)q(egins)g(a)g(graphical)f +(segmen)o(t)h(and)g(a)g(group.)22 b(All)14 b(lo)q(cations)g(within)h(a)g +(segmen)o(t)267 494 y(are)f(relativ)o(e)g(to)g(the)g(origin)f(of)g(the)i +(segmen)o(t.)225 639 y Fk(?)21 b Fp(\\endsegment)267 728 y +Fr(This)15 b(terminates)g(a)g(segmen)o(t)f(and)h(the)h(group.)22 +b(The)15 b(curren)o(t)i(lo)q(cation)d(up)q(on)h(lea)o(ving)267 +780 y(a)f(segmen)o(t)f(is)h(the)g(segmen)o(t)g(origin.)225 +924 y Fk(?)21 b Fp(\\unitscale)f(<scale>)267 1013 y Fr(The)15 +b Fp(<scale>)f Fr(m)o(ultiplies)e(the)k(presen)o(t)g(segmen)o(t)f(and)g(all)e +(enclosed)j(segmen)o(ts)f(unless)267 1065 y(they)f(ha)o(v)o(e)g(their)h(o)o +(wn)e Fp(\\unitscale)p Fr(.)j(A)e Fp(\\unitscale)e Fr(ma)o(y)g(b)q(e)j(c)o +(hanged)f(at)g(an)o(y)g(time)267 1117 y(within)f(a)h(segmen)o(t.)225 +1261 y Fk(?)21 b Fp(\\segmentscale)e(<scale>)267 1350 y Fr(The)j +Fp(<scale>)d Fr(a\013ects)k(the)e(presen)o(t)i(segmen)o(t)e(and)g(all)f +(enclosed)i(segmen)o(ts)f(unless)267 1402 y(that)e(segmen)o(t)g(is)g +(protected)i(b)o(y)e(an)f Fp(\\absolutescale)p Fr(.)31 b(Unlik)o(e)19 +b Fp(\\unitscale)p Fr(,)f(the)267 1454 y Fp(\\segmentscale)c +Fr(accum)o(ulates)i(b)o(y)g(m)o(ultiplying)d(the)k(curren)o(t)i(scale)e(v)n +(alue.)25 b(The)17 b(ac-)267 1506 y(tual)g(scale)g(used)h(for)f(in)o +(terpreting)h(p)q(osition)e(n)o(um)o(b)q(ers)h(is)g(the)h(pro)q(duct)g(of)e +(all)g(of)h(the)267 1558 y(enclosing)d(segmen)o(tscales)g(times)f(the)i +(presen)o(tly)g(activ)o(e)e(unitscale.)225 1702 y Fk(?)21 b +Fp(\\absoluteposition)267 1791 y Fr(All)14 b(co)q(ordinates)i(are)g(to)f(b)q +(e)h(in)o(terpreted)h(with)e(resp)q(ect)j(to)d(the)h(curren)o(t)h(origin.)k +(This)267 1843 y(will)12 b(either)j(b)q(e)g(the)f(graph)g(origin)f(or)g(the)i +(origin)e(of)g(the)h(curren)o(t)i(segmen)o(t.)225 1988 y Fk(?)21 +b Fp(\\relativeposition)267 2077 y Fr(Co)q(ordinate)c(p)q(ositions)f(are)h +(in)o(terpreted)i(relativ)o(e)e(to)f(the)i(previous)f(p)q(osition.)26 +b(If)17 b(the)267 2128 y(previous)c(command)d(w)o(as)j(the)g(dra)o(wing)f(of) +g(an)h(arc)g(or)g(circle,)g(the)g(previous)g(p)q(osition)f(is)267 +2180 y(the)i(cen)o(ter)i(of)d(the)i(circle.)350 2414 y Fo(Draft)h(Version:)32 +b(1991/8/24)p eop +%%Page: 198 20 +bop 100 83 a Fn(198)95 b Fm(CHAPTER)21 b(30:)h(T)596 92 y(E)619 +83 y(X)o(Gr)n(aph)267 214 y Fl(30.8)56 b(Slide)21 b(Making)350 +300 y Fr(A)15 b(sp)q(ecialized)h(set)g(of)e(commands)f(along)h(with)g +(appropriate)h(templates)g(exist)g(to)267 350 y(create)j(a)f(transparency)m +(.)28 b(All)16 b(slides)h(are)g(\\horizon)o(tal".)25 b Fp(\\fullform)15 +b Fr(slides)i(tak)o(e)g(up)267 400 y(an)c(en)o(tire)g(8.5)f(b)o(y)h(11)g(in.) +k(page)c(and)g(are)g(in)o(tended)h(for)e(displa)o(y)m(.)k Fp(\\textform)c +Fr(slides)h(are)267 451 y(reduced)h(for)e(text.)18 b(A)12 b +Fp(\\comment)18 b(<text>)h(//)12 b Fr(command)d(is)j(giv)o(en)g(that)g(is)g +(suppressed)267 501 y(when)i(the)h Fp(\\fullform)d Fr(is)h(used)i(but)f(is)g +(prin)o(ted)g(when)h Fp(\\textform)d Fr(is)h(used.)19 b(The)c(text)267 +551 y(in)j(the)h(slides)g(uses)h(a)e(general)h(scaled)g(fon)o(t)f(family)e +(in)i(the)h(\014le)f Fp(spfont.tex)p Fr(.)30 b(This)267 601 +y(family)10 b(is)i(basically)g(a)g(scaled)i(set)f(of)f Fp(\\tenpoint)f +Fr(fon)o(ts.)18 b(An)13 b(example)e(is)i(giv)o(en)f(b)q(elo)o(w:)350 +652 y(There)f(are)f(t)o(w)o(o)g(basic)g(forms,)f(the)h(INRS)g(form)e(and)i(a) +g(General)f(form.)15 b(An)c(example)267 702 y(of)i(the)i Fp(\\inrsform)d +Fr(is)h(giv)o(en)h(b)o(y)436 817 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +436 817 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +470 886 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +697 961 a Fc(HO)n(W)22 b(TO)g(MAKE)i(SLIDES)f(WITH)1061 1036 +y(INRST)1273 1035 y(^)1268 1049 y(E)1303 1036 y(X)563 1142 +y(Prelimi)o(narie)o(s)618 1247 y Fb(\017)29 b Fl(Input)18 b(the)i(macro)d +(pac)n(k)m(age)j(with)g Fa(\\input)672 1309 y(inrssl.tex)p +Fl(.)618 1414 y Fb(\016)29 b Fl(Decide)20 b(whether)g Fa(\\fullform)g +Fl(or)f Fa(\\textform)p Fl(.)618 1518 y Fb(\003)29 b Fl(Decide)20 +b(whether)g Fa(\\inrsform)g Fl(or)f Fa(\\genform)p Fl(.)563 +1645 y Fc(Making)k(it.)618 1750 y Fb(\017)29 b Fl(Use)19 b +Fa(\\hslide)27 b(<title>//)g(<body>)h(//)p Fl(.)618 1855 y +Fb(\017)h Fl(Use)19 b(\\//")f(as)h(the)g(delimiter.)436 817 +y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +436 817 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 34 69 mv 0 0 mv 0 sl 24 0 mv 41 0 lv 32 34 lv 16 34 lv cp 0 sg fill np 16 34 mv st end +436 817 a + + td begin 0 sl [] 0 sd 1 slc 1 slj np 24 0 mv 44 0 mv 61 0 lv 52 34 lv 36 34 lv cp 0 sg fill np 36 34 mv st end +436 817 a + + td begin 0 sl [] 0 sd 1 slc 1 slj np 44 0 mv 64 0 mv 81 0 lv 68 52 lv 51 52 lv cp 0 sg fill np 51 52 mv st end +1516 829 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +845 846 a Fl(INRS-T)o(\023)-27 b(el)o(\023)g(ecomm)m(unications)436 +817 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +436 817 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 1080 12 mv 0 48 mv 6 sl 1080 48 lv 1080 837 lv 0 48 mv 0 837 lv 18 837 mv st np 18 837 18 90 180 arc st np 18 837 mv 18 855 mv 1062 855 lv 1062 837 mv st np 1062 837 18 0 90 arc st np 1062 837 mv st end +436 817 a + grestore +267 1824 a Fp(\\input)20 b(inrssl)h(\045)h(brings)e(in)i(the)f(slide)f +(macros)267 1875 y(\\textform)g(\045)h(sets)g(textform)g(and)g(size)267 +1926 y(\\formscale)f(.7)h(\045)h(further)e(reduces)g(the)h(size)g(of)h(slide) +f(by)g(.7)267 1977 y(\\beginmidinsert)267 2028 y(\\inrsform)f(\045)h(sets)g +(the)h(inrs)f(form)267 2079 y(\\hslide)f(HOW)h(TO)h(MAKE)f(SLIDES)f(WITH)h +(\\intex//)267 2129 y(\\hd{Preliminaries)o(})267 2180 y(\\bl)354 +2417 y Fo(Draft)f(Version:)f(1991/8/24)p eop +%%Page: 199 21 +bop 1443 83 a Fm(Slide)22 b(Making)96 b Fn(199)267 214 y Fp(\\lb)21 +b(Input)g(the)g(macro)g(package)f(with)h({\\tt)g(\\1input)f(inrssl.tex}.)267 +266 y(\\lc)h(Decide)g(whether)f({\\tt)h(\\1fullform})e(or)j({\\tt)f +(\\1textform}.)267 317 y(\\last)g(Decide)f(whether)h({\\tt)g(\\1inrsform})e +(or)i({\\tt)g(\\1genform}.)267 369 y(\\el)267 421 y(\\hd{Making)f(it.})267 +472 y(\\bl)267 524 y(\\lb)h(Use)g({\\tt)g(\\1hslide)f(<title>//)g(<body>)h +(//}.)267 575 y(\\lb)g(Use)g({``//''})f(as)i(the)f(delimiter.)267 +627 y(\\el)267 679 y(//)267 730 y(\\endmidinsert)436 891 y + + /td 50 dict def td begin /mv {moveto} def /lv {lineto} def /st {stroke} def /np {newpath} def /sl {setlinewidth} def /sd {setdash} def /rt {rotate} def /gs {gsave} def /gr {grestore} def /tr {translate} def /cp {closepath} def /sg {setgray} def /chv {currentpoint} def /cv {curveto} def /slc {setlinecap} def /slj {setlinejoin} def /sc {scale} def /at {neg atan rt} def /mx {mv gs chv tr} def end +436 891 a + td begin chv /Yp1 exch def /Xp1 exch def gs Xp1 Yp1 tr 1 1 scale end +470 960 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +974 1036 a Fc(This)i(is)f(the)g(title)1061 1137 y(Split)f(here)563 +1417 y(This)h(is)g(an)h(in)n(ternal)f(header)618 1522 y Fb(\017)29 +b Fl(A)19 b(listitem)i(starting)e(with)i(a)e(bullet.)618 1626 +y Fb(\016)29 b Fl(A)19 b(listitem)i(starting)e(with)i(a)e(circle.)618 +1731 y Fb(\003)29 b Fl(A)19 b(listitem)i(starting)e(with)i(an)d(asterisk.)436 +891 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +436 909 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +436 919 a Fn(General)13 b(Engineering)g(Inc.)436 891 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +436 909 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +436 919 a Fn(General)g(Engineering)g(Inc.)436 891 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +976 1771 a + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 tr 0 neg rt .7 .7 sc Xp1 neg Yp1 neg tr end +532 1781 a Fn(An)j(Imp)q(ortan)o(t)e(Presen)o(tati)o(on)f({)i(Jan.)21 +b(1,)16 b(2000)436 891 y + + td begin chv /Yp1 exch def /Xp1 exch def gr gs Xp1 Yp1 mv Xp1 Yp1 tr 1 1 scale end +436 891 a + + td begin 4 sl [] 0 sd 1 slc 1 slj np 0 0 mv 34 69 mv 0 0 mv 0 18 mv 0 18 mv 540 880 mv 0 48 mv 6 sl 1080 48 lv 1080 837 lv 0 48 mv 0 837 lv 18 837 mv st np 18 837 18 90 180 arc st np 18 837 mv 18 855 mv 1062 855 lv 1062 837 mv st np 1062 837 18 0 90 arc st np 1062 837 mv st end +436 891 a + grestore +350 1871 a Fr(It)j(is)f(p)q(ossible)h(to)g(add)g(a)f(commen)o(t)f(to)h(the)i +(b)q(ottom)d(of)h(the)i(slide)e(whic)o(h)h(only)267 1921 y(sho)o(ws)13 +b(up)f(when)i(the)f(slide)f(is)h(prin)o(ted)g(in)f(textform.)k(A)d(commen)o +(t)d(is)j(terminated)f(with)267 1971 y(a)i(//)350 2077 y(This)g(second)h +(slide)f(w)o(as)f(giv)o(en)h(b)o(y)267 2129 y Fp(\\topdata)20 +b(=)i({General)e(Engineering)f(Inc.})267 2180 y(\\botdata)h(=)i({An)f +(Important)f(Presentation})354 2423 y Fo(Draft)g(Version:)f(1991/8/24)p +eop +%%Page: 200 22 +bop 100 83 a Fn(200)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fp(\\slidedate)g(=)h({Jan.)g(1,)g(2000}) +267 266 y(\\genform)f(\045)i(the)f(general)f(form)h(that)g(uses)g(these)g +(token)g(strings)267 369 y(\\hslide)f(This)h(is)h(the)f(title)g(\\cr)g(Split) +f(here)h(//)267 421 y(\\hd{This)f(is)h(an)h(internal)e(header})267 +472 y(\\bl)267 524 y(\\lb)h(A)h(listitem)42 b(starting)20 b(with)h(a)g +(bullet.)267 576 y(\\lc)g(A)h(listitem)e(starting)g(with)h(a)h(circle.)267 +628 y(\\last)f(A)g(listitem)f(starting)h(with)g(an)g(asterisk.)267 +679 y(\\el)267 731 y(//)43 b(\045)22 b(the)f(//)g(terminates)f(a)i(slide)267 +834 y(\\comment)267 886 y(It)f(is)h(possible)e(to)h(add)g(a)h(comment)e(to)i +(the)f(bottom)f(of)i(the)f(slide)g(which)267 938 y(only)g(shows)g(up)g(when)g +(the)g(slide)g(is)g(printed)g(in)g(textform.)f(A)i(comment)e(is)267 +990 y(terminated)g(with)h(a)g({//})g(//)350 1093 y Fr(Arbitrary)e(graphics)g +(ma)o(y)f(b)q(e)h(included)g(in)g(a)g(slide)g(using)f(normal)f(T)1515 +1102 y(E)1539 1093 y(X)o(Graph)267 1143 y(commands.)e(Ho)o(w)o(ev)o(er,)d +(the)h(included)f(graphics)g(ma)o(y)e(not)h(scale)i(correctly)g(when)f(mo)o +(v-)267 1194 y(ing)j(from)g Fp(\\fullform)f Fr(to)i Fp(\\textform)p +Fr(.)22 b(Under)17 b(these)h(conditions)d(is)h(is)g(necessary)i(to)267 +1244 y(include)11 b(the)h(test)g Fp(\\iftextform)17 b(<....>)h(\\else)g +(<...>)g(\\fi)11 b Fr(to)g(switc)o(h)g(b)q(et)o(w)o(een)i(the)267 +1295 y(mo)q(des.)350 1346 y(The)h(basic)g(commands)e(in)h(order)i(to)f(use)g +(the)h(slide)f(pac)o(k)n(age)f(are)h(as)g(follo)o(ws:)225 1411 +y Fk(?)21 b Fp(\\input)f(inrssl)267 1488 y Fr(This)14 b(command)d(will)h +(bring)i(in)f(the)i(INRST)981 1497 y(E)1004 1488 y(X)e(slide)h(macro)f(pac)o +(k)n(age.)225 1608 y Fk(?)21 b Fp(\\fullform)267 1685 y Fr(This)d(c)o(ho)q +(oses)h(the)g(full)d(size)j(form)e(in)o(tended)h(for)g(creating)g(the)h +(transparency)m(.)31 b(An)o(y)267 1736 y Fp(\\comment)12 b +Fr(is)i(suppressed.)225 1855 y Fk(?)21 b Fp(\\textform)267 +1933 y Fr(This)11 b(c)o(ho)q(oses)i(the)f(text)g(size)g(of)f(the)h(slide)f +(and)g(do)q(es)i(not)e(suppress)i(the)f Fp(\\comment)e Fr(text.)225 +2052 y Fk(?)21 b Fp(\\formscale)f(<scale>)267 2130 y Fr(The)15 +b(en)o(tire)h(slide,)e(text,)h(in)o(ternal)f(graphics,)h(and)g(b)q(order,)g +(is)g(scaled)g(b)o(y)f(the)i Fp(<scale>)267 2180 y Fr(factor.)i(This)c(is)f +(done)i(b)o(y)e(directly)h(b)o(y)g(P)o(ostScript.)350 2422 +y Fo(Draft)i(Version:)32 b(1991/8/24)p eop +%%Page: 201 23 +bop 1450 83 a Fm(Slide)15 b(Making)96 b Fn(201)225 214 y Fk(?)21 +b Fp(\\hslide)c(<title>)g(//)h(<text>)g(//)10 b Fr(This)g(is)g(the)h(basic)f +(command)e(for)i(making)e(a)i(slide.)267 264 y(The)k(title)g(is)g(terminated) +f(with)h(a)g(//)f(and)h(the)g(slide)g(b)q(o)q(dy)g(is)g(also)f(terminated)h +(with)f(a)267 314 y(//.)225 429 y Fk(?)21 b Fp(\\comment)g(<text>)h(//)16 +b Fr(This)g(is)g(a)g(commen)o(t)e(text)j(whic)o(h)f(is)g(prin)o(ted)g(in)g +Fp(\\textform)267 479 y Fr(but)e(suppressed)i(in)e Fp(\\fullform)p +Fr(.)225 594 y Fk(?)21 b Fp(\\inrsform)11 b Fr(This)i(will)f(giv)o(e)h(the)h +(standard)f(INRS-)l(T)o(\023)-20 b(el)o(\023)g(ecomm)o(unications)10 +b(format)i(with)267 644 y(its)k(logo)f(on)h(the)h(top)f(and)g(nothing)f(on)h +(the)h(b)q(ottom.)24 b(T)m(ext)16 b(on)g(the)h(b)q(ottom)d(ma)o(y)h(b)q(e)267 +695 y(added)f(using)g Fp(\\botdata)e Fr(and)i Fp(\\slidedate)p +Fr(.)225 810 y Fk(?)21 b Fp(\\genform)267 886 y Fr(This)14 +b(is)f(a)h(completely)f(general)h(form)e(where)j(only)e(the)i(b)q(order)f(is) +g(set.)225 1000 y Fk(?)21 b Fp(\\topdata)e(={<text>})10 b Fr(This)j(is)f +(prin)o(ted)h(in)f(the)h Fp(\\borderfont)e Fr(whic)o(h)h(is)g(the)h(same)f +(as)267 1051 y(the)h(curren)o(t)i(slide)d(b)q(o)q(dy)h(fon)o(t.)18 +b(It)12 b(is)h(prin)o(ted)g(on)g(the)h(top)e(line)h(ab)q(o)o(v)o(e)f(the)i(b) +q(order)g(with)267 1101 y(a)g(curren)o(t)h(p)q(osition)e(at)h(the)g(left)g +(hand)g(corner.)225 1216 y Fk(?)21 b Fp(\\botdata)f(=)i({<b-text>})225 +1331 y Fk(?)f Fp(\\slidedate)f(=)h({<s-date>})267 1407 y Fr(These)14 +b(t)o(w)o(o)e(tok)o(en)h(strings)g(are)g(prin)o(ted)g(on)f(the)h(b)q(ottom)f +(line)g(cen)o(tered)i(and)f(separated)267 1457 y(b)o(y)h(a)f({,)g(ie)h(as)g +Fp(<b-text>)20 b(-)i(<s-date>)p Fr(.)225 1572 y Fk(?)f Fp(\\iftextform)e +(<...>)i(\\else)g(<...>)g(\\fi)267 1648 y Fr(This)11 b(is)g(a)g(switc)o(h)h +(that)g(allo)o(ws)e(for)h(di\013eren)o(t)h(actions)f(b)q(et)o(w)o(een)i +(fullform)c(and)i(textform.)267 1698 y Fp(\\textform)h Fr(is)i(.578=1/1.728)d +(the)j(size)h(of)e Fp(\\fullform)p Fr(.)225 1813 y Fk(?)21 +b Fp(\\lb)g(\\lc)g(\\last)267 1889 y Fr(These)d(are)f(three)h(short)f(forms)f +(for)g(use)i(in)e(listitems)f(starting)i(with)f Fq(\017)p Fr(,)h +Fq(\016)p Fr(,)g(and)f Fp(*)h Fr(re-)267 1939 y(sp)q(ectiv)o(ely)m(.)225 +2054 y Fk(?)k Fp(\\hd{<text>})267 2130 y Fr(This)13 b(giv)o(es)g(a)g +(\\header")h(inside)g(a)f(slide.)k(It)d(is)f(equiv)n(alen)o(t)g(to)g(a)g +Fp(\\dssshead)e Fr(in)i(normal)267 2180 y(text.)350 2414 y +Fo(Draft)j(Version:)32 b(1991/8/24)p eop +%%Page: 202 24 +bop 100 83 a Fn(202)95 b Fm(CHAPTER)14 b(30:)20 b(T)587 92 +y(E)609 83 y(X)o(Gr)n(aph)267 214 y Fl(30.9)56 b(Some)18 b(Additional)j +(Command)16 b(F)-5 b(orms)17 b({)i(T)1391 225 y(E)1422 214 +y(X)n(Graph)225 312 y Fk(?)i Fp(\\begintexgraph)e(\\btg)267 +387 y Fr(This)13 b(b)q(egins)h(T)512 396 y(E)535 387 y(X)o(Graph.)k(It)13 +b(will)f(bring)h(in)g(the)h(T)1083 396 y(E)1106 387 y(X)o(Graph)g(macros)e +(the)i(\014rst)g(time)f(it)267 437 y(is)h(called.)j(It)d(starts)h(a)f(group)g +(and)f(a)h Fp(\\vbox)p Fr(.)225 549 y Fk(?)21 b Fp(\\endtexgraph)e(\\etg)267 +624 y Fr(Finishes)14 b(T)451 633 y(E)474 624 y(X)o(Graph.)k(It)c(terminates)g +(the)g(group)g(started)h(b)o(y)f Fp(\\btg)p Fr(.)225 737 y +Fk(?)21 b Fp(\\graphdim)f(<units>)267 812 y Fr(This)14 b(sets)i(the)g +(default)e(units)g(of)g(T)832 821 y(E)856 812 y(X)o(Graph.)19 +b(An)o(y)c(v)n(alid)e(T)1247 821 y(E)1270 812 y(X)i Fp(<unit>)e +Fr(is)h(v)n(alid)f(suc)o(h)267 862 y(as)h Fp(in,)21 b(cm,)g(pt,)13 +b Fr(or)h Fp(bp)p Fr(.)k(The)c(curren)o(t)i(default)d(is)h +Fp(in)p Fr(.)225 974 y Fk(?)21 b Fp(\\hgraphsize)267 1049 y +Fr(This)15 b(maxim)n(um)10 b(horizon)o(tal)k(excursion)i(of)f(the)g(graph)g +(as)g(computed)f(b)o(y)h(T)1504 1058 y(E)1527 1049 y(X)o(Graph.)267 +1099 y(It)f(is)g(a)f(dimension.)225 1211 y Fk(?)21 b Fp(\\hgraphskip)267 +1286 y Fr(This)14 b(actually)f Fp(\\hskip)20 b(\\hgraphsize)p +Fr(.)225 1399 y Fk(?)h Fp(\\hpix)g(<number>/<unit>)267 1474 +y Fr(This)14 b(is)f(the)i(horizon)o(tal)e(resolution)h(in)f(pixels/unit.)18 +b(The)c(default)f(is)h Fp(300/in)p Fr(.)225 1586 y Fk(?)21 +b Fp(\\vgraphsize)267 1661 y Fr(This)14 b(maxim)o(um)c(v)o(ertical)k +(excursion)h(of)f(the)h(graph)g(as)f(computed)g(b)o(y)g(T)1452 +1670 y(E)1476 1661 y(X)o(Graph.)19 b(It)267 1711 y(is)14 b(a)f(dimension.)225 +1823 y Fk(?)21 b Fp(\\vgraphskip)267 1898 y Fr(This)14 b(actually)f +Fp(\\vskip)20 b(\\vgraphsize)p Fr(.)225 2010 y Fk(?)h Fp(\\vpix)g +(<number>/<unit>)267 2085 y Fr(This)14 b(is)f(the)i(v)o(ertical)f(resolution) +f(in)h(pixels/unit.)j(The)e(default)e(is)h Fp(300/in)p Fr(.)350 +2414 y Fo(Draft)i(Version:)32 b(1991/8/24)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF |