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/inrsinputs |
Initial commit
Diffstat (limited to 'macros/inrstex/inrsinputs')
20 files changed, 2863 insertions, 0 deletions
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 |