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 /usergrps/uktug/baskervi/8_3 |
Initial commit
Diffstat (limited to 'usergrps/uktug/baskervi/8_3')
29 files changed, 9663 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/8_3/bask8_3.aux b/usergrps/uktug/baskervi/8_3/bask8_3.aux new file mode 100644 index 0000000000..92297ec121 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bask8_3.aux @@ -0,0 +1,113 @@ +\relax +\bibstyle{plain} +\ifx\hyper@anchor\@undefined +\global \let \oldcontentsline\contentsline +\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global \let \oldnewlabel\newlabel +\gdef \newlabel#1#2{\newlabelxx{#1}#2} +\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\let \contentsline\oldcontentsline +\let \newlabel\oldnewlabel} +\else +\global \let \hyper@last\relax +\fi + +\@writefile{toc}{\contentsline {newarticle}{\numberline {I}Snippets}{3}{newarticle.2}} +\@writefile{toc}{\contentsline {section}{\numberline {1}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ consultant sought}{3}{section.3}} +\@writefile{toc}{\contentsline {section}{\numberline {2}Committee members sought: a message from Philip Taylor}{3}{section.4}} +\@writefile{toc}{\contentsline {newarticle}{\numberline {II}Introduction to \textsl {\LaTeX \ for the rest of us}}{4}{newarticle.5}} +\citation{DEK84} +\citation{DEK79} +\citation{DEK68} +\citation{DEK84} +\citation{BR80} +\citation{MC96} +\citation{LL85} +\@writefile{toc}{{\footnotesize \dingline {167}}} +\@writefile{toc}{{\leftline {\textbf {\LaTeX \ for the rest of us}}}} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {1\hfil }First steps}{5}{chapter.6}} +\@writefile{toc}{\contentsline {section}{\numberline {1}A brief history}{5}{section.7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m }{5}{subsection.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}\textsf {Scribe}}{5}{subsection.9}} +\citation{DEK89} +\citation{FM90} +\citation{FMCR92} +\citation{DCCRFM98} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}\LaTeX }{6}{subsection.10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}\LaTeXe }{6}{subsection.11}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}A proviso}{6}{subsection.12}} +\@writefile{toc}{\contentsline {section}{\numberline {2}A note on pronunciation}{7}{section.13}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Let's try it}{7}{section.17}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{8}{figure.18}} +\newlabel{ishmael}{{1}{8}{Let's try it\relax }{figure.18}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Elementary typography}{9}{section.19}} +\citation{LL85} +\citation{LL94} +\citation{MGFMAS94} +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Length and meaning of horizontal lines}}{10}{table.20}} +\newlabel{dashit}{{1}{10}{Elementary typography\relax }{table.20}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5}In the beginning}{10}{section.21}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Classes of style, flair and panache}{10}{section.22}} +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Some of the default range of classes and their options}}{11}{table.25}} +\newlabel{range}{{2}{11}{Classes of style, flair and panache\relax }{table.25}{}} +\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces The range of page size options}}{11}{table.26}} +\newlabel{size}{{3}{11}{Classes of style, flair and panache\relax }{table.26}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7}More information}{12}{section.28}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Some back-tracking}{12}{section.30}} +\newlabel{commands}{{8}{12}{Some back-tracking\relax }{section.30}{}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Trying to correct mistakes}{13}{section.32}} +\@writefile{toc}{\contentsline {section}{\numberline {10}Hints}{14}{section.33}} +\citation{RM80} +\citation{PL92} +\citation{DEK-cm} +\citation{DEK86} +\citation{DEK-cm} +\citation{FM89} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {2\hfil }More things you should know}{15}{chapter.34}} +\@writefile{toc}{\contentsline {section}{\numberline {11}Changing font}{15}{section.35}} +\@writefile{toc}{\contentsline {section}{\numberline {12}Some history (again)}{15}{section.37}} +\@writefile{toc}{\contentsline {section}{\numberline {13}What fonts do we have?}{16}{section.38}} +\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces font styles readily available}}{17}{table.42}} +\newlabel{tfonts}{{4}{17}{What fonts do we have?\relax }{table.42}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Carrolliginian confusion -- totally irrelevant here}}{17}{table.43}} +\newlabel{talice}{{5}{17}{What fonts do we have?\relax }{table.43}{}} +\@writefile{toc}{\contentsline {section}{\numberline {14}Bigger or smaller}{17}{section.45}} +\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces the sizes available}}{18}{table.46}} +\newlabel{tsize}{{6}{18}{Bigger or smaller\relax }{table.46}{}} +\@writefile{toc}{\contentsline {section}{\numberline {15}Accumulation}{18}{section.48}} +\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces the so-called `national' characters}}{19}{table.51}} +\newlabel{tnatchar}{{7}{19}{Accenting the positive\relax }{table.51}{}} +\@writefile{toc}{\contentsline {section}{\numberline {16}Accenting the positive}{19}{section.50}} +\citation{DEK84} +\citation{JB91} +\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces the diacriticals}}{21}{table.53}} +\newlabel{tdiacrit}{{8}{21}{Accenting the positive\relax }{table.53}{}} +\@writefile{toc}{\contentsline {section}{\numberline {17}Hy-phen-a-tion}{21}{section.55}} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {3\hfil }Environmentally aware}{23}{chapter.57}} +\newlabel{env}{{3}{23}{\relax }{chapter.57}{}} +\@writefile{toc}{\contentsline {section}{\numberline {18}Environments}{23}{section.58}} +\@writefile{toc}{\contentsline {section}{\numberline {19}Quoting}{23}{section.59}} +\@writefile{toc}{\contentsline {section}{\numberline {20}Verse or worse}{23}{section.61}} +\@writefile{toc}{\contentsline {section}{\numberline {21}Units -- a digression}{24}{section.63}} +\newlabel{units}{{21}{24}{Units\index {units} -- a digression\relax }{section.63}{}} +\@writefile{lot}{\contentsline {table}{\numberline {9}{\ignorespaces Units used in \LaTeX \ to specify dimensions}}{25}{table.64}} +\newlabel{tunit}{{9}{25}{Units\index {units} -- a digression\relax }{table.64}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {21.1}The point}{25}{subsection.65}} +\@writefile{toc}{\contentsline {section}{\numberline {22}Lists}{25}{section.67}} +\@writefile{toc}{\contentsline {subsubsection}{Itemizing}{26}{section*.71}} +\@writefile{toc}{\contentsline {subsubsection}{Enumerating}{26}{section*.75}} +\@writefile{toc}{\contentsline {subsubsection}{Describing}{27}{section*.78}} +\@writefile{toc}{\contentsline {section}{\numberline {23}Read my lips}{27}{section.81}} +\@writefile{toc}{\contentsline {section}{\numberline {24}One paragraph at a time}{28}{section.82}} +\@writefile{toc}{\contentsline {subsection}{\numberline {24.1}More to come}{28}{subsection.83}} +\@writefile{toc}{\contentsline {section}{\numberline {25}Sections and the like}{28}{section.84}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces The sectional hierarchy}}{29}{figure.85}} +\newlabel{tsect}{{2}{29}{Sections\index {sections} and the like\relax }{figure.85}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Sub-divisions from Section to Subparagraph}}{29}{figure.86}} +\newlabel{sectioning}{{3}{29}{Sections\index {sections} and the like\relax }{figure.86}{}} +\@writefile{toc}{\contentsline {section}{\numberline {26}Table of contents}{30}{section.92}} +\@writefile{toc}{\contentsline {section}{\numberline {27}Other background activity}{30}{section.93}} +\bibdata{course} +\@writefile{toc}{{\footnotesize \dingline {167}}} +\@writefile{toc}{\contentsline {newarticle}{\numberline {III}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ Live 4 --- enchancement volunteers needed}{32}{newarticle.96}} +\@writefile{toc}{\contentsline {newarticle}{\numberline {IV}UKTUG Information}{33}{newarticle.105}} diff --git a/usergrps/uktug/baskervi/8_3/bask8_3.log b/usergrps/uktug/baskervi/8_3/bask8_3.log new file mode 100644 index 0000000000..b6dc449084 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bask8_3.log @@ -0,0 +1,681 @@ +This is pdfTeX, Version 3.14159-13d (Web2C 7.3.1) (format=hypdflatex 1999.6.4) 4 JUN 1999 17:13 +**&hypdflatex bask8_3 +(bask8_3.tex[/home/rahtz/texmf.local/pdftex/config/pdftex.cfg] +LaTeX2e <1998/12/01> patch level 1 +Babel <v3.6x> and hyphenation patterns for english, french, german, ngerman, du +mylang, nohyphenation, loaded. + ********* Hyperref Macros loaded ******* +(../baskrep.cls +Document Class: baskrep 1997/09/29, Baskerville reprints class 1.2 +(/home/rahtz/texlive/texmf/tex/latex/base/article.cls +Document Class: article 1999/01/07 v1.4a Standard LaTeX document class +(/home/rahtz/texlive/texmf/tex/latex/base/size10.clo +File: size10.clo 1999/01/07 v1.4a Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/home/rahtz/texlive/texmf/tex/latex/textfit/textfit.sty +Package: textfit 1994/04/15 +\mags@f@r=\count87 +\desired@size=\dimen103 +\r@mainder=\count88 +\m@gstepcount=\count89 +\m@gsteplimit=\count90 +\m@gstepvalue=\count91 +\m@gstepdimen=\dimen104 +) +(/home/rahtz/texlive/texmf/tex/latex/psnfss/pifont.sty +Package: pifont 1999/03/29 PSNFSS v.7.2 Pi font support : S Rahtz +LaTeX Font Info: Try loading font information for U+pzd on input line 63. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/upzd.fd +File: upzd.fd 1998/11/05 font definitions for U/pzd. +) +LaTeX Font Info: Try loading font information for U+psy on input line 64. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/upsy.fd +File: upsy.fd 1998/11/05 font definitions for U/psy. +)) +(/home/rahtz/texlive/texmf/tex/latex/base/latexsym.sty +Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 29. +) +(/home/rahtz/texlive/texmf/tex/latex/tools/calc.sty +Package: calc 1998/07/07 v4.1b Infix arithmetic (KKT,FJ) +\calc@Acount=\count92 +\calc@Bcount=\count93 +\calc@Adimen=\dimen105 +\calc@Bdimen=\dimen106 +\calc@Askip=\skip43 +\calc@Bskip=\skip44 +LaTeX Info: Redefining \setlength on input line 49. +LaTeX Info: Redefining \addtolength on input line 50. +\calc@denominator=\count94 +) +(/home/rahtz/texlive/texmf/tex/latex/base/ifthen.sty +Package: ifthen 1999/01/07 v1.1a Standard LaTeX ifthen package (DPC) +) +(/home/rahtz/texlive/texmf/tex/latex/tools/longtable.sty +Package: longtable 1998/05/13 v4.09 Multi-page Table package (DPC) +\LTleft=\skip45 +\LTright=\skip46 +\LTpre=\skip47 +\LTpost=\skip48 +\LTchunksize=\count95 +\LTcapwidth=\dimen107 +\LT@head=\box26 +\LT@firsthead=\box27 +\LT@foot=\box28 +\LT@lastfoot=\box29 +\LT@cols=\count96 +\LT@rows=\count97 +\c@LT@tables=\count98 +\c@LT@chunks=\count99 +\LT@p@ftn=\toks14 +) +(/home/rahtz/texlive/texmf/tex/latex/psnfss/mathptm.sty +Package: mathptm 1999/03/29 PSNFSS v.7.2 Times + math package from fontinst : S + Rahtz +LaTeX Font Info: Redeclaring symbol font `operators' on input line 31. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/ptmcm/m/n on input line 31. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/ptmcm/m/n on input line 31. +LaTeX Font Info: Redeclaring symbol font `letters' on input line 32. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/ptmcm/m/it on input line 32. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/ptmcm/m/it on input line 32. +LaTeX Font Info: Redeclaring symbol font `symbols' on input line 33. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/pzccm/m/n on input line 33. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/pzccm/m/n on input line 33. +LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 34. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/psycm/m/n on input line 34. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/psycm/m/n on input line 34. +\symbold=\mathgroup5 +\symitalic=\mathgroup6 +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 37. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 38. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/ptm/m/it on input line 38. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/ptm/m/it on input line 38. +) +LaTeX Font Info: Try loading font information for OT1+ptm on input line 16. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/ot1ptm.fd +File: ot1ptm.fd 1998/11/05 Fontinst v1.800 font definitions for OT1/ptm. +) +(/home/rahtz/texlive/texmf/tex/latex/base/fontenc.sty +Package: fontenc 1999/02/24 v1.9t Standard LaTeX package + +(/home/rahtz/texlive/texmf/tex/latex/base/t1enc.def +File: t1enc.def 1999/02/24 v1.9t Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 25. +) +LaTeX Font Info: Try loading font information for T1+ptm on input line 78. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/t1ptm.fd +File: t1ptm.fd 1998/11/05 Fontinst v1.800 font definitions for T1/ptm. +)) +(/home/rahtz/texlive/texmf/tex/latex/tools/array.sty +Package: array 1998/05/13 v2.3m Tabular extension package (FMi) +\col@sep=\dimen108 +\extrarowheight=\dimen109 +\NC@list=\toks15 +\extratabsurround=\skip49 +\backup@length=\skip50 +) +(/home/rahtz/texlive/texmf/tex/latex/base/shortvrb.sty +Package: shortvrb 1999/03/25 v2.0h Standard LaTeX documentation package (FMi) +) +(/home/rahtz/texlive/texmf/tex/latex/graphics/epsfig.sty +Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR) + +(/home/rahtz/texlive/texmf/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/home/rahtz/texlive/texmf/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks16 +) +(/home/rahtz/texlive/texmf/tex/latex/graphics/graphics.sty +Package: graphics 1999/02/16 v1.0l Standard LaTeX Graphics (DPC,SPQR) + +(/home/rahtz/texmf.local/tex/fontinst/base/tex/trig.sty +Package: trig 1994/10/16 v1.08 sin cos tan (DPC) +) +(/home/rahtz/texlive/texmf/tex/latex/texlive/graphics.cfg) +Package graphics Info: Driver file: pdftex.def on input line 80. + +(/home/rahtz/texlive/texmf/tex/latex/graphics/pdftex.def +File: pdftex.def 1999/01/26 v0.02l graphics/color for pdftex +\Gread@gobject=\count100 +)) +\Gin@req@height=\dimen110 +\Gin@req@width=\dimen111 +) +\epsfxsize=\dimen112 +\epsfysize=\dimen113 +) +(/home/rahtz/texlive/texmf/tex/latex/graphics/color.sty +Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC) + +(/home/rahtz/texlive/texmf/tex/latex/texlive/color.cfg) +Package color Info: Driver file: pdftex.def on input line 125. +) +(/home/rahtz/texlive/texmf/tex/latex/tools/multicol.sty +Package: multicol 1999/03/22 v1.5t multicolumn formatting (FMi) +\c@tracingmulticols=\count101 +\mult@box=\box30 +\multicol@leftmargin=\dimen114 +\c@unbalance=\count102 +\c@collectmore=\count103 +\doublecol@number=\count104 +\multicoltolerance=\count105 +\multicolpretolerance=\count106 +\full@width=\dimen115 +\page@free=\dimen116 +\premulticols=\dimen117 +\postmulticols=\dimen118 +\multicolsep=\skip51 +\multicolbaselineskip=\skip52 +\partial@page=\box31 +\last@line=\box32 +\mult@rightbox=\box33 +\mult@grightbox=\box34 +\mult@gfirstbox=\box35 +\mult@firstbox=\box36 +\@tempa=\box37 +\@tempa=\box38 +\@tempa=\box39 +\@tempa=\box40 +\@tempa=\box41 +\@tempa=\box42 +\@tempa=\box43 +\@tempa=\box44 +\@tempa=\box45 +\@tempa=\box46 +\@tempa=\box47 +\@tempa=\box48 +\@tempa=\box49 +\@tempa=\box50 +\@tempa=\box51 +\@tempa=\box52 +\@tempa=\box53 +\c@columnbadness=\count107 +\c@finalcolumnbadness=\count108 +\last@try=\dimen119 +\multicolovershoot=\dimen120 +\multicolundershoot=\dimen121 +\mult@nat@firstbox=\box54 +) +(/home/rahtz/texlive/texmf/tex/latex/ltxmisc/url.sty +Package: url 1999/03/02 ver 1.4 Verb mode for urls, email addresses, and file + names +) +(/home/rahtz/texlive/texmf/tex/latex/mflogo/mflogo.sty +Package: mflogo 1999/03/10 v2.0 LaTeX package for Metafont and MetaPost logos +) +LaTeX Info: Redefining \rm on input line 73. +LaTeX Info: Redefining \sf on input line 74. +LaTeX Info: Redefining \tt on input line 75. +LaTeX Info: Redefining \bf on input line 76. +LaTeX Info: Redefining \it on input line 77. +LaTeX Info: Redefining \sl on input line 78. +LaTeX Info: Redefining \sc on input line 79. +\@indentskip=\skip53 +\smallindent=\skip54 +\@footindent=\skip55 +\@leftskip=\skip56 +\c@newarticle=\count109 +\BSKbox=\box55 +) +(/home/rahtz/texlive/texmf/tex/latex/type1cm/type1cm.sty +Package: type1cm 1997/01/27 v0.02 BlueSky/Y&Y Type1 CM font definitions (DPC) +) (clark.sty +(/home/rahtz/texlive/texmf/tex/latex/tools/theorem.sty +Package: theorem 1995/11/23 v2.2c Theorem extension package (FMi) +\theorem@style=\toks17 +\theorem@bodyfont=\toks18 +\theorempreskipamount=\skip57 +\theorempostskipamount=\skip58 + +(/home/rahtz/texlive/texmf/tex/latex/tools/thp.sty +File: thp.sty 1995/11/23 v2.2c Theorem extension package (FMi) +)) +(/home/rahtz/texlive/texmf/tex/latex/base/alltt.sty +Package: alltt 1997/06/16 v2.0g defines alltt environment +) +(/home/rahtz/texlive/texmf/tex/latex/carlisle/dotlessj.sty +Package: dotlessj 1998/12/09 v0.03 dotless j package (DPC) +) +\c@chapter=\count110 +\c@question=\count111 +) +(/home/rahtz/texlive/texmf/tex/latex/hyperref/hyperref.sty +Package: hyperref 1999/06/04 6.58 Hypertext links for LaTeX +\@linkdim=\dimen122 +\hy@linkcounter=\count112 +\hy@pagecounter=\count113 + +(/home/rahtz/texlive/texmf/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 1999/05/20 v0.4 PDFDocEncoding (Heiko Oberdiek) +) (../hyperref.cfg +Package hyperref Info: option bookmarks set true on input line 1. +) +Package hyperref Info: option hypertexnames set false on input line 730. +Package hyperref Info: Bookmarks ON on input line 747. +Package hyperref Info: Hyper figures OFF on input line 759. +Package hyperref Info: Link nesting OFF on input line 764. +Package hyperref Info: Hyper index ON on input line 767. +Package hyperref Info: Plain pages ON on input line 772. +Package hyperref Info: Backreferencing OFF on input line 779. + +Implicit mode ON; LaTeX internals redefined +\Fld@menulength=\count114 +\Field@Width=\dimen123 +\Fld@charsize=\dimen124 +\Choice@toks=\toks19 +\Field@toks=\toks20 +Package hyperref Info: Hyper figures OFF on input line 1271. +Package hyperref Info: Link nesting OFF on input line 1276. +Package hyperref Info: Hyper index ON on input line 1279. +Package hyperref Info: backreferencing OFF on input line 1286. +Package hyperref Info: Link coloring OFF on input line 1291. +\c@Item=\count115 +\c@Hfootnote=\count116 +\OddToc=\count117 +LaTeX Info: Redefining \ref on input line 1982. +LaTeX Info: Redefining \pageref on input line 1983. +) +*hyperref using driver hpdftex* +(/home/rahtz/texlive/texmf/tex/latex/hyperref/hpdftex.def +\Fld@listcount=\count118 +\@outlinefile=\write3 +) (bask8_3.aux) +\openout1 = `bask8_3.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. + +(/home/rahtz/texlive/texmf/tex/context/base/supp-pdf.tex +(/home/rahtz/texlive/texmf/tex/context/base/supp-mis.tex +loading : Context Support Macros / Missing +\protectiondepth=\count119 +\scratchcounter=\count120 +\scratchdimen=\dimen125 +\scratchskip=\skip59 +\scratchmuskip=\muskip10 +\scratchbox=\box56 +\scratchread=\read1 +\scratchwrite=\write4 +\nextbox=\box57 +\nextdepth=\dimen126 +\everyline=\toks21 +\!!counta=\count121 +\!!countb=\count122 +\recursecounter=\count123 +) +loading : Context Support Macros / PDF +\nofMPsegments=\count124 +\nofMParguments=\count125 +) +LaTeX Info: Redefining \j on input line 29. +LaTeX Info: Redefining \jmath on input line 29. +Package hyperref Info: Link coloring OFF on input line 29. + (/home/rahtz/texlive/texmf/tex/latex/hyperref/nameref.sty +Package: nameref 1999/06/05 Cross-referencing by name of section +) (bask8_3.out) +(bask8_3.out) +\openout3 = `bask8_3.out'. + +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 33. + The calculated font is ptmb8t ->72.89124pt +LaTeX Font Info: Try loading font information for T1+pcr on input line 33. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 1998/11/05 Fontinst v1.800 font definitions for T1/pcr. +) +Underfull \hbox (badness 1917) in paragraph at lines 33--33 +\T1/ptm/m/n/10 Oak, Birm-ing-ham B29 4LB. Fax/telephone: 0121 476 2159. Email e +n-quiries about UK-TUG to \T1/pcr/m/n/10 uktug- + [] + +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <12> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 33. +(bask8_3.toc +LaTeX Font Info: Try loading font information for OT1+ptmcm on input line 1. + + (/home/rahtz/texlive/texmf/tex/latex/psnfss/ot1ptmcm.fd +File: ot1ptmcm.fd 1998/11/05 Fontinst v1.800 font definitions for OT1/ptmcm. +) +LaTeX Font Info: Try loading font information for OML+ptmcm on input line 1. + + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/omlptmcm.fd +File: omlptmcm.fd 1998/11/05 Fontinst v1.800 font definitions for OML/ptmcm. +) +LaTeX Font Info: Try loading font information for OMS+pzccm on input line 1. + + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/omspzccm.fd +File: omspzccm.fd 1998/11/05 Fontinst v1.800 font definitions for OMS/pzccm. +) +LaTeX Font Info: Try loading font information for OMX+psycm on input line 1. + + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/omxpsycm.fd +File: omxpsycm.fd 1998/11/05 Fontinst v1.800 font definitions for OMX/psycm. +) +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7.4> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <6> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <7.4> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 6. + [1 + +[/home/rahtz/texlive/texmf/pdftex/config/psfonts.map][/home/rahtz/texlive/texmf +/pdftex/config/lw35.map][/home/rahtz/texlive/texmf/pdftex/config/rawfonts.map][ +/home/rahtz/texlive/texmf/pdftex/config/em.map][/home/rahtz/texmf.local/pdftex/ +config/elpdf.map] +checksum mismatch in local font psyr in virtual font zptmcmrm.vf ignored. +checksum mismatch in local font ptmri8r in virtual font zptmcmrm.vf ignored.]) +\tf@toc=\write5 +\openout5 = `bask8_3.toc'. + + +(editorial.tex [2] +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10.95> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 5. + [3 + +] +LaTeX Font Info: Font shape `T1/ptm/bx/sl' in size <12> not available +(Font) Font shape `T1/ptm/b/sl' tried instead on input line 70. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 70. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 70. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 70. +LaTeX Font Info: Font shape `T1/ptm/bx/sl' in size <9> not available +(Font) Font shape `T1/ptm/b/sl' tried instead on input line 70. +) [4 + + +checksum mismatch in local font psyr in virtual font zpzccmry.vf ignored. +checksum mismatch in local font pzcmi8r in virtual font zpzccmry.vf ignored. +checksum mismatch in local font ptmr8r in virtual font zpzccmry.vf ignored.] +LaTeX Font Info: Try loading font information for T1+pjn on input line 49. + +(/home/rahtz/texmf.local/tex/latex/psnfss/pjn/t1pjn.fd +File: t1pjn.fd 1998/05/21 Fontinst v1.7 font definitions for T1/pjn. +) +LaTeX Font Info: Calculating math sizes for size <30> on input line 49. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <30> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 49. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20.99991> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 49. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <15> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 49. + (first.tex +LaTeX Font Info: Try loading font information for T1+phv on input line 1. + +(/home/rahtz/texlive/texmf/tex/latex/psnfss/t1phv.fd +File: t1phv.fd 1998/11/05 Fontinst v1.800 font definitions for T1/phv. +) +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 1. + + +LaTeX Warning: Citation `DEK84' on page 5 undefined on input line 13. + + +LaTeX Warning: Citation `DEK79' on page 5 undefined on input line 15. + + +LaTeX Warning: Citation `DEK68' on page 5 undefined on input line 16. + + +LaTeX Warning: Citation `DEK84' on page 5 undefined on input line 21. + +LaTeX Font Info: Font shape `T1/phv/m/it' in size <10> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 28. + +LaTeX Warning: Citation `BR80' on page 5 undefined on input line 30. + + +LaTeX Warning: Citation `MC96' on page 5 undefined on input line 66. + + +LaTeX Warning: Citation `LL85' on page 5 undefined on input line 71. + +[5 +checksum mismatch in local font psyr in virtual font zpzccmry.vf ignored. +checksum mismatch in local font pzcmi8r in virtual font zpzccmry.vf ignored. +checksum mismatch in local font ptmr8r in virtual font zpzccmry.vf ignored.] + +LaTeX Warning: Citation `DEK89' on page 6 undefined on input line 120. + + +LaTeX Warning: Citation `FM90' on page 6 undefined on input line 140. + + +LaTeX Warning: Citation `FMCR92' on page 6 undefined on input line 143. + + +LaTeX Warning: Citation `DCCRFM98' on page 6 undefined on input line 156. + +[6] +LaTeX Font Info: Font shape `T1/pcr/m/it' in size <10> not available +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 250. + <ishmael.jpg 76.53104pt, 111.59857pt, obj 245> +File: ishmael.jpg Graphic file (type jpg) + <use ishmael.jpg> +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <9> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 275. + [7] +[8 <./ishmael.jpg>] [9] + +LaTeX Warning: Citation `LL85' on page 10 undefined on input line 484. + + +LaTeX Warning: Citation `LL94' on page 10 undefined on input line 487. + + +LaTeX Warning: Citation `MGFMAS94' on page 10 undefined on input line 497. + +[10] +Overfull \hbox (23.37141pt too wide) in paragraph at lines 578--592 + [] + [] + + +Overfull \hbox (1.90001pt too wide) in paragraph at lines 576--613 +[]$[]$ $[]$ + [] + +[11 +checksum mismatch in local font psyr in virtual font zptmcmr.vf ignored. +checksum mismatch in local font ptmr8r in virtual font zptmcmr.vf ignored.] +[12] +LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <10> not available +(Font) Font shape `T1/pcr/b/n' tried instead on input line 811. + [13]) [14] (second.tex +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 11. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 11. + + +LaTeX Warning: Citation `RM80' on page 15 undefined on input line 17. + + +LaTeX Warning: Citation `PL92' on page 15 undefined on input line 17. + + +LaTeX Warning: Citation `DEK-cm' on page 15 undefined on input line 34. + +LaTeX Font Info: Try loading font information for U+logo on input line 63. +(/home/rahtz/texlive/texmf/tex/latex/mflogo/ulogo.fd +File: ulogo.fd 1999/03/10 v2.0 LaTeX font defs for Metafont and MetaPost logos +) + +LaTeX Warning: Citation `DEK86' on page 15 undefined on input line 63. + + +LaTeX Warning: Citation `DEK-cm' on page 15 undefined on input line 65. + + +LaTeX Warning: Citation `FM89' on page 15 undefined on input line 89. + +[15] +Underfull \hbox (badness 10000) in paragraph at lines 136--137 +[]|\T1/pcr/m/n/10 The quick brown fox comes to the aid + [] + +[16] [17] [18] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 357. + [19] +LaTeX Font Info: Try loading font information for OML+ptm on input line 527. + + (/home/rahtz/texlive/texmf/tex/latex/psnfss/omlptm.fd +File: omlptm.fd +) +LaTeX Font Info: Font shape `OML/ptm/m/n' in size <10> not available +(Font) Font shape `OML/cmm/m/it' tried instead on input line 527. + +[20] + +LaTeX Warning: Citation `DEK84' on page 21 undefined on input line 610. + + +LaTeX Warning: Citation `JB91' on page 21 undefined on input line 612. + +[21]) [22] (third.tex [23] [24] [25 +checksum mismatch in local font psyr in virtual font zptmcmr.vf ignored. +checksum mismatch in local font ptmr8r in virtual font zptmcmr.vf ignored.] +[26] [27] [28] [29] [30]) +No file bask8_3.bbl. +(plea.tex [31]) [32 + +] (sec.tex [33 + +]) (bask8_3.aux) + + *File List* + baskrep.cls 1997/09/29, Baskerville reprints class 1.2 + article.cls 1999/01/07 v1.4a Standard LaTeX document class + size10.clo 1999/01/07 v1.4a Standard LaTeX file (size option) + textfit.sty 1994/04/15 + pifont.sty 1999/03/29 PSNFSS v.7.2 Pi font support : S Rahtz + upzd.fd 1998/11/05 font definitions for U/pzd. + upsy.fd 1998/11/05 font definitions for U/psy. +latexsym.sty 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) + calc.sty 1998/07/07 v4.1b Infix arithmetic (KKT,FJ) + ifthen.sty 1999/01/07 v1.1a Standard LaTeX ifthen package (DPC) +longtable.sty 1998/05/13 v4.09 Multi-page Table package (DPC) + mathptm.sty 1999/03/29 PSNFSS v.7.2 Times + math package from fontinst : S +Rahtz + ot1ptm.fd 1998/11/05 Fontinst v1.800 font definitions for OT1/ptm. + fontenc.sty + t1enc.def 1999/02/24 v1.9t Standard LaTeX file + t1ptm.fd 1998/11/05 Fontinst v1.800 font definitions for T1/ptm. + array.sty 1998/05/13 v2.3m Tabular extension package (FMi) +shortvrb.sty 1999/03/25 v2.0h Standard LaTeX documentation package (FMi) + epsfig.sty 1999/02/16 v1.7a (e)psfig emulation (SPQR) +graphicx.sty 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + keyval.sty 1999/03/16 v1.13 key=value parser (DPC) +graphics.sty 1999/02/16 v1.0l Standard LaTeX Graphics (DPC,SPQR) + trig.sty 1994/10/16 v1.08 sin cos tan (DPC) +graphics.cfg + pdftex.def 1999/01/26 v0.02l graphics/color for pdftex + color.sty 1999/02/16 v1.0i Standard LaTeX Color (DPC) + color.cfg +multicol.sty 1999/03/22 v1.5t multicolumn formatting (FMi) + url.sty 1999/03/02 ver 1.4 Verb mode for urls, email addresses, and f +ile names + mflogo.sty 1999/03/10 v2.0 LaTeX package for Metafont and MetaPost logos + type1cm.sty 1997/01/27 v0.02 BlueSky/Y&Y Type1 CM font definitions (DPC) + clark.sty + theorem.sty 1995/11/23 v2.2c Theorem extension package (FMi) + thp.sty 1995/11/23 v2.2c Theorem extension package (FMi) + alltt.sty 1997/06/16 v2.0g defines alltt environment +dotlessj.sty 1998/12/09 v0.03 dotless j package (DPC) +hyperref.sty 1999/06/04 6.58 Hypertext links for LaTeX + pd1enc.def 1999/05/20 v0.4 PDFDocEncoding (Heiko Oberdiek) +hyperref.cfg + hpdftex.def +supp-pdf.tex + nameref.sty 1999/06/05 Cross-referencing by name of section + bask8_3.out + bask8_3.out + t1pcr.fd 1998/11/05 Fontinst v1.800 font definitions for T1/pcr. +ot1ptmcm.fd 1998/11/05 Fontinst v1.800 font definitions for OT1/ptmcm. +omlptmcm.fd 1998/11/05 Fontinst v1.800 font definitions for OML/ptmcm. +omspzccm.fd 1998/11/05 Fontinst v1.800 font definitions for OMS/pzccm. +omxpsycm.fd 1998/11/05 Fontinst v1.800 font definitions for OMX/psycm. +editorial.tex + t1pjn.fd 1998/05/21 Fontinst v1.7 font definitions for T1/pjn. + first.tex + t1phv.fd 1998/11/05 Fontinst v1.800 font definitions for T1/phv. + ishmael.jpg Graphic file (type jpg) + second.tex + ulogo.fd 1999/03/10 v2.0 LaTeX font defs for Metafont and MetaPost logos + omlptm.fd + third.tex + sec.tex + *********** + + +LaTeX Warning: There were undefined references. + + ) +Here is how much of TeX's memory you used: + 3635 strings out of 10630 + 44224 string characters out of 68277 + 96185 words of memory out of 1500001 + 6349 multiletter control sequences out of 10000+577 + 159537 words of font info for 193 fonts, out of 200000 for 1000 + 14 hyphenation exceptions out of 1000 + 39i,15n,36p,235b,589s stack positions out of 300i,100n,500p,50000b,4000s +<logo10.pfb><8r.enc><pjnri8a.pfb><pjnr8a.pfb><cmsy10.pfb><cmmi10.pfb> +Output written on bask8_3.pdf (33 pages, 315148 bytes). diff --git a/usergrps/uktug/baskervi/8_3/bask8_3.out b/usergrps/uktug/baskervi/8_3/bask8_3.out new file mode 100644 index 0000000000..3626257e43 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bask8_3.out @@ -0,0 +1,36 @@ +\BOOKMARK [1]{newarticle.2}{Snippets}{} +\BOOKMARK [1]{section.3}{TeX consultant sought}{} +\BOOKMARK [1]{section.4}{Committee members sought: a message from Philip Taylor}{} +\BOOKMARK [1]{newarticle.5}{Introduction to LaTeX for the rest of us}{} +\BOOKMARK [0]{chapter.6}{First steps}{} +\BOOKMARK [1]{section.7}{A brief history}{chapter.6} +\BOOKMARK [1]{section.13}{A note on pronunciation}{chapter.6} +\BOOKMARK [1]{section.17}{Let's try it}{chapter.6} +\BOOKMARK [1]{section.19}{Elementary typography}{chapter.6} +\BOOKMARK [1]{section.21}{In the beginning}{chapter.6} +\BOOKMARK [1]{section.22}{Classes of style, flair and panache}{chapter.6} +\BOOKMARK [1]{section.28}{More information}{chapter.6} +\BOOKMARK [1]{section.30}{Some back-tracking}{chapter.6} +\BOOKMARK [1]{section.32}{Trying to correct mistakes}{chapter.6} +\BOOKMARK [1]{section.33}{Hints}{chapter.6} +\BOOKMARK [0]{chapter.34}{More things you should know}{} +\BOOKMARK [1]{section.35}{Changing font}{chapter.34} +\BOOKMARK [1]{section.37}{Some history \(again\)}{chapter.34} +\BOOKMARK [1]{section.38}{What fonts do we have?}{chapter.34} +\BOOKMARK [1]{section.45}{Bigger or smaller}{chapter.34} +\BOOKMARK [1]{section.48}{Accumulation}{chapter.34} +\BOOKMARK [1]{section.50}{Accenting the positive}{chapter.34} +\BOOKMARK [1]{section.55}{Hy-phen-a-tion}{chapter.34} +\BOOKMARK [0]{chapter.57}{Environmentally aware}{} +\BOOKMARK [1]{section.58}{Environments}{chapter.57} +\BOOKMARK [1]{section.59}{Quoting}{chapter.57} +\BOOKMARK [1]{section.61}{Verse or worse}{chapter.57} +\BOOKMARK [1]{section.63}{Units -- a digression}{chapter.57} +\BOOKMARK [1]{section.67}{Lists}{chapter.57} +\BOOKMARK [1]{section.81}{Read my lips}{chapter.57} +\BOOKMARK [1]{section.82}{One paragraph at a time}{chapter.57} +\BOOKMARK [1]{section.84}{Sections and the like}{chapter.57} +\BOOKMARK [1]{section.92}{Table of contents}{chapter.57} +\BOOKMARK [1]{section.93}{Other background activity}{chapter.57} +\BOOKMARK [1]{newarticle.96}{TeX Live 4 --- enchancement volunteers needed}{chapter.57} +\BOOKMARK [1]{newarticle.105}{UKTUG Information}{chapter.57} diff --git a/usergrps/uktug/baskervi/8_3/bask8_3.tex b/usergrps/uktug/baskervi/8_3/bask8_3.tex new file mode 100644 index 0000000000..f6d4982356 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bask8_3.tex @@ -0,0 +1,85 @@ +\listfiles + +\documentclass{baskrep} + +\usepackage{type1cm} + +\bibliographystyle{plain} + +\BASKvol{8} + +\BASKno{3} + +\BASKed{Sebastian Rahtz} + +\BASKyear{1998} + +\BASKmonth{July} + +\usepackage{clark} + +\renewcommand\textfraction{0.25} + +% + +\InputIfFileExists{fontuse.cfg}{\typeout{Using config file + + fontuse.cfg}}{} + +\begin{document} + + + +\begin{frontmatter} + +\input{editorial} + +\end{frontmatter} + +\newpage + +\addtocontents{toc}{{\protect\footnotesize\protect\dingline{167}}} + +\addtocontents{toc}{{\protect\leftline{\protect\textbf{\protect\LaTeX\ for the rest of us}}}} + +\title{\LaTeX\ for the rest of us} + +\author{Malcolm Clark} + +\begin{multicols}{2}[\LFTROU] + +\input{first} + +\newpage + +\input{second} + +\newpage + +\input{third} + +\bibliography{course} + +\end{multicols} + +\addtocontents{toc}{{\protect\footnotesize\protect\dingline{167}}} +\vfill +\Dings +\vfill + +\input plea +\newpage + + +\input{sec} + +\end{document} + + + + + + + + + diff --git a/usergrps/uktug/baskervi/8_3/bask8_3.toc b/usergrps/uktug/baskervi/8_3/bask8_3.toc new file mode 100644 index 0000000000..b7e900dbe5 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bask8_3.toc @@ -0,0 +1,49 @@ +\contentsline {newarticle}{\numberline {I}Snippets}{3}{newarticle.2} +\contentsline {section}{\numberline {1}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ consultant sought}{3}{section.3} +\contentsline {section}{\numberline {2}Committee members sought: a message from Philip Taylor}{3}{section.4} +\contentsline {newarticle}{\numberline {II}Introduction to \textsl {\LaTeX \ for the rest of us}}{4}{newarticle.5} +{\footnotesize \dingline {167}} +{\leftline {\textbf {\LaTeX \ for the rest of us}}} +\contentsline {chapter}{\hbox to\@tempdima {1\hfil }First steps}{5}{chapter.6} +\contentsline {section}{\numberline {1}A brief history}{5}{section.7} +\contentsline {subsection}{\numberline {1.1}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m }{5}{subsection.8} +\contentsline {subsection}{\numberline {1.2}\textsf {Scribe}}{5}{subsection.9} +\contentsline {subsection}{\numberline {1.3}\LaTeX }{6}{subsection.10} +\contentsline {subsection}{\numberline {1.4}\LaTeXe }{6}{subsection.11} +\contentsline {subsection}{\numberline {1.5}A proviso}{6}{subsection.12} +\contentsline {section}{\numberline {2}A note on pronunciation}{7}{section.13} +\contentsline {section}{\numberline {3}Let's try it}{7}{section.17} +\contentsline {section}{\numberline {4}Elementary typography}{9}{section.19} +\contentsline {section}{\numberline {5}In the beginning}{10}{section.21} +\contentsline {section}{\numberline {6}Classes of style, flair and panache}{10}{section.22} +\contentsline {section}{\numberline {7}More information}{12}{section.28} +\contentsline {section}{\numberline {8}Some back-tracking}{12}{section.30} +\contentsline {section}{\numberline {9}Trying to correct mistakes}{13}{section.32} +\contentsline {section}{\numberline {10}Hints}{14}{section.33} +\contentsline {chapter}{\hbox to\@tempdima {2\hfil }More things you should know}{15}{chapter.34} +\contentsline {section}{\numberline {11}Changing font}{15}{section.35} +\contentsline {section}{\numberline {12}Some history (again)}{15}{section.37} +\contentsline {section}{\numberline {13}What fonts do we have?}{16}{section.38} +\contentsline {section}{\numberline {14}Bigger or smaller}{17}{section.45} +\contentsline {section}{\numberline {15}Accumulation}{18}{section.48} +\contentsline {section}{\numberline {16}Accenting the positive}{19}{section.50} +\contentsline {section}{\numberline {17}Hy-phen-a-tion}{21}{section.55} +\contentsline {chapter}{\hbox to\@tempdima {3\hfil }Environmentally aware}{23}{chapter.57} +\contentsline {section}{\numberline {18}Environments}{23}{section.58} +\contentsline {section}{\numberline {19}Quoting}{23}{section.59} +\contentsline {section}{\numberline {20}Verse or worse}{23}{section.61} +\contentsline {section}{\numberline {21}Units -- a digression}{24}{section.63} +\contentsline {subsection}{\numberline {21.1}The point}{25}{subsection.65} +\contentsline {section}{\numberline {22}Lists}{25}{section.67} +\contentsline {subsubsection}{Itemizing}{26}{section*.71} +\contentsline {subsubsection}{Enumerating}{26}{section*.75} +\contentsline {subsubsection}{Describing}{27}{section*.78} +\contentsline {section}{\numberline {23}Read my lips}{27}{section.81} +\contentsline {section}{\numberline {24}One paragraph at a time}{28}{section.82} +\contentsline {subsection}{\numberline {24.1}More to come}{28}{subsection.83} +\contentsline {section}{\numberline {25}Sections and the like}{28}{section.84} +\contentsline {section}{\numberline {26}Table of contents}{30}{section.92} +\contentsline {section}{\numberline {27}Other background activity}{30}{section.93} +{\footnotesize \dingline {167}} +\contentsline {newarticle}{\numberline {III}T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ Live 4 --- enchancement volunteers needed}{32}{newarticle.96} +\contentsline {newarticle}{\numberline {IV}UKTUG Information}{33}{newarticle.105} diff --git a/usergrps/uktug/baskervi/8_3/baskerv.cls b/usergrps/uktug/baskervi/8_3/baskerv.cls new file mode 100644 index 0000000000..70ae963226 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/baskerv.cls @@ -0,0 +1,848 @@ +% Baskerville.cls: +% Adrian Clark +% Sue Brooks +% Sebastan Rahtz +% +% based on the original LaTeX ARTICLE DOCUMENT STYLE +% +% for LaTeX2e +% +% 29.5.94 added ISSN +% 2.6.94 corrected \ukt\ macro +% 7.6.94 centered captions +% 15.8.94 changed editor names etc +% 2.11.94 use Alan Jeffrey's code for paths, emails, URLs etc +% from faq.sty +% put PA address in mast head +% Journals use two-sided printing. +% 1.12.94 cleaned again for FAQ issue. +% 6.12.94 more little fixes for FAQ issue +% 14.3.95 parameterized date +% 12.6.95 removed JF +% 8.95 worked on to make HH run. color and array need to go back +% 1996/02/06 DPC +% Added fontmatter and submissiondates environments +% Added \BASKed \BASKed* \BASKyear \BASKmonth +% \BASKtitle \BASKheadparone and \BASKheadpartwo +% commands set the `fixed' texts on the masthead. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{baskerv}[1997/05/07 v3.12a Baskerville newsletter class] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} +\RequirePackage{latexsym} +\RequirePackage{array} +\RequirePackage{longtable} +% This package is *required* if we're using baskerville +\RequirePackage[cm,mbvx]{ltx-logo} +% +\RequirePackage{xspace} +% +\let\FAQverbFamily\ttfamily +\DeclareRobustCommand{\FAQverb}[2]{{% + \ifvmode\leavevmode\fi + \lefthyphenmin=256\setlanguage\language + \FAQverbFamily\hyphenchar\the\font`#1\relax + \def\@tempa{#2}% + \expandafter\@faq@strip\meaning\@tempa\@faq@strip + \hyphenchar\the\font\m@ne +}\setlanguage\language} +\def\@faq@strip#1->#2\@faq@strip{#2} +% +% Document markup: +% +%\makeatother % because @ is a delimiter here, it had better have the +% % same catcode as it will when the macro's invoked +%\def\Email|#1@#2|{\FAQverb\-{#1@}\penalty10\FAQverb\.{#2}} % email +%\makeatletter +%\def\FTP|#1|{\FAQverb\.{#1}} % FTP site +%\def\File|#1|{\FAQverb\/{#1}} % file name +%\def\CTAN{\FAQverb\/} % CTAN path +%\def\Newsgroup|#1|{\FAQverb\.{#1}} % newsgroup +%\let\URL\url +%\def\URL|#1://#2/#3|{\FAQverb\.{#1://#2/}\penalty10\FAQverb\/{#3}} +%\def\path|#1|{\FAQverb\/{#1}} % generic path +\RequirePackage{url} +\let\File\path % for compatibility with old files +\let\URL\url +\let\Newsgroup\url +\providecommand\acro[1]{\textsmaller{#1}\@} +\providecommand\Dash{\nobreak\thinspace---\thinspace} +\providecommand\dash{\nobreak\thinspace--\thinspace} +\providecommand\tub{\textsl{TUGboat}} +\providecommand\BV{\emph{Baskerville}} +\providecommand\uktug{\textsc{uk}\acro{TUG}} +\providecommand\LaTeXo{\LaTeX\,2.09} +\providecommand\CDROM{\acro{CD}-\acro{ROM}} +\providecommand\FAQ{\acro{FAQ}} +\def\CTAN{\acro{CTAN}} +\def\PDF{\acro{PDF}} +\def\DVI{\acro{DVI}} + +% +% Create the Article environment (if it doesn't already exist) on the +% ground +\@ifundefined{Article}{% + \newenvironment{Article}{\maketitle}{}% + \let\BV@@title\title + \renewcommand\title[2][]{\BV@@title{#2}}}% + {} +% +% commands to typeset commands +% +% just the cs name +\@ifundefined{cs}{% + \DeclareRobustCommand\cs[1]{% + \texttt{% + \expandafter\string\csname#1\endcsname}}% + }{} +% +% a command with its formal parameters +\@ifundefined{cmd}{% + \DeclareRobustCommand\cmd{% + \begingroup + \ttfamily\selectfont + \makeatletter + \BV@cmd@arg + } + \newcommand\BV@cmd@arg[1]{% + \string#1% + \futurelet\@tempa\BV@cmd@a + } + \def\BV@cmd@a{% + \ifx\@tempa\bgroup + \expandafter\BV@cmd@marg + \else + \ifx\@tempa[% ] + \expandafter\BV@cmd@oarg + \else + \expandafter\endgroup + \fi + \fi + } + \def\BV@cmd@marg#1{% + \char`\{% + {% + \rmfamily\itshape\selectfont + #1% + }% + \char`\} + \futurelet\@tempa\BV@cmd@a + } + \def\BV@cmd@oarg[#1]{% + \char`\[% + {% + \rmfamily\itshape\selectfont + #1% + }% + \char`\]% + \futurelet\@tempa\BV@cmd@a + } + }% \cmd undefined + {} +% +% define a poor-man's version of the \meta used in doc.sty. Perhaps +% some day we'll need the full McCoy... +\providecommand\meta[1]{% + \ensuremath{\langle}\emph{#1}\ensuremath{\rangle}} +\RequirePackage[T1]{fontenc} + +%\DeclareFontShape{T1}{mbvx}{m}{sl}{<->ssub * mbvx/m/it}{} +\usepackage{ae}%em +\renewcommand{\rmdefault}{mbvx} +\renewcommand{\sfdefault}{aess} +\renewcommand{\ttdefault}{aett} +\fontfamily{mbvx}\selectfont +\RequirePackage{graphics} +\RequirePackage{color} +\RequirePackage{multicol} +\RequirePackage{mflogo} +\RequirePackage{pifont} + +% +% \acro command and other size juggling +\RequirePackage{relsize} +\providecommand\acro[1]{\textsmaller{#1}\@} + +%\RequirePackage{footcols} +\newcommand\bs{{\ttfamily\upshape\char'134}} +%\def\arraybackslash{\let\\=\@arraycr} +%\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}} +%\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} +\lineskip 1\p@ +\normallineskip 1\p@ +\def\baselinestretch{1} +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 8\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 4\p@ \@plus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\let\@normalsize\normalsize +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{10.5}% + \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip 4\p@ \@plus1\p@ + \belowdisplayshortskip \abovedisplayshortskip + \def\@listi{\leftmargin\leftmargini + \topsep 2\p@ \@plus1\p@ \@minus1\p@ + \parsep \z@ + \itemsep 2\p@}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{9}% + \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 1\p@ \@plus1\p@ \@minus1\p@ + \parsep \z@ + \itemsep 2\p@}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\renewcommand\large{\@setfontsize\large\@xipt{12}} +\renewcommand\Large{\@setfontsize\Large\@xiipt{14}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{17}} +\renewcommand\huge{\@setfontsize\huge\@xviipt{20}} +\renewcommand\Huge{\@setfontsize\Huge\@xxpt{30}} +\normalsize +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% SIDE MARGINS: +\oddsidemargin -2.5pc \evensidemargin -2.5pc +\marginparwidth 4pc % don't use marginal notes... +\marginparsep 0.5pc % ...in the UK TUG newsletter + +% VERTICAL SPACING: +\topmargin -3pc +\headheight 12\p@ +\headsep 15\p@ +\topskip 10\p@ +\footskip 15\p@ + +% DIMENSION OF TEXT: + +\textheight 250mm % height of text on a page (A4 paper) +\textwidth 180mm % total width of a page +\columnseprule 0.5\p@ % width of line in the inter-column gutter +\columnsep 10mm % space between columns +\tolerance 9999 % make those columns justify + +% FOOTNOTES: +\footnotesep 6\p@ +\skip\footins 19.5\p@ plus 12\p@ \@minus 1\p@ + +% FLOATS: +\floatsep 12\p@ plus 5.5\p@ \@minus 1\p@ +\textfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\intextsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dblfloatsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dbltextfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\@fptop 0\p@ plus 0fil +\@fpsep 12\p@ plus 0fil +\@fpbot 0\p@ plus 3fil +\@dblfptop 0\p@ plus 0fil +\@dblfpsep 12\p@ plus 0fil +\@dblfpbot 0\p@ plus 3fil +\marginparpush 5\p@ + +% **************************************** +% * PARAGRAPHING * +% **************************************** +% +\parindent 12\p@ +\parskip \z@ plus .1\p@ +\partopsep 0\p@ plus 1\p@ +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\clubpenalty=0 +\widowpenalty=10000 + +% **************************************** +% * SKIPS * +% **************************************** +% +\newskip\@indentskip +\newskip\smallindent +\newskip\@footindent +\newskip\@leftskip +\@indentskip=1.25pc +\smallindent=\parindent +\@footindent=\smallindent +\@leftskip=\z@ + + +% **************************************** +% * SECTIONS * +% **************************************** +% +\def\Section{\@startsection{newarticle}{0}{\z@} + {-24\p@ \@plus -12\p@ \@minus -.1\p@} + {12\p@ \@plus 1\p@} + {\raggedright\Large\bfseries}} +\def\SSection{\@startsection{newarticle}{0}{\z@} + {-24\p@ \@plus -12\p@ \@minus -.1\p@} +% {-10\p@ \@plus -5\p@ \@minus -.1\p@} + {12\p@ \@plus 1\p@} + {\raggedright\Large\bfseries}[\@title]} +\def\section{%\typeout{** section!}% +\@startsection {section}{1}{\z@} + {-12\p@ \@plus -6\p@ \@minus -.1\p@} + {6\p@} + {\raggedright\large\bfseries}} +\def\subsection{\@startsection{subsection}{2}{\z@} + {-4\p@ \@plus -2\p@ \@minus -.1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\itshape}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@} + {-6\p@ \@plus -3\p@ \@minus -1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\it}} +\def\paragraph{\@startsection{paragraph}{4}{\z@} + {12\p@ \@plus 2.25\p@ \@minus -1\p@} + {-0.5em} + {\normalsize\bfseries}} +\def\subparagraph{\@startsection{subparagraph}{5}{\z@} + {12\p@ \@plus 2.25\p@ \@minus 1\p@} + {-0.5em} + {\normalsize\it}} +\setcounter{secnumdepth}{-1} +% +\def\appendix{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}}} + +% **************************************** +% * PARTS & SECTIONS NUMBERS * +% **************************************** +% +\newcounter{newarticle} +\@newctr{section}[newarticle] +\def\thenewarticle {\Alph{newarticle}} + +% **************************************** +% * LISTS * +% **************************************** +% +\leftmargini \@indentskip +\leftmarginii 1pc +\leftmarginiii 1pc +\leftmarginiv 1pc +\leftmarginv 1pc +\leftmarginvi 1pc +\leftmargin\leftmargini +\labelsep 0.5em +\labelwidth\leftmargini\advance\labelwidth-\labelsep +% +% label macros for Range-Left and Range-Right labels +\def\makeRLlabel#1{\rlap{#1}\hss} +\def\makeRRlabel#1{\hss\llap{#1}} +% +\def\@listI{\leftmargin\leftmargini + \parsep \z@ + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \itemsep \z@ \@plus .1\p@ +} +\let\@listi\@listI +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \itemsep \z@ \@plus .1\p@ +} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \partopsep \z@ + \itemsep \topsep +} +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep +} +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep +} +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep +} +% +% ITEMIZE +\def\itemize{\ifnum \@itemdepth >3 \@toodeep + \else \advance\@itemdepth \@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \list{\csname\@itemitem\endcsname}% + {\let\makelabel\makeRRlabel}% + \fi} +\def\labelitemi{$\bullet$} +\def\labelitemii{--} +\def\labelitemiii{$\cdot$} +\def\labelitemiv{*} +% +% ENUMERATE with optional argument to set left margin... +\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \fi + \@ifnextchar [{\@enumeratetwo}{\@enumerateone}% +} +\def\@enumeratetwo[#1]{% + \list{\csname label\@enumctr\endcsname}% + {\settowidth\labelwidth{[#1]} + \leftmargin\labelwidth \advance\leftmargin\labelsep + \usecounter{\@enumctr} + \let\makelabel\makeRRlabel} +} +\def\@enumerateone{% + \list{\csname label\@enumctr\endcsname}% + {\usecounter{\@enumctr} + \let\makelabel\makeRRlabel}} +% +\def\labelenumi{\theenumi} +\def\theenumi{\arabic{enumi}.} +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} +% ARRAY AND TABULAR +% +\arraycolsep 5\p@ +\tabcolsep 6\p@ +\arrayrulewidth .5\p@ +\doublerulesep 1.5\p@ + +% **************************************** +% * TITLES AND ABSTRACT * +% **************************************** +% + +%% Volume Number (ie Year - 1990) +\def\BASKvol#1{\gdef\BASK@vol{#1}} +\BASKvol{?} + +%% Issue Number (ie Month/2, roughly) +\def\BASKno#1{\gdef\BASK@no{#1}} +\BASKno{?} + +% Editor, Star form for Guest editor +\def\BASKed{\@ifstar{\BASK@ed{Guest }}{\BASK@ed{}}} +\def\BASK@ed#1#2{\gdef\BASK@editor{#1Editor: #2}} +\BASKed{????????} + +%% Year (4 digits) +\def\BASKyear#1{\gdef\thisyear{#1}} +\BASKyear{????} + +% Month (as a Word) +\def\BASKmonth#1{\gdef\thismonth{#1}} +\BASKmonth{?????} + +\def\makeBSKtitle{\par + \begingroup + \vspace*{-\headheight}% + \@maketitle + \bigskip\hrule\bigskip + \thispagestyle{plain} + \endgroup + \let\maketitle\relax + \let\@maketitle\relax +} +\newbox\BSKbox +\def\@maketitle{% + \centerline{\BASK@titleline}% + \medskip + \hbox to \textwidth{\bfseries The Annals of the UK \TeX\ Users + Group\hfill \BASK@editor\hfill Vol.~\BASK@vol\ No.~\BASK@no}% + \smallskip\hbox to \textwidth{\bfseries ISSN 1354--5930 + \hfill \thismonth\ \thisyear}% + \medskip + \noindent\ignorespaces + \BASK@headparone} + +% The frontmatter environment should contain a sequence of article +% environments that are run into two columns. It inserts the masthead +% across both columns, and the table of contents at the start of +% column one. +\def\frontmatter{% + \vspace*{-1cm}% Would make more sense to incorporate this into + % \maketitle, but leave it like this for compat. + \begin{multicols}{2}[\makeBSKtitle]% + \tableofcontents} +\def\endfrontmatter{% + \end{multicols}} + + +% The Journal title command. +% You probably only want to change this if you want to use a design-size +% font rather than let \scaletowidth scale for some special issue. +\def\BASKtitle#1{\gdef\BASK@titleline{#1}} +\let\scaletowidth=\resizebox% added by Sean K. Harbour for Textures +\BASKtitle{% + \bfseries + \scaletowidth{\textwidth}{!}{% modified by Sean K. Harbour + B\,a\,s\,k\,e\,r\,v\,i\,l\,l\,e}} + + +% The first paragraph. Needs to be reset if a special issue used a +% different font set. +\def\BASKheadparone#1{\gdef\BASK@headparone{#1}} +\BASKheadparone{% +\BV\ is set in Monotype +Baskerville, with Computer Modern Typewriter for literal +text, and printed on a Xerox Docutech. Production and distribution is +undertaken in Cambridge by Robin Fairbairns. } + +\def\and{\end{tabular}\vskip 6pt\par + \begin{tabular}[t]{@{}l@{}}} +% +\def\abstract{\@abstract} +\def\endabstract{\end{quote}} +\def\@abstract{\subsection*{Summary}\begin{quote}} + +% **************************************** +% * PAGE STYLES * +% **************************************** +% +\mark{{}{}} +\gdef\@author{} +\def\author{\@ifnextchar [{\@authortwo}{\@authorone}} +\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}} +\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}} +\gdef\@shortauthor{Dummy Author} +\gdef\@title{} +\gdef\@longtitle{} +\def\title{\@ifnextchar [{\@titletwo}{\@titleone}} +\def\@titletwo[#1]#2{\gdef\@title{#1}\gdef\@longtitle{#2}} +\def\@titleone#1{\gdef\@title{#1}\gdef\@longtitle{#1}} +\gdef\@longtitle{Dummy Title} + +% +% \ps@empty defined in LATEX.TEX +% +\def\ps@plain{\let\@mkboth\markboth + \def\@oddhead{} + \def\@evenhead{} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} +\def\ps@headings{\let\@mkboth\markboth + \def\@oddhead{\hfill\emph{\@title}\hfill} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenhead{\it Baskerville \hfill + Volume \BASK@vol, Number \BASK@no} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddhead{\it\@shortauthor \hfill \@title} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenhead{\it Baskerville \hfill + Volume \BASK@vol, Number \BASK@no} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} + \def\sectionmark##1{} + \def\subsectionmark##1{}} + +% **************************************** +% * TABLE OF CONTENTS, ETC. * +% **************************************** +% +\def\@pnumwidth{1.4pc} +\def\@tocrmarg {2pc} +\def\@dotsep{10} +\setcounter{tocdepth}{0} +%\def\tableofcontents{\@restonecolfalse +% \if@twocolumn\@restonecoltrue\onecolumn\fi +% \section*{Contents} \@starttoc{toc} +% \if@restonecol\twocolumn\fi \par\vspace{12\p@}} +\def\tableofcontents{\Section*{Contents}\@starttoc{toc}} +\def\l@part#1#2{\addpenalty{-\@highpenalty} + \addvspace{2.25em \@plus 1\p@} + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\normalsize\rm + \leavevmode \hspace*{3pc} + #1\hfil \hbox to\@pnumwidth{\hss \ }}\par + \nobreak \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}\endgroup} +\def\dotfil{% + \cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfil\kern\z@} +\def\l@newarticle#1#2{\addpenalty{\@secpenalty} +% \addvspace{1.0em \@plus 1\p@} + \@tempdima 1.5em % width of box holding section number + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode + #1\dotfil \hbox to\@pnumwidth{\hss #2}\par + \endgroup} +\def\l@section{\@dottedtocline{1}{2em}{1.5em}} +\def\l@subsection{\@dottedtocline{2}{2.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\def\listoffigures{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Figures\@mkboth{List of Figures}{List of Figures}} + \@starttoc{lof} \if@restonecol\twocolumn\fi} +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\def\listoftables{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Tables\@mkboth{List of Tables}{List of Tables}} + \@starttoc{lot} \if@restonecol\twocolumn\fi} +\let\l@table\l@figure + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% +\def\thebibliography#1{\section*{\refname} + \small +\list + {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \usecounter{enumiv}% + \let\p@enumiv\@empty + \def\theenumiv{\arabic{enumiv}}}% + \def\newblock{\hskip .11em plus.33em minus.07em}% + \parskip\z@ \@plus .1pt\relax + \clubpenalty4000\widowpenalty4000\sfcode`\.=1000\relax} +\def\refname{References} +\def\endthebibliography{% + \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% + \endlist} + +\setcounter{topnumber}{2} +\def\topfraction{.9} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.9} +\setcounter{totalnumber}{3} +\def\textfraction{.1} +\def\floatpagefraction{.75} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.9} +\def\dblfloatpagefraction{.75} + +\long\def\@makecaption#1#2{\vskip 6\p@ + \setbox\@tempboxa\hbox{\small{\bfseries #1.} #2} + \ifdim \wd\@tempboxa >.8\hsize + \hbox to\hsize{% + \hfill\parbox{.8\hsize}{\small{\bfseries #1.} #2\par}\hfill} + \else + \hbox to\hsize{\hfill\box\@tempboxa\hfill} + \fi + \vskip 6\p@ +} + + +% --- ----------------------------------------------------------------- +% --- Shorthands for non-English abbreviations and words. +% --- ----------------------------------------------------------------- + +\def\foreign{\em} +\def\etc{{\foreign etc.}} % etc. +\def\eg{{\foreign e.g.~}\ignorespaces} % e.g. +\def\egc{{\foreign e.g.,~}\ignorespaces} % e.g., +\def\ie{{\foreign i.e.~}\ignorespaces} % i.e. +\def\iec{{\foreign i.e.,~}\ignorespaces} % i.e., + +% --- ----------------------------------------------------------------- +% --- Tex-related mnemonics. +% --- ----------------------------------------------------------------- + + +\def\La{\protect\p@La} +\def\p@La{L% + {\setbox0\hbox{T}% + \setbox2\vbox to\ht0{\kern.07ex\hbox{% + \csname S@\f@size\endcsname + \math@fontsfalse + \fontsize\sf@size\z@\selectfont + A}% + \vss}% + \kern-.5\wd2 + \box2 + }} +\def\AllTeX{(\La)\TeX} +\def\AmSTeX{% + $\mathcal{A}\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}% + \kern-.125em S$\TeX} +\def\LamsTeX{$\mathcal{L}\mathcal{A}% +\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em S$\TeX} +\def\BibTeX{{\rmfamily B\kern-.05em\textsc{i\kern-.025em b}\kern-.08em\TeX}} +\def\INRStex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} +\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} +\def\LAMSTeX{L\kern -0.4 em \raise 0.3 ex \hbox {$\scriptstyle \mathcal{A}$}% + \kern -0.25 em \lower 0.4 ex \hbox {$\cal M$}% + \kern -0.1 em \hbox {$\mathcal{S}$}-\TeX} +\def\AMSLaTeX{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em + $\mathcal{S}$-\LaTeX}} +\def\AMS{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em + $\mathcal{S}$}} +\def\MakeIndex{{\itshape MakeIndex}} +\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +\def\PiCTeX{\PiC\kern-.11em\TeX} +% SliTeX from the SliTeX Documentation +\def\SLiTeX{% + S\kern-.065em L\kern-.18em\raise.32ex\hbox{\textsc{i}}% + \kern-.03em\TeX} +\let\SliTeX\SLiTeX +\def\POBox{P.\thinspace O.~Box } +\def\TeXhax{\TeX hax} +\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT} +\def\TUB{\emph{TUGboat}} +\def\DVI{\texttt{dvi}} +\def\VF{\textsc{vf}} +\def\BV{\emph{Baskerville}} +\def\UKTUG{UK \TeX\ Users Group} +\def\ukt{{\footnotesize UK}TUG} +\let\shortuktug\ukt +\def\PS{\textsc{PostScript}} +\newcommand{\payuk}{UK TeX Users Group} +\newcommand{\Newline}{\\[0.7\baselineskip]} +\newcommand{\FullLine}[1]{% + \makebox[\linewidth][l]{#1\hrulefill}\Newline} +\newcommand{\HalfLine}[1]{% + \makebox[0.5\linewidth][l]{#1\hrulefill}} + +\def\Dash{---} + + +% --- ----------------------------------------------------------------- +% --- Additional commands. +% --- ----------------------------------------------------------------- + +\let\maketitle\make@articletitle +\def\make@articletitle{\Section[\@title]{\@longtitle}} + +% article is for smaller articles with single-column titles. +\def\article{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \Section[\@title]{\@longtitle}% + \let\maketitle\relax + \markright{\@shortauthor\hfill\@longtitle}% +} +% +% Article is when the title is double column +\def\Article{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \begin{multicols}{2}[\SSection{\@longtitle}]% + \let\maketitle\relax + \markright{\@shortauthor\hfill\@longtitle}% +} +% FAQ version of article ? +\def\FArticle{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \begin{multicols}{2}[\Section*{\@longtitle}]% +} +\def\endarticle{\@signature + \gdef\@author{\mbox{}}} + +\def\endArticle{\@signature + \gdef\@author{\mbox{}}\end{multicols}% +} +\let\endFArticle\endArticle +\def\newarticlemark#1{} + +% Use like a 4 column tabular but with no preamble argument. +\def\submissiondates{% + \begin{center}% + \begin{tabular}{ll@{}l@{}l} + \BASK@subtitle{Issue}& + \BASK@subtitle{Submit material\\ for publication}& + \BASK@subtitle{Submit last-\\minute notices}& + \BASK@subtitle{Anticipated\\ posting date}\\[2pt]} +\def\endsubmissiondates{% + \end{tabular} + \end{center}} + + +% rotated italic head on submission dates table +\def\BASK@subtitle#1{% + \kern-5pt\relax + \rotatebox{45}{\itshape\begin{tabular}[b]{@{}l@{}}#1\end{tabular}}} + +% --- Macros for cross-referencing tables and figures. + +\def\figref#1{Figure~\ref{#1}} +\def\tabref#1{Table~\ref{#1}} + +% --- Output the attribution at the end of an article. +\def\emptysig{} +\def\@signature{% + \ifx\@author\emptysig\else + \begin{flushright}\begin{tabular}{@{}r@{}}\@author\end{tabular}% + \end{flushright}\fi} + +\def\signature#1{\begin{flushright} + \begin{tabular}{@{}r@{}}#1\end{tabular}% + \end{flushright}} + +% **************************************** +% * INITIALIZATION * +% **************************************** +% +\ps@headings +\pagenumbering{arabic} +\sloppy +\flushbottom +\frenchspacing + +%\extrarowheight2\p@ +\setlength{\multicolsep}{6\p@} +\let\sl\it +% no rule in footcols + +\def\@makecol@ftn{% + \vskip \skip\footins + \footnoterule + \footnotesize + \multicolsep\z@\relax + \hsize\textwidth + \@parboxrestore + % {\showoutput\batchmode\showbox\footins}% + \raggedcolumns + \bgroup \columnseprule 0\p@ + \begin{multicols}{\the\ftn@col@number}% + \unvbox \footins + \end{multicols}% + \egroup +} +% +% available for inter-article dinglines +% +\def\Dings{\nopagebreak{\footnotesize\dingline{167}}} +% +\@twosidetrue \@mparswitchtrue +\endinput +%% diff --git a/usergrps/uktug/baskervi/8_3/bv83.aux b/usergrps/uktug/baskervi/8_3/bv83.aux new file mode 100644 index 0000000000..0c9248903e --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.aux @@ -0,0 +1,121 @@ +\relax +\bibstyle{plain} +\@writefile{toc}{\contentsline {newarticle}{Snippets}{1}} +\@writefile{toc}{\contentsline {section}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ consultant sought}{1}} +\@writefile{toc}{\contentsline {section}{Committee members sought: a message from Philip Taylor}{1}} +\@writefile{toc}{\contentsline {newarticle}{Introduction to \textsl {\LaTeX \ for the rest of us}}{2}} +\citation{DEK84} +\citation{DEK79} +\citation{DEK68} +\citation{DEK84} +\citation{BR80} +\citation{MC96} +\citation{LL85} +\@writefile{toc}{{\footnotesize \dingline {167}}} +\@writefile{toc}{{\leftline {\textbf {\LaTeX \ for the rest of us}}}} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {1\hfil }First steps}{3}} +\@writefile{toc}{\contentsline {section}{A brief history}{3}} +\@writefile{toc}{\contentsline {subsection}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m }{3}} +\@writefile{toc}{\contentsline {subsection}{\textsf {Scribe}}{3}} +\@writefile{toc}{\contentsline {subsection}{\LaTeX }{3}} +\citation{DEK89} +\citation{FM90} +\citation{FMCR92} +\citation{DCCRFM98} +\@writefile{toc}{\contentsline {subsection}{\LaTeXe }{4}} +\@writefile{toc}{\contentsline {subsection}{A proviso}{4}} +\@writefile{toc}{\contentsline {section}{A note on pronunciation}{4}} +\@writefile{toc}{\contentsline {section}{Let's try it}{5}} +\@writefile{toc}{\contentsline {section}{Elementary typography}{5}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{6}} +\newlabel{ishmael}{{1}{6}} +\citation{LL85} +\citation{LL94} +\citation{MGFMAS94} +\@writefile{toc}{\contentsline {section}{In the beginning}{7}} +\@writefile{toc}{\contentsline {section}{Classes of style, flair and panache}{7}} +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Length and meaning of horizontal lines}}{8}} +\newlabel{dashit}{{1}{8}} +\@writefile{toc}{\contentsline {section}{More information}{8}} +\@writefile{toc}{\contentsline {section}{Some back-tracking}{8}} +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Some of the default range of classes and their options}}{9}} +\newlabel{range}{{2}{9}} +\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces The range of page size options}}{9}} +\newlabel{size}{{3}{9}} +\newlabel{commands}{{1}{9}} +\@writefile{toc}{\contentsline {section}{Trying to correct mistakes}{9}} +\@writefile{toc}{\contentsline {section}{Hints}{10}} +\citation{RM80} +\citation{PL92} +\citation{DEK-cm} +\citation{DEK86} +\citation{DEK-cm} +\citation{FM89} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {2\hfil }More things you should know}{11}} +\@writefile{toc}{\contentsline {section}{Changing font}{11}} +\@writefile{toc}{\contentsline {section}{Some history (again)}{11}} +\@writefile{toc}{\contentsline {section}{What fonts do we have?}{11}} +\@writefile{toc}{\contentsline {section}{Bigger or smaller}{12}} +\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces font styles readily available}}{13}} +\newlabel{tfonts}{{4}{13}} +\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Carrolliginian confusion -- totally irrelevant here}}{13}} +\newlabel{talice}{{5}{13}} +\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces the sizes available}}{13}} +\newlabel{tsize}{{6}{13}} +\@writefile{toc}{\contentsline {section}{Accumulation}{14}} +\@writefile{toc}{\contentsline {section}{Accenting the positive}{14}} +\citation{DEK84} +\citation{JB91} +\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces the so-called `national' characters}}{15}} +\newlabel{tnatchar}{{7}{15}} +\@writefile{toc}{\contentsline {section}{Hy-phen-a-tion}{15}} +\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces the diacriticals}}{16}} +\newlabel{tdiacrit}{{8}{16}} +\@writefile{toc}{\contentsline {chapter}{\hbox to\@tempdima {3\hfil }Environmentally aware}{17}} +\newlabel{env}{{3}{17}} +\@writefile{toc}{\contentsline {section}{Environments}{17}} +\@writefile{toc}{\contentsline {section}{Quoting}{17}} +\@writefile{toc}{\contentsline {section}{Verse or worse}{17}} +\@writefile{toc}{\contentsline {section}{Units -- a digression}{18}} +\newlabel{units}{{3}{18}} +\@writefile{toc}{\contentsline {subsection}{The point}{18}} +\@writefile{toc}{\contentsline {section}{Lists}{18}} +\@writefile{lot}{\contentsline {table}{\numberline {9}{\ignorespaces Units used in \LaTeX \ to specify dimensions}}{19}} +\newlabel{tunit}{{9}{19}} +\@writefile{toc}{\contentsline {subsubsection}{Itemizing}{19}} +\@writefile{toc}{\contentsline {subsubsection}{Enumerating}{19}} +\@writefile{toc}{\contentsline {subsubsection}{Describing}{19}} +\@writefile{toc}{\contentsline {section}{Read my lips}{19}} +\@writefile{toc}{\contentsline {section}{One paragraph at a time}{20}} +\@writefile{toc}{\contentsline {subsection}{More to come}{20}} +\@writefile{toc}{\contentsline {section}{Sections and the like}{20}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces The sectional hierarchy}}{21}} +\newlabel{tsect}{{2}{21}} +\@writefile{toc}{\contentsline {section}{Table of contents}{21}} +\bibdata{course} +\bibcite{WB05}{1} +\bibcite{JB91}{2} +\bibcite{DCCRFM98}{3} +\bibcite{MC96}{4} +\bibcite{MGFMAS94}{5} +\bibcite{DEK68}{6} +\bibcite{DEK79}{7} +\bibcite{DEK84}{8} +\bibcite{DEK-cm}{9} +\bibcite{DEK86}{10} +\bibcite{DEK89}{11} +\bibcite{LL85}{12} +\bibcite{LL94}{13} +\bibcite{PL92}{14} +\bibcite{RM80}{15} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Sub-divisions from Section to Subparagraph}}{22}} +\newlabel{sectioning}{{3}{22}} +\@writefile{toc}{\contentsline {section}{Other background activity}{22}} +\bibcite{FMCR92}{16} +\bibcite{FM89}{17} +\bibcite{FM90}{18} +\bibcite{BR80}{19} +\@writefile{toc}{{\footnotesize \dingline {167}}} +\@writefile{toc}{\contentsline {newarticle}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ Live 4 --- enchancement volunteers needed}{23}} +\@writefile{toc}{\contentsline {newarticle}{UKTUG Information}{24}} +\@writefile{toc}{\contentsline {subsection}{Obtaining T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ on CD-ROM}{24}} diff --git a/usergrps/uktug/baskervi/8_3/bv83.bbl b/usergrps/uktug/baskervi/8_3/bv83.bbl new file mode 100644 index 0000000000..e2f46227e9 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.bbl @@ -0,0 +1,102 @@ +\begin{thebibliography}{10} + +\bibitem{WB05} +William Blake. +\newblock {\em The {C}omplete {P}oems}. +\newblock Penguin Books, 1805. + +\bibitem{JB91} +Johannes Braams. +\newblock Babel, a multilingual style-option system for use with {\LaTeX}'s + standard document styles. +\newblock {\em TUGboat}, 12(2), 1991. + +\bibitem{DCCRFM98} +David Carlisle, Chris Rowley, and Frank Mittelbach. +\newblock The \latex3{} programming language -- a proposed system for \tex{} + macro programming. +\newblock {\em TUGboat}, 18(4), 1997. + +\bibitem{MC96} +Malcolm Clark. +\newblock Structural defects: form and content in electronic publishing. +\newblock {\em Information Design Journal}, 8(2), 1996. + +\bibitem{MGFMAS94} +Michel Goossens, Frank Mittelbach, and Alexander Samarin. +\newblock {\em The {\LaTeX} Companion}. +\newblock Addison Wesley, Reading, Mass., 1994. + +\bibitem{DEK68} +Donald Knuth. +\newblock {\em The Art of Computer Programming}. +\newblock Addison Wesley, Reading, Mass., 1968. + +\bibitem{DEK79} +Donald Knuth. +\newblock {\em {\TeX} and Metafont}. +\newblock American Mathematical Society and Digital Press, Providence, RI., + 1979. + +\bibitem{DEK84} +Donald Knuth. +\newblock {\em The {\TeX} book}. +\newblock Addison Wesley, Reading, Mass., 1984. + +\bibitem{DEK-cm} +Donald Knuth. +\newblock {\em Computer Modern Typefaces}. +\newblock Addison Wesley, Reading, Mass., 1986. + +\bibitem{DEK86} +Donald Knuth. +\newblock {\em The Metafont book}. +\newblock Addison Wesley, Reading, Mass., 1986. + +\bibitem{DEK89} +Donald Knuth. +\newblock The new versions of {\TeX} and {\MF}. +\newblock {\em TUGboat}, 10(3), 1989. + +\bibitem{LL85} +Leslie Lamport. +\newblock {\em \LaTeX\ A document preparation system}. +\newblock Addison Wesley, Reading, Mass., 1985. + +\bibitem{LL94} +Leslie Lamport. +\newblock {\em \LaTeX\ A document preparation system}. +\newblock Addison Wesley, Reading, Mass., 2 edition, 1994. + +\bibitem{PL92} +Paul Luna. +\newblock {\em Understanding type for desktop publishing}. +\newblock Blueprint, London, 1992. + +\bibitem{RM80} +Ruari McLean. +\newblock {\em The Thames and Hudson Manual of Typography}. +\newblock Thames and Hudson, 1980. + +\bibitem{FMCR92} +Frank Mittelbach and Chris Rowley. +\newblock {\LaTeX}\,2.09 $\hookrightarrow$ {\LaTeX3}. +\newblock {\em TUGboat}, 13(3), 1992. + +\bibitem{FM89} +Frank Mittelbach and Rainer Sch{\"o}pf. +\newblock A new font selection scheme for {\TeX} macro packages -- the basic + macros. +\newblock {\em TUGboat}, 10(2), 1989. + +\bibitem{FM90} +Frank Mittelbach and Rainer Sch{\"o}pf. +\newblock Towards {\LaTeX}\,2.10. +\newblock {\em TUGboat}, 11(3), 1990. + +\bibitem{BR80} +Brian Reid. +\newblock {\em Scribe: A document specification language and its compiler}. +\newblock PhD thesis, Carnegie-Mellon University, 1980. + +\end{thebibliography} diff --git a/usergrps/uktug/baskervi/8_3/bv83.blg b/usergrps/uktug/baskervi/8_3/bv83.blg new file mode 100644 index 0000000000..1103636728 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99c (Web2c 7.2) +The top-level auxiliary file: bv83.aux +The style file: plain.bst +Reallocated wiz_functions (elt_size=4) to 3000 items from 0. +Database file #1: course.bib +Warning--can't use both author and editor fields in WB05 +You've used 19 entries, + 2118 wiz_defined-function locations, + 597 strings with 5465 characters, +and the built_in function-call counts, 4384 in all, are: += -- 407 +> -- 173 +< -- 0 ++ -- 80 +- -- 52 +* -- 227 +:= -- 801 +add.period$ -- 57 +call.type$ -- 19 +change.case$ -- 72 +chr.to.int$ -- 0 +cite$ -- 20 +duplicate$ -- 211 +empty$ -- 383 +format.name$ -- 52 +if$ -- 902 +int.to.chr$ -- 0 +int.to.str$ -- 19 +missing$ -- 29 +newline$ -- 98 +num.names$ -- 38 +pop$ -- 101 +preamble$ -- 1 +purify$ -- 64 +quote$ -- 0 +skip$ -- 130 +stack$ -- 0 +substring$ -- 104 +swap$ -- 20 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 54 +warning$ -- 1 +while$ -- 38 +width$ -- 21 +write$ -- 210 +(There was 1 warning) diff --git a/usergrps/uktug/baskervi/8_3/bv83.log b/usergrps/uktug/baskervi/8_3/bv83.log new file mode 100644 index 0000000000..4ce2eeb9df --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.log @@ -0,0 +1,448 @@ +This is TeX, Version 3.14159 (Web2c 7.2) (format=latex 1998.7.25) 27 JUL 1998 10:08 +**bv83 +(bv83.tex +LaTeX2e <1998/06/01> +Babel <v3.6j> and hyphenation patterns for english, french, german, dumylang, n +ohyphenation, loaded. +(baskerv.cls +Document Class: baskerv 1997/05/07 v3.12a Baskerville newsletter class +(t://texmf/tex/latex/base/article.cls +Document Class: article 1998/05/05 v1.3y Standard LaTeX document class +(t://texmf/tex/latex/base/size10.clo +File: size10.clo 1998/05/05 v1.3y Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (t://texmf/tex/latex/base/latexsym.sty +Package: latexsym 1996/11/20 v2.2d Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 85. +) +(t://texmf/tex/latex/tools/array.sty +Package: array 1998/05/13 v2.3l Tabular extension package (FMi) +\col@sep=\dimen103 +\extrarowheight=\dimen104 +\NC@list=\toks14 +\extratabsurround=\skip43 +\backup@length=\skip44 +) (t://texmf/tex/latex/tools/longtable.sty +Package: longtable 1998/05/13 v4.09 Multi-page Table package (DPC) +\LTleft=\skip45 +\LTright=\skip46 +\LTpre=\skip47 +\LTpost=\skip48 +\LTchunksize=\count87 +\LTcapwidth=\dimen105 +\LT@head=\box26 +\LT@firsthead=\box27 +\LT@foot=\box28 +\LT@lastfoot=\box29 +\LT@cols=\count88 +\LT@rows=\count89 +\c@LT@tables=\count90 +\c@LT@chunks=\count91 +\LT@p@ftn=\toks15 +) (ltx-logo.sty +LaTeX Info: Redefining \LaTeX on input line 19. +) (t://texmf/tex/latex/tools/xspace.sty +Package: xspace 1997/10/13 v1.06 Space after command names (DPC) +) +(t://texmf/tex/latex/misc/url.sty +Package: url 1996/10/19 ver 1.2 Verb mode for urls, email addresses, and file + names +) (t://texmf/tex/latex/base/fontenc.sty +Package: fontenc 1998/06/12 v1.9p Standard LaTeX package + +(t://texmf/tex/latex/base/t1enc.def +File: t1enc.def 1998/06/12 v1.9p Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 81. +)) (t://texmf/tex/latex/ae/ae.sty +Package: ae 1997/11/17 0.9 Almost European Computer Modern +) +LaTeX Font Info: Try loading font information for T1+mbvx on input line 156. + + +(t://texmf/tex/latex/psnfss/t1mbvx.fd +File: t1mbvx.fd 1997/09/30 Fontinst v1.6 font definitions for T1/mbvx. +) +(t://texmf/tex/latex/graphics/graphics.sty +Package: graphics 1998/05/27 v1.0h Standard LaTeX Graphics (DPC,SPQR) + +(t://texmf/tex/latex/graphics/trig.sty +Package: trig 1994/10/16 v1.08 sin cos tan (DPC) +) +(t://texmf/tex/latex/texlive/graphics.cfg) +Package graphics Info: Driver file: dvips.def on input line 85. + +(t://texmf/tex/latex/graphics/dvips.def +File: dvips.def 1998/05/03 v3.0f Driver-dependant file (DPC,SPQR) +)) +(t://texmf/tex/latex/graphics/color.sty +Package: color 1998/05/27 v1.0g Standard LaTeX Color (DPC) + (t://texmf/tex/latex/texlive/color.cfg) +Package color Info: Driver file: dvips.def on input line 130. +(t://texmf/tex/latex/graphics/dvipsnam.def +File: dvipsnam.def 1998/05/03 v3.0f Driver-dependant file (DPC,SPQR) +)) +(t://texmf/tex/latex/tools/multicol.sty +Package: multicol 1998/01/19 v1.5q multicolumn formatting (FMi) +\c@tracingmulticols=\count92 +\mult@box=\box30 +\multicol@leftmargin=\dimen106 +\c@unbalance=\count93 +\c@collectmore=\count94 +\doublecol@number=\count95 +\multicoltolerance=\count96 +\multicolpretolerance=\count97 +\full@width=\dimen107 +\page@free=\dimen108 +\premulticols=\dimen109 +\postmulticols=\dimen110 +\multicolsep=\skip49 +\multicolbaselineskip=\skip50 +\partial@page=\box31 +\last@line=\box32 +\mult@rightbox=\box33 +\mult@grightbox=\box34 +\mult@gfirstbox=\box35 +\mult@firstbox=\box36 +\@tempa=\box37 +\@tempa=\box38 +\@tempa=\box39 +\@tempa=\box40 +\@tempa=\box41 +\@tempa=\box42 +\@tempa=\box43 +\@tempa=\box44 +\@tempa=\box45 +\@tempa=\box46 +\@tempa=\box47 +\@tempa=\box48 +\@tempa=\box49 +\@tempa=\box50 +\@tempa=\box51 +\@tempa=\box52 +\@tempa=\box53 +\c@columnbadness=\count98 +\c@finalcolumnbadness=\count99 +\last@try=\dimen111 +\multicolovershoot=\dimen112 +\multicolundershoot=\dimen113 +\mult@nat@firstbox=\box54 +) (t://texmf/tex/latex/mflogo/mflogo.sty +Package: mflogo 1995/12/04 v1.5c LaTeX package for METAFONT and MetaPost logos +) (t://texmf/tex/latex/psnfss/pifont.sty +Package: pifont 1998/01/07 PSNFSS v.7 Pi font support : S Rahtz +LaTeX Font Info: Try loading font information for U+pzd on input line 59. + (t://texmf/tex/latex/psnfss/upzd.fd +File: upzd.fd 1997/09/30 font definitions for U/pzd. +) +LaTeX Font Info: Try loading font information for U+psy on input line 60. + +(t://texmf/tex/latex/psnfss/upsy.fd +File: upsy.fd 1997/09/30 font definitions for U/psy. +)) (t://texmf/tex/latex/misc/relsize.sty +Package: relsize 1995/03/15 ver 2.0 +) +LaTeX Info: Redefining \rm on input line 215. +LaTeX Info: Redefining \sf on input line 216. +LaTeX Info: Redefining \tt on input line 217. +LaTeX Info: Redefining \bf on input line 218. +LaTeX Info: Redefining \it on input line 219. +LaTeX Info: Redefining \sl on input line 220. +LaTeX Info: Redefining \sc on input line 221. +\@indentskip=\skip51 +\smallindent=\skip52 +\@footindent=\skip53 +\@leftskip=\skip54 +\c@newarticle=\count100 +\BSKbox=\box55 +) +(clark.sty (t://texmf/tex/latex/tools/theorem.sty +Package: theorem 1995/11/23 v2.2c Theorem extension package (FMi) +\theorem@style=\toks16 +\theorem@bodyfont=\toks17 +\theorempreskipamount=\skip55 +\theorempostskipamount=\skip56 + +(t://texmf/tex/latex/tools/thp.sty +File: thp.sty 1995/11/23 v2.2c Theorem extension package (FMi) +)) (t://texmf/tex/latex/base/alltt.sty +Package: alltt 1997/06/16 v2.0g defines alltt environment +) +(t://texmf/tex/latex/carlisle/dotlessj.sty +Package: dotlessj 1997/09/11 v0.02 dotless j package (DPC) +) +\c@chapter=\count101 +\c@question=\count102 +) (bv83.aux) +\openout1 = `bv83.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 27. +LaTeX Font Info: ... okay on input line 27. +LaTeX Info: Redefining \j on input line 27. +LaTeX Info: Redefining \jmath on input line 27. +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <10> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 31. +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <12> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 31. + (bv83.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 1. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 1. +LaTeX Font Info: Try loading font information for U+lasy on input line 1. + +(t://texmf/tex/latex/base/ulasy.fd +File: ulasy.fd 1996/11/20 v2.2dLaTeX symbol font definitions +) +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <7> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 6. +) +\tf@toc=\write3 +\openout3 = `bv83.toc'. + + (editorial.tex +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <10.95> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 5. +LaTeX Font Info: Try loading font information for T1+aett on input line 20. + +(t://texmf/tex/latex/ae/t1aett.fd +File: t1aett.fd 1997/11/16 Font definitions for T1/aett. +) [1 + +] +LaTeX Font Info: Font shape `T1/mbvx/bx/sl' in size <12> not available +(Font) Font shape `T1/mbvx/b/sl' tried instead on input line 70. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 70. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 70. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 70. +LaTeX Font Info: Font shape `T1/mbvx/bx/sl' in size <8> not available +(Font) Font shape `T1/mbvx/b/sl' tried instead on input line 70. +) [2] +LaTeX Font Info: Try loading font information for T1+pjn on input line 48. + +(e:/texmf/tex/latex/psnfss/pjn/t1pjn.fd +File: t1pjn.fd 1998/05/21 Fontinst v1.7 font definitions for T1/pjn. +) +LaTeX Font Info: Calculating math sizes for size <30> on input line 48. + + +LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <30> not available +(Font) size <24.88> substituted on input line 48. + + +LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <15> not available +(Font) size <14.4> substituted on input line 48. + + +LaTeX Font Warning: Font shape `OML/cmm/m/it' in size <30> not available +(Font) size <24.88> substituted on input line 48. + + +LaTeX Font Warning: Font shape `OML/cmm/m/it' in size <15> not available +(Font) size <14.4> substituted on input line 48. + + +LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <30> not available +(Font) size <24.88> substituted on input line 48. + + +LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <15> not available +(Font) size <14.4> substituted on input line 48. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <30> on input line 48. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <20.99991> on input line 48. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <15> on input line 48. + +LaTeX Font Warning: Font shape `U/lasy/m/n' in size <30> not available +(Font) size <24.88> substituted on input line 48. + + +LaTeX Font Warning: Font shape `U/lasy/m/n' in size <15> not available +(Font) size <14.4> substituted on input line 48. + +(first.tex +LaTeX Font Info: Try loading font information for T1+aess on input line 1. + (t://texmf/tex/latex/ae/t1aess.fd +File: t1aess.fd 1997/11/16 Font definitions for T1/aess. +) +LaTeX Font Info: Font shape `T1/aess/m/it' in size <10> not available +(Font) Font shape `T1/aess/m/sl' tried instead on input line 28. + [3] [4] +File: ishmael.eps Graphic file (type eps) + <ishmael.eps> +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <9> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 275. + [5] +[6] [7] +Overfull \hbox (1.90002pt too wide) in paragraph at lines 576--613 +[]$[]$ $[]$ + [] + +[8] [9] + +LaTeX Font Warning: Font shape `T1/aett/bx/n' undefined +(Font) using `T1/aett/m/n' instead on input line 811. + +) [10] (second.tex +LaTeX Font Info: Try loading font information for U+logo on input line 63. + (t://texmf/tex/latex/mflogo/ulogo.fd +File: Ulogo.fd 1995/12/04 v1.5c LaTeX font definitions for METAFONT logo fonts +) +Overfull \vbox (1.37993pt too high) has occurred while \output is active [] + + +[11] +Underfull \hbox (badness 10000) in paragraph at lines 136--137 +[]|\T1/aett/bx/n/10 The quick brown fox comes to the aid of + [] + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 188. + +Underfull \hbox (badness 10000) in paragraph at lines 219--219 +[]\T1/aett/bx/n/10 \textit{The song re-ally \emph{is} \tex-tit{A- + [] + + +Overfull \vbox (1.35498pt too high) has occurred while \output is active [] + + +[12] [13] [14] +LaTeX Font Info: Try loading font information for OML+mbvx on input line 527 +. + (t://texmf/tex/latex/psnfss/omlmbvx.fd +File: omlmbvx.fd +) + +LaTeX Font Warning: Font shape `OML/mbvx/m/n' undefined +(Font) using `OML/cmm/m/it' instead on input line 527. + +[15] +Underfull \hbox (badness 10000) in paragraph at lines 625--625 +[]\T1/aett/bx/n/10 \hyphenation{Tyr-rhenian manu-script manu- + [] + +) [16] (third.tex [17] + +Package multicol Warning: I moved some lines to the next page. +(multicol) Footnotes on page 18 might be wrong on input line 315 +. + + +Overfull \vbox (1.37993pt too high) has occurred while \output is active [] + + +[18] +Underfull \hbox (badness 10000) in paragraph at lines 396--396 +[]\T1/aett/bx/n/10 The back-slash, \verb+\+, in-tro-duces ev-ery in- + [] + +[19] [20] [21]) (bv83.bbl [22]) (plea.tex) [23] (sec.tex +LaTeX Font Info: Font shape `T1/mbvx/bx/n' in size <8> not available +(Font) Font shape `T1/mbvx/b/n' tried instead on input line 6. + +Underfull \hbox (badness 10000) in paragraph at lines 38--45 +\T1/mbvx/m/n/10 Articles may be sub-mit-ted via elec-tronic mail to + [] + + +Underfull \hbox (badness 7981) in paragraph at lines 38--45 +\T1/aett/bx/n/10 baskerville@tex.ac.uk\T1/mbvx/m/n/10 , or on MSDOS-compatible + [] + +) [24] (bv83.aux) + + *File List* + baskerv.cls 1997/05/07 v3.12a Baskerville newsletter class + article.cls 1998/05/05 v1.3y Standard LaTeX document class + size10.clo 1998/05/05 v1.3y Standard LaTeX file (size option) +latexsym.sty 1996/11/20 v2.2d Standard LaTeX package (lasy symbols) + array.sty 1998/05/13 v2.3l Tabular extension package (FMi) +longtable.sty 1998/05/13 v4.09 Multi-page Table package (DPC) +ltx-logo.sty + xspace.sty 1997/10/13 v1.06 Space after command names (DPC) + url.sty 1996/10/19 ver 1.2 Verb mode for urls, email addresses, and f +ile names + fontenc.sty 1998/06/12 v1.9p Standard LaTeX package + t1enc.def 1998/06/12 v1.9p Standard LaTeX file + ae.sty 1997/11/17 0.9 Almost European Computer Modern + t1mbvx.fd 1997/09/30 Fontinst v1.6 font definitions for T1/mbvx. +graphics.sty 1998/05/27 v1.0h Standard LaTeX Graphics (DPC,SPQR) + trig.sty 1994/10/16 v1.08 sin cos tan (DPC) +graphics.cfg + dvips.def 1998/05/03 v3.0f Driver-dependant file (DPC,SPQR) + color.sty 1998/05/27 v1.0g Standard LaTeX Color (DPC) + color.cfg +dvipsnam.def 1998/05/03 v3.0f Driver-dependant file (DPC,SPQR) +multicol.sty 1998/01/19 v1.5q multicolumn formatting (FMi) + mflogo.sty 1995/12/04 v1.5c LaTeX package for METAFONT and MetaPost logos + pifont.sty 1998/01/07 PSNFSS v.7 Pi font support : S Rahtz + upzd.fd 1997/09/30 font definitions for U/pzd. + upsy.fd 1997/09/30 font definitions for U/psy. + relsize.sty 1995/03/15 ver 2.0 + clark.sty + theorem.sty 1995/11/23 v2.2c Theorem extension package (FMi) + thp.sty 1995/11/23 v2.2c Theorem extension package (FMi) + alltt.sty 1997/06/16 v2.0g defines alltt environment +dotlessj.sty 1997/09/11 v0.02 dotless j package (DPC) + ulasy.fd 1996/11/20 v2.2dLaTeX symbol font definitions +editorial.tex + t1aett.fd 1997/11/16 Font definitions for T1/aett. + t1pjn.fd 1998/05/21 Fontinst v1.7 font definitions for T1/pjn. + first.tex + t1aess.fd 1997/11/16 Font definitions for T1/aess. + ishmael.eps Graphic file (type eps) + second.tex + ulogo.fd + omlmbvx.fd + third.tex + bv83.bbl + sec.tex + *********** + + +LaTeX Font Warning: Size substitutions with differences +(Font) up to 5.12pt have occured. + + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + ) +Here is how much of TeX's memory you used: + 1559 strings out of 10919 + 18422 string characters out of 72687 + 89266 words of memory out of 263001 + 4417 multiletter control sequences out of 10000+0 + 109315 words of font info for 97 fonts, out of 200000 for 1000 + 14 hyphenation exceptions out of 1000 + 29i,15n,23p,204b,597s stack positions out of 300i,100n,500p,30000b,4000s + +Output written on bv83.dvi (24 pages, 191236 bytes). diff --git a/usergrps/uktug/baskervi/8_3/bv83.tex b/usergrps/uktug/baskervi/8_3/bv83.tex new file mode 100644 index 0000000000..6d73ede679 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.tex @@ -0,0 +1,85 @@ +\listfiles + +\documentclass{baskerv} + +\usepackage{type1cm} + +\bibliographystyle{plain} + +\BASKvol{8} + +\BASKno{3} + +\BASKed{Sebastian Rahtz} + +\BASKyear{1998} + +\BASKmonth{July} + +\usepackage{clark} + +\renewcommand\textfraction{0.25} + +% + +\InputIfFileExists{fontuse.cfg}{\typeout{Using config file + + fontuse.cfg}}{} + +\begin{document} + + + +\begin{frontmatter} + +\input{editorial} + +\end{frontmatter} + +\newpage + +\addtocontents{toc}{{\protect\footnotesize\protect\dingline{167}}} + +\addtocontents{toc}{{\protect\leftline{\protect\textbf{\protect\LaTeX\ for the rest of us}}}} + +\title{\LaTeX\ for the rest of us} + +\author{Malcolm Clark} + +\begin{multicols}{2}[\LFTROU] + +\input{first} + +\newpage + +\input{second} + +\newpage + +\input{third} + +\bibliography{course} + +\end{multicols} + +\addtocontents{toc}{{\protect\footnotesize\protect\dingline{167}}} +\vfill +\Dings +\vfill + +\input plea +\newpage + + +\input{sec} + +\end{document} + + + + + + + + + diff --git a/usergrps/uktug/baskervi/8_3/bv83.toc b/usergrps/uktug/baskervi/8_3/bv83.toc new file mode 100644 index 0000000000..8777b79349 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/bv83.toc @@ -0,0 +1,50 @@ +\contentsline {newarticle}{Snippets}{1} +\contentsline {section}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ consultant sought}{1} +\contentsline {section}{Committee members sought: a message from Philip Taylor}{1} +\contentsline {newarticle}{Introduction to \textsl {\LaTeX \ for the rest of us}}{2} +{\footnotesize \dingline {167}} +{\leftline {\textbf {\LaTeX \ for the rest of us}}} +\contentsline {chapter}{\hbox to\@tempdima {1\hfil }First steps}{3} +\contentsline {section}{A brief history}{3} +\contentsline {subsection}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m }{3} +\contentsline {subsection}{\textsf {Scribe}}{3} +\contentsline {subsection}{\LaTeX }{3} +\contentsline {subsection}{\LaTeXe }{4} +\contentsline {subsection}{A proviso}{4} +\contentsline {section}{A note on pronunciation}{4} +\contentsline {section}{Let's try it}{5} +\contentsline {section}{Elementary typography}{5} +\contentsline {section}{In the beginning}{7} +\contentsline {section}{Classes of style, flair and panache}{7} +\contentsline {section}{More information}{8} +\contentsline {section}{Some back-tracking}{8} +\contentsline {section}{Trying to correct mistakes}{9} +\contentsline {section}{Hints}{10} +\contentsline {chapter}{\hbox to\@tempdima {2\hfil }More things you should know}{11} +\contentsline {section}{Changing font}{11} +\contentsline {section}{Some history (again)}{11} +\contentsline {section}{What fonts do we have?}{11} +\contentsline {section}{Bigger or smaller}{12} +\contentsline {section}{Accumulation}{14} +\contentsline {section}{Accenting the positive}{14} +\contentsline {section}{Hy-phen-a-tion}{15} +\contentsline {chapter}{\hbox to\@tempdima {3\hfil }Environmentally aware}{17} +\contentsline {section}{Environments}{17} +\contentsline {section}{Quoting}{17} +\contentsline {section}{Verse or worse}{17} +\contentsline {section}{Units -- a digression}{18} +\contentsline {subsection}{The point}{18} +\contentsline {section}{Lists}{18} +\contentsline {subsubsection}{Itemizing}{19} +\contentsline {subsubsection}{Enumerating}{19} +\contentsline {subsubsection}{Describing}{19} +\contentsline {section}{Read my lips}{19} +\contentsline {section}{One paragraph at a time}{20} +\contentsline {subsection}{More to come}{20} +\contentsline {section}{Sections and the like}{20} +\contentsline {section}{Table of contents}{21} +\contentsline {section}{Other background activity}{22} +{\footnotesize \dingline {167}} +\contentsline {newarticle}{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ Live 4 --- enchancement volunteers needed}{23} +\contentsline {newarticle}{UKTUG Information}{24} +\contentsline {subsection}{Obtaining T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m \ on CD-ROM}{24} diff --git a/usergrps/uktug/baskervi/8_3/clark.sty b/usergrps/uktug/baskervi/8_3/clark.sty new file mode 100644 index 0000000000..762805b5b8 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/clark.sty @@ -0,0 +1,47 @@ +\RequirePackage{theorem} +\RequirePackage{alltt} +\RequirePackage{dotlessj} +\def\Lftrou{\textsl{\LaTeX\ for the rest of us}} +\let\latex\LaTeX +\let\tex\TeX +\def\Scribe{\textsf{Scribe}} +\def\Textures{\emph{Textures}} +\newcounter{chapter} +\renewcommand \thechapter {\@arabic\c@chapter} +\def\chapter#1{% +\end{multicols} +\refstepcounter{chapter} +\begin{multicols}{2}[\centerline{% + \begin{tabular}{c} + \hline\rule{\z@}{18pt}\LARGE\sffamily\bfseries + Chapter \thechapter. #1\\[4pt]\hline\end{tabular}}] + \addcontentsline{toc}{chapter}{% + \numberline{\csname thechapter\endcsname}% + #1}% +} +\newtheorem{question}{Question}[chapter] +\let\l@chapter\l@newarticle +\theoremheaderfont{\scshape} +\setcounter{tocdepth}{1} +\def\LFTROU{% + \bgroup + \fboxrule=10pt + \centerline{% + \fcolorbox{red}{yellow}{% + \begin{minipage}{.8\textwidth} + \vspace{12pt} + \centering + \fontsize{30}{35pt}\fontfamily{pjn}\selectfont + \LaTeX\ For The Rest Of Us\\ + \fontsize{25}{30pt}\itshape by \\ + Malcolm Clark \\ + \vspace{12pt} + \end{minipage}}} + \vspace{25pt} + \egroup +} +\endinput +\def\Section{\@startsection{newarticle}{0}{\z@} + {-24\p@ \@plus -12\p@ \@minus -.1\p@} + {12\p@ \@plus 1\p@} + {\raggedright\Large\bfseries}} diff --git a/usergrps/uktug/baskervi/8_3/course.bib b/usergrps/uktug/baskervi/8_3/course.bib new file mode 100644 index 0000000000..5cb3b9660e --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/course.bib @@ -0,0 +1,227 @@ +@book{KD95, + author="Helmut Kopka and Patrick W. Daly", + year=1995, + title="A guide to {\LaTeXe}", + publisher="Addison Wesley", + address="Wokingham, England", + pages="554" +} + +@book{DEK86, + author="Donald Knuth", + year=1986, + title="The Metafont book", + publisher="Addison Wesley", + address="Reading, Mass." +} + +@book{DEK-cm, + author="Donald Knuth", + year=1986, + title="Computer Modern Typefaces", + publisher="Addison Wesley", + address="Reading, Mass." +} + +@book{DEK84, + author="Donald Knuth", + year=1984, + title="The {\TeX} book", + publisher="Addison Wesley", + address="Reading, Mass." +} + +@article{DEK89, + author="Donald Knuth", + year=1989, + title="The new versions of {\TeX} and {\MF}", + journal="TUGboat", + volume=10, + number=3 +} + + +@book{DEK79, + author="Donald Knuth", + year=1979, + title="{\TeX} and Metafont", + publisher="American Mathematical Society and Digital Press", + address="Providence, RI." +} + +@book{DEK68, + author="Donald Knuth", + year=1968, + title="The Art of Computer Programming", + publisher="Addison Wesley", + address="Reading, Mass." +} + +@phdthesis{BR80, + author="Brian Reid", + title="Scribe: A document specification language + and its compiler", + school="Carnegie-Mellon University", + year=1980 +} + +@book{RM80, + author="Ruari McLean", + title="The Thames and Hudson Manual of Typography", + year=1980, + publisher="Thames and Hudson", +} + +@book{PL92, + author="Paul Luna", + Title="understanding Type for Desktop Publishing", + publisher="Blueprint", + year="1992", + address="London" +} + + +@article{MC96, + author="Malcolm Clark", + year=1996, + title="Structural defects: form and content in + electronic publishing", + journal="Information Design Journal", + volume=8, + number=2 +} + +@book{LL94, + author="Leslie Lamport", + title="\LaTeX: A Document Preparation System", + publisher="Addison Wesley", + address="Reading, Mass.", + year=1994, + edition="2nd" +} + +@book{LL85, + author="Leslie Lamport", + title="\LaTeX: A Document Preparation System", + publisher="Addison Wesley", + address="Reading, Mass.", + year=1985 +} + +@book{MS90, + author="Michael Spivak", + title="The joy of {\TeX}", + publisher="American Mathematical Society", + address="Providence RI", + edition="second", + year=1990 +} + +@article{FM89, + author="Frank Mittelbach and Rainer Sch{\"o}pf", + year=1989, + title="A new font selection scheme for {\TeX} + macro packages -- the basic macros", + journal="TUGboat", + volume=10, + number=2 +} + +@article{FM90, + author="Frank Mittelbach and Rainer Sch{\"o}pf", + year=1990, + title="Towards {\LaTeX}\,2.10", + journal="TUGboat", + volume=11, + number=3 +} + +@article{FMCR92, + author="Frank Mittelbach and Chris Rowley", + year=1992, + title="{\LaTeX}\,2.09 $\hookrightarrow$ {\LaTeX3}", + journal="TUGboat", + volume=13, + number=3 +} + +@article{DCCRFM98, + author="David Carlisle and Chris Rowley and + Frank Mittelbach", + year=1997, + title="The \LaTeX3{} programming language -- a + proposed system for \TeX{} macro programming", + journal="TUGboat", + volume=18, + number=4 +} + +@book{MGFMAS94, + author="Michel Goossens and Frank Mittelbach and Alexander Samarin", + year=1994, + title="The {\LaTeX} Companion", + publisher="Addison Wesley", + address="Reading, Mass." +} + +@article{JB91, + author="Johannes Braams", + year="1991", + title="Babel, a multilingual style-option + system for use with {\LaTeX}'s standard + document styles", + journal="TUGboat", + volume=12, + number=2 +} + +@book{LC65, + author="Lewis Carroll", + year=1965, + title="The Annotated Alice", + editor="Martin Gardener", + publisher="Penguin Books", + address="Harmondsworth" +} +@article{YH89, + author="Yannis Haralambous", + year=1989, + title="{\TeX} and latin alphabet languages", + journal="TUGboat", + volume=10, + number=3 +} +@book{HM51, + author="Herman Melville", + year=1851, + title="Moby Dick", + publisher="New English Library" +} +@book{WB05, + author="William Blake", + year=1975, + title="The {C}omplete {P}oems", + editor="Alicia Ostriker", + publisher="Penguin Books" +} +@manual{ML79, + author="Michael Lesk", + title="Tbl -- a program to format tables", + organization="Bell Laboratories", + year=1979 +} +@book{RH87, + author="Russell Hoban", + title="The {M}edusa frequency", + publisher="Jonathon Cape", + year=1987 +} +@article{patashnik, + author="Orin Patashnik", + title="{\BibTeX} 1.0", + year=1994, + journal="TUGboat", + volume=15, + number=3 +} + diff --git a/usergrps/uktug/baskervi/8_3/editorial.tex b/usergrps/uktug/baskervi/8_3/editorial.tex new file mode 100644 index 0000000000..5d2fa54392 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/editorial.tex @@ -0,0 +1,159 @@ +\vspace*{1cm} +\title{Snippets} +\author{} +\begin{article} +\section{\TeX\ consultant sought} +The Wellcome Trust is interested to hear from \TeX\ experts who would be +willing and able to provide technical support and consultancy to one user +on an ad-hoc basis. + +The project concerned aims to catalogue several hundred Arabic manuscripts +and software used at the moment is MS Word, em\TeX, emTeXgi and Arab\TeX\ +under MS Windows 3.11. This tool-set might change with an imminent move to +Windows NT4 or could be changed if recommended. It is foreseen that there +will be telephone inquiries as well as on-site visits. + +Interested parties should apply to The Wellcome Trust by submitting a +resume of their relevant technical experience, details of other +commitments and expected payment mode. To find out more about the +project, please e-mail Dr Nikolai Serikoff +(\url{n.serikoff@wellcome.ac.uk}) , to apply please send the requested +information to Ms Dagmar Jeschin (\url{d.jeschin@wellcome.ac.uk} or Dagmar +Jeschin, The Wellcome Trust, 210 Euston Road, London NW1 2BE) by the +middle of August. +\section{Committee members sought: a message from Philip Taylor} + Having now served as Chairman of \uktug\ for about nine months, I can + without hesitation confirm that it is both an incredibly rewarding + yet frequently frustrating experience. Rewarding, because at first + hand I get to see how hard the various members of the Committee work + to make \uktug\ a better organisation; frustrating, because I see how + much time gets wasted on the minutiae of committee work. + + Yet despite the frustrations, work gets done: \BV\ is edited, + formatted, printed and distributed; new editions of the \TeX\ Live CD + are prepared, pressed and sent out; and meetings and workshops are + researched, planned, organised and announced. But who does this + work, and why? The answer is `the members of the Committee' (aided + and abetted by willing volunteers such as Martyn Johnson of the + Cambridge Computer Laboratory). And why? Only they can tell you! + It's hard work, and the only reward is an occasional letter from a + member expressing his or her thanks for the work which has been done. + + But each year, a number of the Committee have to stand down. Some + because they have served their time, and our Constitution (blessed be + its name) ensures that no Committee member may serve more than his or her + allotted time without standing down for at least one year. Some because + pressure of `real' work prevents them from spending the time on \uktug\ + activities that such activities demand. + + And who is to replace them? That, dear Member, is where you come in! + Do you care about \TeX? Do you care about \uktug? Do you have the + energy to attend some four to six meeting a year, and to receive some + two thousand or more electronic mail messages a year (and to send about + 1/12 of that number yourself?). If you do, then this is the time to + step forwards. A number of the present Committee will be standing + down or retiring at the Annual General Meeting in September, and the + remaining members of the Committee are very concerned to ensure + that those leaving are replaced. If you are willing to stand, + then \emph{please} complete one of the nomination forms which accompanies + this issue of \BV. Beg (on your bended knees, if + necessary) two people to propose and second you. And canvass all + your friends in \uktug\ to vote for you, because this is going to be + the hardest fought election in the history of \uktug! + + Do all this, and I look forward \emph{very much} to seeing you on the + Committee next year. + +\end{article} +\title{Introduction to \Lftrou} +\author{Malcolm Clark} +\begin{article} +I started my \TeX-life with `plain' \TeX\ in about 1984. Being younger +and more set in my ways, I truly believed that \LaTeX\ was an affront +to family values and represented yet another downward step in the +sorry decline of moral and ethical values. If not actually the spawn +of the devil, \LaTeX\ users were at least beyond the pale. This view +managed to sustain me for many years, until in 1989 Katherine +Butterfield persuaded me to teach \LaTeX\ to a research group at the +University of California, Berkeley. \textit{\Lftrou} (or +\textit{\LaTeX$^\prime$} as it was then) was born. At first I thought +(quite arrogantly) that I could merely adapt my existing \TeX\ course +to \LaTeX. \LaTeX\ requires a much more subtle and mellow thought +process. Unlike \TeX, where you really can do exactly what you want +(whether or not it is a good idea), \LaTeX\ requires that you relax +and go with the flow. Trust it, and all will be well: remember \LaTeX\ +can smell your fear. Looking back, I have to say that the average +dedicated \LaTeX-er is a much less stressed individual than the +average dedicated \TeX-er. + +When I published my \textit{\TeX\ Primer} in 1992, I planned to follow +it shortly after by \Lftrou. I was overtaken by the euphoria of +\LaTeX3, which eventually became the muted excitement of \LaTeXe, and +had to start re-writing whole chunks. At the same sort of time, some +excellent \LaTeX\ books, like Goossens, Mittelbach \& Samarin's +\textit{\LaTeX\ Companion}, Kopka \& Daly's second edition of their +\textit{Guide to \LaTeXe}, Goossens, Rahtz \& Mittelbach's +\textit{\LaTeX\ Graphics Companion}, and then the second edition of +Lamport's own \textit{\LaTeX: A Document Preparation System} appeared +on the scene. We were awash with good quality stuff (at last!). My +enthusiasm for the project waned, but it was revitalised by the last +course I taught, at the Technical University of Malaysia, where I had +one of the biggest and best classes I have ever had the pleasure to +teach. They helped me get things pretty close to their present state. + +We are presenting this as a serialisation, though perhaps not quite in the +same long and honourable tradition which includes Hardy and Dickens. What is in +your hands represents about the first quarter of the text. The next quarter +will be out later this year (we are aiming for \BV\ 8.5), and the other half +should appear next year sometime, although precise dates and editions for 1999 +are but figments of our collective imagination (neither the present editor nor +myself are likely to be on the UK TUG committee next year, and our loyalty +could be stretched\dots). There are also questions embedded in the text. Once +all the text has been finished, solutions to these questions will be provided. +This probably means yet another chunk of \BV, but since I haven't yet written +the solutions, I don't know quite how much space they will take up. + +All being well, and if our enthusiasm stands up, we're very tempted to +create a pdf (Adobe Acrobat) version with tons of hyper-links. That +would be available electronically (and maybe even as part of one of +these magnificent \TeX\ Live CDs that Sebastian Rahtz keeps +producing). I love the idea of a hyper-\LaTeX\ electronic book. The +\LaTeX\ source will of course go up as part of the \BV\ archive files +on \CTAN, where anyone may obtain it for their own pleasure and +delectation. + +The UK \TeX\ Users Group will hold copyright. If anyone wishes to use +the text of \textit{\Lftrou}, in part, or entire, they are welcome to +do so. I merely ask that they should acknowledge me as the `original' +source, but if they make any commercial advantage they should arrange +with the UK \TeX\ Users Group to make any appropriate royalty payment. +I'd really prefer they gave it away. In spirit I would like to be +fairly close to the GNU copyleft declaration. But I'm not against +crass commercialism: I'm just against someone else making loads of +money out of my efforts, and \TeX\ not benefiting in some way. + +There are too many people to thank to be able to do so individually, +but I will always be grateful to Katherine Butterfield who provided +the initial impetus. I gratefully acknowledge the many students from +Santa Barbara to Johor Bahru who have been exposed to versions of the +\LaTeX\ courses I have given, and who have therefore unwittingly +contributed to this project. I am especially privileged to have +Sebastian Rahtz as editor, and David Carlisle as reviewer. + +There will likely be errors in the text. I expect them to be errors +of fact, omission, opinion or interpretation. I would be happy to +hear of them, but except for errors of fact, I may choose to ignore +them. Don't be surprised if I appear to lie or mislead in the initial chapters. +This trait has a long and honorable tradition in books on \TeX. Sometimes +the truth takes a little longer to tease out. I've never believed that it was +appropriate to tell all the truth in all circumstances. You won't find +details of how to install \TeX\ and \LaTeX\ in \textit{\Lftrou}. This is +quite deliberate since I believe it to be a non-problem, especially for +members of this group, who all have a copy of the \TeX\ Live CD. +\end{article} + + + + + + diff --git a/usergrps/uktug/baskervi/8_3/first.tex b/usergrps/uktug/baskervi/8_3/first.tex new file mode 100644 index 0000000000..df127773b4 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/first.tex @@ -0,0 +1,932 @@ +\chapter{First steps} +\section{A brief history} +\LaTeX\ can be thought of as the fusion of two +developments in computing software. One of these developments was +\TeX; the other was \Scribe\index{scribe@\protect{\Scribe}}. Both are embedded in +the academic world. Both came to fruition in the latter part of the +70's, and as such, preceded the introduction of personal +computers. They also parallel the rise of large scale database +systems, and the demise of traditional hand-set type. + +\subsection{\TeX} +\TeX\ itself was developed as a typesetting tool by +Donald Knuth\index{Knuth} of Stanford University~\cite{DEK84}. Knuth wrote +the first version of \TeX\index{tex@\protect{\TeX}} in the late 1970s +\cite{DEK79}, primarily as a way of controlling the printed quality of his +multi-volume work \textsl{The Art of Computer Programming}~\cite{DEK68}. + +To some extent, and more particularly with the early +versions, \TeX\ tended to place some emphasis on the +arrangement of the marks on the paper. After all, Knuth +finishes~\cite{DEK84} with the exhortation: `\textsc{Go +Forth} {and create masterpieces of the publishing art!}'. He was +clearly thinking in terms of marks on paper. Because of this +attention to this relatively low level of detail, \TeX\ is sometimes +described as a \emph{procedural} or \emph{typographic markup}\index{markup} +system. + +\subsection{\Scribe} +\Scribe\index{scribe@\protect{\Scribe}} was +written by Brian Reid at Carnegie-Mellon~\cite{BR80}, and +described in his thesis in 1980. In essence, \Scribe\ ignored the +content of the document, concentrating on the +relationship of the parts: in a sense it imposed, or +revealed, the implicit inter-relationships present. +We may be prepared to acknowledge that a document is composed of +(say) +\begin{itemize} +\item front matter +\item main text +\item annexed (or back) matter +\end{itemize} +and within each of these major divisions, we can identify +subdivisions. The front matter might comprise +\begin{itemize} +\item title page +\item author's dedication +\item table of contents +\item list of figures +\item foreword +\item preface +\item acknowledgements +\end{itemize} +and so on. Some of these elements may be optional. This +presents structure as very hierarchical, but it is +possible to construct arrangements which are not so +fiercely arranged, and share features with other, less +formal, types of organisation. + +One of the major points to make is that \Scribe\ was a +system of \emph{descriptive} or \emph{logical markup}\index{markup}: it +described the structure of the document. It made no comment about the +arrangement of the words on the page. In fact, there need +be no `page', in the sense of `paper' page. Changing the +characteristics of the `carrier medium' changed nothing +about the document structure. While it is possible to +disagree with extreme versions of this viewpoint \cite{MC96}, it +did offer a powerful and attractive way to separate documents +from the worries of formatting. + +\subsection{\LaTeX} +Leslie Lamport~\cite{LL85} took the ideas of \Scribe\ and the +typesetting capabilities of \TeX\ and fused them into +\LaTeX, a piece of software where an author could include +an account of the structure\index{structure} together with the content -- +the words. Lamport sought to devise a system where the +author need know nothing about the details of typesetting +-- justification, choice of typeface, page breaking, +ligatures, and so on. Merely by saying that the document +was a `book', or a `report', the text would be formatted +appropriately. + + +In contemporary jargon, \TeX\ is described as the \emph{formatting} or \emph{typesetting +engine} whose presence need never be revealed. The author +concentrates on the content, merely guiding the structure gently by +noting features like sections, subsections, figures, etc. To this +Lamport added or adapted tools to sweep up tables of contents, lists of +figures, cross referencing, bibliographic control and +indexing. Perhaps these \emph{value added} tools\index{tools} are the +features which still give \LaTeX\ the edge over almost any +other software of this type. + +That and the fact that it is +available, if not freely, certainly very cheaply. A great +deal of the work on \TeX\ and \LaTeX\ has been done +through the public domain. This does not mean it was done +for free: a great deal of money was spent, one way or +another, in perfecting these tools. Fortunately for the +rest of us, a lot of +it was `public' (i.e.~taxpayers') money, rather than `commercial' +money. Even the commercial versions of \TeX\ and \LaTeX\ +are very cheap when compared to `comparable' commercial +alternatives. + +\LaTeX\ absorbed all \TeX's mathematical capability. +Since \LaTeX\ is written in \TeX\ (which itself has some +pretensions to being a programming language), anything +that is possible in \TeX\ can also be done in \LaTeX, so +we have lost no functionality. This is really only theoretically +true, since, as we may see, \TeX\ itself has some memory +limitations: once the \LaTeX\ functionality is loaded, there is +limited space left for other things. But this is an architectural +problem rather than a conceptual one. + +One of Lamport's advantages was that he was able to work +with Knuth, as Knuth was developing the `final' version +of \TeX. Certain requirements which came to light with +the development of the early versions of \LaTeX\ were +incorporated into \TeX82, the version of \TeX\ which we all used +until Knuth \cite{DEK89} made some relatively small changes in 1989; this latter +change was a +relatively straightforward and painless upgrade which may even +have gone unnoticed by some. Lamport is +quoted somewhere as saying that he could not have achieved what he +had done without the active cooperation of Knuth. This is not to +minimise Lamport's achievement, since +\LaTeX\ is a wholly remarkable piece of software. It has +defects, but to a large extent these turn out not to be +too limiting. Some of its problems are really problems +inherent in \TeX. But more of that later (perhaps). + +\subsection{\LaTeXe}\index{latex!latex2e@\protect{\LaTeXe}} +Some other changes have to be documented. For a long period, +\LaTeX\ was also known as +\LaTeX\,2.09\index{latex!latex2.09@\protect{\LaTeX}\,2.09}. This actually +covered an incremental refinement where bug fixes were gradually incorporated +without changing the version number and was leading to uncertainty of what was +the `current' version of \LaTeX, and some divergence of what it actually +constituted. This was not altogether satisfactory. By 1990 there was the +beginning of a proposal to change \LaTeX\ substantially \cite{FM90}, for a +variety of sound reasons. Ultimately this gelled into a proposal for a new +version to be called \LaTeX3\index{latex!latex3@\protect{\LaTeX}\,3} +\cite{FMCR92}. In the meantime, to hold us until the new version is ready, a +consolidation, \LaTeXe\ was publicly released in 1994. This is the +version of \LaTeX\ which constitutes the core of this discussion. From +time to time it will be necessary to recap some of the history which +brought us to \LaTeXe, but by and large the discussion is directed +at \LaTeXe. When some peculiarity of \LaTeXe\ is mentioned it will be +referred to as such, but most of the time, \LaTeX\ and \LaTeXe\ +will mean the same thing. + +When will \LaTeX3 be released? Or rather, will your investment in +learning \LaTeX\ be lost when \LaTeX3 appears? I hope not, not +least since my investment will be lost too. It will take some time +before \LaTeX3 appears, and even when it does, the concepts will +likely stay much the same, although there may be detail changes \cite{DCCRFM98}. +Furthermore, it is likely that there may be some sort of +compatibility mode, where existing (or \emph{legacy}) documents written in \LaTeX\ +will be capable of being processed with \LaTeX3. Nothing should be +wasted. The investment is just too vast to risk. + +\subsection{A proviso} +One possible disadvantage of the \LaTeX\slash\Scribe\ +approach is that it requires that you have a notion of +just what it is you are trying to do: some people write +electronic or digital documents in a very haphazard, piecemeal +fashion, jumping around the document, and basically +losing track of things. If this is the way you work, and +you resent the rigour of structure, seeing it as a +straight-jacket rather than scaffolding, you may be +unhappy with \LaTeX. A little bit of discipline may help +to refine your ideas, and, in the longer term, achieve +more. + + +It is certainly true that you will not learn all there is +to know about \LaTeX\ from this brief account. On the other hand, +with its aid, you may learn enough to be able to +produce (apparently) complex documents, and without too much trouble. +Systems which are learned quickly sometimes lack stamina. +To some extent \LaTeX\ can be approached in an +`intuitive' way, but no-one is likely to try to claim +that it is especially `user-friendly', at least, not +until you are properly introduced. + + +\section{A note on pronunciation} +Some people get very worked up about the pronunciation +of \TeX\ and \LaTeX. Knuth says of `\TeX'\index{tex@\protect{\TeX}} +\begin{quote} +``Insiders pronounce the $\chi$ of \TeX\ as the Greek chi, not as a +`x', so that \TeX\ rhymes with the word blecchhh. It's the `ch' +sound in Scottish words like {\em loch\/} or German words like {\em +ach}; it's a Spanish `j' and a Russian `kh'.'' +\end{quote} +Unfortunately, few of the English-speaking world are equipped to +pronounce \emph{loch}, and the German-speaking world has (at +least) two pronunciations of \emph{ach} -- the less obvious, +southern German form, is like \emph{ash} or perhaps \emph{asch}. In +the end, the majority of English-speakers seem to end up with +\emph{tecks} or \emph{teck}. + +Lamport sagely notes: +\begin{quote} +``\dots pronunciation is best determined by usage, not fiat. +\TeX\ is usually pronounced \emph{teck}, making \emph{lah}-teck, +lah-\emph{teck}, and \emph{lay}-teck the logical choices; but +language is not always logical, so \emph{lay}-tecks is also +possible.'' +\end{quote} +About the only possibility Lamport does not cover is \emph{L-A-teck}, so +perhaps we can conclude that that is not a recommended +pronunciation. + +Of course, Knuth's description, as given here, begs the question a +little, since it does not say where the Greek chi comes from. +Knuth's original notion, in naming the software \TeX, was to use the +roman form of $\tau\epsilon\chi$, which is the beginning of the +Greek word transliterated as \emph{tekhn\=e}, which we use in words +like +\emph{technology}. To the Greeks this encompassed art \emph{and} +technology. A better rendition into contemporary english would +probably be something like \emph{craftsmanship}. An exposition of +\emph{tekhn\=e} might be the Parthenon in Athens, or even any piece +of work which was the responsibility of Isambard Kingdom Brunel. + +But, however we pronounce `\TeX' and `\LaTeX', we will always +recognize the logos, which are so difficult to produce in most +every other system. If you do have to write \TeX\ or \LaTeX\ in a +system where you cannot drop the `E' or raise the `A', write them +like `TeX' and `LaTeX'. + +\begin{question} +What would you say were the structural elements of a memo? or a +letter? What are the bits which are always present? +\end{question} +\begin{question} +This question cannot be answered immediately, but it may be +revealing if you keep it in your mind as you read through the book. +Ponder on the extent to which developments in software are related +to available hardware. Try to imagine the sort of hardware and +operating systems which were available as Knuth was developing \TeX. +Contrast that with the hardware and operating systems which have led +to the development of \textsl{wysiwyg} (what you see is what you +get) software. What might Knuth and Lamport have done if they were +developing \TeX\slash\LaTeX\ today? +\end{question} +\begin{question} +Take a word processing or document formatting system with which you +are familiar -- \texttt{nroff}, Runoff, \textsl{Pagemaker}, +WordPerfect, Word, FrameMaker, Interleaf, Quark Xpress, lout, +\textsc{html}, paper and pencil, typewriter, etc., and note down what +seem to be their \emph{descriptive} and \emph{procedural} elements. +Which bits are concerned only with positioning of characters on the +page, and which bits describe items independently of their form? There +may even be a third category where the positioning and the `content' are +combined. +\end{question} + +\section{Let's try it} +Since \LaTeX\ was developed for documentation, it is a good idea to +start with a fairly straightforward document and see +what it is we have to do in order to translate it onto +the page. We will assume that `marks on paper' are the +goal. The `paperless office' still seems as far away as ever, +despite efforts from most computer manufacturers, Xerox {\sc parc}, +and the damage being done to the forests of the world. + +We will begin with the output: the end product of the document +preparation process. This end product, Figure~\ref{ishmael}, +is not spectacular, but it does have some interesting +features, most of which we probably take for granted. +\begin{figure*} +\centerline{\fbox{\includegraphics{ishmael}}} +\caption{}\label{ishmael} +\end{figure*} +If we examine the input file, we will see that the text is enclosed +between the instructions in the following manner:\index{documentclass@\texttt{documentclass}} + +\begin{small} +\begin{verbatim} +\documentclass{book} +\begin{document} +\chapter{Example formatted file} +I stuffed a shirt or two into my old carpet-bag, +tucked it under my arm, and started for Cape Horn +and the Pacific. Quitting the good city of old +Manhatto, I duly arrived in New Bedford. It was +on a Saturday night in December. Much was I +disappointed upon learning that the little packet +for Nantucket had already sailed, and that no way +of reaching that place would offer, till the +following Monday. + +As most young candidates for the pains and +penalties of whaling stop at this same New +Bedford, thence to embark on their voyage, it may +as well be related that I, for one, had no idea of +so doing. For my mind was made up to sail in no +other than a Nantucket craft, because there was a +fine boisterous something about everything +connected with that famous old island, which +amazingly pleased me. Besides though New Bedford +has of late been gradually monopolizing the +business of whaling, and though in this matter +poor old Nantucket is now much behind her, yet +Nantucket was her great original --- the Tyre of +this Carthage; --- the place where the first dead +American whale was stranded. Where else but from +Nantucket did those aboriginal whalemen, the +Red-Men, first sally out in canoes to give chase +to the Leviathan? And where but from Nantucket, +too, did that first adventurous little sloop put +forth, partly laden with imported cobblestones --- +so goes the story --- to throw at the whales, in +order to discover when they were nigh enough to +risk a harpoon from the bowsprit? + +Now having a night, a day, and still another night +following before me in New Bedford, ere I could +embark for my destined port, it became a matter of +concernment where I was to eat and sleep +meanwhile. It was a very dubious-looking, nay, a +very dark and dismal night, bitingly cold and +cheerless. I knew no-one in the place. With +anxious grapnels I had sounded my pocket, and only +brought up a few pieces of silver, --- ``So, +wherever you go, Ishmael,'' said I to myself, as I +stood in the middle of a dreary street shouldering +my bag, and comparing the gloom towards the north +with the darkness towards the south --- ``wherever +in your wisdom you may conclude to lodge for the +night, my dear Ishmael, be sure to inquire the +price, and don't be too particular.'' +\end{document} +\end{verbatim} +\end{small} + +\LaTeX\ has handled all the details of page size, +line-breaks, page-breaks (take my word on that one), +hyphenation, ligaturing, paragraph +indentation, justification, the white space between lines, + and so on. These are all implied through the adoption of +the `book' document style. + +Another feature which may have appeared transparently is the text's +division into paragraphs. If you leave a blank line, +\LaTeX\ will implicitly assume that this represents a paragraph break. +And by default it will leave +indentation at the beginning of the paragraph. + +\section{Elementary typography} +What are ligatures\index{ligature}? In many ways they are left-overs from the +days of scribes. They are recognized `running together' of letters, to form a new symbol. The most +common examples, found in many typefaces are: +\begin{center} +\begin{tabular}{r@{\quad$\to$\quad}l} +f{\,}f&ff\\ +f{\,}i&fi\\ +f{\,}l&fl\\ +f{\,}f{\,}i&ffi\\ +f{\,}f{\,}l&ffl +\end{tabular} +\end{center} +This is not simply a `very close' duo or trio of individual letters, but a completely new symbol. + +This is by no means a universal transformation. It is bound by +typeface, by culture, and by time. Gutenberg's original 42 line +Bible, printed in about 1455, has at least 50 different ligatures. He +was trying to emulate the work of scribes. They had evolved all +sorts of shortenings which he strove to adopt. By the 19th century, +English had standardized on the 5 or so above, but `ct' and `st' ligatures +persisted at least up to the middle of this century, although in rather specialist +typefaces. Although ligatures are more common in `serifed' typefaces, some +sans serif faces do have ligatures. Equally some fairly traditional +serifed faces have abandoned them. Stanley Morison, who is credited +with the design of the `Times' typeface, may well be rotating in his +grave now that \textsl{The Times} has dispensed with ligatures. + + +\LaTeX\ takes care of ligatures without even thinking about it too +deeply. It also takes care of `kerning'\index{kern}. Kerning is a much more +recent introduction, and occurs where letters overlap, but do not +touch. This is much more noticeable in capital letters: OXO or WAVE +ought to be good examples, where the horizontal extent of each +character overlaps with that of the next character. Again, +kerning is not supported in all fonts. In particular, you would +probably not want kerning in a font which was supposed to look like +typewriter characters. Kerning relates to the moving together of +characters to make the letter spacing more pleasing: it might be +better to describe this as `less displeasing'. We may notice when a +book is difficult to read because of the typography: we seldom +notice when it is easy to read. This is as it should be. A warning: +exposure to \TeX\ and \LaTeX\ can affect your enjoyment of the +printed word. You start to look at the typography much more closely. +It can destroy some books entirely. + +You may perhaps notice some other things which are done entirely +automatically, and which tend to distinguish `typesetting' systems +from `desktop publishing' or word processing systems. The first +distinguishing feature is the three different sorts of horizontal +rules or dashes, used in text (although in Figure~\ref{ishmael} +only two of them are used): + +In fact, dashes\index{dash} come in lots of forms. Formally we identify +the following: the hyphen, the en-dash\index{en-dash}, and the +em-dash\index{em-dash} (and the minus\index{minus} sign too, but we'll look at +that later): see Table~\ref{dashit}. In most typestyles these will be different characters. A +hyphen\index{hyphen} is fairly obvious, and is conveyed to \LaTeX\ as a +\texttt{-} symbol. An en-dash is a longer symbol (about the length of an N in the +current font), and is therefore conveyed to \LaTeX\ as \verb|--|; an en-dash is +usually employed to convey the idea of a range, for example +1--10. Occasionally too, an en-dash is used when two names are joined, +like Runge--Kutta or Russell--Hertzsprung, although they are often just +hyphenated. Thirdly, the em-dash is even longer (related to the capital +M), and is given to +\LaTeX\ as \verb|---|. The em-dash is punctuation in text. (The minus is a +mathematical symbol which has to be given in maths -- to be +covered later -- as \verb|$-$|.) +\begin{table*} +\begin{center} +\begin{tabular}{lccl} +\hline +`correct name' & \LaTeX\ form & typeset form & example\\ +\hline +hyphen & \verb|-| & - & hy-phen\\ +en-dash & \verb|--| & -- & 1--7 \\ +em-dash & \verb|---| & --- & Knuth---the archi\TeX t\\ +minus & \verb| - | & $-$ & $x-y$ \\ +\hline +\end{tabular} +\caption{Length and meaning of horizontal lines\label{dashit}} +\end{center} +\end{table*} + +Another feature is treated by \LaTeX\ as a sort of +ligature\index{ligature}. Quotation marks\index{quotation mark} +(i.e.\ double inverted commas) come in open and close varieties in +many fonts. \LaTeX\ employs the quote (also known as +\textit{apostrophe} and \textit{prime}) and grave. On one of my keyboards +`quote' is on the right of the keyboard, just beside the +\verb|return| key). The left quote, or {\it grave} is at the top +left of the keyboard, beyond the numerical characters). Unfortunately, +the `extra' characters on a keyboard do not +have standardized positions, and the location on your keyboard may +differ. Clearly, this provides you with only a single inverted left or +right comma at a time. \LaTeX\ `ligatures' a pair of inverted +commas, whether they be grave or quote, to form a single `double' +quote mark. Thus, to form a double open quote mark on output (the `66' form) + -- `` -- type a pair of graves -- \verb|``|, and to form the corresponding +(`99') close +double quotes -- '' -- type a pair of quotes -- \verb|''|. The double quote +symbol on your keyboard -- \verb|"| -- should not be used. + + + +\section{In the beginning} +The content of \emph{every} document we write with \LaTeX\ has a beginning and +end delimited by the \verb|\begin{document}|\index{begin@\texttt{begin}} -- +\verb|\end{document}|\index{end@\texttt{end}}\index{document@\texttt{document}} +pairing. Note that this is the beginning and end of textual content of the document. It is not the +beginning and end of the file of information. While it seems that there is little point in placing +anything after the \verb|\end{document}| statement, since it will never by +seen by \LaTeX, it is somewhere to keep notes, odd ideas and even +pieces of text you plan to use in the future. + +This is described as a `document' \emph{environment}. The notion of +an enclosed environment, with a matching \verb+\begin+ and +\verb+\end+ pair is fairly fundamental to \LaTeX. + + The very beginning of the file of information has a +\verb|\documentclass| statement. This statement will be modified by +additional instructions which will determine many of the layout +alternatives which will be adopted; it also has some bearing on the +sorts of structures which are available. +\LaTeX\ has a small number of fixed document +\emph{classes}\index{class} associated with it. + +\section{Classes of style, flair and panache} +The basic \LaTeX\ document classes\index{document classes} are \texttt{book}, +\texttt{report}, \texttt{article}, \texttt{letter}, \texttt{slides}, +\texttt{proc} and \texttt{ltxdoc}. The first four of these +were the original `styles' released with \LaTeX\ and documented (to +some extent) in the original manual \cite{LL85}. The remainder were +introduced with \LaTeXe, when the concept of `document class' +was also introduced, and separated carefully (though not wholly +convincingly) from `style'\index{style} (see also~\cite{LL94}). +In general the names are descriptive, +meaningful and obvious. For those already familiar with \LaTeX\ the class +\texttt{slides} replaces \SliTeX, while \texttt{proc} is intended +to handle a conference proceedings. The last, \texttt{ltxdoc} is +an indirect product of the documentation effort related to +\LaTeXe\ and \LaTeX3, and is intended to assist in the +documentation of classes and styles. It will not be examined here. + +There are other classes around, many of which are referred to and +described in the \textsl{\LaTeX{} Companion} \cite{MGFMAS94}. In +theory, these classes and styles should be documented in what Lamport refers to as +the \textsl{Local Guide}. He had the notion that every installation +would have a locally produced \textsl{Guide} which would contain +useful information on the availability of fonts, classes, styles, support +software, and so on. \textsl{Guides} are usually conspicuous by their +absence. The \textsl{Companion} is an admirable substitute. + +The implications of each style are sometimes hard to grasp. Just how +does \texttt{report} differ from \texttt{article}? To some extent +this is to misunderstand the function of the classes and the model +of \emph{declarative markup}\index{markup} which was outlined earlier. Lamport +worked with a number of document designers to develop the +classes\slash styles. And he made it a non-trivial job to `tweak' the +classes\slash styles to adapt them. In other words, he felt (very +strongly) that you, as the user, should get on with what you were good +at, namely writing, and let \LaTeX\ get on with what it was good at, +namely formatting. To be fair, \LaTeXe\ does simplify some modes +of modification. Everybody wants to tweak. And not everybody +enjoys the layouts adopted by Lamport. They certainly come out of a +particular typographic tradition, one which is not universal. It is +one possible comment that the original +\LaTeX\ book does not use the \texttt{book} layout available with +\LaTeX. + +To use a particular class, we say\index{documentclass@\texttt{documentclass}} +\begin{verbatim} +\documentclass{report} +\end{verbatim} +or whichever of the classes we wish to choose. In addition, there are +\emph{options}\index{options}, which modify the fundamental class. For example, +there are \texttt{11pt} and \texttt{12pt} options which allow us to +change the basic size of the font used in the main body of the text. By default, \LaTeX\ uses a 10 +point font for its `body text'. \emph{Options} precede the +\emph{class}, and are enclosed in square brackets: +\begin{verbatim} +\documentclass[11pt]{report} +\end{verbatim} + + + +\begin{question} + The example in Figure~\ref{ishmael} was created using the + \texttt{book} class (since it is really a chapter from a book). To + get some crude notion of the effects of changing styles (and + options), you could edit the \verb|\documentclass| statement to + create \texttt{article}s or \texttt{report}s at 10, 11 or 12 point. +\end{question} + +\begin{question} +What other document classes do you require? +\end{question} + +Although there are few document classes, there are far more options. +There are also lots of `packages'\index{package} which allow us to change some +aspect of the default presentation and features of \LaTeX. Changing +an option or package is far easier than tackling a class. Later we +may look at the modifying or creating packages to alter the default +behaviour of \LaTeX. + +Clearly the options \texttt{10pt}, \texttt{11pt} and \texttt{12pt} are mutually +exclusive. A document may have only one basic type size. +But there are other options which affect some other aspect of the +presentation. For example, \texttt{twoside} formats the output +for printing on both sides of the page (`duplex' printing). Of +course this does not mean they will come out of the printer +printed on both sides. It simply affects the physical position of the +mass of text on odd and even pages, so that when they are used as +masters (in a photocopier, for example), the text will fall in a +position which ensures that there is no `show through': that is, you cannot see the +other page's text as a `shadow' through the paper, since it is obscured by the text on the page you +are reading. Such subtle niceties are the traditional concern of printers. Another option is +\texttt{twocolumn}, which produces two-column output. When we specify +several options, they are separated by commas: +\begin{verbatim} +\documentclass[twocolumn,11pt,twoside]{report} +\end{verbatim} + +\begin{table*} +\begin{minipage}{.5\textwidth} +\begin{center} +\begin{tabular}{|ll|} +\hline +\verb+\documentclass+&principal \texttt{options}\\ +\hline +\texttt{book} & twocolumn, 10pt, 11pt, 12pt, twoside\\ +\texttt{report} & twocolumn, 10pt, 11pt, 12pt, twoside\\ +\texttt{article} & twocolumn, 10pt, 11pt, 12pt, twoside\\ +\texttt{letter} & 10pt, 11pt, 12pt\\ +\texttt{slide} &\\ +\texttt{proc} & twocolumn, 10pt, 11pt, 12pt, twoside\\ +\texttt{ltxdoc} & twocolumn, 10pt, 11pt, 12pt, twoside\\ +\hline +\end{tabular} +\caption{Some of the default range of classes and their +options\label{range}} +\end{center} +\end{minipage} +\begin{minipage}{.5\textwidth} +\begin{center} +\begin{tabular}{|ll|} +\hline +size options&paper size\\ +\hline +\texttt{a4paper}&$210\,\textrm{mm}\times297\,\textrm{mm}$\\ +\texttt{a5paper}&$148\,\textrm{mm}\times210\,\textrm{mm}$\\ +\texttt{b5paper}&$176\,\textrm{mm}\times250\,\textrm{mm}$\\ +\hline +\texttt{letterpaper}&$8.5\,\textrm{in}\times11\,\textrm{in}$\\ +\texttt{legalpaper}&$8.5\,\textrm{in}\times14\,\textrm{in}$\\ +\texttt{executivepaper}&$7.25\,\textrm{in}\times10.5\,\textrm{in}$\\ +\hline +\end{tabular} +\caption{The range of page size options\label{size}\index{size}} +\end{center} +\end{minipage} +\end{table*} + + +\begin{question} +Try a few options. Does \texttt{twoside} work correctly +on your printer? Be bold. +\end{question} + +There are also a set of built in page sizes, Table~\ref{size}, which +do two things: they set the height and width of the text itself, and +they also position where the text will be placed on the page. +Obviously \LaTeX\ cannot know what page size you will ultimately use, +and selecting \texttt{a4paper} will not guarantee that the output +device, perhaps a laser printer, is actually loaded with the correct +size of paper. If you do not use any of these size options, the +default is \texttt{letterpaper}, a rather distressing result outside +the US. If you were using some other size of paper (perhaps for a +book), it would be necessary to set the width and height of the text +through some other means. This method is likely to be inappropriate. +It is also possible to add another option to these, +\texttt{landscape}, which swaps the height and width to give a +`landscape' orientation rather than the more normal `portrait'. + +\section{More information} +Part of the structure of a document will be the `front' matter: +things like the title, the author, and so on. \LaTeX\ allows you to +include this information too. We can write something like +\begin{verbatim} +\title{The Carpet-Bag} +\author{Herman Melville} +\date{1851} +\end{verbatim} +By itself, this does nothing. Until we say \verb|\maketitle|\index{title}, this +information does not appear on the page. Since we would expect a +title to appear at the beginning of a document, the \verb|\title|, +\verb|\author| and \verb|\date| should normally appear before we +try to write out the title. The `best' place for the information is +therefore between the \verb|\documentclass| specification and the +\verb|\begin{document}| statement. From time to time this location will +be described as the document \emph{preamble}. But to be truthful, it can go +anywhere. If you do not specify a \verb|\date|, \LaTeX\ will use the +current one (which happens to be \today). In order to omit the date entirely, you could +type \verb+\date{}+. The empty braces are necessary: \verb+\date+ +by itself would not give you an acceptable result. + +\begin{verbatim} +\documentclass[twocolumn,11pt]{book} +\title{The Carpet-Bag} +\author{Herman Melville} +\date{1851} +\begin{document} +\maketitle +. +. +\end{document} +\end{verbatim} + +\begin{question} +Go ahead, do it. Of course you do not have to use \texttt{twocolumn} or +the \texttt{book} document class. +\end{question} + +\section{Some back-tracking} +All along we have ignored the presence of some key characters. I +have presented instructions like \verb|\documentclass|\index{backslash} and +\verb|\begin| without much fanfare. The backslash character, +`\verb|\|', is of major importance. All \LaTeX\ instructions are +introduced by such a character. In a sense, it is the +\TeX\slash\LaTeX\ `escape character'. Whatever follows a \verb|\| is +treated in a special way, and will not appear on the page as +such. Obviously there are ways of making backslashes appear on the +page, since this document was produced through \LaTeX. Note too +that \LaTeX\ is case-sensitive\index{case +sensitive}. +\verb|\DocumentClass| will not be understood. In very general terms, the majority of the +instructions you supply specifically for \LaTeX\ will be in lower +case. Only a few instructions use upper case characters. + +A \LaTeX\ instruction\index{command}\index{instruction} may be +constructed in \emph{only} one of two ways. The first\label{commands}, most flexible way, +which we have used already, is by a backslash followed by an arbitrary number of +alphabetic characters. Thus we might expect to see the following as +legal \LaTeX\ instructions: +\begin{center} +\begin{tabular}{lll} +\verb|\documentclass|&\verb|\raggedbottom|&\verb|\section|\\ +\verb|\maketitle|&\verb|\vspace|&\verb|\hspace|\\ +\verb|\kill|&\verb|\sloppy|&\verb|\newpage|\\ +\verb|\framebox|&\verb|\line|&\verb|\circle| +\end{tabular} +\end{center} +Each one of these is a legitimate instruction which already exists in +\LaTeX. The alternative form is a backslash followed by a +\emph{single non-alphabetic} character. Thus we might expect to see +the following: +\begin{center} +\begin{tabular}{lll} +\verb|\~|&\verb|\\|&\verb|\.|\\ +\verb|\1|&\verb|\#|&\verb|\ | +\end{tabular} +\end{center} +Note that `space'\index{space} is a legitimate non-alphabetic character. Since +it is sometimes difficult to see when `space' is meant, from time +to time we will use \verb*| | to indicate a space which occurs +between words and\slash or instructions; when \verb*|\ | is used +it indicates the instruction where a space is the non-alphabetic +character (In \LaTeX\ this instruction actually generates a space). + +We do not find instructions like +\begin{center} +\begin{tabular}{lll} +\verb|\A4|&\verb|\half-sized|&\verb|\up&down|\\ +\verb|\1.1|&\verb|\(longer)|&\verb|\m.clark| +\end{tabular} +\end{center} + +On the other hand, the \emph{option}s\index{options} may be made up of mixtures +of alphabetic and non-alphabetic characters (as we have already +seen: \verb+11pt+ or \verb+A4paper+). Options are always enclosed by the square brackets. + + +The +\textit{argument} to an instruction, is the part in braces (or +\textit{curly} brackets). An instruction with an +argument\index{argument} +\emph{always} requires an argument, although as suggested earlier, +the argument could be `null' -- \verb|\date{}|. Sometimes you may +only specify one of a handful of alternatives, as in the case of the +arguments of \verb|\documentclass|, while in other cases, like +\verb|\author|, you have complete freedom. There are also +instructions which require no argument at all -- \verb|\maketitle| +is an example. The braces\index{braces} are never printed by \LaTeX. Of course, +there are ways to print \verb|{| and \verb|}| or even $\}$ and $\{$, +but we shall look at them later. + +\begin{question} +What does happen when you specify a non-existent document class, or +a non-existent option? Hint: try it. Advice: Don't Panic (in large +friendly letters). +\end{question} + +\section{Trying to correct mistakes} +If you did the last exercise, you will have deliberately made +mistakes on input, and will have encountered \LaTeX's error\index{errors} +processing capability. It is possible to correct errors as \LaTeX\ is +running interactively. If you should successfully +correct the input in this way, you must also remember to correct +the original (assuming you might just need to re-run sometime). +To be more truthful, you may have met both \LaTeX's error +processing, \emph{and} \TeX's. Neither is especially elegant. + +One of the most common mistakes is to invoke an instruction +which does not exist -- either because you let intuition +take the upper hand and assume that the instruction must exist, or, +more likely, because you mis-spell it. \LaTeX\ will object: +\begin{verbatim} +! Undefined control sequence. +l.3 \start + {section}{Start} +? +\end{verbatim} +\LaTeX\ is trying hard to indicate where the error lies, principally +by breaking the line to indicate just where it has foundered. In the +example above, it is the instruction \verb+\start+. At this point it +is wise to note that (\La)\TeX\ refers to a `control sequence'\index{control +sequence|see{instruction}}, a piece of jargon which is often replaced by the +word `command'\index{command}, and in this text by +`instruction'\index{instruction}. + +Note however that we are left with a \verb|?| prompt. Let's be +intuitive, and assume that \LaTeX\ has something up its sleeve, +like additional help. How do you get help? How about typing +`\texttt{h}'? Lo, something else appears. +\begin{verbatim} +The instruction at the end of the top line +of your error message was never \def'ed. If +you have misspelled it (e.g., `\hobx'), +type `I' and the correct spelling (e.g., +`I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +? +\end{verbatim} +Well, who can understand that? Not very helpful at all. But we've +still been left with a question mark. Let's try `\texttt{h}' again. +\begin{verbatim} +Sorry, I already gave what help I could... +Maybe you should try asking a human? +An error might have occurred before +I noticed any problems. +``If all else fails, read the instructions.'' +\end{verbatim} +This is one of (\La)\TeX's attempts at humour or light heartedness. +All the same, it is probably good advice. + +In response to the `\texttt{?}' prompt, you have several options. +You may type any of the following: +\begin{description} +\item[\texttt{?}\quad] where (\La)\TeX\ gives a summary of the following +options: +\begin{verbatim} +Type <return> to proceed, S to scroll +future error messages, +R to run without stopping, +Q to run quietly, +I to insert something, +E to edit your file, +1 or ... or 9 to ignore the next 1 to 9 +tokens of input, +H for help, X to quit. +\end{verbatim} + +\item[\texttt{<return>}\quad] just prod the \verb|return| +key (or the \verb+enter+ key). \TeX\ proceeds as +best it can, until it encounters another +error. + +\item[\texttt{X} or \texttt{x}\quad] \LaTeX\ stops (eXits); you are +returned to the operating system. Any pages which have +already been completed may not be lost, but the current one will +certainly be lost; the previous one might be as well. + +\item[\texttt{E} or \texttt{e}\quad] this stands for `edit', and +should drop you into an editor. Not all implementations have this linking of +\LaTeX\ and editors. If you do not drop into an editor, you +will simply be returned to the operating system prompt. +The best way to find out if it does work on your system is to try it. +If it does work you would find yourself editing the erroneous file, +at about the right line -- or rather, where \LaTeX\ thinks the error +occurred. Often it is remarkably close to the error. + +\item[\texttt{I} or \texttt{i}\quad] you may now type text +to be Inserted at the current place in input. At first this seems +intimidating, but with some practice it does become a viable +route. Its major drawback is that you tend to forget these +`dynamic' corrections. + +\item[a number between 1 and 99\quad] \LaTeX\ deletes +this number of characters and instructions from input. The +characters or instructions are those which are waiting to be +read -- in other words, \LaTeX\ has not yet `seen' them, or tried +to do anything with them. \LaTeX\ then asks for more information (you +could insert, etc.): \LaTeX\ sees an instruction as a +single item: it also sees a character as a single item -- +otherwise termed `token'\index{token} -- for example, \verb|\textbf{bold}| is +seen as the 7 `tokens' \verb|\textbf|, \verb|{|, \verb|b|, \verb|o|, \verb|l|, +\verb|d| and \verb|}|. A space is treated as a +token, \emph{except} when it immediately follows a instruction. + +\item[\texttt{H} or \texttt{h}\quad] +(\La)\TeX\ gives some sort of help. + +\item[\texttt{S} or \texttt{s}\quad] this is like typing +\verb|<return>| (or \verb|<enter>|) for every subsequent error +message. The error messages are logged, but you have no chance of +interaction. + +\item[\texttt{R} or \texttt{r}\quad] this is like {\tt S}, only +worse; under no circumstances stop. + +\item[\texttt{Q} or \texttt{q}\quad] even even worse; \LaTeX\ +suppresses all output to the terminal (goes a lot faster, +subjectively), but perhaps not the best route unless you are very +confident that you know what you are doing, which obviously you +don't, else you would not have made a mistake in the first place. +There is an instruction equivalent, \verb|\batchmode|, which gives a +good clue of when this would be most commonly used. +\end{description} + + +There is obviously a temptation to just +type \verb|<return>| and let \LaTeX\ surge ahead to report on any +other errors. Unfortunately the corrections \LaTeX\ may have made in +order to do something apparently sensible may lead to other mistakes +later on. When I don't feel up to mental gymnastics I much prefer +to leave \LaTeX\ (by typing \texttt{x} or \texttt{e}), correct +the error, and then return to \LaTeX. + +\section{Hints} +Don't panic. Error messages are often difficult to fathom, and it +can be easier to solve the problem with reference to your text and +the instructions which were included in the file than to attempt to +understand what the error message is saying. But do not ignore the +messages entirely. Sometimes they can be uncannily accurate and +helpful. + +What are the common errors?\index{errors} Failing to balance braces (every +open brace must have a corresponding close brace). This is really +quite difficult to correct through the error reporting and +correction procedure outlined above. If you have a brace open, +\LaTeX\ may do quite a lot of work before you realise that something +has gone wrong. In such a case it is almost impossible to put +things back together in a reasonable way. +Sometimes this situation manifests itself when processing +finished and you see a message that +\begin{verbatim} +(\end occurred inside a group at level 1) +\end{verbatim} +In a similar way, from time to time you might fail to `\verb|\end|' +something you have `\verb|\begin|ned'; again the same message may +appear. More readily apparent, you may \verb|\begin| something but +\verb|\end| it with the wrong thing. + + +Mis-types are a frequent +source of problems. After all, if you type \verb+artical+ for +\verb+article+, \LaTeX\ can hardly be expected to divine your +intention. Any instruction which is presented to \LaTeX\ `incorrectly' +will present a problem. It really does not care about your own +spelling. It does care about the instructions you give it, and since it +thinks you know best, it attempts to follow your orders to the +letter. + +Apart from that, what can go wrong? + + + + + + diff --git a/usergrps/uktug/baskervi/8_3/ishmael.aux b/usergrps/uktug/baskervi/8_3/ishmael.aux new file mode 100644 index 0000000000..be25fa93b4 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.aux @@ -0,0 +1,5 @@ +\relax +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Example formatted file}{1}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{ishmael}{{1}{1}} diff --git a/usergrps/uktug/baskervi/8_3/ishmael.eps b/usergrps/uktug/baskervi/8_3/ishmael.eps new file mode 100644 index 0000000000..5701161a03 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.eps @@ -0,0 +1,1705 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) +%%Title: ishmael.dvi +%%BoundingBox: 106 94 452 599 +%%DocumentFonts: CMBX12 CMR10 +%%EndComments +%DVIPSCommandLine: dvips ishmael -E -Pcms -j0 -o ishmael.eps +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 1998.07.27:1001 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn +put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N +/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley +X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[ +(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup +length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} +forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: texps.pro +%! +TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID +ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 +roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 +0]/Metrics exch def dict begin Encoding{exch dup type /integertype +ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics +0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 +index currentdict end definefont 3 -1 roll makefont /setfont cvx]cvx +def}def /ObliqueSlant {dup sin S cos div neg}B /SlantFont{4 index mul +add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont { CharStrings +rcheck { /Encoding false def dup [ exch { dup CharStrings exch known +not { pop /.notdef /Encoding true def } if } forall Encoding {] exch +pop} {cleartomark} ifelse } if /Encoding exch def } def end + +%%EndProcSet +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 161 /Gamma put +dup 162 /Delta put +dup 163 /Theta put +dup 164 /Lambda put +dup 165 /Xi put +dup 166 /Pi put +dup 167 /Sigma put +dup 168 /Upsilon put +dup 169 /Phi put +dup 170 /Psi put +dup 173 /Omega put +dup 174 /ff put +dup 175 /fi put +dup 176 /fl put +dup 177 /ffi put +dup 178 /ffl put +dup 179 /dotlessi put +dup 180 /dotlessj put +dup 181 /grave put +dup 182 /acute put +dup 183 /caron put +dup 184 /breve put +dup 185 /macron put +dup 186 /ring put +dup 187 /cedilla put +dup 188 /germandbls put +dup 189 /ae put +dup 190 /oe put +dup 191 /oslash put +dup 192 /AE put +dup 193 /OE put +dup 194 /Oslash put +dup 195 /suppress put +dup 196 /dieresis put +dup 0 /Gamma put +dup 1 /Delta put +dup 2 /Theta put +dup 3 /Lambda put +dup 4 /Xi put +dup 5 /Pi put +dup 6 /Sigma put +dup 7 /Upsilon put +dup 8 /Phi put +dup 9 /Psi put +dup 10 /Omega put +dup 11 /ff put +dup 12 /fi put +dup 13 /fl put +dup 14 /ffi put +dup 15 /ffl put +dup 16 /dotlessi put +dup 17 /dotlessj put +dup 18 /grave put +dup 19 /acute put +dup 20 /caron put +dup 21 /breve put +dup 22 /macron put +dup 23 /ring put +dup 24 /cedilla put +dup 25 /germandbls put +dup 26 /ae put +dup 27 /oe put +dup 28 /oslash put +dup 29 /AE put +dup 30 /OE put +dup 31 /Oslash put +dup 32 /suppress put +dup 33 /exclam put +dup 34 /quotedblright put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /exclamdown put +dup 61 /equal put +dup 62 /questiondown put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 94 /circumflex put +dup 95 /dotaccent put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put +dup 125 /hungarumlaut put +dup 126 /tilde put +dup 127 /dieresis put +dup 128 /suppress put +dup 160 /space put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec + +8053514D28EC28DA1630165FAB262882D3FCA78881823C5537FE6C3DDA8EE5B897E17CB027F5 +C73FDBB56B0A7C25FC3512B55FE8F3ACFBFFCC7F4A382D8299CC8FD37D3CEA49DABDCA92847A +F0560B404EF71134B0F3D99934FC9D0B4E602011B9CFB856C23F958F3C5A2FBE0EF8587D1F57 +74879C324E51FCB22888B74F241550D7401EB990D4F3A7AF635198422283CAC1B6CD446DDBCB +D915DB9BFF88844E784C6BF7389803D9450B0C21756A017306457C7E62C1D269F306BD3402E2 +66DEFC3B5E7D8A8D2F5BF0FE6DDD40D07391DF4FAD4A6018DCE29A2B8F692B29F2023A7C0E66 +DE8ED85C14F1F8492167357F51A7E84CC5D92E0FEE4D81CF7FBC8DE52D2E7BB57142033993F9 +C08C315ABADE8DBC4A732E84E142D3BEE51557910E12CD8AA37C459A5E6B7F5269F59078ABA3 +BE4641A11AC48D0B625C8325B38EC08E4C9E5E7FED976A5650D99D82114F449B9CA14C4EC957 +702295A39A93EF93F61899B8EA06B092C3C1E503E6E436E0A9FA22576C8930AB3DC8C20F5D82 +B69CDDF8FF4DACFA9C54BED5A3AA3EA5B129FE96BE632843B9B6BC91B615581A985DB56B1E01 +CA60EE69CA92CF5C0882ECE62EDAD3E106D835348822400F0B66AF658F2AE56ED08F8B001057 +1807009B73AB12A8CF14CA6C71F03C2A48C500F9D62266AF154A6375FF600D9BAC3F05CE3414 +2D6867A79581C533176BB2F3117336671E2E44638A97167E2EA9644E31EA16C2AD2990EA33C5 +4001E0C8156E6DE8AB6A4D40A7137BA275F39589FEA2E2DB8256ADC103D6F9CC038037A47E8F +D469C5F98A5E3C15BD4ACE40D340018B1CFF7D1ED8ABB0AC57B5B5A2C20A51957B96C453EDB7 +DAE5AFFD91A46D938FE0A13363001D844DED4323F1EE6D30012AEA19B024A552315505535C85 +DC26BAD31E09C50E6512802976D298C4E90D0044C362E6BF3AB362A454EE93DE25CE54411090 +C29E9D75C80CE26A84404BD9DE3AEE0E3F921AC587F907572B8354A5C3165EEA7E8B2BA4E333 +802132F760B41A900C698EB3D2738BEA0AAF7AAE96A558F08B61AEC7C7D65B2889BB7B99800C +FFEE5BA19AC90FCE11437BE1DDFCF0BCA5670B543B9644A71C8726D0C1005ABDB96F6E0CF7CA +AA3195017CA81519151C2C0B04F81E717C0691B63A76E9B25329CE2625B711CB7BF99D23EC2B +B5EC8AEFB8C1A3B422AD617B3DA4D49685FD44CC21A1FE5E1541163AB3E1594601D63C7E9880 +1D7746474377CE93F81404F3570AFBD5DBFE77578605917AB96963987E6EFC2D3F99FA56ECAE +6422579852567F90CC90E4EF6D6F71D1858270205477E221018A375CA83C572B3F972C5181D1 +8643CECB04909D84CF767174B3C0C8EC69BF1E9FDFBC0FC7ED97EC67D878EA4DDAC8CAA522FD +C6932DF721B81AF837AB56B547D4799241310D6692918FCF8A46189A78D6638AAD7CB4462D87 +74EC73D184076595C94C0B4A8233CD34F2D92F6FF94F941DFD589DEF2CE790D5CB2159B95333 +8C7384CB68C11779120A68BFA20B993D8C0313987EB96A2EAA2C11CFD838E6AA48A89E6DDEF3 +FAE1A1B078BE9787140270556A96E2725A8CF1AD46FB52938900730154AEC60F544C3D49F176 +3861F54B46A3B70315B46EBE51C42FABEA87A5339ECE2B64270749188D73A07E0E3866EF9AAE +A996FA92AB443C08FB8A840DED26BA68E94CC23CC1F6968B0F3C7E8F4FC0C5CAD0F7A332E7F9 +55287ACF2485539C7B652F7A29D9E4AEC20A8E023AEDE26BD4C761BD3561269FAAC6FD5A651F +FFF9211F8DF220994DAD6D105A92D5794CF2AA526B2143C7150BA584A2B597F6982403D93073 +CB066B569BACF95DA04B4202BD24059A8DBDD3ED8AA9E89B2788F3B078A81A557BC743C12A1E +00FDEFFD030C032E81DE3142A106C0EDE1BC9D566440BCEC4260295CEACDD54BD0E25F6B9DD8 +FAC41F453BCC731777E1E6ACAF37A8178D11BE1BEDD6681815F3D5EE8D240B7CE9B14FCFAFD5 +04216F26DC2827FB0F6158416EB24F8BD7616EBBFE9378718824CC6E51135F8F489E9A55A0F8 +40608A99A32EADE4251F27FF86EC7F324DC9B534D7135E30F2EC1B6D93D7DB919651E03F30A8 +82F2DFA457D307F17751532AD70E632A04A63CA1A507FC6AF4073126BE0127D86974B426F489 +FF62A53C1986FD048AD76454D42BE16A6060101239B138BB638765C46EB006F7F8DD312337BE +08D4381272FCEFBD74B7B2EC098B436365586A832721A0113B2BF1D853FA8B062BEEA25CABC6 +0998CF4D38B49A3F4BCB372198A196C9EB6DF2CBE59A59858AE212031C9AD7FBB9C3E8E9E6DE +45DCCA521F3AF361282F7B3EC507C8B3AFCF18B9678EBB2F11C01C9DC3C4FD3134C5A3DF6B6F +4C75EC985466C4F505847F1475C91E5D83A6BF754837DA02F9E868EB0DD76EC4D31C8B1ED935 +ACCA73E1CB9B4192BB0A853F947228C3064E8F923A9133EEC9C52C626E29689DD54FA433B970 +2636FBD87C5D81C4F278168783509D5F4256C77A855C97A48D18DE6EE1D47C7C33E9AD227ED7 +02F120303731BEA6F3055D764046EED36A06C75855A928084C5773168AB985DEA7CD767C780A +91E740E6E088CB93D43A489145030221DE0E1B2DBE954EF414B9568F3B1C5329F5FCBEE927AA +23309AD22E10F9349B6CADE7A090D19B9460405CDEB89BF1617B2C297AF5629458235F1B8C95 +F5BC442DEBB34DA5D20B11E96660CE9E5CD19A84AA54F42B106FC87C7C0405B0CBBC249950D3 +A7C353D691D77BA031C840C8F43A220CFC749CE34C2791DD627CA074753963D2E59794496D55 +AEC96FFD48EAFDB29F8ABC8D91932DD5B01F65EBDA034BEF3C7219E097670621058662C5BBFA +A939DEBF999E9F68E5C4E64CBB0774A9A186E741346103865FEFB088AF547545CF7763DA0664 +96986377B587EFCA5C9EDF22EC13D1AA6F483C4A0ADDFE395F83534D7BE5285E6A207D53A8A9 +60ED89E9BD27AFCBBDA23B2D9876A8D8CFCC299990D521E076CF8387D514570871376C21509B +95EA15CCFC7278851F14DE8308B72E111893F0338488BCEDD0F2F8EAF07326BF97C3727459EC +89F8121C96A45E3DB1C63D478D0A6DA5F5E6834938EF1CA41B910F25A82F2774E3CAE9F1909D +BE21EE8E003E27B84C43B39FE247B8E19538648F246D325357A246365B9B2B13DC68CDD7E44D +99D86C642565B1FC376D2E530048B27A7C44B6811719054D3AC99CBBF5665AE76F11E2781B8C +040F73454BC794B1432E6C3A58BBB8CBEF345D3178C8D01D6B26BF7F485A5C3BD36DD01F39B0 +34E536ABDC6632EB4038FCCAE0453E85B3BED8C3D4620A2AA2DABD0CD93090E9B8E964C491C3 +AEE45B592E4EB12970647E2A5E68BDA429F53074257C02975268F8C28F06350C26646D658008 +FAB0562F40644EDB0FBAB79826B16CFFEF1302C8A13173CC9CF7C8FC906693E486FF096B2D18 +E96841A5FA8A34A5B4B68462BFFA48102464DC22EB50F1F80A26E929D4CDC4B90589266915E8 +433D46D433ED8920543777360D25546794CD9A3A1EACE8AF188CC18DDB9DD1659F9FA462A5AC +E6A6AD068140356E8C1E48DEFD171947F78F086C6E267FEF13D16EE68D0FB0AAE589F7E090F0 +88FE80BD6CF8EC0EDD28C735748FC6E7FD421E33B16EA6319937D2D63A94AD76F95B61813DB1 +81A113274D5F3B4DF5EE90E69FAFCAFBE4466F5D5F48EEA62A7CDCD4F9418437707F706B290B +86C30FEED99522875EF5E2D491920983BF4E9F1C71F20F1B9645E30521EBF2F1C9010103C60A +9A6DB7E6297F7C3E29CB150307FB7A1A1A94710EDDC6AE88742CC7044492DD7A217583C99A6B +E7B720246FDAA00683A3B82EF6BFA87F2FCD741AD8BBA68B751740435DC6AFB1BB88D1593DB1 +52CE92C19E1AB29C8E8FE89477CDDBBE29B8DCF1EA6F70990BE9A0425000404F2F5DFBAFA35E +70BB87066464C992343E8BEC66EF483DCE474F3ED7953DC1F6BBC14EB3495704D1765D0B3285 +A05AE494342F6B70D9A4241291B3147C77A8AC0E08E5BFE60C8B6E2048876A6CBFAD8EFE4860 +95DA764F4AB9E4D8153F89BFA2D9BF2759826EC18F64F1AB083949F4BC127411A477D4C24D7E +0FB0C96A96A31386CC5892B398D48750FD09638BA6D62CC685688E79AF31F13B744F395984B2 +0AA483FDA558C6A91CB9AAE9053E7A5B5B8659BF0631C543F4C370FFB006290353908786BB5D +B373233C12F3506E2C4DB0D59C1EA8EA75A7662B90C4AC1561303F4FB8536C1534FEAE4ED772 +DCB49734F5285FAFC99FBB081ABC3DBE87180D9BDE2A844B054D8BBBBEF5CEB39F5CADE252EC +6164A74E75625050CEAB8FD8D8513550D4420FDFE6FDDCBB816E204115614FE82CEF36DB23A7 +DD31CE6FC923B575EAABEBB5820BB2739CCBB41BE2A4A95CFFEC9332DACF05936A3194AB4F77 +39E5B4A868A7CAD3B1D940056F84B41E81B072C02C0D0BDE7C64DEF54B1097F68368AC0B39E0 +DF5E5733FEACF02EF12A1CD0ABB0805C2F7E7FD7C824D9B348E893D68F3F31B807829015C54B +8D2AA7E8DAA14A364428F3E706FC649E274E47914452704B1BC56A41CAAC736C8826B7BACA1D +4FAEBFEDDD0EE8FE3BCB53EE291356B7A4B699C33CD7EAAC34E3B92E7F3ABC32852453259908 +74E34513647D521ADA13F83584CEF20DC503EB352BF881AAD4C00894CC581A819CA7CDE96A9F +8DBFC22767B215141C8677BFE6F1F0DEE4254986AE871F87BCCDCC10E2298BBD90A625337936 +3FFB2B093C2F54001070E655E9C4CD389266DE373971BB763279F9EFC4E5A223990153618C66 +54B5740049A3DE2A80D613CD5AC5BACD34315C43996D1A420DDDFE7365060EAC81AF060B8344 +3FA8176CBE3F4C2EA819B493FB5B4A2E4A0039F028CAB0B47FC70F178DF04C7CD4DA22BFBBE5 +344C9E9CDF1020AC1A43C8E5B9D19B621565A6DAB2B1CB6CDE2524B33FB1DA6B5988F5BE4E73 +08A17C73E406DBCB51FEB3D79B84FF8B0284F7EA92BEB9CBA6CD5999CA7DD20EC02E000FB48C +DCA51B8E747C0E25B28431543D9095482657364ACC1C647B2140C502623F7B9E3F335C2E44DB +33DB82C01AE27AF66BC2284971A5249911D897263210DE4A9A65232738D83D10AEA8C5D3C687 +128B64EAE94D6FB30B7BA9105BA8E01BC9925C312CCD8BD273E904D8FF13F4DF7EDD21C23D0C +09A32A4C90B0577ABE7AAA53E836CA60B1697621049BB36F8013026D77910193742725574222 +DDD3ADF4E872E6D57C1DED571A1636893DD7F49D8280233CFF4339B075628AB591783783548F +17134E69EC5EC25B3B8036039DA276BA1507649E7DF1EF9E29F0AF07BEEEA346D470B4F1DF92 +5040602539BD1D8218384B53BDF16C74A1A6BA2A7871B67E06CCC015BECF2F020295E27CFAD6 +2D3EB7831922FAB24780FB158C21E769875373606E1BA9BDA9F15352EB5413FFE162EB2AC194 +4BD7D980D232A2F3DB3CD38390E0DCE3241113CEAAC83EE29B2980EA6DDDD4EF5727024E4343 +AFF44318AA1382662A78A41BFD6ED98264A6B0BC629CF924EA0A635B0885D682C26819043E39 +ED44241D4E8B50AB92256F9431A8123117D77891AFFE4E2833BC0517DE287A747E88409CC30D +7D098A4FC80C6D91534304E7FDA873FEFF704EC1F7450226F09D5E89E245622973D9A789736C +71E6651182BABE81ACA969C62E1458FA67A3B9D38CF364F383E719F7066D2839D95F262F8A5A +F87DEF903EC3269466519E68E857088D318839FD0B0E51A6D358A93A543E2401F57FF7E970F8 +BB7BEB37BEACAA000EC58DF62D2064EB45A81144C146B744B10406EAC2C1E350E2DC328B6A83 +9DF820B289A84167B404BA1FC63E453DE7B58A9EF959D7E2FC1DAEB5CE90A1DD935E8C5D7DE7 +E2684FF0502901BB451FAF9ACB439F548657E3BE938E7A2B5924DDA2E7010CD26A181D84A5D7 +5294F6E56DFF88F3C207C9D457CDDBF2D3037AC9A93CE9D53FA0CAA4F21057762954580F0F2D +47AF43D5D7679A9D44D45D682EE73493A2B8C390E24EF27C84E701C879BBB1FAD6BC8B89BB27 +959EE86BE486786D1C81612D9546AB59D5216367C027B5B0F51A41C9AE2778A04965A846990D +1727F3F3E09AD0B913C9742371AB5669A2CF4863833A19CE69FF161B1D6BB0CD61272CF94526 +4584ECDCD290E2767F087A836F12AACBECAC49C3FB28A605C6220E8233EA2C9AEFDA87EA2CF9 +D3D52FD6D16612AD07279DDFC4F20B59C905A146B1F4A51547DB82758886E9D3609B495BD941 +616057E460B94856191791A2D16B90A7C33534A9DBAE17C96D68E009219857FBC92EBE189875 +EFABA56704CC9305DE0D32C4CA5293B306A4EE9DCBB131C128626C4171EBCB2DEE830B9BCB98 +B4FE23BC63C9186C21EB7D9CDFE2E685399D57D6D1A857C11FFE47F6D0BB79839B6C88702EAF +6A59BEFDC8B35A03768AF411EA16C277F7EFBADA006619B31CD2EAB657BBC8CD4A44340F4D9F +D34007ADDDF2DCAC3058D22267490E90657808CC716B7EC3444638215495A7BF077956F16EE3 +053864EBD2EAE7B210EA370D71414952F2076D689ABD98E76030D92E4D49A79734FEA3F05719 +8F8DE62F64468D06D0E6443EEE3F2677049B08E8A09907A2785D91C009F8FAF6F1DF1CC39D0A +E11E8F1C939A0C13E49A448E89B0EDA7CCEF06166A8449B358B0C661E40A7935A6E4F866ECE4 +23CE4C978CF749F3B2B8AAB56AEEEDD498DB77143F77B4FEDF5C6502A3D2AB4D0BDB8EE456D7 +DA3B9CC800DA8D0CCAAD981DA5193A528C7B5628F065B7FD1DDB0FBC4A74C32751E8B4747206 +8A3A6F380CE2258D33FC49780EF2570FD279BBB54D4246F40CFA9F13AA9E13C6CC030DC19960 +115C2DAECF52027F917D3D9D44C60B0B2D1030EDC6BB055926CCC512AC2BAFAE7C12D8ED487D +D3901FC2842D3A7A69117A8B82292FEA44FBD40BF6C27686EAB94A520F63B77B82D5425478D7 +4B5E4E81A8439F560B1CE7C626E51CC3EFB877A9AF37BFCC1A72D40855995DF53B3F4451CC29 +A5600CEA6B2FD2BD9DDF106FB7B6B6E19477426212F3B5C25DCB1B777B643A318046E02ABBEB +67201DD98D892D6E13B0853CC206B62AC7E7D386A77C6C9A3817FFD5009D515EB5F770DCA0BC +4D9DE562EFDAAACEDE34096EF6DCEE08C735DA36893C41592443E0B69446B93EE9F758EB75C2 +4FCC4E8193A1F77999F2D4395E1BD24909CB805CE3A26A47ECF376A79F480C9402DCF3A86BFA +971DB7C977F813C21AC8C071B6F210B251695A40B735D7F8E27F9DA47AF7FDE2A6E7321488DB +E7555BA82E23FA2DE3092227E1A21C5E6DF4EC83A0578B4E99FF377C9E655D7D6DE412CF0F67 +D3ECA45624BD1AD4EE76AAA5F99C73A1FB470C8C7EA472890E1436BB51FE764F95810DA0C3FF +D1C3136223F6610F3B226978B8F9E35C9B09DC863C05DF439717251910A64E4AFAF2323CE1D2 +A168DC57CB1F4F2F9D24071F49444B1A5C6956F236734816FA3147656FD7C5F547748AF983E5 +529FA4787E540BDC4023377A7B7E248A37550CB0FD519F30F1BA3A323D171612F802068AE4FE +FF8D067185F9E5211B1218656EFFB8762824E05EDBD304B71678B3C4808F7819AF193B247D3D +7A3EE51986157E6D101C07A521379A097751CC6C53FC6AA6519E2D0093AD0CCC5145F4D788F0 +46EABE997100DEFFC6B7D79BEE09A92E34BCC15124D2405BB614B4E265378126544D041C4A16 +71E65832930D6F15E11387F39862F9BCD513CC611A9F9ECDFA53175DADF03BAAF5C32FCCAEFF +3446E67A62D3B15294E426310F64B6509E88D3225DF909BE2C73A9CC8CC643645B394CC3F5C6 +1FEB91F1522CE9882A60504C14C69CE7089F3EE5B3202D3E5C2C2A98B8A4C8655A911EE03DBE +72E474EFE0A0B1FB9062E474DDAE008B0ACE5016AEFBB40F157B9BF07ACBCA319380105AFD61 +5DA19C9F932BC8D14480F6AC4E607FD4A7C34AAC43CD26301EAACAB8A4DC8584EFEB56A2E569 +5E84030F39501223DF87FD3F16D3950713C483D8164FE2A180AFD985C11D55A9E22A61F0C5FD +3A0036DC51904A84B07D409388B897FC92C1C91A971B2482E668A27386B33494F751B5B9EC4C +5ED765A88F5A675960AA7F644E77696BEE684E098C69A8119BCA27067E52E1FA95C3E54CFA56 +8FEB54B92C3A8A2DA2CB44C9DA1DA7BAE1B05087D025F767658D885E89D654620C2827013ECC +B38C7021F83863313BF35116AEB2669FFABD5F1F035C23BF0244099A32D2FD13EE00C09E30EA +3BFE334227C6A143CB716A3C584B6ADD52C6370F7BA917855F2295B9DFF2BCA64A0504D0E557 +861EFB856A19CE99B64EB7EAD11C2474E79D5EC30DE5DDD094AC37D8EE50C4F4D39E32E284B2 +F347848ACACCF519272AA1FEE3000AC3A495B54385CB50373AB7B790B473D0449B7622AD526A +1BAC985945964D6D2B05089ADCF9DB30F1032639205877D7E78DB7F9B136055C1451663CE4D3 +9FE864E02B1339006A1065FB76C6E438EB132629AF5E1FCF6022E608674E3546CB02A893B558 +F3B2C76BD0A897B4EDE61A21B8F6C34FFE820D66F3B89EDEA86E13EF5CF0E33E82BAC2B4CE6C +DDDB572ED1C9AD69FF853ABC58C0CACFFC0D86D80D7C8D10139ED4C9DDA73C4B56E375CA70FC +E18EB1E322F046A4A44AD7F2731BC2059E391688C03B86B305E9BD9BAB8F3D1B6EE52789D559 +A5200AC84183FEE544DB210122C74BB2CA648599DB3CD1AF261567B84AEB332F0647288F8F8B +01D5068D74D7E89472D8DF3E901F6B523FE04C519843E0B730F403BB99CAD493201F950E943D +B95FC52B13A3AD8CCC6478D5CBE5DD019BED1ACE4D02E09353E6E31B9A9EA9C76D89D9490D71 +3CA451693D235A0C8B0A3DED5CF2A846ECE5CAF52627ACDBE76CF57A09CF6768D0A53906B15A +FC5183B9DE1029D19E64B64BC2E075B536663C524BFE35C9E412A7C0D23D316E0645BAA41DF9 +ABA61284F801F7CB852F49B24A96CD4C743F9B1D1A69F3E30808282C32C2C4655715D8F3AD53 +F3FDE97823989864479EABAB5876C77CC134EB66C688BE3777C74B3A87EF1616DDE5A8A46185 +997DF2FAFF5518EA7AEC3379730BC509D09C5C378B47DA67F9F5740B641DC790766896352D0B +E0EE84D686496066469C995583EDA0BFA51178091918D2B9EE8CED4163E45FA312885A64F177 +F03E6D77DD649C7D71B47FE885D72887927AC070CC64E825917776264E722AA6157C22A429BC +0D38B56E5A0D6473FCCAFCC17B4BD8860ADDB9BC33E2FDED66EF95205FFF084578C37913E205 +9CB3C1ECFA4142C0A2AD1781C373CB6FE9819F4CF8E5B5774D7A6BABB1FAA71D0C96175B9DFC +08A3154C2F1AD566E0D03E6A01D3848F0C6C06755A0511948D51FE8626A32AE97CEE9C01E15E +A61A556170E7E4D3697783BD42D586535C38CCA8D543A9AAA828C4813E89BC30B686049910A6 +C01D7FDCC55895A3F7019B0CC78C23925D8CC1207C51FA19E6B8992A289EDD5669C33186A7E8 +38D5A0A3C101C82558785010F877B05D943C5F874D0524622D43EEE25CA87C2AA4553804CB6A +D1508B9406BB1CDF868DCFFD19483BF1D8EE2844E62A2E1CD09807983B7742A841BA2A03D8A9 +2568624EF3C504F9B2F4389E23E323D1FA1F4F0670711DA7D827400F36C9FC870EA2553C7E25 +45E2A5086FED5BF966114D5FB48721AF70E04393326BDE080D3082C292C9C251E2D82C0C3F03 +04E9A46203E0E5E76829E21A3B961F02AFAEA15397F0060E5059A5FC66A2B622AF1D62FCAC51 +6EC3327C95A0C2810EB42A7209D12E90D1D41EF442D0F3DE55493615D4135B4F44BD09759657 +58B16A8DF9D39E78A73DF41C2EFBACC2C91ABF75C849E2BBCBAD263F8577E16D60BB6BD463DF +3A4BAC62F28B44CE08BF52A268AC27779E3A317B965A44321615891B627541C53768F33694D6 +EE76903BBED8ACC45FA00EEFD20224E09D95E93605987839D92C4E0E1853D8C3F25FDF0A8268 +B38A6B8D9286535A49B25631BF31451F81B5ABCBA66A07056EE34EC320367DCE6CFA97113291 +32E1155535F8094570639F9FC72E1ADBB4EA99EF7C7CFCEE8D74C2AC70927CA9973C4E1C4DB1 +13613466EAB58C0037BA93230A3D6EF41739122912A15319374C6A6D7FEDA8B1DC15EDD2F286 +12EDD846D8AA051F24523BF92C6920C2AE3CEED5868BDA6ECD483ED181AB69CCE78668A087DE +0A00A960810675F75412A8EB6018C638583DFB07B4B4CA48C2D3A7CD407F552DDD7A91556004 +2B173D2DFE64EAA41500FDB64FE572E09D06BEE892AAF0CD711F3D6752302EA4F69AEA675A48 +EE69C2416805E7E6EAD9889FE072F1C2F5D3A89D277A90DC9EA38271DA1A455CCB3598FA99C5 +5A788073DC12B2265D409DE2DE24FB4399E911CA80169AD5812BCAB83BD0692C37A1B8053585 +BD7303C20B6A06BDE9873823DE9E9EDD9F403E78E7C386341919035561CB94379210A5E14CB7 +43687CD843FB306B6946D8BB1C290D802EE3F096F54D70743B22E661F81C89F190971F27FF9B +0E6C273CE3B35E6F5A586B411F6CF55C2909AD70D348C6F6322EF1DD08EA36F1B99ED590D012 +3DB978BCFF31E5EE9EC3FB969E71C0864757AEEF1750ACD6A6F08A086CCF15E65A712ED37564 +B73DCF2A5E86E05C7725DE9F13DF59ED3E92438D9017754365735E5731853520D9771223DE22 +52388C4C6F7FF44614112780B14180C0CE01C50F94BDE65F4692CFF4B52F6D9D1FB562475BF9 +E94120A510389E9B3574C62FE0CD45E19615971BECB8C2388B4D5D095B914E6F887F3F708D7A +65B516758CF5EEEE4DD127315FC3EF04CD5915978141B2CEFB3D2C0FB5DD64E25EEFC85CB2F8 +80CC6AD20B9C9F0C1256A9C4E8CEB2B400C8D50079E6F58F7A064CCA9FC3EEAA7F7C34BC51D6 +799520C5534EEC1A1EFCC52B9ED43E7695ACAF3EC4590D9C0BC16915769DEEF8F39BF7992449 +4888D4DCA2484053A29598DEC70C2BF94BC2494BE4841F9676DE13196AF9B9A329DA016F17F6 +2ED26A75CA3089750BE5DE919429B989EEB4C10C20AB764BA2C4035F14264B055771B6AB98E0 +D673580FDEBADD2719C80E9B8322112C9AAA9AD2329B045EFFA948AF1EF7B0038B4D3C068CDE +62E5F808213F4A04D4979BFDFFFAC94483C546B35E965D4D0625FC01856623E146EF193A5538 +09C0D1E182E8D7759CD2B467A84254A2EABCEAF9E764A05BBB84522353B2505C56115F489E4A +906064C9C5266F823741A1BD1695796BCDAD01B38003522EEF9FFB7FB7F79F8D6C43B6685C17 +F72F06060993C9A30F8E31AE8CAE4F3BAD51D8262688A6443CE6A07C1CF676CC4F755849E2F9 +DA19B14130FC72E31BC6E4E062C041EAC5EAC486032535FEDC0DA2F8BDFEE2B72C1BF0BE510D +BA08E0A5700FAF1686EAA93420F20F92C0516609ADAC4F7EAFB5FB2CCDA18BB3FEE2702A462F +8AE39A733B0699D29FDA1E821FB03964F477A2FF5580FA4874F60D6F3505A4287E17AC2BF565 +9E42FD41F257EF45798CE2D8E09C0593FE7C41E67D79316E8D61CDEEEEEEC60EFC9BF26E803F +5C3EE7404D05ED2018F8C9DD0EBEC3BD39E20AFFB51582BD5049DE9AD7437849330674FD17CE +6B9B6F646F9CB66CB5DE5457BD512BECCAED183FD5C5D834846E6F8BE301FB267A4A67758590 +3CE45864294FEACC65B46D604D84D846098339D20FE034B77A49DDF85718CF9DE18D10028B37 +15994C5F2571EA3DC7E98F66601C647C80839E3F3477D78584870837F653243BEF6FF49C347C +5FE9C7F45A28F7BAC5AD9929D508628CDBBD4EED3295F06CEB89D378632C34D514A0B22BEFA7 +E090AFBE45EA64C03BD1367B63763F4570D25F59E83D344E8DDCD26CA66C1787FF09EFB314E4 +CDAA3BCAF8C94372828623E973768B6FAB1327C6CF5BEDCD37972CC2505B12D2A26F7D5AC9E3 +F623024A9370A44BC95FB17C035F71BB43853DC7CA66BBA610CC29FAE5636B21C2366F88675E +C0EB2BE3C127BFD579CF818ED98D657779430F5C75A0CB97A52F3547907BFE2AD55A59B0B5A0 +DF0D25000907FDB6D5781EA549FA89078516665CBEF095D9411A2DD1CF6A355BC77E2447ABDD +21DA230AA18D5E130DFEC1B75E5C1F6CB9D3C860A95E9FD960EB8D73EED1E168E357CF305786 +A8F01B63EA2D9301A6A3F886CBE4F678BF1BA1CAD67F3924B6408561A435E0720DCDD29C53AA +53C1747BA074E6588B3AB7B66B5686AA58EC9BFE7DC107D97B8EE627C9E79601B95791704FCE +469944BC90EC77AE5A9A5F2A73A4894712899DEF4BA334DB850A7187988BFC315A5E207AA6D5 +76741B3068F18C7AD741B6A4B6DEBF5A3C3E178D10E25FDDE0A01AFD5EEF225849E3B5BF1846 +28EE473A34303C2524D78B8E7B8D9308F1A90852C8463AC1997C91DD233CCB7E4A16E95CCAA0 +E4AD48E2C499397A4F558C23360EDE957D872238A446C39024A369429B2CE348AA5FAB425897 +EE02B71F085DE26264002AD168130598150C4F560E0510A135014E55A74F65B4CE7E1A96146C +609280B49F0AF1830C3C8A6045BC7774D3895348962A7AEE947AC962547AA28B02608CE2F91F +EC34848EC86C4BF8507A9C0AE9A0697699531E11ED9E85CCF52231672F0879B801860B013181 +5CCFC49012F03305D6D382E4E4565BD1D2F860EA8BD636D8582FD332972F1CBE62844355C933 +786BE37490A7EE43217854DF7797EB8680B93D9220F643DD70B2993A7A0A194159A9BE04441F +478A77B3D2CC38302701166DEA70D72224C9481BE0E68BB6802BC6E9D131C3B3FED642779139 +5CB3393D4817AAAEDD39AFD6508C9CB4FD67FD3BC18C65F27203AE022A522C1B750960B7A745 +0EEB8718DC911D645198227B2E729B6CA4149EB9D21369500208D94593A087C76205D1046B91 +4C31FB5F5D6FA1EFC908532B27AFBF73C27E2FC9228ABF72920CE48C03E3381A952A0B1F25A9 +9EDCD216B154AE6279B33315E822EACF095C00D7359EA834885DB0E6D07BAA9091FB364CFD43 +E378ED0C06B9A1F7C3A7922C85DAF6CAC5FC111A51292D4C7D43E9773F262AA032782252CEBF +2274842EA390B0056C3E0BBAF1DFE11D91679F6313316735FF6820166D4FDDD7E76A72469529 +1E224466ED210C82AE79C44A828E7B625F872C5A3723FF9A09E7D77D0555C9984F7EFCBF3B9A +1B156E5047E312C8CB86D26B0E6345FCE3BCF8D0196C95C5AEDED0403733EB6BDE2F6A65CD1A +0FE13DE66A2DDB3F912ABBFE0CD59D4A6D9299E1309CF7494C93896FE76C132FFB98E3315B28 +950E21CACA613DA51EA612678FE24DB3B04BA25EAD7E2A020318D2C79619B78BAEB21AEE2E60 +69D8470392695EDFBFE2DFBC2274D8BC8BB3551CA84E341419C7E718187260497EDCAFB7F588 +D1C7663CCBF8DDF1FE23C48D1A9B211BB0C75871CF8DE53C45A00E601F87BD65B9471CCC46D4 +481C5E83BA65153CE608D5FF6595FCED940CC0999FAFB2F44E0055E57E59C73BF3AD6FF70CC5 +A0F32A97D61CDCBEDDD34A295A3A7A9DF1EDD9169616D1F8D4C5E20A86DD2FA590B46A974D11 +45FE89D1F0664C3E0FEF70DF6D393AE7CF0B662E285C02E9C447672F73E90138E68F216C0072 +F5BBAB3943B40D24FB09841E142889A4B927E4A7F762E0ABDE430D6C4D8026F76A62B3B35BF9 +53B1EC19932E8E24EF20D2A50BD0EC86D6C0A61D1B206AFDB625353E1FDC15F96F3A48303DC6 +CDB7E4131FB3B6E7D80B1B332673F6D1DDA6BCD90F359014D59EB5445FB90E31E51D9E1962D8 +20792C2AC64E60125B0EE5CBBE02AC8BB9CA43A2961A5012E0BAFB42DA92DCC8948B043F0F98 +C522149E57FE699C9BCA6DF84D5FEB2F55C49407AA52345AF0F2B39C360876D5A6FD1C3C6D42 +82F070B8AE2DD3BB78DD78C7801A235EEF4A700128A9CFC7CC3B122CE69DBF577F6531B7898B +A31A1B915CCACC4B3B1226104877EF805795A93A2F2EB41CCB759441A17E6B7B033094D0861A +5A55F80D94B203FEC9582926A9CB5F8CB395C110ECE72754485D674DF6CC0BB84882BA26FC17 +01E3B2530A2D44DB5E8702DF2CDC597A8BD9CC12E95B7D274A51136B61E49C7F920BE8E6E17F +1B20EFD1F6F84ECF575B2CCB40AD7876E8B8C7B083E2CF8253D06CC4F6CC2A5FDBBD8CE6986E +18F759ABB35F7E77AEF16D5BB2DFBB457DA2ABDB2148EEBD4F88DE2B9B3244FF78BCEF9F98D9 +3AFEF587269D7952B9557D0EC61FB268980730EF3B6C5CF569EA19DEDD3AAFEC29D8FB9DBC80 +43E7C702920C678DEFE3017BD9791D74A6CE7A6BA312EC7407D2771A6F22E3E81EA35351C3CB +BDA7A7A5256C67AB65C84F0193D75209307DA141DC60D87B33684BCAAEAC9047A0F3861EC185 +132A14F5F48F19E38E132FEE76B5D7C70AFD29FE30411C5B7D624BD75FBF27D89844B1845F02 +7B866433344AF2DBF37587F2144E40358096A2F6CB884595E57C3A21A1B5FD1A9E007C530FBB +2FA384169531124511C0E643D093478AAFD5CBDEC5EB0EF47546A893EF0D04E30A89BC3D4516 +351662F937F26C80CA874E471EABA85AB541F51FE6F94E01BA628A0EA320FF000A2C3B93162B +40E33F49C81F759B0CDFC167B5E06A6B2592D78794A4A91A03F9F95AAB96850F726DE1782B03 +F66CF1C647872FE423AB0DAD21098C19A267859AB150D8CEE49EA83C0984C348D06E99EDB60D +797683B4B5255E3C521619DA2C26038BEEA2C6C013383A30D6155C3C6FECB3FEBF3205D291B3 +E26CB6F76AB6E222FAE350EF49B9C15AB1DBCAE734E377610A27B1013F0AC3B11E9235E952F6 +C65DAEB43581FE06E04BD94DBDD42AADE4CD6B475DA642910A0240BCFBB2848039B614F11B5C +0DE8B157BA49EC715748F2857009BBB3A0B550B4EB88631B53A69F025F61E4F0A1BF13265E20 +78C6291C114B8ED63A7F3A2D3FA6EA7BDA7445CE3DFA913FAB9FC964D6A5599175CE8EDE602C +7F17CC5E9390AF0D3148FBE8E7D5C8780DF83D34E4C1CFC0BA9DB11975A171928147D4053086 +BB7A29B4CB6620278E5D7D42B5778DB639D37D3149B525FA9A2B972D3F33A2E6735130446448 +EABC73AD3E00E0B2F5E774ADC1AA4E9ECA4C0E5DC2AEF0F7DAA42D37CAFBCF8FE67CDD3E7C02 +413E617562850E2EE2E68744895071D192B4505470D228C8CE86FF4B650F07E454F8DF8F5376 +8226231441DC5A026FB268E920C71680BB1426E4FFB38B27A019398C3CBBBEBA91C4988E10E3 +D873D3A7C8FC4FAA207B94A23E653BD646505B8688530D3DD734EB22AEDEAEE8274FB964378E +744E82C76A1E65E40A60DA47189ADB7FEF7006F180C2AEDE96672B55E12700D795951BFE14DF +F7EAFCF483E8036C07226D1259883EC8380404BA3523D786E55685878EA1CC6F9D2B32DD91AE +126BECFDC77B9825D602E3F18EA08021413BC95E5F64A120D41C719CD786BF2EF3E1A9B5CF28 +D80F65B01191653515BE6B53E59834541465F45839682F587530B63A3BA92D74062042AAA119 +12B071EC81BF6667D22DC7302F0A5299F3F3432FD03820E43BCE1007BBF0620163A0AE9C1A62 +B6FF44204FFA819F9D85849D450ABEFF5F3EE19B3FCA8EEB405ADB8A05C4809BCA050F846975 +C56B5079AE720299A7ECC8D846776048693005704658E43640CD89E6149093B4778AB677B379 +7DE560AEB7E09DBE57D723A4AA62EE8C42A83C10418133D262E5E9CBD39532F3881662FB84C3 +8F33ED685443965795C725956506FB106FE0960832A2C292560D3A43EEB72F4355B836CF5044 +767477AAD5346469F8E4E90F712DF820A0B7183C0FF090444A994D81E2941EA3C373282BF57B +9952FEE56B1B0B7AD89AEC79A85DC03FD2A35F5B87E061D15B65A48398F836788F6B41C749DB +F425391D99F0B31420DEB5C800EE281A427DB0C1FF7E03105C434F95907BD74775C980B4AB46 +A88652C8D59BE6CDB3531123CB25E9AF5CDADC324AAEFB9F8DC7E1EF4D288C6DA52487B922A9 +C9526875CB3E528AB79122F9886517E892115104A20A8EB4CA7628083B24C0B0F0DD2BB0D35E +3E1D3BD0D50135F7B7F1F5FA5349C9953C4F61F00EF5F11E662AD12E8D9F156E32B845FB8E12 +1297658DBFCD943F1AAA74F38D43EBD080C41DDC92101722D829DFD3EA37DD5120803EB06734 +6B636815A8738403DBC18BB8D8164A8E450A7273F8164031290B465A44A268CAA510E9EFBB71 +114E603718BBE415F2426ED24BA413B286C42902D8C5E483070D3A3C57058E6D640369797383 +5C78166A00C235F8B4A4D155E723010F7500A7179625D248F2DCD8A368AA5FC85600143AE81E +BE8D901EF42702D30AA628595AD111ABF0E1E06A7939420D648F03FC840A51919C588BE0F7B3 +BF71B51EC7DED081D0E2FACC72D65C77FD6864A2A30748803D0558ED2BEC1FC3A91710CC9F6B +2C8A66F8C4EB43635926CB75B89AF438F224DCC5A542C653790E2CB2831E6AC5590BA51EFF51 +40C5F620102ADA7E964D21ED4E7AA39B2735E67E1862227C6E1DA2210EA7080000E90162F5F5 +2677F188D75022B9A6173AA3F4E45449348EFA7A4D119A8C4682A1E205DD922BD9D65A5620A8 +D9D103B853D56B872122F3B649565C904E6284D66979793B16C853BECCF478864EB043CFB096 +42F0675D88E62AAA8088291E844F34AE84CE4A93721B4F262E0BFE50BC17184D4A2A469FFA94 +8671A565C708A79A8DA61041C5F60B1D82A50C52A6E145FEBDBC69CD0F32D81382EAB87FE7EA +2EBAB016E169E5092C277D28A0C1197B760AE2EE5E307FE6B23D120605E03374AFA65DE773C9 +B543D6B6321732A158873823AACEDAC38B2AE5DC0DD9EC0BC159C6861C99B18722B6C84CE819 +07EA32F1D8434B6CD6C68523720859F1C1663A921B7DA0DE2A9775B181AFF992AB12E1A1F3E4 +54E7342B9947D893557DEA500F36598D00064657C8B952E299D679BA20D0583FD6869F131495 +6CF2D1D8E81A0C20556F28F8729ADC075535CF1006D8F1750E479AC6066823B31E969ACDC75F +62EF2704DB581A7B4FBCD22ED0A794B52494A69F4D57816E604BEDB0C1CEECCD3F80B6B50C76 +065503F13C1DD3834D7DB2BF297B0C8B4875985310DDF076F0D6721FC205C9C0957E43E07EE2 +CFE21647A2BFBAB8136866C9C4EC51706D04E2408E72B6106F02085E5213C5D88BA0B90E0078 +FCD4A4214120820F0809736F4E3C06C6E0E6B4468A4089236565AD25A85730BFC3E476E5F0A4 +DE180BE7A504ED02596543DF24359B7EAB8E5CB1AF98528D4F0FA8DF2EDF90C2C6D75600BC94 +61924029635FA8E2BF07BE105288333A93A0A70A6C4A7F6D8D5F3EE677A017478747CAC65A57 +A0FAE14371CB16FD6C39BAAFEC9AEA1CEED0E66F30E5F4B5D0E8D9D56DAC6D552163270CEDDA +49E5272BC389831BF07FCE638F7299F5C0FE332B7E29089D77B0140604B8AC0377C10C002046 +8F250B3F03BBB37DC29F5B1CB2189063B8BB0F278AFF414A86A2F8A18FF13EBEFF00B4D723E4 +90B2947195648367E0A7DFBCED6EFAA53EF849C79DEE21E5665409A44422C3A36FFB74FDFD10 +17D31C32F9E269640AC36C3A519DB5F76198F1AF12F71ABBDF8CE85E7E6C2ADABE4B47897CF2 +4A1C7B5934494F07790965C18296B977E332BD853232F2E2BE755F36AB8B1773964A689E1BA8 +48F9F7F01BC585E125F00B90576FF82BB1BF90557D064D38079520D19DAE87A298514BAF1ED0 +0B89467F5FD445762B80F1EE8E67FEBE8B5B2558B32CE738201712612A56D824983EB5403A70 +6383D135BA5F1EDCE9833B81465B34244901802B7684AB914548C88C32FE91DFB0917751D843 +5058ACBF0BB78D11118F14A0B9411BAA1A6E04088543E99B70130884BA971F4DD03F1AA3F9DE +4B1935663AAC294C9597AE21EB145DB431FFFDBF163B23F3C2675662C37CA63569A818D47B85 +3B59983C8B6EE24560B2C7D426283995D86A7DFEC4B6558BCDED8A74D214BB6C86CFB902CEAD +F6C5FEFFCD06777DD761F9F9EEF09E9A510E0DA31C3B847130961459642DB3E533407A19AE36 +00973E4F70EF0912C462769AE399EC9861AE5D2A243CA6538943520DCDB2A86633F3D95F1F14 +E6D63126FF361FD287539C686CA9A6E4B46154467CE9CF10EAA3DE0EFEFDD09BF305A5584C29 +DAC82DF9418734B01CCCB57666E0EB5E5617EFFA3059FBEC27D3DFF8DAAD45EEBDADBD272AE7 +9909A4CD3476F9E1275298429DDA620C15B1E229135A472B013F5457269B9682A3D41E20C66E +EB7B874F26FA9CE0B2C8658937711366BD4BEC4F30A14BB1FECA238CE9476D66D1BF4259941F +61A7DE0FEBA45E5002A9AC44A7587FB206277C01F479D7CFCE8809687AAED92F7D148432CE8B +AC0AD62DFF7640554D59E88CD83022A8A42D2CAD6EC197BEFB73669DB969D468E7519943F53D +D324F2E9795526537393C3E5298B9F4E9961A182A324DE0D8109539FD483E1C6B0588584A30C +B5052487BA59B78E2959B3A2BF30DB1374D585BDDA52E088AA672AF40A933C94CE9B9F63FC83 +ED72B19AB818CBF269FC03F38DD982A48B8206307A10E6833B3CD33869526F10FE1C92F7D0DD +56C163CE8F04442CB0DF0E496F2A1DCCBA88D0BF260C0EB856E081EED167C6EC1D8105B2D3F1 +73D367CC27D0F26FD89995A2EDC6D1A215F57847F7236753FBEAB4954510CA68688E51034121 +F2CD0D46C7B8E89E138FC4EE229245D537F8F5009B76D6117403E10DB46109C7B58A67E0C14E +6347DDE8242030734D02A5C3986148528BF20973DF3D17DA67E53334B678643F09B7F887CD90 +87A6F635FA5FAD0A2EE43668A8B1973A42866A399B280787809820D0AB51787DF2A3907A564D +10FACA4D9B6349C60852C06444FA49F8E2563ADBB0EFE7B8250142BB06FC4C93C81BD8B51F85 +86AFCE9678D4373ECF051908E3435470C360935180B80B2C03B5033E2AE1B256B426E09FEC5F +902F7A8878B3ADE833EA39EF3D0AAC1160E1AC3FC15170DC3FAF6D17664E6292C51B268666DA +DB416E5738176D6CEF2152B529C6DBEA6E563B5F7DEBDA3E49EE6EFCB88677EA2AAD003CF528 +6B21E648EC332F0F0579EE648925B05D50261FCEC1BD57A22E58595CF326B5FDB2FFD9B8DC79 +4C5E7854EF9EA34411546D28C5112B9DE1C25B861233341B2CC117C9C310160F612AC6F13F53 +4DFAAEC92D6B2CBD9C3F3C0CED06B910260F7A2DD09B1B9D44346CC5A7D10B4D637275D505D1 +301078EC936B96BCCD9A2B783A93019C5B769C15636CD94E9D4A24BEA9521A41703FD6F4EE8E +362FE33E21EAFF8AE02DEBBE9D9B379B7AA0AA0FE94C3320CA64F41FE488FB58CCC5F13314A9 +F8A8428DD1D713C07489BB76A462E9C0E237FA5FCDFD3A0349B6B77067F055B7FB0F28953384 +537535177D190465C354DFA1280FB3E804D3FC0D6E2FA88A5F2829E9AE07E9F7844463AB695D +A17806C271E20C58939A04B5F8DF439659990D8D8F885F3A7A43A4BE49C7ABD03DAF5DC78CE6 +6ACDE634AD08C33363EB642ABA7D9C34C71C74CCCBF7F4ADF9A201E203F6540BC467DB200646 +9FCA0ED2234AB1A31E73FC05E8D8D906E40B3055B3696D72C48080934CC62E8E850350E70CB9 +558CEBAE7EDDF38DFE79FB501A6EE6676F9B7697FB4A90B84CE04808434D244ED68AE441F19F +FCB2E0E62DB832C31F7EE26D90CB6FEA5DAA44C297E51E6F9952C794562BF286BE8727262E51 +5DF58D26BD9B97A5ECB5641D517DE35941143757645D511409808347297FD5D84E4BC1595158 +9C4E272C6DB003B51628D3753DCE430C6154F4A7C5009CF5AA61D9CD61CFE3398701B65CAFC9 +372339E6642D01C461EC04840A4F37E8289A232B1C06D659AB081C25CC56DCB1B914EDF4C7F2 +3CA7598B264309A0CA15F079ACA4F69630C6AB6192EDD8A2350D3D1F239FCE30CEC5C7597971 +6E22A6B3917E8F0A05D75F8D1EFE57E71836EF46D41E4CD87F11CD8857A3821E6A7E4D596C39 +739424E37535699B423A22CB07CC47041D7B97260181794435F38CFAB11A7F571A725D084101 +07FE3E53B16CAFF56F14B35CEB1363EF20271620260552B0B9FF5ACC9E8C508A0F07A4768AD1 +77975F80D7EB3FB92B04A9AC5FCDD9738982DFE4B8DBD646D0F1035589116E961E1000B677DF +7B598EF17FB7442E07F625CC07E7B7BD4FDFED5CBA26EF286DB92F99CED631ADA9B6E4AB3654 +C549D5539A2C6B2BEF7D9685F6C5BA2AE5273D15CA66EFC6FC14B3DC2FD47B50E6FE3678531F +E11B861DA29708943D8914EC5B164EDBD2B04DA634314AA7EF8158C3F4311CE9FFD5973DA940 +22C33E3A69931930572FD8DA9DCF8AB915CFF613E7628C5773652D55C64E1DCEAE37C879FC17 +A35028F33B8D14731DC832193B35D6EAE7B2B5BBEAE7DAF05B3B34CA3235D81FA537EADC80DD +C32567E15F80BB2A484CA51AA8F3C853696A740C271E1FB34D3DFA72394B88ECABC1F4E92CDE +907A139A5B57406DAA97AEA576412937FFE4E2689853C7B86FD869270B2FED848BDB95AB3E04 +C77836021AE12BBDFB0BC68C09AA4F5B607D8B724C24CF6DCF4F54222CEE4EC643F1D4024C39 +8ABD99169DE91191911AEFA67675C21D539DB7C39462FE640C5F9C9EB684C6037315B548DD49 +F0C35252F2E9D5D4571880E66CDE49FA9653949D2F28AD44426978A2127122CD77B607E9D03C +74D9DD7D11E4A9AC2E3457FA9C79DB76AD398AD5743F6E077C36423E0DAFADD1D391EE4451D3 +F94EC65470BC74FE2D2252F0540BED609F760145914E9437D9CAAC61BE91F76C5F1979C9C6A6 +F73E690DDADE3B1295251F0E9DC3100CACBC3EC17689A8CE1AA3089A387B2727035514F69E27 +048AAC20A38EE49ABC7928D0109D3B230B37F6092388AB62CA5B382DB76922CBBDA2D61B5745 +6880763654B4D83478DB9C0F63790EA68F5C154EA4853D02B9A849FFD65684C368E68C6CEDCD +85BF1F041EBA86E9BDB490CD8CEF298DBA42ED4FAFD561C2CBA47869505575220B8E3390BA7D +411C2BB7B16578A834BB1504CFE2644713BB30F2C76D9DB397F45967B8F146E7C4782B203A97 +BE20412D4B2B6D53511525292E48896BC91D3891300E48DB9B7A650DB26FDF8992063729A8FE +4E8C6F786FF4F4BCA2018C2861DE6002A8D4954BD7EC80CEAB7DAE6CD07586E733B1E862DA8B +1D4D2B0381058A810522C303C06AE34D5EA6F05C97B4FDB3FB1DEE799511F2EA9750D53E2A1E +CB6058C9988B55BE1E6F1B682C689C996749691B6057DBCEEF6AB5EFCD604DF7420EB44763FC +30B4812891FB2B67402A24DEC15BA326BC89E6C574597178EC7CC644FBDAB6493E545D89CC86 +BDF8826284E8697D2417FBC5630CFFF686E9F8F6C5F7788E975FA9F201FFD1E99B75E69C2395 +F2EB3CD74E2E61B44049DF0B65F91195233228490EA9B9380800C1B43905B862770DD378C920 +CC3EEA51351DDD3EF6C68302F96DCBE3D740F4A3E359419599817FE10E5EE241B516A7AB852D +01B570CA085D306C75BA899A5BE0F5BD883B1A6EDFA8EA72E5F66878BFE1208151032ADE4804 +2F2C7DD0D66220F5EF66F4D3BEA1014EE7327242F8A8D948750934D22B7C36B2CBC01971D5CA +B439BB320D7831FEF3C9785645D9996615DB538084C5072F2D20F6A8909C248AA6D34DEE11C9 +1E5C41C931DD5076C9CE87398A58AB06A1AA7A07DDAC01B730957DFA34FCD86188DBCC7C8A94 +101F09209E7B123FA9D671222BB65EAB845F7787EBF82A0F59A7EAC3CCD936F54A048AA9E36C +983FA1376E1F825FE112D4FAC62BCE3DCB285C5138215EEADC3FF9504496AEB0C443DC9EB28C +1C3F27BD1C449FB7ECC661697186F9C31CCB922F2B9C9CD4AFD63BA3CD71A95A52CCCD50C9C9 +BE17A47D3123DB4898A75275D93D74EADFE72B7BE3679FDD9DAD4C885196194DBA0D297F8033 +1B1471EF61A839DFB26FFF95487496B4280D02CBD88C1DFABB04F98207ACB5E5AD8B4D4D26FC +232FE653E9B30BD50930833E2B9D72A7A3C57C9744A0992131CF0AE770788FC6376FB187EB6F +1605CAD55B40D0B9132B1799170BA18EBB01A6B92D5CE2580E5D5BC15B14113CC32643C74805 +17AC33E95FA1B318328613709D3B05296982772B4784B762103E906EABC30A8C542598B970BE +13D8F79EC2D4229118B8A71E708F049B728205008B75CC96661B1F19CB27320E6231644CABB8 +E8A3C07ADD08A88F5BD1448FAECE9C2E9E959FF42AB856C9F0C45B170D4BD63743867FF08D0B +C568D473801E2B40F9E99DA8DF577732784B52FAAD05893033ED069CC2996540E9BAE9916E13 +9276031E66E1ED34CAC0228B8C7B8E0E0A8C9CBDEDFB20E406D5C2698733F1912BE83FC517C9 +268D3287C66D5059D84F52604387E0684850DA394D1F2B4BBFBFDECD45BF88738074512A1905 +70057E2275BA2803036A91F9A32E64CD7429AAAE7DD6D28C3159694901450896D483717E9ECC +4820349ED3E5FDEA88B1F9AE1A7E9A9090DADB0DEC035EA6EA90399F3A942E3401EBE5B483CF +0779ECA7685E8D278CDF6EA2FBD2A7CBF18314F5257756CD3E342479E3AB75A6DFD4F9D7C3B3 +5AE5042A2B7FD3CF5C93ACBC3167BDC9A7F0D25D0CEC8F73D79A98EE89A769E5A41AAFE97D55 +688F39C661B575A6601ADB6399B43DC5064D54F07E8299627A114254B11F1E8DDD1E7783CC7C +ADB44A96E8E54CB72A448CD387FACC2BE66A5D9A4583EA6B1C0E4E7685739E22F50E52488EE8 +D38903E9BDF9CED151FFBAB79C1E159A06C11C70D91E114ADD520627460CAF3E57F77063FCAD +E73F05C563FB50CBF0F2913B6899926A6BFD891E986FC06001C9D8073A781F0981FE9D4C4D17 +E49D1793608913238CBE6B973F9493DF8C7123702646446944399EE25B1E5A40D3AE74728879 +203E2D5F005C3955382FA450B86A58C68BDAD3FE1793D8E184CE250070CC6F8C21E277DD506D +4C8064374CDB89D4C5EF1859FF45BCA98BB91FFF5E52BC1458991E9C296CE2F8BE62B7A34D2A +DE95004D86ABB1925B24296C39130971B68A2B1228EBA1575447FEFF25F6D887EF14B66FEB4A +377F60681A4B44F63B6A067E367E379628CD7342D80B79913F4797FEA6506A56D47DDD7E0AE0 +B06D1E9D52359EC8D1FFF0502D3D7898ED4642974DA2483F6D5F4F48FBA2862B9684DAD5F1FE +7434786F28446523FA121E0445942EA29694E03F2CE367B6EF118288033B36F87CD456F566A4 +767D31794A827595EA4E03E805A5D0255463FFA40893B34EE0107FBC6CC1D25215A70FE0F9B5 +526E65C3E50376D9555BCC9F60BDD3DDBAFAECEFE4659ABCE230EFCC3BF8BD7F7AC3F5CFEE3E +AD7E09C9F2027DD12F7D85837C9A693A330281D730982A1A2B854D5BB19879DC69A0FDD1033A +7A858BF14C949B17D26B491B123F3DC89E67100412DD9DC767EC66FB690EA83850B80DCFAE83 +EB437F5A5F4D22517DA8A21075D6A0CB1FCA94446C8138FE3F28B8BDBEEB3DCD67E4D6C9AB24 +9F3BCAABF7EFFCF8162C37F3DDB6DBEA59D74D515BF19507880F19F99EC7AF622FD9ACE7BC07 +5D853517B494438AD1B7BA2F0C696E77543EA59F951D5B8C2D364DA095F4B174C878FAB8CE90 +B0312FC2D3C62B4A9F02166FA0EABC1FDFA7839A250BF3627D3AD5ADD5BDBCF75B271157E012 +F723A51A76ECCACCCD693F81590D99FFF80B21C7FEBAAFB921C0A91AE44E8C3A870FDB69B2E7 +7A65D13626A3113B069A1382AEA90C6076D4D4B553153B3CE24D1382117307E0D1195E39AB80 +58E44DDB927058A8D71AE41B86ADD4692AF0E852F0C1C92A6B5CD4E7C49C7774BCE30E0F5256 +4437E6553B1E6486FE7F8DC97451C934C3939EB137A8EC09486F10F2A7FC4BD3ACFF77F03B1D +92F19A015FF6F515E9963C870DB70977F9B697E07CEB75B9AE87B03FD70CE2008B941924DEF6 +27DE71F750EF0F378CB2648EA07174E62FCA3FCBD6C6F1F91C9BA4EAB493E28751FBC57D6897 +8F553DBD6759FA9CCA70AE9A7372A70CC6CE35137CBE4C289575555D92083E92DAA3845FB214 +DAC0FDCB355A5C08A1F3647C85E3B747F1FEA12CF8AA1D2162E03221BDCDFDCAF4B74DC3ECE1 +657CD9819BC34ECA91FE1E7987FD75D3E434307B208F2077457E99134E108E38B99B6D1D8DBB +530D3AC7CC5811A7FA92BB080D8E2A3A09CF3F6452941D063D275E2AC849E0B35B39C63551C1 +90A43F3C3564AD6F153C44F67E6D50E311ED225861B94CD108D278A4785632CF7E47E89C8FF4 +3114044CA9D48BC15C5EB1E9D1DD3965B84A20522340F81FD0EA60D7B763BDE818B5F9522634 +7A5220F043B89DBC6A41DF825DDBBBB05736F7709B752B42A1FC78B1DC61EF6DFDE867C1EBBE +0E7F332C0BDCF86B706C2089EFCB1896B62ADBACD8E2358C75060046A54784A41F66B5DDE678 +06625477FCA24396747DB263092F82314E7440FEA9CE8630FCC10D7F4BA6821613F64A16D00E +4BD9BCBB0EBF087C2A88720504CAC249D2B2E67A823C4F34260A7672E8D6E7AD168806779B39 +ED0847E82037AF28416AD3B5C5C6823ED9D1912A6B45874E5C67B258DACDDF6BACF5D735899E +A6C62DE3BCF40145859A58C0D744588D070AB252A26E87FBBF2CE51E95E5AF46AF3EEDEB147F +75EA1F698B2D3F582B76381780E2BA8F6F2AA75A0DF480A0B5BCE7C3EF61755A4D9BFD0E9AC8 +5CF716407021CC32CB84C16A90C37E83EB5F0D6B7BEB221FDCE3F9A6701F6BA690748F767AAC +D6F886F1B2A54037AE8D8B8546E9DD0ED71C2E03B1148BC4763F95CE2A92F2E29E3820F8BC5E +610200FBCA96221AC7CE0E8DE251618EBA754542FB8EDE1632D48C0D20E882F915BE1F742ECA +7FFEE8F323B05EACF81846F87CF833E6FD877E01172686BF92B875FC6977B3D524E8D8BF0215 +C3D72182BF368C7F89506B058A2A6042CF86D8DE16BB8210321B5CB1CF42CC5DD52E29D82D9E +84C957E52BAE129068A6417FAC32427F8C1AF08E2CB44F7CBF3E8B1451DEB7B2CBC772227117 +736D41FF4A6772569A4B2C2C48908A1E36FE12D950521F269A0DCC4449DB961E101D3203E88F +7910663B7C672EB85F26562A35A26871947B14D69F7E09153F1CC980F0663644C9EBE030EA87 +1399577ECE5CFFD2B7490AC8CBC565359683207E92D072854E094E718CE9D4DF1117A46C223A +5F095DFF3C1721B52502F7366170444898620985ADD2CD198B292433C88ACF33C022AC15E910 +E56EB3B821341BF3ADC6FBCF1CB7BA72A2318D1C6D36810768674C325CEC8B2F86E19A0CEB06 +64AEC6E1F57BA2952DE44C1DC85FA8AFBA808459222C7608842D4DADE3C8D21210F366BCC222 +BA7BA907328AF3304F9AE2A542FE84DCE9B4B3E13C23E687BC3360E578F660F31F948694ECB1 +766365C13BEABAC7B589D2ECBA799491735B417532E392D56C9DE2B503C2A49CADA4280C863E +D36CDF747D1BADF31AA0F4C6AB910BFB708F2B3D763C041836C9C4792C8CCCF39519F3B80BB2 +0C7767314CFE03C5BE8FC81AEDF28ADA7C576135618BCE77ED1ED0ED1F8804D4DAFC126B4E94 +83E61917775578AEBC58EE5823CCE006610FF2108E5EC5E9F6EE0B7B09BCD064A2EFCDF71CAB +DBA10D0FE3DF95A68F85965CF756B19A9664A167263B2751A9B7CA9CD76905A9A16D070912C5 +FD49959C93601DE4998FD65F6B506B9F54A16C92BB88C6CA8751CEFE60731952B2B9550251D0 +612901121CCA0D3A8A51D7F1F5D9C771EB86BDCE40ACC8F35831C9E5ED6F5D5332275D01748F +88428E97DDD24A036CF030A8D04E3EEB7E86E6B6E6F01BBA6ECDA8B4806DB2DB9D053CA1299F +5C6D43A64ADE6A7A6F19AC608CEC86FD93407D6BD802EA487D7C46E5190B6B34266184235859 +250E09C49583F8B856EC06E4C120A0E12E4E305540AC662E171DFE00F687EECB571D2DE79473 +E7D22FE4BDB30B9A526F8D68B4129D71FB1620CB3182FAE6B55625F9C2664AAA3FFBF9B799E2 +FC92EE7A19C5E37F0EF4B3A6A902CBED35E34E86D9B7E5E41E5ECAE9876A83B2F2BFB7038EA9 +0A232AF9F300BFB6A45F55D73BCC6B9E5852395D5CD5C77819C568741A7FDBA3A2FFC81FB1B1 +EA0D4D9B450199617FFA0BA8CE26FEAA16F62CBD663798FBB3CD164D6EE6E4F505067C0EC75C +1C5F81C699DF4165633E0708F8CD2BE2280350C902890FADE818E5B31A6FDB45F7A6F8E5F924 +B4D670B9E3D4EFE00D2B04D6F433753454B3D3EFA16276577DE3F28D146907CB6C05570A6D4E +DC284093A4B2588162BE6BC867A00CA1A9254234766503FCD3A0E29D9C5676EEABBB3E26FF09 +1E21CA21FEB29365A56B6960E1E76796C097D80454261FB63D5F941B66D9DEDFF932793F1569 +75004F36E2D91D2203049E5D9DE711D832E78CFA18E2B5348B74AA8605E6425D8099C6B10EF3 +E4A299FB76F028BDCAF8ADEA2E908E3535BBA4B42A905F30D13129209DF390139E3C548087BB +BB46621E71CDE60F450A8C61B247CEBEF47B5F311B3CDC843790CA79DD6C72AE76A679AF24D3 +6D0B1B5388485F880096057CB6287845EE438CE1E6404C5BE7371EB6C060092ACC76AE336835 +1D481984240E51E33061F1D9FCE34A4C65C441F5B4E4D0781103AE0B0CF637CA2FF26182B855 +B696605FE114AB2F7DE5F016E396B5A4FEC79F05ED451EB3EA7CF718936E0CFD2F9CE7781162 +825FD98BE70C3B16123F8D9B0C970DCB545A7CF6A8CA6B4FCAA319C6C4256B10D6D7AAD98931 +40122431F2B0068C10D0398F55FB91DAF2C624A716726513EAADC369BB29FBD1B2B7DC5324D4 +08B0B02E46ACCA565D1413D1F65F545603B06E28637C326053DDD2B78DA99BF320DA2A565258 +CC9F548B2F87511C628610AA00A6C8F5CC5BA2CCB13BB9EC7F123EA7FC49EFBEAF5D7244EACA +D013A08D3FE370767128687A488302AD3D95067AF108B76886ED16B59E7345DFD143A24CBD75 +E828AE300CA7D24437D4A5F0038DD5265D82CBF39A4F8F542D491486F5BC3566931665909986 +41510AC914312D22803F242311DFBA932BBBCA9DF24B56EB52209A5A9CC8AF2688B59F348E7B +8FB08281143B2C849BDA4FBDE9D8819E97589EC110FA9F31FF85D07B6D58D58CE5DAC7F22D0F +97468FC790D913622007DC8045E2D05DCCAF592A540870FB4EBBCE3B5AB9818D49B4E40FC919 +FB8FD87617733360FCE02FDBA5E57B33461D5E085569129B5B7B657DB36D29E3F87E17E9C7B3 +8F6F1FEFD369D314E329440BD0AC26697B34D4E87048EC54F7C381E66C908A658BA83A811285 +E93E32BBC6C641BF0F2412C276B85CB18FED61F22ACA7FFDBD37B994314CE4B711B82402DD26 +632B7DC376AFD3C4D66BE5E40E282B74FB120F6E4E144D90404C7A4513F2AB180E00FD410AB9 +C10CE9B1C2A8EE695E4CEB0F1472A959E70899B1A07DCCB20546431FE6B541A05291D5DDA490 +991BD3560490CAC148A2D623903B630DE49F10DDA865A74AF0866C2FCC595F6FD0A0CDC0A146 +5398818C46554C37A4CB1E543C4760E804B39564BB853400D0E1E9DAAC58D0577AE177726D1B +9075BBC70B2AECC2F7F44D34F4C691485BBAE03E43E8BC5535CCDFB1CAD1D66F38A49001C4CE +CBD71202FCC47BBD3B224812C677F4F9E4FD523D44EFCFB05A57E45AE2078E3E16DC785125D9 +55D3B941F4FD72FF547B069EAB30BFD33E3EFF0686FC7E582CF73EEF9866D6E62C19AA005F73 +4CD8FCC0A012F41F38107E135CE4C0AD8A8B81101FE4EF8F32065B2C279A435CF5A032DDCD52 +9628509FB6773B475DC13517625705B5D3A9D9EF6995A37DD3F0D6CE5451845CF9151C40F990 +60ED58E0F2CF5D6DD71944731CC4ED0FC72641E287E295CBB53AEEFC3FF3EC0A5DBAB8C3AD31 +E5F6B339C1748A9E58851F6CDD6BF091227B2835761B7D9A10DF0242A7B61B39AEC0A0697F43 +794FBD2A51A66F860FEA136A9D7DD82B42B61710909104E0FABABE3F5485CF1474D494B97508 +DFF80A698BFA58ECB590D8C38873724BFBA60FB1150B04282AC1022A1214E9513D27C5D45DFB +C47631BB27CFA2806C2CBB130DDA940B65E75F956846F4E6438773C94E8EAED71EBA5E87A886 +DA7A846EE29A43CFC2D130A3FEB4762091B6AC357C973487573A230DFF74A29E203BD78B89E1 +729B747FF9B58BF1FE5FAE6DD70E9DA091A330078845363681AC2BA501286DDA2038A0FE2235 +C10656143783D50129A728B4EC2C64405B7C97AE562AFA240D35FD9E3A6E034683C60F32AC09 +968A76C775D5547D85D7A3168D6F19F12FE132DEEF497E90951A56CB17E543A76F8A526B1B7C +481CEEA4F5FFC637DA5CE954A742BF39837F08DFD7156A4F4E4805494C1957B2577ADACC0D3B +F9B0EFFA5860F454EC947625E70D7E4E652ACF276F57F2137F451540ADC35D501CFC1F7597A1 +502A198EA502D67E7886790A84DD9D225E83D9ECAA18FF9EFFA77AAC3AE57D034E67CBA014C5 +FE1E3403AE4277D864856FEFADD2EDDB1161E8595DB1B2CA6CCADC4253B95300ACEFFBF9C3B3 +32E1FFD71B91898CD0EF1B9F64C3969FFBA7929BAFBDCCCB943373EFDBA057003069C4ACCBBD +82DF6ED1624FB8D0D4B3E561A05B13550A7EEE9AB35E47E9A96FE49EC2716AA68224E3A65AE1 +E96D530FEE45054DDDCF949E7F3977334E3A9AE459085F366393D232B2CAA244B029F2BC602D +05B421E14C08563C4296D3E9AD328DC324EA5685E2FED03DFA3D3AFF2482EBB368484FF8D015 +53CB8D5686067F99C5617FA2A7F6F183F4BEA8C1AC39AF726341501AC8875104D11DBF241B9D +C9929A8B70ED71BD62AFAB7981E452086163DA2DE543E52D57AFD080AFE373E8E321670F8A47 +4E9DFF36441F6C1A4D2AC6DA6E5C9FFC0C4EC9CDD8614C2D65D55019378D678CF46F483FA9EA +0152D9D3A12175774B56B11BE03362D2A36BA13945979C64163A696B0A6CC760BB6111EC47D0 +A5260DFA7FD147FF35AB84DA889DCF4BA4146647D5BF8773096FAD1EC8001A6085C4F4721428 +F4D4B85F1C03C71576F497D3A5A99392C647DD42F8804DA5D33CCDCE19DF1A16C143C449F1F9 +37F6F75B05ABD0CE90E4EF696E1BCEFCD950634E414DC724B0084BCB515CD4ACD71A6CD3784A +402C3CF3ADAAFFB763C5F7E17BBBE19172E4455923BA48869B4D9D0C1EAA623D9C728D887C15 +BB8377AC74239EFEF6389EA10C7C8820AAF857BF8EF2B64EAACF096B742ADB9B666D96715364 +CF18D88AD8DA6A0CD303557F04908CD28D11ACB9A730AA3A37B6028914674816E6AC076C4559 +A84880E82D433A5F5722531B0287F11B24AB4CECC2264BAB4E6601C990E32E1C5F9AEA52CA22 +2D2698507A4B235531C3FB7E9FDF6FDA186888A74B902A0EF3457537233376E8667035C092CC +C3797AD2FDFE1CC8BD71C49B91E4520091922CE87856F1DC60A209A9BC9D97B0141D8820E1F3 +B86BFF25CD1BA07E5664D32C09CDAF569EC7815F41E0E8731E2FCE769BAFB3A751B3EB7082C4 +992A4FD8BA363D0888FF39FF986B80D5568CDFE1DEEFF98CC54F05B842694BE023E0E0507DE4 +7AC1B53BE427D31E0DC9CD5963BC3A5183C54D8C9046068BD6F300F4C0CDB8CB779E6828271D +BB9EE44B70BDD1C1B5A345AF01E5E9A74260781AA473199CEFB232EE9C60D14DA8C5D3D22291 +A33E592BB7FBE5E9B28F18EF70DD0877DBEB43EBCD12F9AC95B7D46A2E0DC88E3B7D34C6FB32 +1593E7FD7C070D44037B2EB5C5E7F40C2BFA3A282D85932C19D3C3D07F5BD37C5CAB34816E9B +008BB5988A1703DD971AC36A0F1C61DE0828A6108A1454A17E63F68FC5604101184FAF38061C +515C0439010551A933CE9701EA75A59D88310C564CA3C4D9BAB34668C6ADA1792C550D08B029 +5E6A2AC490B06A3BA9118ACA61A951BDC06EB5EA612992BAD973AD703F5B25D1007F47CD92E7 +4D824140CE1A827616DF813898FBFE32C87E692FD324FE78FE9101B1789C8C094207BF77C290 +16ECC3734E103ADE9FC7717ED2E6979BE347F72A514B943A7F1101ED25B0AFDCD6C8374182ED +E624911F458A5EA76FA982C3CEDA0195275DD50BE2AB3FA62F5545F802CE3784159E281A810B +87DACB95D4D75AE2EED997DAD39BA7346083A046660F0D63D4416EC1AFBCDBFE18966B4C4C10 +9D5C9E9DD7B1202D6AA73AFAFBC169E752DB200656FA28A29A9AEBFA1D4EAED03478778AFE82 +E0AA2DB79ED37AF8C5B940ECC6A5FBF38762505235415B285C72DA21F4FF986376E407C04843 +24B3A2ACFC6D796FF53B5412A1A73DBDAD921F402308041C18C5D7FD9705959A8C0F5EEA851B +5AB726748A6F0BAE196F879A3A1A5A87F7FC723B7A6E85189914EA451E2BE92B908AFCD4BE5D +3D2C6C1C40984D10483A9F85648CA31977A4CD0F9781CEA0EBFB97B8B07DA6FE5694C32F0B5D +23D58CB259E54C46DDABEAEC138EC1C5922337B8CB2741341E3DE7D141E7316B2F0DC75C1A62 +ECD7106141548C31F7B90C0F70106E4E788FCE549DACF492225530F427A6BDFF5ACBAE8913C0 +BBD9E3DEA41EE41FC7C13796A4A7D32AA56305F2420AA9BA5C0A0425861F97FC2B0D586678B9 +5F28A395FC340E5CB4D0DE633E406347BB83E56126872B389CBD57C359807E3AE6CE23C5F1EF +746BE92625E161BAC1584CB79940DB009844EA870326A7BB6CC8FE67084726E36EACCDD1A5E1 +87D49E1CAD01037E58EEA820171B29968A2E4A08352959052EF9CA920E736C7337D85A44A3DB +0DA96FB9BFC14177AFE17AAA27B79E1C92B4D53F4CB9C277BAB838C640EFAF3EF4D95CF7BC61 +4F3EECEED6A657E1FB361302500E5DEA28E5B5EE4F3886C23F670090FCA5D2EBA7A5E4B3ED0F +AEEA8A7E6DC041F9988D43F645BB388FBE848EE495B391FBA4C0C3939F3B5B3203A5527F397E +D758BEE1E0F0FFE9A379DE0FD8CA3DB83B767C3BAA6214BE3FB012708F1327E1C96B8FE26597 +A0B8403DE77750565067F42F1587B5EEB69D5024A807E98A3BEAF5FE5F88DECEF57F2FAD58E5 +20D282ADEBD2051F086B3B871F0839C71379E6A0F800C7022978C84EF6363B7A79B10386E38E +8C7DDF0606ED85B780145FA4428DA212AE5386205BA129AD33D28BCC36A0B6CDEE13C37A6C2B +7456F0C3402FD5B3E3DCE43B479EF0F81DC571FD102BE21029C721E4148729755F19CFF14B1E +0E30CEFCC09D175AF0811BE99498F4A8632B85879AF0E005495FEF5548F2A1F8C989140726D5 +4BA1FB448E54549A2434A1FBD152E7DF166EA70953C6595CF824CC77984DCB8F8807B7347131 +CB727A589B651697C32E0D52BFC2B36B4C050CF9A1CE072746992EA2ED9B052DE1B2B9A21A89 +682B2BE4A1328C769DBC40BD71202D0287D1F8B909AD0E95E5D80BF8314B457A042F304CA330 +14D4578D50158EECDE6821D1B672B1973393FCFCD432EEB0EB4FB362DCD9B4B280EB5EE2091F +A3853D779EDAC21A120FA7E03B339CED20115F404C3A086EED187281EC31F25A664811E2B712 +351528C4F0ABCE55D29BDBC1E067C01CB44F8A3E094F104097C5A36DCD1CC621E32747176643 +18D99F5F5D1EA11959CC751FF9F3739F735A12612629BD3346A840DADF0A61567D880597EDC2 +2C70DD8EE5DA9171AE46A8D1D78A64DD2E0F01042CA59FF7F83EC74E1CC0E786DC17A112A062 +7640B89D5F3EA4A57DAA15E9965A81021CF737E0108267C404ABED66D9CFFA22E05C351194A4 +1913A0D12931F26477A06773829D8AEFB25184755DA27F5DF42B23F493D024CF38C544257830 +1EE65AE593127DE8B9E0F19287015892DD881BBF034DF3C789470B567B7AE5130E821870E504 +F893CF1844FE400752C5CA00371433A36DE4C96938F6B7FC81D26DEDCBB7AD4F2519857A81D4 +F06F6A23A74825477C912968FC03B13DE8517BE24831C0E223A601AD7834A3CE0C7059822D1B +663094AA1D7DE8C524D1E0E5558C664655454A3AA0A5034B50429C5A2AF0C3C862C6D63C415D +92B2B720CEFCEA0D0C6CDEB5CD89EB701CB49CD568E39059E7B7DA7A85B44213F1060598CAA5 +8D8830DF46C628B18F908DE0C7360B9175F698FF66C5E4EECBCC0010F43C251001F06C45AAA3 +174C8841237E204AD5D7E1C403DFC40F9FD5F469C65625EBA0BC5DF2344228399846C285D9A9 +6E21EEBCD9EA38F25584C5D4B7893E64AF5261656E3FFA0CB1FC10CB512328E87AE3C83CA38E +9CCF96AED112B93EF8E4D5CE7BF47E8A800E00C4A0AB624DC3C03089BD5C415E8BA33DB289F0 +8E151E5E45865E9CE2EE9E160CF3646726DD25D5EABC96B72A7D2C89178FB92F0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + + + +%%EndFont +%%BeginFont: CMBX12 +%!PS-AdobeFont-1.1: CMBX12 1.0 +%%CreationDate: 1991 Aug 20 16:34:54 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMBX12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 161 /Gamma put +dup 162 /Delta put +dup 163 /Theta put +dup 164 /Lambda put +dup 165 /Xi put +dup 166 /Pi put +dup 167 /Sigma put +dup 168 /Upsilon put +dup 169 /Phi put +dup 170 /Psi put +dup 173 /Omega put +dup 174 /ff put +dup 175 /fi put +dup 176 /fl put +dup 177 /ffi put +dup 178 /ffl put +dup 179 /dotlessi put +dup 180 /dotlessj put +dup 181 /grave put +dup 182 /acute put +dup 183 /caron put +dup 184 /breve put +dup 185 /macron put +dup 186 /ring put +dup 187 /cedilla put +dup 188 /germandbls put +dup 189 /ae put +dup 190 /oe put +dup 191 /oslash put +dup 192 /AE put +dup 193 /OE put +dup 194 /Oslash put +dup 195 /suppress put +dup 196 /dieresis put +dup 0 /Gamma put +dup 1 /Delta put +dup 2 /Theta put +dup 3 /Lambda put +dup 4 /Xi put +dup 5 /Pi put +dup 6 /Sigma put +dup 7 /Upsilon put +dup 8 /Phi put +dup 9 /Psi put +dup 10 /Omega put +dup 11 /ff put +dup 12 /fi put +dup 13 /fl put +dup 14 /ffi put +dup 15 /ffl put +dup 16 /dotlessi put +dup 17 /dotlessj put +dup 18 /grave put +dup 19 /acute put +dup 20 /caron put +dup 21 /breve put +dup 22 /macron put +dup 23 /ring put +dup 24 /cedilla put +dup 25 /germandbls put +dup 26 /ae put +dup 27 /oe put +dup 28 /oslash put +dup 29 /AE put +dup 30 /OE put +dup 31 /Oslash put +dup 32 /suppress put +dup 33 /exclam put +dup 34 /quotedblright put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /exclamdown put +dup 61 /equal put +dup 62 /questiondown put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 94 /circumflex put +dup 95 /dotaccent put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put +dup 125 /hungarumlaut put +dup 126 /tilde put +dup 127 /dieresis put +dup 128 /suppress put +dup 160 /space put +readonly def +/FontBBox{-53 -251 1139 750}readonly def +/UniqueID 5000769 def +currentdict end +currentfile eexec + +9B9C1569015F2C1D2BF560F4C0D52257BACDD6500ABDA5ED9835F6A016CFC8F00B6C052ED76A +87856B50F4D80DFAEB508C97F8281F3F88B17E4D3B90C0F65EC379791AACDC162A66CBBC5BE2 +F53AAD8DE72DD113B55A022FBFEE658CB95F5BB32BA0357B5E050FDDF264A07470BEF1C52119 +B6FBD5C77EBED964AC5A2BBEC9D8B3E48AE5BB003A63D545774B922B9D5FF6B0066ECE43645A +131879B032137D6D823385FE55F3402D557FD3B4486BE79011D1F5BFAE5C1F476EE6F05EB1D2 +CAEB269958B194521197B312FCCED4867F3C8FBD030BD715D8FFDA1DCD454B174E7A1A97B59F +E770E67702519D9D9B23D61AC08424D555242A8CA08C49AEF300945D99B999A79CE74804AE6B +FDE623F4463371442F6523A5F6CE19C839A708C025132E22C696C8CCADE45680E5197189D0F9 +8E7F0D5F955E353970B392CF530A68CC56B0035DDFBF206C3074BEEB0739DCBCA272A6E629FB +7AEA2C5BA7BAE50C7B4CA595DF78200C352997EC3EE564DF229FBB5473F5E8CCB1CC0153E9A7 +E299A8EAA29B69D1B622B1F0CFFC58291248759607D91150CB0651120970DC9F743BEBEF44F6 +AE92FACEC57658999C8BF01F60611560043962C0695E1BB87D090E0FDAAB659D6557208A660B +E9AEEF8AE55F71B8BC76394D792967E41BD8023B6E7F8C3D9987D5E54C53BF2BBB32855B9464 +73B44833BD78873DF8E4C7E668FFFF25AABB8DA4148F744B9D0524D6CB8281247B3052CC5D66 +F3F1BCF8A56A3FB446EA587BD8BE30257652CEE035628AEDDFD8283B5AD21B8B1480AD24D898 +970AC8A1E33E543CE4E3C48F9EE621C5CE3E8AE930F890011B630866C988606068D9E92396EB +F51BB3DB204505FC3D09D4701AC703A14D92BBFE27BD7411B363A88E33A8E9A8025AC31F21E7 +3DC52B333B918D0B1270C54873A490222D041A66E0192612BE6D2C88958A8F70C10390146EE5 +091DF020AB97675E8E6901226EED50125D36C221BE8F20647442444B13F0325F899B8FA15E14 +14119B45F920F73DC3496F6DE0DD4418A1181E791B49A52866C79D377494BEFF7F1B444111BC +A4FC2BFB7279FA2938FA9BE2DE762F20D470813C4EE0034371812EFB9F87014528B7A09BE4F0 +1F1F84DE922D6C66D7F6FF96A49233B2396D9C19B85B132FF565893AD3A11DDB88E469FC1DEC +D51E5B3FADFD1E3E50914839DEE5D5D2B63F83E8A7953833EFE2492A30314F32E2BD9A758F2A +BDA8107618EEF886F13905EECE29E3A0267FA506A77271C89450B6CB4320E2A9169EC494917A +370CE72227860BB7ECCA9D1DAC4AFDD4BC59CA1DFC10A5D530DC1E8AFA557BA49454F211BBB2 +4B86044A9008092E262BBACE0C5F084A66DAB3BD57DF91E3D4440C9974666E46AF84B0C0F928 +6045D15EF5C5E601CFC42D8D2A14117BF73DF97A8C602FAFA97F13823603CD70D202551F6BAE +D6F13442564A85BAF8FC53676FCA540943F23146BEEF9691FC26B2C7327B63627570EAA85ACE +4938C3884221F1A91F5E57E303425C649D12E0977D78BC7D32CB30710817926509A49DAE5C95 +30BD89B44C105695CE609BABD50A7A2CCDB30F679D849577A8E7C0300D2606DAC4658B4A0555 +DF2D2740EC5F9D76270DAC943DA0E0271755607D355709DC9B0DB68098E3DED0C081DD742BFA +7C29090A2BDA699D4EBBAD79BB3B901E59159869FF13361A167ECDC51D1E655F475D453CCF93 +5F637C2CF08B222968F2DA3D3630A9747CB5B8AC4B042BC44CC22A488CC8099AA15FA2C43D1B +C9ADAFB2A4129E880F5CFCD563B41A16096EA07B96BCE2B2E81C89968F5A3949889EBDF25E07 +042B81DFF462DB36311BB3FAF1387A3BFF193C09FF4972FF743A3FAC0DD57995444D2AE34BA0 +A8AA9C69457654D2221C8927124BF9E1B2D768CF672CDE3A6945E627F11D1D08E1403A06ADDC +A67CAA82958FFD15CE17CEB235F4CA05231E6E10CC2BC7803FC2F92CBFDCDD09F100A0CDA8B6 +D73A1F2F4778BE732F2FFD8AF6170FC11D37A83C9260606E5EB14A411E1C7CD5B6D2E0D722A3 +7A1F628512DD6598F9845398F854BB17DF1840FA7AF1CD58981A5EA8993F45CC1A3FFEB6BACA +6CF815DADCE91BB92C9BE218C4BD91EBEAEE4E17E302284B42FACDCC1ABA0C22A8FE7A30E401 +6EC238B6A530112E7BC5371AB48E599F966C94EBDA672001483D1E35E683F93EBB02BA0F647C +6F79918B8E2D7C0D292F306BC366B9679A7A8A5998250DC90F0A752E5A23EDA3CD8B699BA875 +E05D2B6758C1F886864764FE26BAAFD976AC47150B12B93C97315AB530EEF6A8F8D32B727F84 +EB7C05DAEA7DF55B4847AD59DBEF771A5E47347E8A5872B4A2414EF8A4D1B37924BE9FC1DCCA +A10D6E78817CDB99D5F42D5645454AA8D2151E48EEE83725BED583D358514F58A919256F22E1 +AC4BF1CA50DF0F807470859EF15928B40B9C95B6116B1FFD997B32D93E38B128C9230D1A040F +B8B3829FD409FE25BD28EA79BA3258B22F939D7985A98C8FAF502225F5100B3EF74E4520531D +F8C8A2D3AC2D58E3253CB250D45E7E556DD90CEC4592C52D9156606C4DD6382BBAB9F31DCE02 +BA08F28FFE973935DBF3C98DC25CFCF02ABAC24117B76E4792525848C321C47505D2FEED7623 +6E9780014483026CC580F40C5F259AD273E1F24DB59B1639B1BCB62290D4AB2B2088FE370158 +BF3C2431A00256C9658DD428D0DF17D1F89C7689E1E0C659B595C4C34BF20DE7F5C0F3649BE0 +87B6DD06CFCC99E75CFFCBC48BB87101E0877A8FDB807754688211F442CEAB20069AFA09DB64 +5E42B931FC22C739B14110DA27C7B04D591FF8DF2F8DEBDD2E8A443F37E7A75512ED33CB5A71 +9E7082005E1F721484EDE774637BC948E02D3F6B044B10BB61A1A233938C3A916E90911328D7 +3EEB236257DFE33BA5BD5BB8F51472AC89BAAF3F9E462F6BFEFABC6BB2A2A906A8E56A2A5AB7 +312E2916065328E1E641C44336913473F2215707C8589C0BD6B3B8599531D10C1CF65D27567E +EFF8C237141AD3696EBFB9FD0F4C7B4A21844B49CA7992D9A0EF837C2F3D3A2F8E2840B18968 +4954F0957DB9ACDF6E4695C532312027093C7D0F81371452A1A53BB20114C06C068A7536E074 +FDD44626B54496C92FF4F165B83DE07627DB4F0CD4722F4FDB11457FCAA43A82CB382178AB36 +F347BAAE3251FED22CC067E92B812D3ACBC28A8FE180D155D9C5FBEC15659B06A82E27D6BDE2 +7B009702E3B50797BBB275B2A60455FAEDC9BDC471A5851DA8196600C6FB6DECC045D3B2B38C +AEC0DB9AA656277F3FA30F1BCB83147917E117A24514073D79F1BE0E5BF96B4D693349D78759 +940EF4EA6B070E18870A8D6B2A0786D03F6012872AF771A623706A655D50D12663BD97FACEBB +A4931766132796CE9409533394AA54084B952AD4E9E903F1E78A18AE224E1452E3EAFC9BB774 +5131D76290E8C6EFEB4CBBBCD535BDDC3CE5A05CA2B4082AE44410C1E3412B0F6B7D85374D0F +B877AD4925C4E51AD251BBBDADCB2CD0F5499E912E7D1F990FE5226CEF4CF5407E1391B5D4B3 +3EF359429E92BEF23CD65434A96921B803C779AD7A7729CD428B6032147EB8D5820262B34A49 +9B2F00E5E8D4A58220DD26BD583C474332F99F0FEFD5CE4967396CC85C8BC36088556B214FAA +19D7AEF255CFC8901B6170FFEBE5529301198328010992EEFED22015A09981E34213C4262351 +738911A3C2B671357FFB5EAB7682DB8D397BAAEA9FBD77F82C0A79E7DCFAA3C6ED6883B61B3B +5111B88E2A942D7459AA5F53B51A25042668F5D5FF4A557301762A1D2AE18D80C484171D62E6 +BD2C06E70C2AB20922247DE62912A28DEC4DAC4972F680E71E85EC91688DB753E7EE6DB6EE5E +8FAF7D27E0CC82F44DB9761DA4684F99FE3AC501583FFB4C46C006BDE1FBCBCCA4F3DD2CF4AF +C0F291565180564913D487EBAF5A952EB8BFBFD3C6B4A5B039B9E7BA51319226C1C576E5E35F +334F7672A6F547A1F655FD7BE11DBD0384F33519E240C1E6D7190220F6B655234BF89916FE04 +4B72DD365B5FEF3A883073304ABB1140CFF90AC69A1D97AE9C50BD4CC351C845C3948E2A9FCB +87F2008EB6CE3062850B9D62B9771562431D857DB4CAD5358CAC24C5611F0BCDB1827BDCC7B6 +C3F11AB223EA3C628F9A13CCCEC21F9269A53396F580CEA765E84A2E35B26C65255B8C5A44B6 +3A776A0F26951226838156AEF2CF8BF7D543E0B3BA996D17977BA5D485CFB7E6D486A5653550 +1EF6A915AE5A9F085A5DA01CD63579CE067256494661DE2F0955BCB4D9DB4B3F80366CC82050 +B10956B665F8EE8CE42FD744C123A7555150A08D2096F995592A208270271357BD8501E7180B +D9AAC78029B6C34021474C4804523D5378E39DF856B0A472AE88BDE75ECF8AB07B83F5EF3D4C +9CDA72DB9E2F32DA943950DA10610D6618B3FEF5B75DFEFC72F64B8BFB700DA3C86594A8BE10 +13C03ECB9C95DBAB90D2A05E3183A23280CD878A5B4DB7A6D6A47325B5DA70D4CF1CF8EB2EFA +7712169DEFA459545CA551A81021A587FFE5B8760A1A78897E9C9F34B167458AE9D6E56CA4E9 +21620628AB8F73F73E174944623AC10FCF21644F64D7BBFC59CC02DBE0AD7C4409C6F66440B8 +49668F7E2A0053BE5B5A825AAB22BB3434F7B2DA21214A3587CDACE32AEB83FA4A183C198C02 +BD03648AC9278F3FC195E4E69B72A5CB745F081E32163A698FEC233F0AFA15939D940FBE917C +51CBC887E2EBD9DE24290790290042ED7F7DC16E866E5313A3E790BF7D8EA7D785E641054E5D +B4D3FA933DAC53C3BE7E971C70388E6B8171A6FDE2055F3A8C490877A89F4790F57C0D61FBE7 +8A39D7A0391C78C503AD0C38D88FA809F7B5F8E902018ED0F9777610A3D38ECE44C3903D9917 +86338D7A9AC65FDDE2692C9344D55B1D9668775543BCCEF80299EC86DF2E36ACC5C4CB2B4B99 +08D009E93D86CC368D00D4C5378D16DB76E705D5ADEFFE926658DAE283740BD3A89FD9A58C04 +84537258493A0206FAE4E0BE0A29F79DA258C34801B4A43BCFD52E3569CA9C10E5685FAFC1BD +2F51DDC62F4337976463C0251737081A65516D01120E16EE8D5DF0B91BBB79DA0C5ED1EF4861 +4F6EE3FD267346F3D2E27EB67A5525782F8317E3088DBE7B0E5F3A6511622457ADF255CAC387 +F5C6F43FEE8E3B6376F840ACC54A59CA06239324D63084F4BC92CBC68C4AE84EF3E564022D31 +38358ABF949BFCBD44F8844281223DAC02741A51851EBDF4CA1CE54A6B12735A0DFB27290382 +D73A99AA9B3E6F6095F9ECF650A95E2DC65FE753CAA05A2FFBF69B80F15A6EA308D2BEE55654 +263D6F89C3B5E221BBEEC02904F134CC2B658D48555101101CDA5F3A4CD7885F274D98F221A9 +EF4B9F3BFA7A67E19DF1D51155116AE7BB81455C6A87F7B2F55FB0F87A2C993B6E580CB73D84 +FFADE6F51C1AE0DBBE5F6C01D294D6A86634661692E48AE5F340F2DEDBDFC5C886CDBF5B9FA1 +219F8A4942BBA3E3950B40EADED15480F3BD19EA73CD34C413E0F10B39302B1344C4583C806D +F07025287630E2A058EE41E75FEA0DD30C5675CAA994FB6548403E4A974CB1C8B7E6FA451751 +813DAA7A151B8DA6F6A83943D8C863A22ACA521CB48FF44005B755732CF460E576246923FB80 +5EEB14273C11223EC80ADBA78310840E535C9035E64F74C153EDD5BC599B1A34CA78D097461E +96B316512232CD0055AF1432571BEF54A3C20B0821C1E70F5628C55FF91374C2DD41ED49EB38 +A48CE23ECDE5396A1B067E1FEA6A3A76FB8D6FB64FA64CB8C0689492AEFB149EFA33273F4BB8 +A54A81830843451E2249DAA708885617168901506D8847DAA295994F554F5A5246A7DE45CFDF +E2A698ED607639CD8BF8038A936EA0F7010AF52FA87A215724A01D28A230C84AD8582152E0C5 +859237D9B361733EE78ABF2FD1EF19F69E366BB89858BE92C3FB979215DDD2C3F05B9424D513 +D8CDDDBA7614332F5F9D95B52A1D20EBD8821710A0D1CDD07272241F6420663959BD6F7DDFA7 +1BEE74E03797DBB29082C414DCB96E0DAC42D630576FA4EACC54D150E3BFBFF35A28939BE164 +4E12FD13F4FB0C05E89C0B58167E3D48C8378AC05805C98DF4F0F152C12C8F79EF93E5473BED +582362876286E71D119037C9E2BAF29E1DCFD46F5E5EC4B19E97C73DDE60D3CC50B696D7E62E +4312BE7587163D3ABC9EBFA9895535B704F7070D69F5B19E335E15EC9CE099A0EAC212A175AC +CDF7C5312A927AA67473DF1F6F21E7D7467889EA082131E7223E4BF4A71271EFBF6102977DA8 +54407DEE2CACB78146F78B23BFD7FFA492FFB3799AFA4BC88E686F0941DB77C845E4866B1E8B +5DA393B3D26E3841FBB7BB53E0DC558FEACAB01F8B5F7745E3BC8B823C5789BEE21493DF48A0 +D8253B1DC1C879F824977C2AF5D39FCC7773483B7352176C0100F06D9DC8FDCC4B92B2EC113D +DE787FFAA650308A720F7C69F712456B3A9F6A3BE1A4664FEFF85A251243AFB7E1748C12A64F +1C492A47830057C282F0825BBBFB73C82DC488C6D8A532AB60DA409E9BFEEF119A6D520FBEB7 +BF4E561FFA8A9DB7E5A3FB8F177331EBB016D41131BF1F84B23FC2F003C248FA9F78DC13255F +35F5D269DAF722364DB47927F90E76DA79F7721B2C610F51DF3C28111D1463C44F96F6F9E847 +31378BE592C0D97B8F2DB6E6F2CEF9CD3EF05F6AEBA16E02DA551D53D96B2A2976DF8E7FD23D +8B502E739D4B82C0220C6F3BE0C0F3EE31E3AEF001FFC4CD22D6E79EAAD191627A8BDECAAD17 +D135E74AA817DBF43C3EE5923CC4F8B1FBA58F18891AC6BFFA484ED7652B37DBBF3AED56A2DA +5350807A71A369E08ACA1EEFED4BFBAE14580F8EE4BF718C15A0CA869EB567BCB97AAA3E0695 +E5827274CDB917BD3D7D808BD98DAD257FA37D747C6669EE577C8FD8ABD025CE81BECD5210D1 +5275B81236FDBA2740972C653D8641626C41DD2B72EA32393F3F5D8153D91C9C3A53B073FE66 +9175FF999D6D07E9E306C98D1EDE9C2EF23FE83FB0A41F3981C62B4F39206946032D3D24A1FE +812088A332CB13456C8E25DC6787B4E2780893A3A4E005E10EFCB80A388A20D3CBDE094351E2 +E9CC5913392A09B96CD320B23DC4992CC6CFAB53B513A2A9D044C299A3B2FBBD6B7F622CB380 +1CEB1D7BF3AF0ABB5DA14AF5EC8E90DCDF6999BD1322218FEA4220E210FD6F81A21DDA2AC4CF +1C4DA55222B288D7FC9953751880DABEAB14976E8983F34F87C571CEDC1A3E0734E26864BEDD +4AA8A834E348D83D2B66FA86C1C0EDFEC28592283B075E85AEE3504593DFA740B82B292853BC +39348A54E93AB0A815742535A382B0FEE5B552F0F02366850F97DC9FCEE811B1188FE21663D4 +C7505B7F243A9023EC54E2C2FA4E5800F600190C7B959AB5F0C67C82C305A2EE245B6D4EBEE0 +A862D577F718CB719212550133120EABCB69F88B45CE14BDCFB88176EBA9A02797B395B022B3 +99C6DD835C093D6C4758913B05C3D6340935E1E54DF4B9A2BC85BB6460656292E8FC57F332A7 +E3D31EFBFC21FFAD5C08579A27AF547AB338BB2DF92E85D22B16903B3FEA1834B23590A2FD70 +568F6E4D979B52879D12202BC250D9F59F1994E68A7774EAC77A0B43FA04CFD024E8CDC496E0 +7DBD2B1939278DBF4E0BAB271F152470E8BE9190F39DCE106C8218AF820AF686FE79BAFBB0C2 +A9FF956A72E9639268DBD561AD58660FEFADFE64E26E112E86619DA4114B7AFE5A28BB7EA87E +8D2A4E10735F5092B411C57605C10D38C1DF81DA3799C08C03E24827496CC88082FF78209151 +840FE9C741B9B665495D50AF95DBCA1E04B84A4E17E2C25BC7A2FB1F8819638F852707E15016 +157AF20893D6E9EDBEFBF30937CA50C7C6E7D389776E5C19FB78AD37ACF1B9E09C17E09358EF +3C42ACB14892ECC993D208624B3B8267962211E762E43D40C8E38AF8F87FE34743B8B3562401 +DAE7020D87F0DC8F1D4C34C7B0AAC0329539F31C01C8BB434AE4F79CE6A5A1143621F71ADB4A +9354DFB795C5C078405662D58A1E9A8EBA25B7BB1B10A699A50BEB3D53440207429D692D939C +228D61F31B59A8E30DB0B661D98890E4F30C9D60C8B8E5BCBB61DA5FF3C5180CDBCCAABBB9BD +A0AA52B126E408F0640BCDAE439F4EA033BF794282C2E8D11EA81081FFC0AC7C9860B9EB2E24 +CF7BD764ED6583479F5F69809968E1730A3D520666A78CBE0D9043DA21AF1BE118B7C361D5BC +AD5BCC44B1246E1C23D51019961BBC2C8878013F01AB5663F88AF58C122A720B37A58FEBD448 +DC9B7E5D0CF899D4E30821E52C6E813B0D35BFD25E77AC15DDCC4DA4CF088A2E09634CC3D33F +0E5E01E64AC6F52A878A687EB5833F6603170E8A95F86612E6C64AC4D454DBC792AEA828675B +04B3FBC2A516D6DF08A8E6D5B2C4DD184083F7CE348FC6E00FCD2FEC3275B5B798998ED7D82E +C26ABE6B84C9496669F6B91B850DE68C93D8C88C87DB649260899EA6D47C511DC61C55698B52 +5D9AC30A25137A131E81D4C46EF4D10F1B22B19AFD9A25B2275649C2E0A36059B9112C3CE9EC +E70F60BF199DC446E98298CC330E7C9BA5CBA216324AAA0D716A85941FD89FDC3418BBD50E6F +2065CAFAF0CB8BDB929C9AEE28C7ABBA000AA86878ED57FEFD9E8EBDA6FBB1F904434F54C8A5 +23B2499B1976D751F39445A1B5DEAF740DC6167E4C686E57C85C9CC7928E81F5FBCBE180E351 +58B0193C4A9366913D16F7CA770C5B339F767D1A6B78DEE14C41205024CB91C022AFC8C50E7B +46D599EC421F7932FFF7A5658514C04D79CE7888CAB8C0C2EB7AB618B457F7C87F3566ED1E6E +3A079B4138DB57172BD5749AC5E927014D994345222A9471799E453A42D9FF5DBE1E667D3330 +DD78C367FAA10F4CA07BE0988888799391A326531D519C737DC4239B17C8517F0DA8579CAED0 +F4435C49467B2DAFBC20DBA54DD3F1817F640B4102DA5959943291A2DF95120179030BEF4B89 +D00C97589383C4DB1D12D1B0AA92644E331645C3D29D0E627EF393F8548DFA97BDEE2562852B +048B68DE53C73A34F6BFFD46B06531FB0DE9BFC1CCDACBC0E01AB74A7E1080C37DD61CFA5692 +5977DEC172EEC9CEC0AB77CDFD5FFAB6BB9EF1D7D09E577E957A87899F231B07D0D56349CFAD +B9304F8F0644433B373D652E961AF6E3F144076D0C64DED32EE2C4161CD1DEBECDFE672479C9 +9500FD1B830202D5DEE3EFEC8D4C0117110626DD178DFCCE0F4B223410C3B27E5C1B4FCC9575 +D2B54BA6D147912F88A301AE52324E8992F359C81DF160C062F978C70022C9518F61E3C0665A +D283858A9A5444E48295B744A7B8361156D59AF3AD40CA71D441F3C8123C06A2CCF2854E6186 +415ADDAA381348FD5EFC7750C33E9C7F4AA936F0BA0CD58343F1B9FF545138565223061ECB76 +81BE43B021D629F6B11CE8D740AC875C5DBA8D4D1F241DCEC7B1931188609AA3246FD1AB4F76 +A3BEE835B9BB0A0F042E2F79F49278FDEAFF07DAC5A3E697BBCCFF1CA9C4FCC3D3F0C6DD57B7 +C30B241188D0FABB3C6447BB5F64776AA3270F56C4240A9BB282CC4F3B7EEC6A4C76523BD82C +603859E99D354B27151E90D488F1B38C89442C9066CFB7134303112CE4A49DC85F1D730C97F8 +82A561906B6AB8701F90C79DF081A21671E7F4353B34E744CB825DE60DEE525CA9ECD73B2632 +7C5CE54322CABE4FEE57ED2185C6FDF42BAD9FC37844B280E8B7B4FA9D0349C65BD24FEFFB55 +DED55CABA317031F48F1A15710AA9B7B6B3BC1962C3A430B02B1DE05283386ED065946063D1B +469F939B3E7347C0E73E00BB1286731245F90573C9C81F478AB32F995F8DAECEE22982B2693D +D0B0C8B9E6709C45EAD5C03EC0D56CEABCB52054F8EF3D81AD23729A174872535435165358B9 +2B8A3BF046235333244465DB7D82EC059C586D7120C3166489FA8785FF7E7514C6307B477A7B +5E1BC04E5A40AAC790038E462C5B9EC505DBADD1DF4A91E4C4BB904E24C4D15830E9F83A938F +1A2B9640ECA597F78C330A2BA05C1BCFD0B414A70EF2C6F36971E77B9BDAD5B2CBDEE001FCC9 +F407C6850468381FAFD112EEE30C4FDCA2349C940D22513C88F06E13E70A5956F9FC600FEC55 +FE1C4A902C2C97618E6C5E10EF4C679296F5A1D076B78E365D947109D928D641C7CF8AE98204 +6DCC359544BB0A031D21B0EE902FC526000D1105B30C4DAE93D2A00F9235A299978F22B7F596 +9E20B200DCDD753FC301187E510F04A056D0B7DDE478DBF963CB77E3563547AB30CA42B02DB1 +F3EB664B99722AD0BD3C68DD4AE1777B80A830CDE780E2AE13400ACB0027AC9A0B929915E196 +4A4B030A15622071D62A4BC379CF1077ADBB17D870D641355F6AFF1180318BC7D00ADBCAE1CA +6B303D6D96FA5E01C48D367B0E161D37B64454E292A04F62A49974ED6A2862EF0EAF918F481F +FDB142677AB8C292C0CBB170E1F5C61D52198EED8B445DC1806C424AFF7FE410AFFBFAD628CC +BDE0D47515A3F76A0A635234FF38C200D43E64FB83565F8EEEAFED18DFB96C9C0F274A0B454D +1337C38F2DEFF120B5D96C1C34C470F5777E975CB078FB20FA4C64D5BB5AFF659949F7343457 +4B597A5D5339F3AA378436360B2DBDD1312AF74F69655FEC1E0C54E8FF56AA83F9026E9D700E +6D07BEE86247803FC034EC026CFB805D8E8636C1D26629C1DA5820F973D6166AB3A667157FBF +3C111203C8E2AA0047A88229C584DE59E855690095298F20E9D5D5508509A2EF415B3D5D57F0 +488CAE89785404E4FA2A952F812269E688E816E60760B864F03B6418E4A60E173C47D30DD5C5 +D830A6C2DD7C033C283ECBB3A3E540D1B0411218E68D15373AEE1DCD3EB547504BEC9D409EE5 +AC9BD6E25595B85BC081B63B8DDC04A7A73AF371E8B4CE4442D7E992D699B98187DE6EA37251 +52CB1096CE26CBCD00F8556F280E070E792832D788079AAB8E19B6435F24AA5DF6EE06805FBB +10EB523D87526815958169FA3CC5023504BA39227BA2BF9BA68F7D2CC3D35E55E9D4D2E43F2B +1DCE3D4C340C1DDD30544A3B5DEF7C8AE1714B761D9BCB68BA2069865579E94C5C4F77C536CE +296DBB8591A9992E6B094B1E880BB3D386B62EB79AB2D2FF5232BF209E9492251434D1D1505F +D4ED79BD3C5857139105E19EBA5291B872E9B521E605314931E4A6BDE8E6060483695E9ADDE1 +D23A1EBCF65A1D70DDD30B4BDC41ACD776E4FE6F43562004D2C256A19341D8BB460569D0DC29 +242082F57D911065EAA0FD333B1F536DEBD235510987C1C211AFF2CFA09FDA26AACE78EB9704 +5F7F79F0629C29DFA844E61F1C908B25B378091B69A4631B123BA6357CA673747B2BADF8D7AA +D722DB0C3C7F736A3B0486351B2E09F407F9F0999BA41962052F6A2BE21CE7F50F2FB327D4E8 +717A6EE7698398164187446CBC66ECF404154914EA0B73B50079A31FB772F7B2F69C5C4D91C8 +15FA0D16B80AF6934B57203D09C74E7E2AF81AB8E1262DA81C7D1B4AB465DCCE17702093486D +CC4D1C2B42E82CB1AFAC08074E828C10FC504C352D555B3EBC718B177B453CCAFAC5F452928D +2D6F996ABBEA6F56AEA83DDAA2572539C9387BACB8F51794AFB53D8D0600A57C3F47068B7DC1 +C87BD6AC0109E1071B08975D8C36A7622108873C66D4DD5F94ED291CCED279613F8E5D781EC7 +9C45841AF61B11D4D63E9E81D0A1CDC746D5A2269B8FF812F360C715F72C12A95D259E9336E1 +893B0B63490E45BAE5B218D48D4FB7F8AF334B0C8868E476B094718F125314677F70D55D8270 +665BCAA9BF61237A4A51E538FF77B64AFA102FE54B2B376AB91FAA4DB74EBAF5A9E7EF7B3B92 +D7632C29612A14F97D34BF6B0B350AB70FEE1D189C0B91565CF6CFD2B127F74202910FA0CDA0 +99BE1AB21DF0790E11BE8CFF67E5D5F532C28984BE7F663CBE2DBD216EBFEC440AE57672D73E +F239AB13FBF96F971714EC97DF0A817DD554F9C8E4F5D83097635665B9F9ED9FCA4B90F2F7C9 +1500405E51709FC23339173A7AA82BFA6855A597407794D64DF5BC6BED7C9BE5467BADE6CBBA +350CC97E1946B831DCB9667EEB0F765938A366F0A2E9EDF7B18462A7562B16FC0571CF134521 +9BA2B5DD81ABA342E3D5E669064558AF03F193BE70859357CF225BE8F4CA91BA6FD586FCBB19 +36EFBB98CD53F4C20C6356EEABE99AA6EFE12344ED993F6900CEA58CEAA2C3CA11A9800EE66A +77F166796E50CF91CD03E7549BBE8A6DD164A5030601C38C4E27C7E6646241F3D7BB507B5768 +30188BC6257B6EE2456D833E4DFDCA89CC9D42E9D633AA37FCF53B1FA3082DC71F07645C36E7 +C28F7FFA23D2ABC86C35D233DB0D1A9E294D26C7735830EB84BA4A1462AE05273A1857F7B415 +1195EE1544A159E20CC9A3D02D5080C1799834DAFDCD3519914BACC3DD0EFBBFC9AB8F5C642E +E43A0A03DC418E30C692797ED182436FEB233D7DF3CF503BD04CA23EAC21BB125661A3486C63 +3FB7DB486D2C92BA706653115D1CF76534161F2C0787E2DF2A7D3B17C25EAC19BE80B13C9B64 +2E947BCEB6068FB0A784CFFF5ED7EDAA0ED85232A17843F3B8EA51869F928369467A1C0DFCD5 +2D1B8DA34612ADDD5AB8B0DCB43D7069EC100F022DC0AA8A58DF4077C9B51FEB8C83489722AF +993FF35EB326CB03F366476975220493DC515C8B0E81E9E4A10C08A299A060A59D3AA36552C7 +1DE029ADB6E935D83BFC60B4C8695DB88601B7175772253F71B47DF4570EC3CF45CB121F17A5 +7893CD830AA443BBA910D2C17F16B92E97DFAB2CB1B127FD4301B4FB8B7D252FD241A3088EBB +74FE703AAEC0C4FA72750D805110A6385E63BA36479A57EF6503AD517D6068E46CD7CB598D1D +B4DD9159099A971DCA8EC7B541F53640050297B51E7DEBDB6C8255D20E5A9002E06685981F70 +27B83292D91BF860DC74FD97035918480ADA40A1CC39895717FE28F5D2F4287AAF9CF7476186 +A47BFB88E148C84DE9252BA906AB9173C40E4260D753C2F26206DBF8DE9DC9F999DF84E14B77 +EF8451C83068FF946A5BADD00C3FDC07898D356314F8174CE325CA1104294E3C04C1FE78BB87 +C24F7FDC9A61A47839AF3BD717FE9A406AD590FF710FA3DBAB5A8C2C8D5E209FD764981F4F9B +AB49C7BCBEB6F2FC6F120D00255A457EA8883E0E5AA8B73DAE41235D9CCD14CC870209635C1E +C5C8FD4F1D3C8CF5B46B1B29A462A73EE776C3C4FA8BA77A96FF8C5E53CABAF07BA97C1B9765 +98EF63DC102AE8F4178726ED80A86007ECDD4F1F2DB902A914B8713B267164227B87970BC84D +ECCBA36FD9EC1541D774476BDBD010D056E919E324DBB8EF94E6FE323B74D823CDC39BA65DC4 +CF79EFBD53275847EAD4436ADBB90A423EC11C7BC7D5F92EE8BD1185A6AE517E5BA092AC4DC3 +65CD09B76918A17E47BE0ADB78DB14AFED185566501EA8E700BB8AB39DFBEC17FABD673D0064 +8C7691C0B70981292C10E8C5685454B12697F4039B7A868E7500AD0940EB401405DD2111261D +76F6CAE355CAC9AE1D9494555540B3F0C70E612B62FFDBB46FBCDE3D92D789BCBA8C191DF73D +1B3664AFE893E74E061B53957FCC15651D7C8B2A6BEF972745DA44BD7C5E9E1811CE0B226EB8 +A0FA1D9E65A5F7A67255E5D869B891CD2A7048683443BEB68F6F080FDDA4FBDDEA5354BB83B3 +A66CA4D6222FAA71E961BD7B8D8A40EE15AB6F8E5F08D0C8CD8101F903FD01448A8F8AAA5ADD +78EBCC4CA1F1CCB3F7189379F1B8C78430471916B7DE75FBBECB451B4C1552971F76C77FD3DA +7BD8F4219C37EDE680061ECF469048E7AC2FCE74E9390FAB831234E94160A8897C22F410EB01 +3749E0B1E31350D4FB24D4D1E42AFA8B560667E90AD4D3AD433F7E4867CF8FEBD10E897F163B +8FBD4649CCE6406653ECFC89E006D7F53A198313D2D70E44ED8D6E1AF4D028A2BA8B56171BC5 +81A698A8D1482F293F3388E36E1295F70C016524408EA17B8A9AC5E5EC2CEC4A17EA1D4A9F95 +87DC738D2F684F4C85EBA085729181FD6D492468C9B75CA04893BF655A536F7666666A54E9CF +FAC2F7CB1FCB0300D173BDCF967FBE99FD66ECE5D5466E729C2CA6D649910E62C212E6ECB391 +B5DCAFF8C2441F78C55D7A4522DBFB9E29F594D6D046F302F2DF18A4CCBD0FB9BC072787691E +3CEA1958375F9E693F6EF181C515254718CF96966EA02368602DD5C39E11A3C0763A3BD1D948 +E80C085CA48FAB3C91BB1EC8952684B838A2BDF474CFA4F658BA40A551400336A3AF4228ABE1 +26FA57C0BDC176274EE8A943482D3A883909006A8A4EE589541659A3F79575F0F80525199F52 +2D6699B2E60F7D42D0A6897DCF801560DCB7285EB868BB90734412B0BAB00627CBB051A95544 +9AF1A1DEDB97B169D48FCA4243C0DF6F630CDF0C6CE6C595609E6BE97A15D4CA210B2E10D2C2 +A15D005017BC9674C8ADA52FC5C601E34FA33BD7976000D5590E8BA944C5588DD09D2739D54B +90E04C3048A9AC893177CDF6CF915B1B117A467D9DA6240E06621D94026ED305BA951037B0C4 +1B81AA5F06119AB3E0D7A6C1D10B1ADF3C76C8BD7CDD8517D02C710AA48B42A9B9082731BA53 +AFE1BEE778B2A14A3D8411DD9E806693C6C403770474BE70892A83129C91450A90A786EDAA5D +C7F5F00A30D991045C7EF4929CA7BF663BA9115D9D32F2E65EDCDE9158D803385A8B2CF71AA8 +70F4B05B475AC88C76E29A572A20570BC96E21489DA313BB670B6940FA8562BF9AC584312EE4 +973B163DE0E417CB32A66724E8617152661666683FFF437ABC531F8A7C4973859A9A97E86CA5 +02D9D4F63BE74048017A9E76598BFA5A50ACC823BA92740D9B9260A56E2F2BB7E64032E6A79F +017800666BB51C2F5CCA5B3966E7C608E7F9152DADE0C782CEF7DC785ADE657AB2B792553578 +91A94C95319C2A385B766113ED7D87E8D74FA8FA72E163D54E07DC638C92570F5CD4C6CC5EA6 +9E5B2D12AD68815F37517209CBF56CDE3B15C20D0A3F42DB87574EBD3F51CE770556E9C641AB +B7E8513BCDF9D630D15F41F7C55CA229F1CFCDB456C9C45FE13C4144BAE9ED1E62C68EA466B4 +7CE7D1F2BB3573E6E382E01E637822118099B18EB6B9F4733ECC2CB1FDC22065AC4C480B354E +7ACCB3A2CEC06E1D32DEF08CFC567273E3A74893688F767B86E30B2EDF454842C0B96F8A1721 +050B7BF33BFBE167BA34D63F381EF5A35351BE8D7643A89CBC6809FEEE622FFFB1B7EEA7B1F0 +D140930BBC6AF4AA6B9ECD64CC6FB79C999B914EB7D427183D41BC539A38E903F315BA6627D5 +9FADFF710A81B23A5D684993DF1E1ED04EDE664F05DA10E8601FB33909C1A9BA6CD1CC544181 +CFF9BBA596B0B0EFBBC7542AB8589BD5CAEA7C4FDD0607CFBE48AC53CDAE2944B86DC0C11986 +5F916AABC627A9D20FDD79E8C62CFB3673BD29EE23F2B9BCA08467AE907D59F3FBBFC238FF23 +B15303E623C9E6DE820810E19B47A8723C2B5141F3B0AC89725934EA7080F90197DDAB0AD4DA +98907EDF2464213FA29F0B14A9A2BF1920C7908787DCB5500AA7D27DA7EF5D15C7CEA19D58DD +ED19854D37D24F4F863C02CE9348BE6A2214C728258F5790104581428E33502D34FCA3925ABC +5249EFD1372FE677793561625B75BE1FADA5AAE50B38E657DD80AD035A588C2C6F666E55C876 +9A7932257B25B526F831AFD78B65057D3B6D39626D3521D2920A9D2B5BCAC0C684896AE016E0 +D8BF361DC68FBE58BBF511E2C05F603AB07BB4D417A00F4A4FD0307C6A5FB67702B1B0678908 +90EB03091975CD4E42269334A5E5DBFD776B35429721E589513F1312C33100FB9459FCA71766 +0C0CA07F4EC7E799DF7117A096B1A5EDB41BD85C193FC11AA642CAD84288FD41251DC0D1871A +970FB66CCB957EE0C92F1CC4A1D5AD2A54595950062D885B4CA0FCF92C48F417E79D1A27D181 +32C4BB84D5FA007ED0A38E16740D9638C264CB01194CDF428B840DDB21DDA112C352AE4CE983 +6F303B4A68778FD10820A54AB50A0299AD7E0C75FA88CCFE3BC240A27509A3623A57B35480CF +6CFB39A28ED1945745C8C7D250140CCCE794B0D93F00278CB0CAD38029B0C9B723AA80EFA675 +EE43AFA3EFC4384BD524EE051D27ABD21B2E2D6BFFAF1B6F1FA258918CB65FED56437EACC243 +9B646FE845952AC70248A9CAFE886EB5C2083E9434C75A5C6D79BD250408CD9CEE45E3E15EBC +BB635246B7233380B7FE8B1A0B18B678F4230808E48BBD980457CCB0CA8550F4E01FC89EAFFE +011BD6787B63AD6C116800C622B3E657B485D87B839889F071C2988CED7786AF2ABE03212AEF +97B0FF6591500014B0A188460F814C3C67B1A1E435D6DD6A1C748505312678B85B7AE9EBB880 +CF0402EAAB49539288DD1FA78A8B00D654FA0E778382FC372C235B69D5D4AD284FC8B1A1F9D2 +A06E0BAA7B99405BDBB7646888D8902F907E41036796D5CB431478DB858B2A2693E56377905C +30890C13B4FD088BD9545EB2E57E0D339BFE9C4C5A157E9856EECDD95C7F0008E4D802458FA5 +E77EB7E104970DA2A83EE44705FC4B6AA2638FADCDFA8D041783A5E5A79518A9410A4FCAFA71 +30A0A022083C5F36BB8C5C339E9F39EF79C8DCA9294190D02AC32A1395CDE6B35E1D22FCFF88 +5A809AD1F94E9AF767A7CB627398A2043F93B42947D5A7B61968224A7585376E6409E98C091D +08AE8E9B2761C995709E7F2C1FDF573CB660392DFC4B9CD5CEDBCC06A3BD6873EBC39C07DC0C +067B21673B9CD246144A478BE0FAC9585242F0938F142D24ED5F6E2865238A1975A09A45BF8E +B110BA16EB33E514B3F4581B2BE3B2D5CC58549EAFF5D9936E2102AD13BA32C32CA9DB3CDBCD +9EB5B7AFBEC3168BF3A4F8E52D3A3A178A35E152F96D619C75806DB974453800E4B2A546052D +DE37A3588BA43C171DB5078C64557F86989C769655298EE6A23FDA1905A423EDC6A69E4A81C1 +6DE852B1DFA65B4962151651169E33CE04D79600C1FCA9494533BD2B0BC117C2A6B920572FDE +2C20BDBC750C4591F0C3EF957328B5C38740853E13C4E525D33C3CA08251BB79C3A274A448CA +4AF4755FD55071D0A4439583462E66E434A0E55750D02AE2E56F72764BF88553DD1CC1AB6FBD +B818794881272D351E9D33DE2B6945CA7F48DC9E7862840C07774CB0ED9012E1FC428F990392 +753956DD8972775A1BC32917A4A79426FDE3B859451D6820B2D27B056FFC8D779D8158387949 +CE1EBC9E660482C969A1440006E9B0526C17A8297D2DAB83DB20EB4A6E043F8D19DFCA4BC478 +3FE49DA57F99776F99C53648371D88C9FAFD33481F3567B9F5000D2F631E8C9E9EE72F712298 +A9E19867D22E87628EE8579F2EC09D6FA836D0011C73C2C7D8AFA7F9AB34C28B8D9C90CE9E41 +109B24035477DD75B5DAA912FAF4841E8B9916653EB0DA935B54BAF3655953E0A7DB4901E7DA +C00D01C07AF44A7DD106FDF8799A1F9DE4AF629C6A9C8D6ECCEFD0A44FB6718CC8A198F79BD1 +B589F83B3CD92A95D639005D60C221F3829BC4E113D2FED0F29740A7DCED9154E2CB6B02678B +9F85D1951E6EEEADBC4EC7FFBA50C87B66C7D45D217A0A91263D15AD722402975CFC4B90B2FC +AD630C2AA120FD0D6C263BD63FAF531BEA97993E73BB629D35DDB106B8EFC8F8124F1442453A +0586245FC6B44E5316C2A291A884302F750C2120D3868EB1C8C4CB62799DDC1DFE62B0C4D800 +67207C194F3BA90FBE6339F98C7B1DF79487144E28DB29C57CC3F275BD8A66BAA89130F3E16F +F9162DAB12C58C3FD9B062D4A8D0A4C215BA14EF1D7ABF92BF3887930E8A6099D54DD502AFCC +2F2FFFAFB8EFF2298141E7D48E671D99F093F0E7ACB5FB4363230758D7B81CB86B58E762FF1F +2F20DF1F0DC33DA8F618E87485478A97145C83D0C69D741A545CA4C91F21FBA87B25EE14D0CB +51EB473C1068225EC32200E7D4715E03742426CA000EF3B6E661A63C7EFDD89D687C07B86831 +51C316070399C1AFA39576ED47BB18F999D06F7B0BCFDB35E9F2F6D495D4FE3B402B4FD6705D +D5E2BFCA05B4220A360C9D808B52AC98D4DDF5B6D853C2AA82211E9D0F96B2002375238E1586 +15FEA9A161EFD7DAA69B82EC279CE440755F57BF63B2079044A49FA5889B5DA2E800FBAA4793 +73B10F93D5963B8FC6E57A34B3FA3E1C4332037A17B5282CB9A5160AB0D17E13D8ED1617C258 +10DF28BAB41FACD21F31114A01DEDA3FF4199960B84A986DFBA78667B8E2CB1B47E7D3242FD7 +C5AB801D2A0B7A133DF86291AC4DC49A4660230D90BBDCF739013D4F6CEA79A1216A8764ECD1 +147832228491314B147EC9C8E2F993B940D876767DD3E7E8AE360BC5E6EDA9EB6308F30998BB +600B0848D1D858AA80EEE4778A7C3EBC13408A24A4EF51D013DC85137819E314FDD0184937D7 +FDAF472D7FADF58CB0FF3D25ECAAA2898E391D93E993D24BD902C559733EBF55116D0D55D9B2 +874CD649646E61C5461833F62AFB581E6012C8930ACE1C2A3CE51BED10266580B7414B543F7B +EFA58E741A746A989815E25D20F104C081A7839C04D2F74EC149140D621273F0D9A5E9333278 +612B73DFDBF108278582EDF0010EC2CD26B62E18C0CDC5ED5F9E29A0DF2055A097517B174A2F +92F614ABB9F52BB19ED260AA886E87488D81E4FDB334B2E5C882D8E7BED9D77AD1C7FD6441ED +445F04280E66294A259F8BB54CD414E48845C21EAE82337DE9A4566D5BE0952F09EFA6A9B4F0 +E9A0D7F22B4824A1894C84DB3A4945E438AA6018FB67FDE9934327D47A4412988D21C7DD19A5 +916D467419EA0F28E49816F57FA749E541D0459D87338BEB777E923EAB04ABD6505F69FFA311 +267FAF0EE5CE0A99B5E60A89371A0906DBD1687E278CE40088702B3B0AE80802F1674A465EA5 +2638F46D7D86A287AB78BA715E3D42FBBEE7C8967707A7E25DC9E0F309F484156A0FD2B55941 +B103880E29B7086D604B666EBA5EDBFD91F0C80C15CE75665FE2A759248CC49CAF11DE03465A +564A94469A9D9021EB7055AB79B4A2CBE984CF5E5EB6A8A0B6EFD6249BE428788A44A92A077A +EB1BEF546F1A1F003B8DD3DCCEDEBBB1782D769DE4E2268D8AD88FFF96433426365221699EE2 +DF551789A3A11BB8CF89C874F7A97F666D609E14E58802E176C804618D14CD07D79BECD9D97D +9E1852A631B585648AFE1A4D3D848FD2A514857D02B817CBB6702D5D654955A39DE5AA1858F9 +BD8DD56D0D40C64CB26BA9A934566D066D79F9D8C237786964218D794DBB39A1AFCDE7466F94 +E2FC9F819D396DFD8784BE7FA5AA12DA11CDD6BCF74CBF8843C029BE70E0CC67974ED1E5B645 +61EE9D259145414B51B07C362E710614B778BD72036B502A3791D3E17E1BCA74773BC1488F8F +D87CDF23412C53304618365A06A41CF545FCE8A75F8882417E4B330738B5B6A008AA681595AB +A5EB562A27D9210185D4006CF27AFA035ADC7CC4A5BC12FDC17D186DB3089B6524177D822459 +5665415B277216BC8ECBB1A44CFD285CC550FE40945F809AC2C3BDB2220D24001A2D1781F860 +4C4EFBA8CACB9DC84A986CD8C123EB82E8092F1D244690AC562B17CD2796B34EA1F8FAA4C1D0 +1EB8630686259468473F5B6EF4553F42A97E5C90987D47EA0E0A582884037FEE85BB1A31B0EB +E54D4BE1336D2EDBEB7073A37EC6A171280FCEE583979C4EC7FD555496011A983DCEBB1638E7 +1A1998A1F46963637D15881A6084CA64541F18FD2F6BB1A2D6ECC2C9FECA9AABE5528173956B +8B1AE9CD064096DA93A47451EABBB6F66871D819348FDF933F6ACD6A1665DFABA9DFFA45AC7F +19576910EE2D29B55893C1C37C96111A4309FE3867982D442182B9EEA4223EB0AC1BF024EFFC +B6B763F89789F2CCF741837E0D070CE490C98290BC3B7C1EB0F1F63897E97808395955E21DE5 +D901298B8369941CF82758F8E50706842FEE4D5D3EAAF5B90CE83E28E102F0DD6DB09337B68B +EDD79043C9ACD85456970ACFC4A3A7B5185F4CA5AE34292ABC51F08901E81B9305276A1FB4BA +7B6FD947D8DA0C247116A567BBF53394146A5C4F83067E1ED282582302A1910A7B9722451B60 +1F86AE0F15A02075E9109F4320FF3C8593254A13C98C1E9E9BDFDDB990C5F509D72A9AEED360 +D907821438A9B0171808E8A3D6C97C53858262A942F8AF989C42A59934C6CF38500FE955EA7D +B23AA4A041C0F9FEE2083A1A7F80499191A5EBE1512E1FB59F6F2AF9B0A554CCB018C272B8B3 +46B56251222CE57388554B40975B9077711A94505BD9437BA3FE1705ECB8E39EC490F5597F8D +5F3BE4AC1B544C6003923764739E900CC9AC92A1CC521A827EF69EA1144A8AC65A817EE6F9E9 +279032D3EED5BF37EE84434CA0F045A292A8EF703C787FB99196438E79281F4148B13C6BFDBF +DCDF079CB53021750E8F46C18EEBAEF2147ED9B6C743E349136F41D1F3CCC18749CD0BD08C80 +C428C7EC37FA7ADBC24E31AC9A1DC0AB67486FEAB6DB8F8E25AF5564C2C43A64DF503A69A1B9 +5FD86BEE84E8B672E34AB2985139024E58DE8B94740F1F4C7A68FBA709AD8069658F6D4E0DC4 +74063F68F61F877E802BAD74E5FFC2B57639D6842E80EE741F9F659CD28ECA3976CBFE947429 +51A0060705BDBAF15AE41E883F76911F7FEB57955E0355C301594A7B0F6223B603B94F201C43 +CFDA55003ED5EC7372CCF2DDDF64B129638F12113E67A0D9140E7111F2CCED3E9A9B1F909C61 +254848174B16CC5B192D48FBCCA707ECBD0F2CF43BA2819CF7F5BB74AAF99A37B56D7F6181EF +BBBB62E18C26B79B691B22AD307DA6820639CF96C7A346EA38A7DBE38EC4A9D102976D8EA550 +D1C94B32C0EE1469F76C3996CB82FFFE1F2571D96F173A6DDF5CB9A5F76C977DC9F316F25FC4 +61040D8CBBCCCF9941D034F4ABADF1630DB3CFAB2B20FC47DB8D06B7E1846B518CE9E0C628D0 +CAF7F80D5FF7B1B1DEB5018675A0FCFA07A996F3CD40B0F792338FA5B63131C88B2DD26ECB7D +0A97B28DC6CB48F50B02A7C208DA73CF5377C561A6E8D78AB59C282AEA1DE094EE74EF5E80F9 +44025F7F9E00380308D75DD7E0C059A9A7317A488A007670BE08D38FCA8D197B03C483FA0F46 +1EF4806CDC0B23F10E7CF09ECDB1395A1428B56B4EF3F1A89DB6FA66460DCF1ED1A157BCBB98 +084F630377A92FFE603374BA934399723457DA7D0253863E7C8F5E3CB01BB74BA6753678EC36 +6CA115B5836A1BD43155F956C7F107765D8E746E8BD0E11C2BC4F80EBAC352D85CC09EE42970 +14D8791D481D2E1C654F4C267FAAE6C46D9780903DC788EA32436675CB65F8833D340F58675E +8731170473C45ECBD5AB02D77E252FEB8AC276D505EE1343F3F5F1046F29BF706C4C3F52E024 +A0DBB4572AB187C8503BA0E9EB4969F44DB6068ED207B457896E9FD05411580988166437D89B +9F3AE0D16CB87A94843639CBBA97A156F8B07BF16C661F6F4929EE7CF184ADAC2DA87F2E7E90 +BA4916B23CE8F1C6C3E452533BD39F9BC14F7B3422DBAAB75FA96C5EFA4B0CA4B1813E5D823C +4592A0C54320135B9E8FD92D9F75CF800EF2EA5AAB64149075C40617D405084F46AE813A6F78 +F29F34441614BCD95FAAE355F771F53DA38E193D9F9460CFE4ED2F38918056DD5FE1C5E25394 +5064B5E1F76F6E48949D3C021EC198E1AC5AED61CDDA8FDF39A3C121D263391A602163DDFA46 +3E6749B01F4EDE29600C5FEA1DAFCD849F51AAFD04A0C8A504915A8CACB61FFD61E17C9B0EED +9590909B765CCE927136FF1FFB71D33A18C626AF34D52BFFD9FAA9538388A139DEDC21BB04CD +99173E96758B75E8053A5C27D9EB7A29D0CAD4F055A6ACF498EF1765CA08D669898D9EE0F30E +9BDC5774B83D6D7EE498997C2EBBA9D2AFC5251BAA4899CD0B64B543A67861314F4CA2F667A4 +94C57C209AB2AF7EE8E4E5FC0FB0E24235F48D83CB44CD5D833076499AD6BC5FBC97A5F2ED11 +731AA9D3146D4AE8D9E79D316667AC445EA9D63C5F2ADED44AEFBD382B7037ED814DEB9527F4 +5E58047F3B1B3FCD0BED6478E17BD4DAFBD57F365B977FEC7D94BC31EFC2C1B4985DDB28705F +EBF645E10124CFE0F1348B2F99073CF2F910AFFB284C17B436008E17E75B1E12D3A80E4AAEAA +EC845628EA6BDB454F2E04D2168789AB27215C831C9EC510D46FD73821DDA2CEA3BE3CBD56AC +3C6527C43F233FBBC3FEE7D97EC19E9CEF7C98C0658B52AAEF32B5F053B6E1C9FAB55E026680 +2B34235FBB374A421BD90722EC6C8455C3F657260AB830A1C32E8A04A159D8858238E6FA8525 +96CD16D891BF65DAD55EFD61585FD7FEE57FBD8398591DE62535BA65B3B13F37C51F4E927100 +5224ABD38B47F488A0E5A7EE5FBEE849E839E5764636C3AFCDC52881C7E187A46974B8C9DFA7 +B27F01197C9660E0F489DA5FFE4B1000BC6290760B02D74FA0C1EF2D5BCD4E9B2C6AC41E3B76 +3C946C2C648E12962BCF5BFAC0374CCC1F3659F91EB9821CADC614B4983C9C7AABA083E35CAE +18559FF42FB6A2E80BC8EAD7ECADAD0BB19D090067DEA2956A597AA9E5DF460F3E9B8E629BDC +1992EDD41A3277CD5808F2DC4B8C7FD9C69F08867FD68689D4BF50E9505E505AAC5134563675 +72009E9B96E7ED4BBB366D08C41DC44491560A43D2BCAB86E6ADC9BC829CFF096C8181180BFC +C249C3DB759B05978393F4B2380FB857D48380BFFAD9D00E445E620BB081CFD2FDA09105E182 +FA8F8B72BA849CB74E4FA168C3E0EF861EA99615869BCFE9A70B0A44330387D1F2275FFC441B +BD8DA42FF01816AAB6FAA53000C1ED613F6CDA9A0C00A18A9567881D39A369753E5725E3AF79 +2FC729D3AF70D6039F7E71E05D4EEEB4800A09948AB2918DA9DB5FD672B2C951F512554B8A76 +02295555E7CDF2F39BC048AC30479276B9EA4A0B56E88D1260017B9C2863DDECEA427A6CA9A3 +8E92EE00FBE42438C84B9F394C7FEF519C6FE32644110398A8088371E4C0A0CBAE6F1DBDB864 +B08C2984A600B2A2A4B1523F07D4F04D479D12F8AE39A602560784DA69BE1FC3361E9E9A9188 +EC68019D2C29EC12A5452C27564F4808FCF7CB42638E838286A3F96CF603EF88FEF15E41620E +263F86E6DF082E3ACDF8C9700A1F7F167D8C7AF6B591EEE2A22B4DD38EDA5B3928D6527DA5BD +C9537DB63A4031FF0F7057A4F42F535E7BC4297021526A79DD5ABE4F63D4EE9499A9B64E6575 +0CAE0C6A280475D6376FB67B3D8A274CA3AD188F8DBC75CA19F1B281324E85927D912C89CE26 +F423753B53A55C0D085E576F2EA05BD25C4C1CB67D0335BFB839420C14B5D5FFD66989FF2C59 +2EB45947A81678EC6CD0D8693CEBEBB22A18F9FC5B25BB67A2AA8BEFCB08A47A637333DA4534 +97C4A2CC411118B3F9C2363D144F7B71F72512C92762A90BCF9BE05AD62E5E37C36CCB796075 +426C946A3EA7A7B2C3EB669566500259E2416F6F70182B1898BFA7A9C7A36A8D25380D3AA703 +7C364321FFD9FB8CDE851B2F88DF2C4501CD51467F2DF02DE0CB4CD6B8D19CACF0C6E26E3080 +E589C1246018A94A6667EB7B9AAAF40EBD8CF7EFBFD286C896068119F65EC69196FC9AF064DB +6641088B73D339235FD9FC8543E0074DA85899058920BE8C0B2E9AD854D230E3A6280F1C0940 +064E99A15E36A1B60B71717FCB68AAF53FB877D48DD15B68EF58C51B36ACE7BBC95147BF984F +1C57C216ED78B32C54E66328E01117D813247073927EEC57D912BC848B912F360FDC3DD8BF20 +33C5C9D445BB26F1E2E9193BEAEC0F262A3639AADE399DAA245D8974AC09B41B59C453ACBEF3 +D92B86273D580929ED4BAA8033457B490C2C652FBB6896A782C05AE45406BAF49B1289EEDCF4 +4493F9C3253D851ACE91A5B2853A22F00724470B9529C84DF49797F636B3D95D43E23AC3015E +D9D9A78A3758963C1A82E7AB7A716BBF96EAFB1DD49D56A7C037886CA6F66D9679036FBEBDAD +86FDE112C44CDD7D1878EE00EF4F142A71A4A67AD34A9458A610AD82A7C6104AE60B0A4811F9 +8084AEA6FAB407ED8C05311AB3A63049BAA67EFBAAC66B46F3FC4318A7A76BE15772513C5CBE +41A83B7BAEA045066D6BEE773D7C6A619F692A5999657F4ED2119E54117C8CF12528ED9BCA06 +CBBB81DE3743020D146FF5B9572F7359A7AA29D616D48A64435155577F3446D9F4041F1F40BF +A1B7C0A637921F5953D6459EF605A612CF3E05050100E101A4B07E7B22E68622349FD62AA0CD +8807399B223462CC2B2571896E36EAD5081A651DD4AECA736E04E11D172FCF656108BF725393 +E6047E08280A4ADA62807FE911A15E7F5A1224DA23C47D3DF9A508F8BA13941C222162A54B84 +44180D1F8270C48747274F55EF4CA73B14FDEE152D09AC094213266B6C47669E7B83DA8C8B94 +C1D082E6EE5031017E112AF6F5ACF48AD3B1106AB79B6AB03C83B2928A17436BE7F09851589B +45D8C64EDAAB50C649D8F3F27BB16EF656CC8E0306E82C8237034A8C5803B0F3B1AECDC981BC +D70FF6428B2995BE2C10290C630EA07E0AE82009F1D3696FFBE386749E71A4025DDE64309A0E +39A16ED744090224C6E7D167D9B8D09E083A748FF4A93D734EA6A74B031E9681152ABD0413A2 +C81D5635E8A41C8CEC4A80D0AF319BE22FD450E357B0E8979FA8A229F6748053E911EB8C8C6B +601F915C32D89810C669024D98B7310238907E1535909A4D86047741CB9A60CE1745E67F10E5 +C701B2D0516D8A701FA7DCDDC9B63C61825D19400A1580730001EA089C0F28227C19E15E0D65 +C1CD06013331D365A5F7A967150966DEE3AA6FCE26C325E7D58DC98B2B1C1FBFB02214BC4B1A +9648ADF27DDCCC963EA7E093FD55731950E93604EC6025DD86E9287B0C67C6EA0D966603377A +C3CD7B63102990A20AB67E8135E4D1A919F71C94B3DAD964B8ECAEEC67EDA37CCDCD05A1CD56 +687A27B9A34CF64AA79F8122ACF294AF7DCEAB5089CEEA9844DF0963A89DACB9B335C79B4F2D +56A3A79912EC12D1997108AEC17D09BC5195504476738195A370BA31391216C1DA185C52EA3E +C1663F0366CF3AD8AF5A8D249165E195C382D3ADB9DDA81E6CFD5111BA3A1F9E34925C96E50A +F59FA2FF2AC7F3DC83934B34C6AFEAD5C77655486ED36D142E3816A1349A12E5040700169BFA +F7BE4788032671F296076FCB427A76DF2834FB0386B2EBE115FDB5B5CE32D57A15410005208F +C897D88EC8B2B46A870F0D476103548D553D2438222CEB4EC6897D2810DB5DADF53B5B6ADD9B +9A71EB194549B33B3BF7A68E97DE150F4D0252FF10808947A8C101176E95453A15D0E66D511F +04F38F403D391B3D288CCCF72DB576BC570A40D3E8E5D2E7DA7F30BC7935987669009525BA8A +455B82CBD926F9D1618FCA6DC148789ADFF738AC49633EEAF3B888661885457F4391CE7C1828 +EED082EDB38D41FF225B33EA712F582D90F09C6330CAC12C489140DF4504C4DA101347C5114D +14C07D745E1FFB92896CCB79705BA14834A75F0F3DDFD1FCCDA8BC5DE059529680DF1876E41A +F43FE1A14310AB93DB5E786A167E446FE4302025AF6B3D8D5C725636CDDF52C9816AB82B8CD4 +83AABF7D64383CA9486ACD71DAD03CDCDF43E145CA1FC94D9ACD5420A01005666DE5FC83E43F +6A96A3F1670E75A23F740CF7A60E18171B14A94DA4D07C4147A23F89C97E6D00C96A14E66C22 +EC782FA58FDE3AF40BB4A5C11AA5A9796025179AFD88D99F723B3973BB671E34D209DDB0EB6D +C1732A128527B328DE5C4DBA0EEF997428A2E45CB00480C231B5D92225CFF3309F433B1D7A8F +69157A9604EDB80B3CEE8115D70EDF96DF018F7201FD18F06F3458CAF1159BF90CB565163926 +BD8F4D0977FDD4695D035FFE9F78E9DAF495268A87F0F8E1BA42E1C4F4DD9B05356988E11BFD +95C1D802FFBE17FA86B5ECCB2B5E9CD88F207F90A3778748DFB87C512569A1469780A0FB01D5 +A384E0CD78113ED23256AE529B7E781373B80BF1EE6E77F200F8D1FED4CBC879B5EC66FE7E13 +AE60FBC69D4F2FB1FE730F186D3BDD4978CABF4CEEA2C7BC7C1F02D9E6AB312F6E8FAD1A0F70 +67974F05648EE94D0EA8BF45D2F4EFDD5380125C4BCB71839761CA99CA4452A4140C13ABB97B +4DB59F6CC6A4308B8185DCB4E95AF89D58493209D8A9FBF86D999E67CC864DCF467258C5C605 +03D54EC2F758C4DA866D8891016BF166091B12E72B1216CEEB2954ACC9B1DF4B640702923EA1 +F340EDD3419E5FFBAF1BB29F51956ABB395B1AA815E103479DFE45B3677615C08AC770317269 +7C7F5223C9547961A33FFC5D794C5CF7280C0417635B9A64B837C6CDF1940BF5D3A2CD9212D4 +14A3167FF7C7A51C83889964D92FFE0D550CA7C102DE86C82BAB1DA3912F3190F00872ED9D0C +19AC14B72CA8FEF8B826B63A163022183F998CC7814D78D9D8C38AC122B1267CF92D075D8EBD +79E1209E8BD89B056E4CFAD4B1D6A822EECDBB2FF40DA248325DDE31A95EEB9EB75D699B9EA9 +46ADD2365455D9F24A436476CE9E962E33E450C186A006EA57651AEB09D8DB7134D0520C1468 +1BEE3EEF9F3A84177B6D5CCDCDEF2BE7DBEE03997F7B34FCCF9AB319F0680C03C2771B179EEA +27E1FA6B2EADAB7F6592538CC1ACCB5F64C3F7972943A942E7FC28DAB2D8BD0D4A585E94CD6B +467DEE7EB490397F3A6820B7CD9E043A785A26D0509FFC935900EADF6297B35ACA9239C776C2 +B6A61523A529A54E01199B30522328053878C3DCECE69AC39BCF136290C5BC6CD04F5355723A +80C79624AEB7F76423400BEC6EA0531C57816DA649A44CB791275F8146C6F6AC95CCE9C7DF4D +18E8DE58B7F96F425D92C7D3449F1CF5E067442391F0F0441DC254A8A3D4C7597150331450B4 +5BFC026AA5D0BEC87414AD2A6E07F5FD61218AB4D1AF843C2AB6696361DDED9A9E331F368824 +22791FFBFD40927A9A65580CA9AA9CB36367C52559FC3209A96CFDA7478517C28ADEECB8C2EA +E5F937AAABFD9CAE42C17749D721F19D318388F7F2E859EBD55AA68F41DED828451700EEBF9A +7763D95905407731A817A5E785509C123754F745600659A07EAF8C4D08FFE1E41AA8CB78CE5C +FCF7293E5AF48777561A4231034DB95CC1196C847A1958C4F1AB2989F8364BB8BEBD6FAB569F +C4CE68D99C7B7771665B895220261DAFFD471B89D2DE6066C8CEC85823898879291674D51382 +6A44A5A2FCCD842B9CEEEA58DFE92B0A78D913DB57D8A15711609F451D60321AACE03FB0EAB5 +BC4E05FC73C0E29B7AE92403439D3DDA8D36129B1CB0A760C0677745105F93936AD4AA8AB435 +77C79E15150460A16F1C217152779715493F0396F46A80CC38E2C9991C9866796D03AC9DF4F5 +C59547F4671C27A74010B946BEF91FDED2BCB2E88249B37FE24F6B642350AEE9FDE8AF9A1846 +B5CB26DD18AA8785CC4B24A829B5F3E8293CB1CFE81797FEB369872B9530A3C0E966EA3A173D +25EC080F4B8FD4F556165CDF8B64563FE05611C9B3EE283D58BFD1B6A358DB387C4CCB3EA0F4 +5CA7A1D1578BA672D16C1B200443BBF30EF30EA2A5CE8B4C0B3EF08067D319CAEA860E047CA4 +3C1F7DE53CA65A7D92CF0579D13F5AE278C09D0DE5A169692AA07F740D829654F0680CAB9C79 +87614B458A3CAD5F0E2BD34782705CDA7F9C0C00B5606E0323CE23C78B43ED2FE475FCEDE0BE +1440FE42F488209643F76CB8F4DBFA2D8F089C7B425FF199570FA1D811CA4EBCCE920CB75986 +FAA11E1A666D3B821AD30CFB9648B97FA98EFB14D3EFE11B9E84FC33080755FD53825468775D +7460CC9758AEFF32610EABC33709088D60E7BA195279D2D1E7F8E2A5B3A427D0322B65D486D1 +E623DA45652AB7F71EEDDEF1FC1AD31A5B4C620A85BF26D732F678FD79A2213F78DF9ABB79FF +B9CE5AD8D59ABB59B75E48265E5F89994A4E3FE517980C63B94E0CB5C31C3858DFE6F6744682 +D300A12844F97B4EB8DC14D52B1FADA4C2694596F889621F0C60D7F59909928D6B9C4BF0260C +DD1E984C167D3BFA86145DC3733CAB12C945CE524341B6BE5BDBC882BA89B8493F4BB5DAAAC6 +8265AC8F0D1D8781FEC6A913F6C967C2E6809E6E7DA7F55E99AF47FF083836E2D59B1DE167BF +7B85F21A51848D37345BD6617ACB7C939FCE5A99615CAA1592669199C54C616A00DC2858B1EE +3E06548146B81EBFEB1B52CD3033FE447CEA19567F80EB109C9F64EF24B2E067019DBA2C2608 +FD901D7C9F6072226B543542D917D89731586A4B758ED05C95A2E8A264CC2AFA63F2A7952BBA +E1A771122530B8770ED378FAE3AD93406107AFA5EFFCEC6C66CD3427BE67C8405536562F9039 +033B25742F13ED631550799EE520ACD98B6AE8CE08C3951FA3D04D66E91D42D54431E7F4C36B +F29B792922BCF1D85DB39D66B6FA92AEB89E2CFF9C0A150FC67A419D926F10F01A8F3E18DFEA +9470586ADD9DE03892B9E0989A2B1AAB57FAD07E5D9F7A5CB510AC82459949A286E4FBCA5199 +54F1EC6118A03538FBCD4C0CF85AAFEAAB0390AE0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + + + +%%EndFont +TeXDict begin 40258437 52099154 1000 600 600 (ishmael.dvi) +@start /Fa 131[83 1[37 44 44 60 44 46 32 33 33 44 46 +42 46 69 23 44 1[23 46 42 25 37 46 37 46 42 4[42 4[85 +2[60 46 61 65 57 1[62 76 52 2[30 62 1[54 1[63 60 59 62 +1[39 3[23 9[42 2[23 28 23 4[23 4[42 21[46 48 11[{}53 +83.022 /CMR10 rf /Fb 135[123 3[90 1[95 1[129 116 1[194 +65 5[71 106 129 2[113 27[153 56[129 12[{}13 206.559 /CMBX12 +rf /Fc 139[75 1[79 1[108 7[108 2[88 3[94 29[140 17[97 +49[{}8 172.188 /CMBX12 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + +%%EndSetup +1 0 bop 291 1138 a Fc(Chapter)64 b(1)291 1553 y Fb(Example)75 +b(formatted)k(\014le)291 1985 y Fa(I)33 b(stu\013ed)g(a)g(shirt)g(or)f +(t)n(w)n(o)g(in)n(to)h(m)n(y)f(old)h(carp)r(et-bag,)g(tuc)n(k)n(ed)f +(it)i(under)f(m)n(y)f(arm,)i(and)291 2084 y(started)24 +b(for)h(Cap)r(e)g(Horn)g(and)g(the)g(P)n(aci\014c.)35 +b(Quitting)25 b(the)h(go)r(o)r(d)e(cit)n(y)h(of)g(old)g(Manhatto,)291 +2184 y(I)h(duly)h(arriv)n(ed)d(in)j(New)f(Bedford.)36 +b(It)27 b(w)n(as)e(on)h(a)g(Saturda)n(y)g(nigh)n(t)g(in)g(Decem)n(b)r +(er.)37 b(Muc)n(h)291 2284 y(w)n(as)17 b(I)i(disapp)r(oin)n(ted)g(up)r +(on)g(learning)f(that)h(the)g(little)g(pac)n(k)n(et)f(for)h(Nan)n(tuc)n +(k)n(et)f(had)g(already)291 2383 y(sailed,)38 b(and)e(that)h(no)g(w)n +(a)n(y)e(of)h(reac)n(hing)f(that)i(place)f(w)n(ould)h(o\013er,)h(till)f +(the)g(follo)n(wing)291 2483 y(Monda)n(y)-7 b(.)415 2583 +y(As)23 b(most)g(y)n(oung)f(candidates)h(for)f(the)i(pains)e(and)h(p)r +(enalties)g(of)g(whaling)g(stop)g(at)g(this)291 2682 +y(same)h(New)i(Bedford,)f(thence)h(to)f(em)n(bark)f(on)h(their)h(v)n(o) +n(y)n(age,)d(it)i(ma)n(y)g(as)g(w)n(ell)g(b)r(e)h(related)291 +2782 y(that)36 b(I,)h(for)f(one,)j(had)d(no)g(idea)g(of)h(so)f(doing.) +63 b(F)-7 b(or)36 b(m)n(y)g(mind)h(w)n(as)f(made)g(up)h(to)f(sail)291 +2881 y(in)31 b(no)g(other)f(than)h(a)g(Nan)n(tuc)n(k)n(et)f(craft,)i(b) +r(ecause)e(there)h(w)n(as)f(a)h(\014ne)g(b)r(oisterous)f(some-)291 +2981 y(thing)23 b(ab)r(out)g(ev)n(erything)f(connected)g(with)i(that)f +(famous)g(old)g(island,)g(whic)n(h)g(amazingly)291 3081 +y(pleased)30 b(me.)48 b(Besides)30 b(though)h(New)h(Bedford)e(has)h(of) +g(late)g(b)r(een)g(gradually)f(monop)r(o-)291 3180 y(lizing)j(the)h +(business)f(of)g(whaling,)h(and)g(though)f(in)h(this)f(matter)h(p)r(o)r +(or)e(old)i(Nan)n(tuc)n(k)n(et)291 3280 y(is)e(no)n(w)g(m)n(uc)n(h)h(b) +r(ehind)h(her,)f(y)n(et)g(Nan)n(tuc)n(k)n(et)f(w)n(as)g(her)g(great)g +(original)f(|)i(the)g(T)n(yre)f(of)291 3380 y(this)27 +b(Carthage;)e(|)i(the)h(place)e(where)h(the)g(\014rst)g(dead)f +(American)h(whale)g(w)n(as)e(stranded.)291 3479 y(Where)31 +b(else)f(but)i(from)f(Nan)n(tuc)n(k)n(et)f(did)i(those)f(ab)r(original) +e(whalemen,)j(the)g(Red-Men,)291 3579 y(\014rst)f(sally)h(out)g(in)g +(cano)r(es)g(to)g(giv)n(e)f(c)n(hase)g(to)h(the)g(Leviathan?)50 +b(And)33 b(where)f(but)g(from)291 3678 y(Nan)n(tuc)n(k)n(et,)j(to)r(o,) +g(did)g(that)f(\014rst)g(adv)n(en)n(turous)e(little)j(slo)r(op)e(put)i +(forth,)h(partly)d(laden)291 3778 y(with)38 b(imp)r(orted)f +(cobblestones)g(|)h(so)f(go)r(es)f(the)i(story)f(|)h(to)f(thro)n(w)g +(at)g(the)h(whales,)291 3878 y(in)c(order)f(to)i(disco)n(v)n(er)d(when) +j(they)g(w)n(ere)e(nigh)i(enough)f(to)g(risk)g(a)g(harp)r(o)r(on)f +(from)i(the)291 3977 y(b)r(o)n(wsprit?)415 4077 y(No)n(w)f(ha)n(ving)f +(a)h(nigh)n(t,)h(a)f(da)n(y)-7 b(,)35 b(and)f(still)h(another)e(nigh)n +(t)h(follo)n(wing)f(b)r(efore)h(me)h(in)291 4177 y(New)30 +b(Bedford,)h(ere)f(I)h(could)f(em)n(bark)g(for)g(m)n(y)g(destined)h(p)r +(ort,)g(it)g(b)r(ecame)f(a)h(matter)f(of)291 4276 y(concernmen)n(t)h +(where)g(I)h(w)n(as)f(to)h(eat)f(and)h(sleep)g(mean)n(while.)49 +b(It)32 b(w)n(as)f(a)h(v)n(ery)e(dubious-)291 4376 y(lo)r(oking,)d(na)n +(y)-7 b(,)28 b(a)g(v)n(ery)f(dark)h(and)g(dismal)g(nigh)n(t,)g +(bitingly)h(cold)f(and)g(c)n(heerless.)38 b(I)28 b(knew)291 +4475 y(no-one)d(in)h(the)h(place.)36 b(With)27 b(anxious)e(grapnels)f +(I)j(had)e(sounded)h(m)n(y)g(p)r(o)r(c)n(k)n(et,)g(and)g(only)291 +4575 y(brough)n(t)35 b(up)i(a)f(few)h(pieces)f(of)g(silv)n(er,)i(|)f +(\\So,)h(wherev)n(er)c(y)n(ou)i(go,)i(Ishmael,")g(said)e(I)291 +4675 y(to)29 b(m)n(yself,)h(as)g(I)f(sto)r(o)r(d)h(in)g(the)g(middle)g +(of)g(a)g(dreary)e(street)h(shouldering)g(m)n(y)g(bag,)h(and)291 +4774 y(comparing)i(the)i(glo)r(om)e(to)n(w)n(ards)g(the)i(north)f(with) +h(the)g(darkness)e(to)n(w)n(ards)g(the)i(south)291 4874 +y(|)25 b(\\wherev)n(er)f(in)i(y)n(our)e(wisdom)h(y)n(ou)g(ma)n(y)g +(conclude)h(to)f(lo)r(dge)g(for)g(the)h(nigh)n(t,)g(m)n(y)g(dear)291 +4974 y(Ishmael,)h(b)r(e)h(sure)f(to)g(inquire)h(the)g(price,)f(and)g +(don't)h(b)r(e)g(to)r(o)f(particular.")1702 5208 y(1)p +eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/usergrps/uktug/baskervi/8_3/ishmael.jpg b/usergrps/uktug/baskervi/8_3/ishmael.jpg Binary files differnew file mode 100644 index 0000000000..f7082653d0 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.jpg diff --git a/usergrps/uktug/baskervi/8_3/ishmael.log b/usergrps/uktug/baskervi/8_3/ishmael.log new file mode 100644 index 0000000000..aa2d02d98b --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.log @@ -0,0 +1,54 @@ +This is TeX, Version 3.14159 (Web2c 7.2) (format=latex 1998.7.25) 27 JUL 1998 10:01 +**ishmael +(ishmael.tex +LaTeX2e <1998/06/01> +Babel <v3.6j> and hyphenation patterns for english, french, german, dumylang, n +ohyphenation, loaded. +(t://texmf/tex/latex/base/book.cls +Document Class: book 1998/05/05 v1.3y Standard LaTeX document class +(t://texmf/tex/latex/base/bk10.clo +File: bk10.clo 1998/05/05 v1.3y Standard LaTeX file (size option) +) +\c@part=\count79 +\c@chapter=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (ishmael.aux) +\openout1 = `ishmael.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. + +Chapter 1. +[1 + + +] (ishmael.aux) ) +Here is how much of TeX's memory you used: + 224 strings out of 10919 + 2186 string characters out of 72687 + 47482 words of memory out of 263001 + 3215 multiletter control sequences out of 10000+0 + 4553 words of font info for 17 fonts, out of 200000 for 1000 + 14 hyphenation exceptions out of 1000 + 23i,4n,18p,115b,176s stack positions out of 300i,100n,500p,30000b,4000s + +Output written on ishmael.dvi (1 page, 3312 bytes). diff --git a/usergrps/uktug/baskervi/8_3/ishmael.png b/usergrps/uktug/baskervi/8_3/ishmael.png Binary files differnew file mode 100644 index 0000000000..96e63116a8 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.png diff --git a/usergrps/uktug/baskervi/8_3/ishmael.tex b/usergrps/uktug/baskervi/8_3/ishmael.tex new file mode 100644 index 0000000000..889d5fe97f --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ishmael.tex @@ -0,0 +1,112 @@ +\documentclass{book} + +\begin{document} +\chapter{Example formatted file}\label{ishmael} +%\addtocontents{toc}{ishmael} +I stuffed a shirt or two into my old carpet-bag, tucked it +under my arm, and started for Cape Horn and the Pacific. Quitting the good +city of old Manhatto, I duly arrived in New Bedford. +It was on a Saturday night in December. Much was I disappointed +upon learning that the little packet for Nantucket had already sailed, and that no +way of reaching that place would offer, till the following Monday. + +As most young candidates for the pains and +penalties of whaling stop at this same New Bedford, thence to embark +on their voyage, it may as well be related that I, for one, had no idea +of so doing. For my mind was made up to sail in no other than a +Nantucket craft, because there was a fine boisterous something about +everything connected with that famous old island, +which amazingly pleased me. Besides though New Bedford has of +late been gradually monopolizing the business of whaling, and though in this matter +poor old Nantucket is now much behind her, yet Nantucket was her great original +--- the Tyre of this Carthage; --- the place where the first dead +American whale was stranded. Where else but from Nantucket did +those aboriginal whalemen, the Red-Men, first sally out +in canoes to give chase to the Leviathan? And where but from +Nantucket, too, did that first adventurous little sloop +put forth, partly laden with imported cobblestones +--- so goes the story --- to throw at the whales, in order to +discover when they were nigh enough to risk a harpoon from the +bowsprit? + +Now having a night, a day, and still another night +following before me in New Bedford, ere I could +embark for my destined port, it became a matter of +concernment where I was to eat and sleep meanwhile. It was a very +dubious-looking, nay, a very dark and dismal night, +bitingly cold and cheerless. I knew no-one in the place. +With anxious grapnels I had sounded my pocket, and only brought up a few +pieces of silver, --- ``So, wherever you +go, Ishmael,'' said I to myself, as I stood in the middle +of a dreary street shouldering my bag, +and comparing the gloom towards the north with the darkness +towards the south --- ``wherever in your wisdom +you may conclude to lodge for the night, my dear +Ishmael, be sure to inquire the price, and don't be too +particular.'' +\end{document} + +Moving on, I at last came to a dim sort of light not far from +the docks, and heard a forlorn creaking in the air; +and looking up, saw a swinging sign over the door +with a white painting upon it, faintly representing a tall straight jet +of misty spray, and these words underneath --- `The Spouter-Inn: +--- Peter Coffin.' + +``Coffin? --- Spouter? --- Rather ominous in that particular +connexion,'' thought I. ``But it is a common name in Nantucket, +they say, and I suppose this Peter is an emigrant +from there.'' As the light looked so dim, +and the place, for the time, looked +quiet enough, and the dilapidated little wooden +house itself looked as if it might have been +carted here from the ruins of some burnt +district, and as the swinging sign had a poverty-stricken +sort of creak to it, I thought that here was the +very spot for cheap lodgings, and the best pea coffee. + +It was a queer sort of place --- a gable-ended old house, +one side palsied as it were, and leaning over sadly. It stood +on a sharp bleak corner, where that tempestuous wind Euroclydon kept +up a worse howling than it ever did about poor +Paul's tossed craft. Euroclydon, nevertheless, is a mighty +pleasant zephyr to any one in-doors, with his feet on the hob +quietly toasting for bed. ``In judging of that tempestuous +wind called Euroclydon,'' says an old writer --- of whose works +I possess the only copy extant --- ``it maketh a +marvellous difference, whether you lookest +out at it from a glass window where the frost +is all on the outside, or whether thou observest it from +that sashless window, where the frost is on both sides, and +of which the wight Death is the only glazier.'' True enough, thought I, +as this passage occurred to my mind --- old black-letter, +thou reasonest well. Yes, these eyes are windows, +and this body of mine is the house. What a pity they +don't stop up the chinks and crannies though, and thrust in a little +lint here and there. But it's too late +to make any improvements now. The universe is finished; +the copestone is on, and the chips were carted off +a million years ago. Poor Lazarus there, +chattering his teeth against the curbstone for his +pillow, and shaking off his tatters with his shiverings, he might +plug up both ears with rags, and put a corn-cob into his +mouth, and yet that would not keep out the +tempestuous Euroclydon. What a fine frosty night; +how Orion glitters; what northern lights! Let them +talk of their oriental summer climes of everlasting +conservatories; give me the privilege of making my +own summer with my own coals. + +But what thinks Lazarus? Can he warm his blue hands +by holding them up to the grand northern lights? Would not +Lazarus rather be in Sumatra than here? Would +he not far rather lay him down lengthwise along the line +of the equator; yea, ye gods! +go down to the fiery pit itself, in order +to keep out this frost? + +But no more of this blubbering now, we are going a-whaling, +and there is plenty of that yet to come. Let us +scrape this ice from our frosted feet, and see what sort of place this +`Spouter' may be. + diff --git a/usergrps/uktug/baskervi/8_3/ltx-logo.sty b/usergrps/uktug/baskervi/8_3/ltx-logo.sty new file mode 100644 index 0000000000..1cc01e9698 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/ltx-logo.sty @@ -0,0 +1,64 @@ +% A package to generate LaTeX logos using the code developed for +% TUGboat. + +\newcommand\DeclareLaTeXLogo[5]{\expandafter\def + \csname @LaTeX@#1/#2/#3\endcsname{{#4}{#5}}} +% \end{macrocode} +% +% The default values are as used in the source of \LaTeX{} itself: +% +% \begin{macrocode} +\def\@LaTeX@default{{.36}{.15}} +% \end{macrocode} +% +% +% Redefine \cs{LaTeX} to choose the parameters for the current font, +% or to use the default value otherwise: +% +% \begin{macrocode} +\DeclareRobustCommand\LaTeX{\expandafter\let\expandafter\reserved@a + \csname @LaTeX@\f@family/\f@series/\f@shape\endcsname + \ifx\reserved@a\relax\let\reserved@a\@LaTeX@default\fi + \expandafter\@LaTeX\reserved@a} +% \end{macrocode} +% +% Here's the body of what was originally \cs{LaTeX}, pulled out with its +% roots dripping onto the smoking ruin of original \LaTeX, and then +% bits stuck in on the side. +% +% \cs{@LaTeX@default} provides parameters as one finds in the +% original; other versions are added as needed. +% +% \begin{macrocode} +\newcommand\@LaTeX[2]{L\kern-#1em + {\sbox\z@ T% + \vbox to\ht0{\hbox{$\m@th$% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A}% + \vss}% + }% + \kern-#2em% + \TeX} +% \end{macrocode} +% +% Three more defined in the initial version, for bold CM sans (which is +% used as \cs{SecTitleFont}), and CM italic medium and bold: +% +% \begin{macrocode} +\DeclareOption{cm}{% + \DeclareLaTeXLogo{cmss}{bx}n{.3}{.15}% + \DeclareLaTeXLogo{cmr}m{it}{.3}{.27}% + \DeclareLaTeXLogo{cmr}{bx}{it}{.3}{.27}% +} +\DeclareOption{mbvx}{% + \DeclareLaTeXLogo{mbvx}{m}{n}{.27}{.08}% + \DeclareLaTeXLogo{mbvx}{m}{it}{.23}{.10}% + \DeclareLaTeXLogo{mbvx}{b}{n}{.23}{.10}% + \DeclareLaTeXLogo{mbvx}{b}{it}{.21}{.10}% +} +\DeclareOption*{\PackageWarning{ltx-logo}{No LaTeX logo shapes defined + for font family \CurrentOption\space-- yet}} +\ProcessOptions +% \end{macrocode} diff --git a/usergrps/uktug/baskervi/8_3/plea.tex b/usergrps/uktug/baskervi/8_3/plea.tex new file mode 100644 index 0000000000..b948b7bf3c --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/plea.tex @@ -0,0 +1,50 @@ +\title{\TeX\ Live 4 --- enchancement volunteers needed} +\author{Sebastian Rahtz\\\texttt{s.rahtz@elsevier.co.uk}} +\begin{Article} +The stocks of the \TeX\ Live 3 CD-ROM, released in April, are nearly +exhausted, and the time has arrived already to consider \TeX\ Live 4. +This is a public appeal for anyone +interested in working on the project to come forward. + +\TeX\ Live 4 needs to improve over \TeX\ Live 3 in the following ways, +and I need people to help me in all these ways: +\begin{enumerate} +\item Update basic \TeX\ family programs (notably, pdf\TeX\ has had + important changes, but there are many small fixes to look at); +\item Update font and macro packages --- at least 100 + new releases to CTAN in the last 4 months! +\item Install new releases of fp\TeX\ (was web2c-win32), CMacTeX, OzTeX, + emTeX and MikTeX distributions; +\item Write better install and maintenance programs, especially for + Windows; +\item Write better documentation; +\item Refine and document the package cataloguing; +\item Do something (what?) to help Mac and VMS users; +\item Check the support tree for consistency and completeness. +\end{enumerate} + +So can you do, and do you have time for, any of the following? +\begin{itemize} +\item compile software on weird Unix systems? +\item write install and configuration programs for Windows 9X/NT? +\item classify and describe macro or font packages to the standards of + Graham Williams' Catalogue? +\item write new-user documentation? +\item add new packages from CTAN (especially fonts)? In particular, can you + produce credible and maintainable TDS trees for users working in the + following areas: + \begin{itemize} + \item Greek typesetting (modern and ancient) + \item Cyrillic typesetting + \item Indian languages + \end{itemize} +\end{itemize} +Many kind people helped me produce and check \TeX\ Live 3, but there is +always room for extra hands. Of course, I do not guarentee much reward, other +then the satisfaction of a job well done\ldots + +It goes without saying that a fast Internet connection, constant +access to e-mail, and a belief in the principles of the \TeX\ +Directory Structure, are vital qualifications! + +\end{Article} diff --git a/usergrps/uktug/baskervi/8_3/sec.tex b/usergrps/uktug/baskervi/8_3/sec.tex new file mode 100644 index 0000000000..28475b50bb --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/sec.tex @@ -0,0 +1,119 @@ +\title{UKTUG Information} +\author{} +\begin{Article} +% This file is the regular `last page' of BV + +\section*{The 1997--98 \ukt\ committee} +\begin{flushleft} +\textbf{Chair:} Philip Taylor: \url{p.taylor@vms.rhbnc.ac.uk}\\ +\textbf{Treasurer \& Membership Secretary:}\\ +Peter Abbott: \url{peter.abbott@cl.cam.ac.uk}\\ +\textbf{Secretary:} Jonathan Fine: \url{j.fine@pmms.cam.ac.uk}\\ + +\vspace{.5ex} + +Kaveh Bazargan: \url{kaveh@focal.demon.co.uk}\\ +Malcolm Clark: \url{malcolm.clark@kcl.ac.uk}\\ +Roy Everett: \url{purpose@compuserve.com}\\ +Robin Fairbairns: \url{Robin.Fairbairns@cl.cam.ac.uk}\\ +David Hardy: \url{editent@btinternet.com}\\ +Sebastian Rahtz: \url{s.rahtz@elsevier.co.uk}\\ +Kim Roberts: \url{robertsk@oup.co.uk}\\ +Mark Wooding: \url{mdw@ebi.ac.uk} \\ +Dominik Wujastyk: \url{ucgadkw@ucl.ac.uk}\\ +\end{flushleft} + +\section*{Contacting \ukt} +Please send \ukt\ subscriptions, and book or software orders, to +the Treasurer: Peter Abbott, 1 Eymore Close, Selly Oak, Birmingham B29 4LB. +Fax/telephone: 0121 476 2159. Email \url{peter.abbott@tex.ac.uk}. + +General enquires should be sent to the Secretary: Jonathan Fine, +203 Coldhams Lane, Cambridge CB1 3HY. Telephone: 01223 215389. + +\ukt\ maintains pages on the World Wide Web at \url{http://www.tex.ac.uk/UKTUG/} +Email enquiries about \ukt\ to \protect\texttt{uktug-enquiries@tex.ac.uk}. + +\section*{Baskerville} +Articles may be submitted via electronic mail to +\texttt{baskerville@tex.ac.uk}, or on MSDOS-compatible discs, to +Sebastian Rahtz, Elsevier Science Ltd, The Boulevard, Langford Lane, +Kidlington, Oxford OX5 1GB, to whom any correspondence concerning \BV\ +should also be addressed. Back issues from the previous 12 months may +be ordered from \ukt\ for \pounds2 each; earlier issues are archived +on \textsc{ctan} in \texttt{usergrps/uktug}. + +\section*{Book Discounts for \protect\ukt\ members} +We have arrangements with Addison-Wesley for +their well-known \TeX-related publications, and with International +Thomson Publishing to supply any of the very excellent O'Reilly \& +Associates Inc.\ series of books to members. + +Due to price fluctuations and edition changes, it is not possible to +provide an uptodate list of books. Please send details of the books in +which you are interested to Peter Abbott by fax, phone or email. Peter will +supply a quotation without any obligation. + +We are only allowed to offer this service to \textbf{current} members +of the \ukt\ and/or members of \acro{TUG}. Please send your order +and cheque (in \acro{UK} \pounds) to Peter Abbott. Make cheques +payable to `\acro{UKTUG}' please. All books will be routed through +\ukt. \emph{In all cases} please notify Peter Abbott by email, phone, +fax or letter when books are delivered. This means that provided the +book(s) are in stock, it will normally take at least a week from +receipt of order to delivery of the book(s). + +\section*{Obtaining \TeX\ from CTAN} + +The \acro{UK} \TeX\ Archive on \texttt{ftp.tex.ac.uk} is part of the +\acro{CTAN} (Comprehensive \TeX\ Archive Network) collaborating +network of archives on the Internet organised by the \TeX\ Users +Group. + +%The \acro{CTAN} archives run an enhanced \emph{ftp} server which +%supports dynamic compression, uncompression, and archive-creation +%options. Fetch the top-level file {\tt README.archive-features} for +%information. The server also supports site-defined commands to assist +%you. Please read {\tt README.site-commands} for a brief overview. + +For interfaces and catalogues of CTAN, you are referred to Graham +Williams' \emph{\TeX{} and \LaTeX{} Catalogue} which is available from +\acro{CTAN} as \path|help/Catalogue/catalogue.html|; other interfaces +are listed in \url{http://www.tug.org/interest.html}. + +Please report any problems with \acro{CTAN} archives via email to +\texttt{ctan@urz.Uni-Heidelberg.de}. + + +\subsection{Obtaining \TeX\ on CD-ROM} +\ukt, in collaboration with \acro{GUT}enberg, \acro{TUG}, +\acro{NTG} and \acro{DANTE}, have produced \TeX{} Live, a plug-and-play +\acro{CD}-\acro{ROM} for Unix, Amiga and Windows based on the Web2c +\TeX{} setup. As it is formatted according to \acro{ISO} 9660, the +platform-independent files can, in principle, be read on all operating +systems which can deal with that format, or Microsoft Joliet extensions. +The \acro{CD} is available free of charge to members of \ukt\ and to +non-members at \pounds25. + +Complete DOS, Windows 32 and Macintosh implementations are also +available as packages on the \acro{CD}; floppy disk sets will now be +supplied only on special request. + +\section*{Future meetings of \ukt} +The next meeting for members of \ukt{} is \emph{\TeX{} in its + diversity}, associated with the AGM. The meeting will be in +Cambridge, on Monday 21 September. Speakers will include Chris +Rowley, Sebastian Rahtz, Dominik Wujastyk, Simon Dales and Dick +Nickalls. The following day Hans Hagen will (if there is enough +demand) give a course on \TeX{} and PDF. Members should already have +received an announcement of the meeting and training day, but a repeat +copy of the flier is also included with this issue of \BV{}. + +In addition, both in Oxford and Cambridge there are tentative plans to +hold a least a trial local meeting for \TeX{} users. If you are +interested please contact Kim Roberts or Jonathan Fine respectively. + +For up to date details of meetings, visit the \ukt{} Web site at +\url{http://www.tex.ac.uk/UKTUG/} + +\end{Article} diff --git a/usergrps/uktug/baskervi/8_3/second.tex b/usergrps/uktug/baskervi/8_3/second.tex new file mode 100644 index 0000000000..35215ed872 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/second.tex @@ -0,0 +1,654 @@ +\chapter{More things you should know} +%\addtocontents{toc}{sleeve} +\section{Changing font} +Once desktop publishing arrived\footnote{Desktop publishing arrived + long before Paul Brainerd of Aldus invented the term and Apple + created the bandwagon. Xerox \textsc{Parc} had been doing all that + about 1978 with the Bravo system -- even to the extent of on-demand + immediate laser printing. \TeX\ users throughout the known world had + been publishing via their desktop terminals, and the \textsc{Unix} + world had also been using the \texttt{nroff}\slash \texttt{troff} + family and its pre-processors. The key to success is marketing.} +people expected to change font\index{fonts} at the drop of a hat. +Brought up on typewriters, with no typographic knowledge at all, they +suddenly acquired a whole new vocabulary of `Palatino', `Bookman', +`Zapf Chancery', and strongly held opinions about kerning, +letterspacing, serifs, tracking and other arcane typographical subjects +(rational views may be found in~\cite{RM80} and~\cite{PL92}). + +\section{Some history (again)} +When Knuth designed \TeX, he also designed fonts to go with it. Or +rather, he used an existing typeface, Monotype's Modern 8A, and +produced what he termed `Computer Modern'. He had some help, but +basically this `family' is the suite of fonts with which \TeX\ (and +\LaTeX) were initially tuned. That is not to say you cannot use +others, just that some work \emph{may} be needed before it will be a +success. The Computer Modern family comprises about 75 `different' +fonts. Most families comprise three or four different fonts -- medium, +bold, italic and so on. Now, 75 fonts does not mean that they are all +strikingly and immediately different: Knuth took the notion of a +`design size' rather seriously. What this means is that the font is +designed to be displayed and read at a specific size. Thus we have +several versions of Computer Modern\index{Computer Modern} Roman, +designed to be read at 5, 6, 7, 8, 9, 10, 12, 17 and 25 +points~\cite{DEK-cm}. These are genuinely different: the proportions +change subtly as we change size. + +Contemporary digital fonts tend to be stored as `outline' information, where to +arrive at a particular size, we `merely' magnify the `prototype' outline. This +will not change the outline, just the size. Adobe encoded `hints' into their +\PS\ `Type~1' outlines, which help preserve the subtle changes. +MicroSoft's `TrueType' fonts contain similar hints -- but distinct enough +to avoid legal action. However, these hints have as much to do with +accommodating digital fonts to the various resolutions at which they may be +displayed as to modifying them for the point size at which they are +displayed. + +Returning to the Computer Modern fonts, they are usually stored as +`rather compressed' bit maps, for a given resolution. Thus a laser +printer would typically require resolutions of 300\,dpi or 600\,dpi, +and a phototypesetter perhaps 1270\,dpi. Outline fonts clearly have an +advantage here, since you would only need one font to be stored, The +rasterization of an outline takes place at print time, in the +printer's own processor. At the time, Knuth's solution seemed a good +one. It certainly assured quality, but it does require a lot of +storage space for all those bit maps. But disk space is cheap. And if +you can store the bit maps down on your laser printer or +phototypesetter, the data transmission times can be reduced. If you +are working on a network, you may have to store the bit maps on a +server, where you then have the time consuming business of shipping +them down to the printer. + +If we delve a little more into the process, we discover that Knuth +also created a `language' to describe fonts -- \MF~\cite{DEK86}. The +descriptions of Computer Modern are encoded in \MF\ (see, for +example~\cite{DEK-cm}). Some implementations of \LaTeX\ will include +\MF, and you may find that when you need particular fonts, they are +generated on the fly. Typically, you will take many years to require +all the Computer Modern fonts at all the sizes possible, and you can +afford to accumulate them over time, \MF\ generating them as required. +Since some of these fonts may only ever be required in rather +exceptional and infrequent circumstances, a common strategy is to +delete the less well used ones after use. Given the current processor +speed commonly available, this is quite a sound approach. But it does +depend on you having a suitably configured system where all these +various components can inter-communicate. + +Equally, Postscript and Truetype versions of the Computer Modern fonts are now +generally available, both commercially and within the public domain. + +For many years \TeX\ and \LaTeX\ gained a reputation of working with +only Computer Modern and unfortunately, some people, especially +publishers, did not like Computer Modern, usually preferring Times. The +reputation was unfounded, but it stemmed from two main origins: +firstly, it did take some time and effort (and sometime access to +proprietary information) to utilise other fonts; and secondly, other +fonts did not necessarily have the full range of characters which were +readily available for Computer Modern. Eventually the problem was +solved quite comprehensively by Frank Mittelbach and Rainer Sch{\"o}pf +with the introduction of the `New Font Selection Scheme'~\cite{FM89} +or \textsf{NFSS}. Although we will look at this later, if you are +anxious to eschew the use of good old Computer Modern for your +particular favourite, consult Chapter~7 of the \textsl{Companion}. + +\section{What fonts do we have?} +We won't actually use all the fonts\index{fonts} here, but just look +at the ones we get by default with \LaTeX.\footnote{These notes were + originally written with the intention that the font used would be + Computer Modern. The house style of this august organ is + Baskerville. If the \textsf{NFSS} transformations have been done + correctly, all should be well.} Depending how you count, there are +eleven types or `styles' of font available, divided into three +independent groups: the `family' group is Roman, Sans Serif and +Typewriter: the `series' group comprises Medium and Bold: while the +`shape' group is Upright, Italic, Slanted and Small Capitals. That +leaves one orphan, Normal. Normal is the style used in the `body' of +the text. But even then that only comes to ten. The eleventh is an +`emphasis' style. The results of using emphasis is to change the +appearance in some way. Note that we do not use underlining at all -- +that is a typing convention for emphasis which is +\underline{never}\footnote{hardly ever} used in typesetting. We are in +the Gutenberg tradition, not the Sholes tradition. Table~\ref{tfonts} +shows what these fonts look like on the page. If you look closely you +will note that there appears to be no difference between Upright, +Medium, Roman and Normal. At this stage, this is true; later we shall +see the distinctions in more detail. +\begin{question} + Sholes who? By now, very few people have direct experience of having + used a typewriter. For those who do, what other leftovers from the + days of the typewriter afflict us? Many word processing packages + defer to typewriting practise and may provide hints and clues. Is it + necessary to ask who Gutenberg was? or Caxton? or the cutely named + Wynkyn de Worde? or even Baskerville? +\end{question} +\begin{table*} +\begin{center} +\begin{tabular}{|llp{3in}|} +\hline +Style & instruction & example \\ +\hline +Roman &\verb|\textrm| &\textrm{The quick brown fox comes to the +aid of the Hamburgerfons} \\Upright &\verb|\textup| &\textup{The quick brown fox comes to the aid of the +Hamburgerfons} \\ +Sans Serif &\verb|\textsf| &\textsf{The quick brown fox comes to the aid of +the Hamburgerfons}\\ +Typewriter &\verb|\texttt| &\texttt{The quick brown fox comes to the aid of +the Hamburgerfons}\\ +Medium &\verb|\textmd| &\textmd{The quick brown fox comes to the aid of the +Hamburgerfons} \\ +Bold & \verb|\textbf|&\textbf{The quick brown fox comes to the aid of the +Hamburgerfons}\\ +Upright & \verb|\textup|&\textup{The quick brown fox comes to the +aid of the Hamburgerfons}\\ +Italic & \verb|\textit|&\textit{The quick brown fox comes to the +aid of the Hamburgerfons}\\ +Slanted &\verb|\textsl| &\textsl{The quick brown fox comes to the aid of the +Hamburgerfons}\\ +Small Capitals & \verb|\textsc|&\textsc{The quick brown fox comes to the +aid of the Hamburgerfons}\\ +Normal &\verb|\textnormal| &\textnormal{The quick brown fox comes to the aid of +the Hamburgerfons}\\ +\hline +\end{tabular} +\end{center} +\caption{font styles\index{fonts} readily available}\label{tfonts} +\end{table*} + +To change the type `style', we use the simple, fairly mnemonic instruction given +in Table~\ref{tfonts}. \LaTeX\ has a very powerful technique available +which makes life easy -- grouping. Grouping is a notion central to the +whole existence of \LaTeX. We have already met some sorts of grouping, +where we have a \verb|\begin| and \verb|\end|. There is a simpler +grouping\index{grouping} -- \verb|{| and \verb|}|. If we, for example +say +\begin{verbatim} +The song really \emph{is} \textit{A-Sitting +On A Gate}: and the tune's my own invention. +\end{verbatim} +the parts enclosed in braces are the parts which will be emphasised (by +\verb!\emph!), or turned into italics (by \verb!\textit!). The remainder of the +passage will use whatever happens to be the font already in use. The word +\verb|is| is really `emphasised'\index{emphasis}, while the \verb|A-Sitting On A Gate| part is +a title (of sorts -- see Table~\ref{talice}). We may wish all such titles to be +represented in a particular font or style, to assist readers distinguish +this sort of information. + +It is a good idea to review the reasoning behind changing font: +presumably it is to provide the reader with visual clues to the +structure of the contents of the document. Thus headings are usually +in a different font from the text, and different levels of heading +usually have slightly different characteristics: quoted text is often +presented in a different font, and so too is emphasised material. +Given that human perception seems to work best with $7\pm2$ discrete +items at a time, you can see that you probably do not want too many +different fonts at a time. +\begin{table*} +\begin{center} +\small +\begin{tabular}{|ll|} +\hline +what the name of the song is called& Haddocks' Eyes \\ +what the name is & The Aged Aged Man\\ +what the song is called & Ways and Means\\ +what the song really {\em is} & A-sitting On A Gate\\ +the tune & I give thee all, I can no more\\ +\hline +\end{tabular} +\end{center} +\caption{Carrolliginian confusion -- totally irrelevant here}\label{talice} +\end{table*} + +At last, this brings in the use of emphasis: \LaTeX\ uses the instruction +\verb|\emph|\index{emph@\texttt{emph}} to denote emphasis. Let's look again at +the last example to see that +\begin{verbatim} +The song really \emph{is} \textit{A-Sitting +On A Gate}: and the tune's my own invention. +\end{verbatim} +gives +\begin{quote} +The song really \emph{is} \textit{A-Sitting +On A Gate}: and the tune's my own invention. +\end{quote} +Here we have distinguished the two elements `emphasised text' and +`italicized text'. In this circumstance, it is hardly visible, except in the +marked up text. But let's change things a bit: +\begin{verbatim} +\textit{The song really \emph{is} \textit{A-Sitting On A Gate}: +and the tune's my own invention.} +\end{verbatim} +This time we find that the +emphasised text is in the roman font: +\begin{quote} +\textit{The song really \emph{is} \textit{A-Sitting On A Gate}: +and the tune's my own invention.} +\end{quote} +\LaTeX\ is smart enough to do that, but unfortunately is not smart +enough to change the title information. After all, you have specified +that it is italicised. The fact that you then repeat the italicisation +instruction changes nothing, although you may have wished that the +second \verb+\textit+ instruction changes to some different font so +that that part looks different. Nevertheless, this can be a useful +feature. Do not think of `emphasis'\index{emphasis} as simply +`italics', because that is not what it means. It is a function which +may be implemented in a variety of ways, depending on the +circumstances. + +\begin{question} +Take some of the earlier text material and change fonts, either over the +whole document, or just selected parts. Which fonts do you find easier to +read? Are the fonts which are easier to read on the screen also the fonts +which are easier to read on paper? +\end{question} + +\section{Bigger or smaller} +You will have observed that fonts are available in more than one size. +\LaTeX\ has a series of instructions which allow you to change the +size of any font, very easily. The instructions used are given in +Table~\ref{tsize}. Their exact behaviour depends on the options you +have set up. The order of the sequence remains constant, but sometimes +two adjacent `sizes' may use the same sized font (without telling +you). +\begin{table*} +\begin{center} +\begin{tabular}{|ll|} +\hline +size&style\\ +\hline +\verb|\tiny| & \tiny Aa\\ +\verb|\scriptsize| & \scriptsize Aa\\ +\verb|\footnotesize| & \footnotesize Aa\\ +\verb|\small| & \small Aa\\ +\verb|\normalsize| & \normalsize Aa\\ +\verb|\large| & \large Aa\\ +\verb|\Large| & \Large Aa\\ +\verb|\LARGE| & \LARGE Aa\\ +\verb|\huge| & \huge Aa\\ +\verb|\Huge| & \Huge Aa\\ +\hline +\end{tabular} +\end{center} +\caption{the sizes\index{size} available}\label{tsize} +\end{table*} +The immediate question is `are all these sizes available for all the +fonts?' + +\begin{question} +Are all these sizes available for all the fonts? Remember to try the +different size options as well as the different fonts. +\end{question} + +The way that these size-changing instructions are used is quite different +from the font-changing instructions. A font changing instruction looks like +\verb+\textrm{text}+, while to change size you say \verb+{\small text}+. +This difference is quite crucial. The size changing merely indicates a new +condition which is operational until the end of the group in which it +occurs. We could, for example, say +\begin{verbatim} +\Huge Come, \huge I'll \LARGE take \Large no +\large denial, \normalsize we must +\small have a \tiny trial +\end{verbatim} +and each change in size would take place when the instruction occurs in the +text: +\begin{quote} +\Huge Come, \huge I'll \LARGE take \Large no \large denial, +\normalsize we must \small have a \tiny trial +\end{quote} + We might be advised to enclose the whole thing in braces, lest any +succeeding text was also placed in the \verb+\tiny+ size of font. If the +size changes are not grouped, separating them out, they remain in effect. + +This different style of usage harks back to the older form of +\LaTeX\index{latex!latex2.09@\protect{\LaTeX\,2.09}}. It should not +cause too much confusion, since you would not normally want to change +size in your text. Any such size changes should be restricted to +special conditions, like section headings or new environments, which +you would not be writing as you go along, but would have been defined +separately. Later we may see how to do these. + + +\section{Accumulation} +It may come as a pleasant surprise to realise that it is possible to +combine the font changing and the size changing mechanisms, and that +something sensible happens. For example, +\begin{verbatim} +a \textsf{\Large mouses's} \textit{\tiny tail} +\end{verbatim} +will result in `a \textsf{\large mouses's} +\textit{\tiny tail}', which is presumably the effect we wished. + +Sometimes fonts are not available in all sizes: had you written +\begin{verbatim} +a \textsl{\large mouses's} \textsc{\tiny tail} +\end{verbatim} +you may find there is no \verb|\tiny| small capitals font +available. \LaTeX\ will substitute something else -- and does so +without telling you. To some extent this lack of a suitable font is +implementation dependent, since it can be possible to create or obtain the +`correct' font for use in this situation. In the current conditions it would +yield: +\begin{quote} +a \textsl{mouse's} {\tiny \textsc{tail}} +\end{quote} + +Do note that these size changing instructions are absolute, not +relative. Saying something like +\begin{verbatim} +a {\small mouses's {\small tail}} +\end{verbatim} +will not make the tail even smaller. In passing, note that if there is +any chance of the text appearing on more than one line, it would be +best to end a paragraph (by inserting a blank line) before the closing +\verb+}+ or else you may get small text on the existing line spacing. +Or if you were using \verb|\large|, the even worse case of large text +on the existing line spacing, with ungainly and uneven line spacing as +\LaTeX\ moves things around to fit. But you really ought not to +be changing size as you go along like this. The examples here are hardly +the stuff of the normal article, report or book. + +In the previous example, we would not be able to obtain a slanted small capital +font by +\begin{verbatim} +a \textsl{mouse's {\tiny \textsc{tail}}} +\end{verbatim} +But if we return to our description of fonts in three groups, a family, a series +and a shape, we will find that these three are truly indpendent. That is to say I +can ask for a bold sans serif \textbf{\textsf{mouse's tail}} by +\begin{verbatim} +\textbf{\textsf{mouse's tail}} +\end{verbatim} +or for a typewriter medium small caps \texttt{\textmd\textsc{{mouse's tail}}} by +\begin{verbatim} +\texttt{\textmd\textsc{{mouse's tail}}} +\end{verbatim} +This is an example that fails in the current font set up. +If you examine the log file closely enough, you will find +that you have been told, and also told what substitute has been chosen. +This is a topic we'll look at in more detail later. + +In principle, you may combine any family with any series with any shape and +expect to see something sensible. +\begin{question} +Try some of these combinations. How would you make the mouse's tail {\small +progressively +\scriptsize smaller}? +\end{question} + +\section{Accenting the positive} +Now it is time for something even more frivolous. One of the nice +features of \LaTeX\ (although of marginal real use in English), is its +excellent support of diacritical\index{diacriticals} marks and foreign +letters. Naturally there is an ulterior motive for introducing these +now. + +First the special letters. \LaTeX\ recognises instructions for the +diphthongs\index{diphthongs} \OE, \AE, \oe\ and \ae\ (commonly used in +Latin and in some Scandinavian languages, among others). It also +recognises the German `\ss' (ess-zet) symbol. It will handle the \AA, +\aa, \O\ and \o\ of some Scandinavian languages. And lastly, it copes +with the Polish suppressed-L, \L\ and \l. + +How do we get these into our text? Follow the \verb+\+ +by a special instruction as shown in Table~\ref{tnatchar}. +\begin{table*} +\begin{center} +\begin{tabular}{|cl|} +\hline +instruction&explanation\\ +\hline +\verb|\ss| & gives the German \ss \\ +\verb|\OE| & gives the \OE\ diphthong \\ +\verb|\oe| & gives the \oe\ diphthong \\ +\verb|\AE| & gives the \AE\ diphthong \\ +\verb|\ae| & gives the \ae\ diphthong \\ +\verb|\O| & gives the letter \O\ \\ +\verb|\o| & gives the letter \o\ \\ +\verb|\AA| & gives the letter \AA\ \\ +\verb|\aa| & gives the letter \aa\ \\ +\verb|\L| & gives the letter \L \\ +\verb|\l| & gives the letter \l\ \\ +\hline +\verb|?`| & gives the symbol ?` \\ +\verb|!`| & gives the symbol !` \\ +\hline +\end{tabular} +\end{center} +\caption{the so-called `national'\index{national characters} +characters}\label{tnatchar} +\end{table*} +How do you use these new instructions? The `recommended' way for beginning +\LaTeX-users is to enclose them in braces\index{braces}. This never fails. Thus +to write \OE dipus in \LaTeX, you actually write +\verb|{\OE}dipus|. + This helps to distinguish \verb|{\OE}dipus| from \verb|\OEdipus|, which +\LaTeX\ would assume was a new (probably unknown) instruction. + + +There is another, briefer, way, which you will encounter frequently: leave +a blank space between the instruction and the rest of the word +\begin{verbatim} +\OE dipus +\end{verbatim} +Note that in this form any extra spaces between +\verb|\OE| and +\verb|dipus| will be ignored, as far as creating the output is concerned. +Since all extra spaces are ignored, leaving a few extra, or even writing +\begin{verbatim} +\OE +dipus +\end{verbatim} +will not leave a space between the diphthong and the rest of the word +which follows when the passage is set. In other words, a line break (a `carriage +control') is just another space to \LaTeX. This gobbling up of extra +blanks\index{space} is a normal feature of \LaTeX. If we group\index{grouping} +the instruction, there is no need to follow it by a space, and in fact +\verb|{\OE} dipus| will give the result `\OE{} dipus', which is not what was +required. + +\begin{question} +In what ways are the following different? +\begin{verbatim} +{\OE }dipus, {\OE} dipus, \OE {dipus}, +\O{E}dipus +\end{verbatim} +And what other `useful' possibilities are there? +\end{question} +What implication does this shorthand method have for instructions which come at +the end of words? Consider trying to write: +\begin{verbatim} +the Schlo\ss of the Rhine valley +\end{verbatim} +The word `Schlo\ss' would appear as we +require, but the spaces which follow would be ignored, +and the next word would begin immediately after the \ss. This is +generally not what we want. In order to solve this problem, there are a +variety of solutions. We could have used \verb+{\ss}+ (the grouped +instruction), as recommended, or we can use a new instruction, \verb*|\ |, that +is, the backslash followed by a space, which introduces a `command +space'\index{space} (or a `control space' or even a +`hard space'). Thus what we probably wanted was +\begin{verbatim} +the Schlo\ss\ of the Rhine valley +\end{verbatim} + +In this approach, the `hard space' lets \LaTeX\ know where +the instruction ends. If you look at this more closely, +you will realise that there are other ways to signify +the end of a instruction. One of them was illustrated +with the \verb|{\OE}dipus| sequence. There the \verb|}| was able +to indicate the end of the instruction. Actually, \verb|\OE{}dipus| would have +had the same effect. The sequence \verb|{}| looks odd, and seems to mean +nothing, but from time to time, even nothing has its uses. In the +alternative shown with the \verb*|Schlo\ss\ | sequence, the occurrence +of a \verb|\| `obviously' begins a new instruction, and therefore indicates the +end of the previous one. + +There is an advantage to using the shorthand, which is not readily +apparent: the kerning information is used. Once we group the instructions, the +kerns\index{kern} between characters are ignored. While it is unlikely that you +will notice this in many situations (especially if you are not familiar with +French or German typography), it is perhaps an encouragement to use +the shorthand. There is always some pleasure to gained from the feeling +that you are somehow doing things `right'. + +In Table~\ref{tnatchar} the two `inverted' symbols were included as a sort of +national character. These are a little odd, and have been known to cause +confusion from time to time. If you are careless where you type +spaces and confuse your opening and closing quotes, +you could end up with something like this dreadfully forced example: +\begin{verbatim} +....oh no!`he said quite emphatically.... +\end{verbatim} + These two national +characters need not be enclosed in braces, since they are not standard \LaTeX\ +instructions, in the sense that they do not begin with the backslash. They +work rather differently. On the other hand, feel free to put +braces in if you want. Nothing untoward will occur. + +\LaTeX\ also has lots of diacriticals\index{diacriticals} (Lamport refers to +them as accents\index{accents|see{diacriticals}}, but some are not). The list is +given in Table~\ref{tdiacrit}. +\begin{table*} +\begin{center} +\begin{tabular}{|cll|} +\hline +\verb|\`| & grave & \verb|\`{e}| gives \`e \\ +\verb|\'| & acute or aigu & \verb|\'{e}| gives \'e \\ +\verb|\^| & circumflex or hat & \verb|\^{o}| gives \^o \\ +\verb|\v| & inverted circumflex (h\'a\v cek accent) & \verb|\v{c}| gives \v c +\\ +\verb|\u| & breve & \verb|\u{o}| gives \u o \\ +\verb|\=| & macron, long vowel &\verb|\={u}| gives \= u \\ +\verb|\"| & umlaut or dieresis & \verb|\"{u}| gives \" u \\ +\verb|\H| & Hungarian umlaut & \verb|\H{o}| gives \H o \\ +\verb|\~| & tilde & \verb|\~{n}| gives \~{n}\\ +\verb|\.| & dot accent & \verb|\.{y}| gives \.y \\ +\verb|\t| & tie & \verb|\t{oo}| gives \t{oo}\\ +\verb|\c| & cedilla & \verb|\c{c}| gives \c c \\ +\verb|\d| & dot under & \verb|\d{d}| gives \d d \\ +\verb|\b| & bar under & \verb|\b{a}| gives \b a \\ +%\verb|\r| & circle over (ring) & \verb|\r{u}| gives \r{u} \\ +\hline +\multicolumn{3}{l}{and although not diacriticals, we should mention}\\ +\hline +\verb|\i| & dotless i & \verb|\i| gives \i\\ +\verb|\j| & dotless j & \verb|\j| gives \j \\ +\hline +\end{tabular} +\end{center} +\caption{the diacriticals\index{diacriticals}}\label{tdiacrit} +\end{table*} +By and large, the instructions are fairly logically named. + + +In order to get accents over i and j, you really ought to take the dot +off first. \LaTeX\ supports a dotless i and j, provided by \verb|\i| and +\verb|\j|. These allow you to do things like \^{\i} (from \verb|\^{\i}|), or even +\t\i\j, (from \verb:\t{\i\j}:), should you ever find a reason to do so. + +The general rule with all these sequences is -- accent first, then letter. +At first this sounds counter intuitive, after all, we say `e-acute', +or `o-circumflex'. + +None of these accents are really `fundamental' to \LaTeX, in the sense that +they are all created in much the same way, a way that is accessible. If we +knew enough we could even create our own diacriticals. For example, Polish has a +\r{u} character, where the `ring' can be defined as a diacritical symbol. + +\begin{question} +In order to demonstrate your skills with these fancy fripperies, try +setting some of the following: + +\begin{quote} +\upshape +Hs\"an Tsang, Tath\=agata, \'S\=akyamuni, Vai\'sravana; +Pi-ma-w\^en, Li Y\"uan-chi, \=Ananda K\' a\'syapa, +Manju\'sr\=\i; +V\"ain\"am\"oinen, \"Aij\"o, V\"olusp\'a; +Anne Bront\"e, Honor\'e de Balzac, Fran\c cois Rabelais; +na\"\i ve, r\'egime, fa\c cade, man\oe uvre, encyclop\ae dia; +\AE gean Sea, Ch\^ateau d'If, Gda\'nsk, \"O\H o\c z, N\^\i mes. +\end{quote} +\begin{quotation} +\upshape +Zde se v\v semo\v zn\v e sna\v z\'\i\ m\v e p\v +reluvit, abych je\v st\v e n\v ekolik +m\v es\'\i a napsal je\v st\v e jednu +oper\.{u}. Hay\i r! \.I\c s \"oyle de\u gil. B\"uy\"u\u g\"u +k\"u\c c\"u\u g\"une takilmay\i\ pek severdi. Ce f\^ut +d'ores et d\'ej\`a une id\'ee d\'eg\'en\'er\'ee et +ambig\"ue. +\end{quotation} +\end{question} + +If you were normally writing in a language which made use of diacritical +marks or national characters, you would find this all rather tedious. You +would likely have a keyboard which had characters like (for example) \'e, +\aa, \ss, and so on. Having to insert the special \LaTeX\ sequences would, +at the very least, be error-prone. It is possible to tailor \LaTeX\ to take +account of this, so that when you type the single character \'e, \LaTeX\ +interprets it correctly. Later we'll look at some \LaTeX\ `packages' which +simplify this task. +There should be added benefits, since it will ensure that +the kerning information is also handled correctly; and the +hyphenation\index{hyphen}\index{hyphenation} should also be +correct for the language you are using. + +The default `language', which \LaTeX\ assumes it is using is American +English. Not only does this mean that other languages are hyphenated in a rather +haphazard way, it also results in words with diacriticals generated through +the instructions of Table~\ref{tdiacrit} +being hyphenated even less well (no hyphenation after the first +diacritic). This is a deliberate gloss which does not quite tell the truth. +We'll revisit this topic later. + +\section{Hy-phen-a-tion} +\LaTeX\ chooses hyphenation points by a hybrid method. It uses an algorithmic +technique which is supplemented by a small dictionary of `exceptions'. The +algorithm it uses can be taught to recognise the appropriate hyphenation +points for other languages (see Appendix~H of~\cite{DEK84}). A large number +of alternatives have been +collected or developed by Johannes Braams~\cite{JB91} and are available as a +`package' to \LaTeX\ users. If you really have to hyphenate German, or +Esperanto, or even English now, refer to Chapter~9 of the \textsl{Companion}. + +You can hyphenate words yourself as they +occur, by inserting a special command which +indicates a \emph{potential} or \emph{discretionary}. For example, in +\verb|Tyr\-rhenian| the \verb|\-| indicates a discretionary hyphen. +Note that this instruction is not followed by a space. +Declaring each potential hyphenation is tedious, and one alternative is to +declare the potential hyphenations as: +\begin{verbatim} +\hyphenation{Tyr-rhenian manu-script manu-scripts} +\end{verbatim} +That is, simply a list of hyphenated words, separated +by spaces. This has a global effect, since what happens here is +that these words are added (temporarily) to \LaTeX's `exception +dictionary'. As noted above, \TeX/\LaTeX{} hyphenates by algorithm, +but there is a small dictionary of exceptions. The best place for +this hyphenation instruction is in the preamble. + +Note that \LaTeX\ will not realize that \verb|manu-scripts| is merely a +regularly formed plural of \verb|manuscript|. Similarly, this +mechanism can know nothing about any other regularly formed +inflections. On the other hand, the standard hyphenation can cope +with many inflections. Explicitly declaring +hyphenation points will not help words which already contain +hyphens. While \mbox{`pricking'} by itself can be hyphenated to +\mbox{`prick-ing'}, `\mbox{pin-pricking'} is not hyphenated to \mbox{`pin-prick-ing}'. +If we were to say +\begin{verbatim} +\hyphenation{pin-prick-ing} +\end{verbatim} +we could easily end up with \mbox{`pinpricking'}. In this case we would +have to use \verb|pin-prick\-ing| throughout the document. +\begin{question} +One way to see the effect of hyphenation is to reduce the number of words per line. +The easiest way you know so far is to use a large font size, or to use +the \verb+twocolumn+ option. Choose some text and do so. +\end{question} + + + diff --git a/usergrps/uktug/baskervi/8_3/texutil.pl b/usergrps/uktug/baskervi/8_3/texutil.pl new file mode 100644 index 0000000000..35701807e2 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/texutil.pl @@ -0,0 +1,2057 @@ +#!/usr/bin/perl +#-w + +#D \module +#D [ file=texutil.pl, +#D version=1998.06.05, +#D title=pre- and postprocessing utilities, +#D subtitle=\TEXUTIL, +#D author=Hans Hagen, +#D date=\currentdate, +#D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +#C +#C This script is part of the \CONTEXT\ macro||package and is +#C therefore copyrighted by \PRAGMA. Non||commercial use is +#C granted. + +# Thanks to Tobias Burnus for the german translations. +# Thanks to Taco Hoekwater for making the file -w proof. +# Thanks to Sebastan Ratz for the eps to pdf method + +# Due to recent extensions, this file must be optimized, +# e.g. some common stuctures in figure scanning can be sub'd. + +#D This is \TEXUTIL, a utility program (script) to be used +#D alongside the \CONTEXT\ macro package. This \PERL\ script is +#D derived from the \MODULA\ version and uses slightly better +#D algoritms for sanitizing \TEX\ specific (sub|)|strings. +#D This implementation is therefore not entirely compatible +#D with the original \TEXUTIL, although most users will +#D probably never notice. Now how was this program called? + +$Program = "TeXUtil 6.5 - ConTeXt / PRAGMA 1992-1998" ; + +#D By the way, this is my first \PERL\ script, which means +#D that it will be improved as soon as I find new and/or more +#D suitable solutions in the \PERL\ manuals. As can be seen in +#D the definition of \type{$program}, this program is part of +#D the \CONTEXT\ suite, and therefore can communicate with the +#D users in english as well as some other languages. One can +#D set his favourite language by saying something like: + +#D \starttypen +#D perl texutil.pl --interface=de --fig *.eps *.tif *.pdf *.png +#D \stoptypen +#D +#D Of course one can also say \type{--interface=nl}, which +#D happens to be my native language. + +#D I won't go into too much detail on the algoritms used. +#D The next few pages show the functionality as reported by the +#D helpinformation and controled by command line arguments +#D and can serve as additional documentation. + +#D \TEXUTIL\ can handle different tasks; which one is active +#D depends on the command line arguments. These are handled by +#D a \PERL\ system module. This means that, at least for the +#D moment, there is no external control as provided by the +#D \PRAGMA\ environment system. + +use Getopt::Long ; + +#D We don't want error messages and accept partial switches, +#D which saves users some typing. + +$Getopt::Long::passthrough = 1 ; # no error message +$Getopt::Long::autoabbrev = 1 ; # partial switch accepted + +# #D Most task are handled by the procedures below. The one +# #D exception is the handling of \TIFF\ files when collecting +# #D illustration files. When needed, \TEXUTIL\ calls for +# #D \TIFFINFO\ or \TIFFTAGS, but more alternatives can be added +# #D by extending \type{@TiffPrograms}. +# #D +# #D @TiffPrograms = ("tiffinfo", "tifftags") ; + +#D We also predefine the interface language and set a boolean +#D that keeps track of unknown options. \voetnoot {This feature +#D is still to be implemented.} + +$Interface = "en" ; +$UnknownOptions = 0 ; + +#D Here come the options: + +&GetOptions + ("references" => \$ProcessReferences, + "ij" => \$ProcessIJ, + "high" => \$ProcessHigh, + "quotes" => \$ProcessQuotes, + "documents" => \$ProcessDocuments, + "type=s" => \$ProcessType, + "outputfile=s" => \$ProcessOutputFile, + "sources" => \$ProcessSources, + "setups" => \$ProcessSetups, + "templates" => \$ProcessTemplates, + "infos" => \$ProcessInfos, + "figures" => \$ProcessFigures, + "eps" =>\$ProcessEps, + "tif" =>\$ProcessTif, + "pdf" =>\$ProcessPdf, + "png" =>\$ProcessPng, + "epspage" =>\$ProcessEpsPage, + "epstopdf" =>\$ProcessEpsToPdf, + "logfile" => \$ProcessLogFile, + "box" =>\$ProcessBox, + "hbox" =>\$ProcessHBox, + "vbox" =>\$ProcessVBox, + "criterium=f" =>\$ProcessCriterium, + "unknown" =>\$ProcessUnknown, + "help" => \$ProcessHelp, + "silent" => \$ProcessSilent, + "verbose" => \$ProcessVerbose, + "interface=s" => \$Interface) ; + +#D We need some hacks to suppress terminal output. This +#D piece of code is based on page~193 of "Programming Perl". + +sub RedirectTerminal + { open SAVEDSTDOUT, ">&STDOUT" ; + open STDOUT, ">$program.log" ; + select STDOUT; $| = 1 } + +#D And, indeed: + +if ($ProcessSilent) + { RedirectTerminal } +else + { $ProcessVerbose = 0 } + +#D We can temporary open the terminal channel. + +sub OpenTerminal + { close STDOUT ; + open STDOUT, ">&SAVEDSTDOUT" } + +sub CloseTerminal + { open SAVEDSTDOUT, ">&STDOUT" ; + open STDOUT, ">>$program.log" ; + select STDOUT; $| = 1 } + +#D By default wildcards are expanded into a list. The +#D subroutine below is therefore only needed when no file or +#D pattern is given. + +$InputFile = "@ARGV" ; + +sub CheckInputFiles + { my ($UserSuppliedPath) = @_ ; + @UserSuppliedFiles = map { split " " } sort lc $UserSuppliedPath } + +#D The next subroutine takes care of the optional output +#D filename (e.g. for figure dimensions). + +sub SetOutputFile + { ($OutFilNam, $OutFilSuf) = split (/\./, @_[0], 2) ; + unless ($ProcessOutputFile eq "") + { $ProcessOutputFile .= "." . $OutFilSuf ; + ($OutFilNam, $OutFilSuf, $Rubish) = split (/\./, $ProcessOutputFile , 3)} + $OutputFile = $OutFilNam . "." . $OutFilSuf } + +#D In order to support multiple interfaces, we save the +#D messages in a hash table. As a bonus we can get a quick +#D overview of the messages we deal with. + +sub Report + { foreach $_ (@_) + { if (! defined $MS{$_}) + { print $_ } + else + { print $MS{$_} } + print " " } + print "\n" } + +#D The messages are saved in a hash table and are called +#D by name. This contents of this table depends on the +#D interface language in use. + +#D \startcompressdefinitions + +if ($Interface eq "nl") + + { # begin of dutch section + + $MS{"ProcessingReferences"} = "commando's, lijsten en indexen verwerken" ; + $MS{"GeneratingDocumentation"} = "ConTeXt documentatie file voorbereiden" ; + $MS{"GeneratingSources"} = "ConTeXt broncode file genereren" ; + $MS{"FilteringDefinitions"} = "ConTeXt definities filteren" ; + $MS{"CopyingTemplates"} = "TeXEdit toets templates copieren" ; + $MS{"CopyingInformation"} = "TeXEdit help informatie copieren" ; + $MS{"GeneratingFigures"} = "figuur file genereren" ; + $MS{"FilteringLogFile"} = "log file filteren (poor mans version)" ; + + $MS{"SortingIJ"} = "IJ sorteren onder Y" ; + $MS{"ConvertingHigh"} = "hoge ASCII waarden converteren" ; + $MS{"ProcessingQuotes"} = "characters met accenten afhandelen" ; + $MS{"ForcingFileType"} = "filetype instellen" ; + $MS{"UsingEps"} = "EPS files afhandelen" ; + $MS{"UsingTif"} = "TIF files afhandelen" ; + $MS{"UsingPdf"} = "PDF files afhandelen" ; + $MS{"UsingPng"} = "PNG files afhandelen" ; + $MS{"EpsToPdf"} = "EPS converteren naar PDF"; + $MS{"EpsPage"} = "EPS pagina instellen"; + $MS{"FilteringBoxes"} = "overfull boxes filteren" ; + $MS{"ApplyingCriterium"} = "criterium toepassen" ; + $MS{"FilteringUnknown"} = "onbekende ... filteren" ; + + $MS{"NoInputFile"} = "geen invoer file opgegeven" ; + $MS{"NoOutputFile"} = "geen uitvoer file gegenereerd" ; + $MS{"EmptyInputFile"} = "lege invoer file" ; + $MS{"NotYetImplemented"} = "nog niet beschikbaar" ; + + $MS{"Action"} = " actie :" ; + $MS{"Option"} = " optie :" ; + $MS{"Error"} = " fout :" ; + $MS{"Remark"} = " opmerking :" ; + $MS{"SystemCall"} = " systeemaanroep :" ; + $MS{"BadSystemCall"} = " foute systeemaanroep :" ; + $MS{"MissingSubroutine"} = " onbekende subroutine :" ; + + $MS{"EmbeddedFiles"} = " gebruikte files :" ; + $MS{"BeginEndError"} = " b/e fout in :" ; + $MS{"SynonymEntries"} = " aantal synoniemen :" ; + $MS{"SynonymErrors"} = " fouten :" ; + $MS{"RegisterEntries"} = " aantal ingangen :" ; + $MS{"RegisterErrors"} = " fouten :" ; + $MS{"PassedCommands"} = " aantal commando's :" ; + + $MS{"MultiPagePdfFile"} = " te veel pagina's :" ; + $MS{"MissingMediaBox"} = " geen mediabox :" ; + $MS{"MissingBoundingBox"} = " geen boundingbox :" ; + + $MS{"NOfDocuments"} = " documentatie blokken :" ; + $MS{"NOfDefinitions"} = " definitie blokken :" ; + $MS{"NOfSkips"} = " overgeslagen blokken :" ; + $MS{"NOfSetups"} = " gecopieerde setups :" ; + $MS{"NOfTemplates"} = " gecopieerde templates :" ; + $MS{"NOfInfos"} = " gecopieerde helpinfos :" ; + $MS{"NOfFigures"} = " verwerkte figuren :" ; + $MS{"NOfBoxes"} = " te volle boxen :" ; + $MS{"NOfUnknown"} = " onbekende ... :" ; + + $MS{"InputFile"} = " invoer file :" ; + $MS{"OutputFile"} = " outvoer file :" ; + $MS{"FileType"} = " type file :" ; + $MS{"EpsFile"} = " eps file :" ; + $MS{"PdfFile"} = " pdf file :" ; + $MS{"TifFile"} = " tif file :" ; + $MS{"PngFile"} = " png file :" ; + $MS{"MPFile"} = " metapost file :" ; + + $MS{"Overfull"} = "te vol" ; + $MS{"Entries"} = "ingangen" ; + $MS{"References"} = "verwijzingen" ; + + } # end of dutch section + +elsif ($Interface eq "de") + + { # begin of german section + + $MS{"ProcessingReferences"} = "Verarbeiten der Befehle, Listen und Register" ; + $MS{"GeneratingDocumentation"} = "Vorbereiten der ConTeXt-Dokumentationsdatei" ; + $MS{"GeneratingSources"} = "Erstellen einer nur Quelltext ConTeXt-Datei" ; + $MS{"FilteringDefinitions"} = "Filtern der ConTeXt-Definitionen" ; + $MS{"CopyingTemplates"} = "Kopieren der TeXEdit-Test-key-templates" ; + $MS{"CopyingInformation"} = "Kopieren der TeXEdit-Hilfsinformation" ; + $MS{"GeneratingFigures"} = "Erstellen einer Abb-Uebersichtsdatei" ; + $MS{"FilteringLogFile"} = "Filtern der log-Datei" ; + + $MS{"SortingIJ"} = "Sortiere IJ nach Y" ; + $MS{"ConvertingHigh"} = "Konvertiere hohe ASCII-Werte" ; + $MS{"ProcessingQuotes"} = "Verarbeiten der Akzentzeichen" ; + $MS{"ForcingFileType"} = "Dateityp einstellen" ; + $MS{"UsingEps"} = "EPS-Dateien verarbeite" ; + $MS{"UsingTif"} = "TIF-Dateien verarbeite" ; + $MS{"UsingPdf"} = "PDF-Dateien verarbeite" ; + $MS{"UsingPng"} = "PNG-Dateien verarbeite" ; + $MS{"EpsToPdf"} = "convert EPS to PDF"; + $MS{"EpsPage"} = "setup EPS page"; + + $MS{"FilteringBoxes"} = "Filtern der ueberfuellten Boxen" ; + $MS{"ApplyingCriterium"} = "Anwenden des uebervoll-Kriteriums" ; + $MS{"FilteringUnknown"} = "Filter unbekannt ..." ; + + $MS{"NoInputFile"} = "Keine Eingabedatei angegeben" ; + $MS{"NoOutputFile"} = "Keine Ausgabedatei generiert" ; + $MS{"EmptyInputFile"} = "Leere Eingabedatei" ; + $MS{"NotYetImplemented"} = "Noch nicht verfuegbar" ; + + $MS{"Action"} = " Aktion :" ; + $MS{"Option"} = " Option :" ; + $MS{"Error"} = " Fehler :" ; + $MS{"Remark"} = " Anmerkung :" ; + $MS{"SystemCall"} = " system call :" ; + $MS{"BadSystemCall"} = " bad system call :" ; + $MS{"MissingSubroutine"} = " missing subroutine :" ; + $MS{"SystemCall"} = " Systemaufruf :" ; + $MS{"BadSystemCall"} = " Fehlerhafter Aufruf :" ; + $MS{"MissingSubroutine"} = " Fehlende Unterroutine :" ; + + $MS{"EmbeddedFiles"} = " Eingebettete Dateien :" ; + $MS{"BeginEndError"} = " Beg./Ende-Fehler in :" ; + $MS{"SynonymEntries"} = " Synonymeintraege :" ; + $MS{"SynonymErrors"} = " Fehlerhafte Eintraege :" ; + $MS{"RegisterEntries"} = " Registereintraege :" ; + $MS{"RegisterErrors"} = " Fehlerhafte Eintraege :" ; + $MS{"PassedCommands"} = " Verarbeite Befehle :" ; + + $MS{"MultiPagePdfFile"} = " too many pages :" ; # TOBIAS + $MS{"MissingMediaBox"} = " missing mediabox :" ; # TOBIAS + $MS{"MissingBoundingBox"} = " missing boundingbox :" ; # TOBIAS + + $MS{"NOfDocuments"} = " Dokumentbloecke :" ; + $MS{"NOfDefinitions"} = " Definitionsbloecke :" ; + $MS{"NOfSkips"} = "Uebersprungene Bloecke :" ; + $MS{"NOfSetups"} = " Kopierte setups :" ; + $MS{"NOfTemplates"} = " Kopierte templates :" ; + $MS{"NOfInfos"} = " Kopierte helpinfos :" ; + $MS{"NOfFigures"} = " Verarbeitete Abb. :" ; + $MS{"NOfBoxes"} = " Zu volle Boxen :" ; + $MS{"NOfUnknown"} = " Unbekannt ... :" ; + + $MS{"InputFile"} = " Eingabedatei :" ; + $MS{"OutputFile"} = " Ausgabedatei :" ; + $MS{"FileType"} = " Dateityp :" ; + $MS{"EpsFile"} = " eps-Datei :" ; + $MS{"PdfFile"} = " pdf-Datei :" ; + $MS{"TifFile"} = " tif-Datei :" ; + $MS{"PngFile"} = " png-Datei :" ; + $MS{"MPFile"} = " metapost-Datei :" ; + + $MS{"Overfull"} = "zu voll" ; + $MS{"Entries"} = "Eintraege" ; + $MS{"References"} = "Referenzen" ; + + } # end of german section + +else + + { # begin of english section + + $MS{"ProcessingReferences"} = "processing commands, lists and registers" ; + $MS{"GeneratingDocumentation"} = "preparing ConTeXt documentation file" ; + $MS{"GeneratingSources"} = "generating ConTeXt source only file" ; + $MS{"FilteringDefinitions"} = "filtering formal ConTeXt definitions" ; + $MS{"CopyingTemplates"} = "copying TeXEdit quick key templates" ; + $MS{"CopyingInformation"} = "copying TeXEdit help information" ; + $MS{"GeneratingFigures"} = "generating figure directory file" ; + $MS{"FilteringLogFile"} = "filtering log file" ; + + $MS{"SortingIJ"} = "sorting IJ under Y" ; + $MS{"ConvertingHigh"} = "converting high ASCII values" ; + $MS{"ProcessingQuotes"} = "handling accented characters" ; + $MS{"ForcingFileType"} = "setting up filetype" ; + $MS{"UsingEps"} = "processing EPS-file" ; + $MS{"UsingTif"} = "processing TIF-file" ; + $MS{"UsingPdf"} = "processing PDF-file" ; + $MS{"UsingPng"} = "processing PNG-file" ; + $MS{"EpsToPdf"} = "convert EPS to PDF"; + $MS{"EpsPage"} = "setup EPS page"; + + $MS{"FilteringBoxes"} = "filtering overfull boxes" ; + $MS{"ApplyingCriterium"} = "applying overfull criterium" ; + $MS{"FilteringUnknown"} = "filtering unknown ..." ; + + $MS{"NoInputFile"} = "no input file given" ; + $MS{"NoOutputFile"} = "no output file generated" ; + $MS{"EmptyInputFile"} = "empty input file" ; + $MS{"NotYetImplemented"} = "not yet available" ; + + $MS{"Action"} = " action :" ; + $MS{"Option"} = " option :" ; + $MS{"Error"} = " error :" ; + $MS{"Remark"} = " remark :" ; + $MS{"SystemCall"} = " system call :" ; + $MS{"BadSystemCall"} = " bad system call :" ; + $MS{"MissingSubroutine"} = " missing subroutine :" ; + + $MS{"EmbeddedFiles"} = " embedded files :" ; + $MS{"BeginEndError"} = " b/e error in :" ; + $MS{"SynonymEntries"} = " synonym entries :" ; + $MS{"SynonymErrors"} = " bad entries :" ; + $MS{"RegisterEntries"} = " register entries :" ; + $MS{"RegisterErrors"} = " bad entries :" ; + $MS{"PassedCommands"} = " passed commands :" ; + + $MS{"MultiPagePdfFile"} = " too many pages :" ; + $MS{"MissingMediaBox"} = " missing mediabox :" ; + $MS{"MissingBoundingBox"} = " missing boundingbox :" ; + + $MS{"NOfDocuments"} = " document blocks :" ; + $MS{"NOfDefinitions"} = " definition blocks :" ; + $MS{"NOfSkips"} = " skipped blocks :" ; + $MS{"NOfSetups"} = " copied setups :" ; + $MS{"NOfTemplates"} = " copied templates :" ; + $MS{"NOfInfos"} = " copied helpinfos :" ; + $MS{"NOfFigures"} = " processed figures :" ; + $MS{"NOfBoxes"} = " overfull boxes :" ; + $MS{"NOfUnknown"} = " unknown ... :" ; + + $MS{"InputFile"} = " input file :" ; + $MS{"OutputFile"} = " output file :" ; + $MS{"FileType"} = " file type :" ; + $MS{"EpsFile"} = " eps file :" ; + $MS{"PdfFile"} = " pdf file :" ; + $MS{"TifFile"} = " tif file :" ; + $MS{"PngFile"} = " png file :" ; + $MS{"MPFile"} = " metapost file :" ; + + $MS{"Overfull"} = "overfull" ; + $MS{"Entries"} = "entries" ; + $MS{"References"} = "references" ; + + } # end of english section + +#D \stopcompressdefinitions + +#D Showing the banner (name and version of the program) and +#D offering helpinfo is rather straightforward. + +sub ShowBanner + { Report("\n$Program\n") } + +sub ShowHelpInfo + { Report("HelpInfo") } + +#D The helpinfo is also saved in the hash table. This looks +#D like a waste of energy and space, but the program gains +#D readability. + +#D \startcompressdefinitions + +if ($Interface eq "nl") + + { # begin of dutch section + + $MS{"HelpInfo"} = + +" --references hulp file verwerken / tui->tuo \n" . +" --ij : IJ als Y sorteren \n" . +" --high : hoge ASCII waarden converteren \n" . +" --quotes : quotes converteren \n" . +" \n" . +" --documents documentatie file genereren / tex->ted \n" . +" --sources broncode file genereren / tex->tes \n" . +" --setups ConTeXt definities filteren / tex->texutil.tus \n" . +" --templates TeXEdit templates filteren / tex->tud \n" . +" --infos TeXEdit helpinfo filteren / tex->tud \n" . +" \n" . +" --figures eps figuren lijst genereren / *->texutil.tuf \n" . +" --eps : eps files verwerken \n" . +" --tif : tif files verwerken \n" . +" --pdf : pdf files verwerken \n" . +" --png : png files verwerken \n" . +" --epspage : voorbereiden voor pdf \n" . +" --epstopdf : omzetten naar pdf \n" . +" \n" . +" --logfile logfile filteren / log->texutil.log \n" . +" --box : overfull boxes controleren \n" . +" --criterium : overfull criterium in pt \n" . +" --unknown :onbekende ... controleren \n" ; + + } # end of dutch section + +elsif ($Interface eq "de") # TOBIAS ! + + { # begin of german section + + $MS{"HelpInfo"} = + +" --references Verarbeiten der Hilfsdatei / tui->tuo \n" . +" --ij : Sortiere IJ als Y \n" . +" --high : Konvertiere hohe ASCII-Werte \n" . +" --quotes : Konvertiere akzentuierte Buchstaben \n" . +" \n" . +" --documents Erstelle Dokumentationsdatei / tex->ted \n" . +" --sources Erstelle reine Quelltextdateien / tex->tes \n" . +" --setups Filtere ConTeXt-Definitionen / tex->texutil.tus\n" . +" --templates Filtere TeXEdit-templates / tex->tud \n" . +" --infos Filtere TeXEdit-helpinfo / tex->tud \n" . +" \n" . +" --figures Erstelle eps-Abbildungsliste / *->texutil.tuf \n" . +" --eps : Verarbeite eps-Dateien \n" . +" --tif : Verarbeite tif-Dateien \n" . +" --pdf : Verarbeite pdf-Dateien \n" . +" --png : Verarbeite png-Dateien \n" . +" --epspage : prepare voor pdf \n" . +" --epstopdf : convert to \n" . +" \n" . +" --logfile Filtere log-Datei / log->texutil.log \n" . +" --box : Ueberpruefe uebervolle Boxen \n" . +" --criterium : Uebervoll-Kriterium in pt \n" . +" --unknown : Ueberpruefe auf unbekannte ... \n" ; + + } # end of german section + + +else + + { # begin of english section + + $MS{"HelpInfo"} = + +" --references process auxiliary file / tui->tuo \n" . +" --ij : sort IJ as Y \n" . +" --high : convert high ASCII values \n" . +" --quotes : convert quotes characters \n" . +" \n" . +" --documents generate documentation file / tex->ted \n" . +" --sources generate source only file / tex->tes \n" . +" --setups filter ConTeXt definitions / tex->texutil.tus \n" . +" --templates filter TeXEdit templates / tex->tud \n" . +" --infos filter TeXEdit helpinfo / tex->tud \n" . +" \n" . +" --figures generate eps figure list / *->texutil.tuf \n" . +" --eps : process eps files \n" . +" --tif : process tif files \n" . +" --pdf : process pdf files \n" . +" --png : process png files \n" . +" --epspage : prepare voor pdf \n" . +" --epstopdf : convert to \n" . +" \n" . +" --logfile filter logfile / log->texutil.log \n" . +" --box : check overful boxes \n" . +" --criterium : overfull criterium in pt \n" . +" --unknown : check unknown ... \n" ; + + } # end of english section + +#D \stopcompressdefinitions + +#D In order to sort strings correctly, we have to sanitize +#D them. This is especially needed when we include \TEX\ +#D commands, quotes characters and compound word placeholders. +#D +#D \startopsomming[opelkaar] +#D \som \type{\name}: csnames are stripped +#D \som \type{{}}: are removed +#D \som \type{\"e}: and alike are translated into \type{"e} etc. +#D \som \type{"e}: is translated into an \type{e} and \type{b} etc. +#D \som \type{||}: becomes \type{-} +#D \som \type{\-}: also becomes \type{-} +#D \stopopsomming +#D +#D Of course other accented characters are handled too. The +#D appended string is responsible for decent sorting. +#D +#D \startPL +#D $TargetString = SanitizedString ( $SourceString ) ; +#D \stopPL +#D +#D The sort order depends on the ordering in array +#D \type{$ASCII}: + +$ASCII{"^"} = "a" ; $ASCII{'"'} = "b" ; $ASCII{"`"} = "c" ; +$ASCII{"'"} = "d" ; $ASCII{"~"} = "e" ; $ASCII{","} = "f" ; + +sub SanitizedString + { my ($string) = $_[0] ; + if ($ProcessQuotes) + { $string =~ s/\\([\^\"\`\'\~\,])/$1/gio ; + $copied = $string ; + $copied =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$ASCII{$1}/gio ; + $string =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$2/gio ; + $string=$string.$copied } + $string =~ s/\\-|\|\|/\-/gio ; + $string =~ s/\\[a-zA-Z]*| |\{|\}//gio ; + return $string } + +#D This subroutine looks a bit complicated, which is due to the +#D fact that we want to sort for instance an accented \type{e} +#D after the plain \type{e}, so the imaginary words +#D +#D \starttypen +#D eerste +#D \"eerste +#D \"e\"erste +#D eerst\"e +#D \stoptypen +#D +#D come out in an acceptable order. + +#D We also have to deal with the typical \TEX\ sequences with +#D the double \type{^}'s, like \type{^^45}. These hexadecimal +#D coded characters are just converted. +#D +#D \startPL +#D $TargetString = HighConverted ( $SourceString ) ; +#D \stopPL + +sub HighConverted + { my ($string) = $_[0] ; + $string =~ s/\^\^([a-f0-9][a-f0-9])/chr hex($1)/geo ; + return $string } + +#D \extras +#D {references} +#D +#D \CONTEXT\ can handle many lists, registers (indexes), +#D tables of whatever and references. This data is collected +#D in one pass and processed in a second one. In between, +#D relevant data is saved in the file \type{\jobname.tui}. +#D This file also holds some additional information concerning +#D second pass optimizations. +#D +#D The main task of \TEXUTIL\ is to sort lists and registers +#D (indexes). The results are stored in again one file called +#D \type{\jobname.tuo}. +#D +#D Just for debugging purposes the nesting of files loaded +#D during the \CONTEXT\ run is stored. Of course this only +#D applies to files that are handled by the \CONTEXT\ file +#D structuring commands (projects, products, components and +#D environments). +#D +#D We have to handle the entries: +#D +#D \starttypen +#D f b {test} +#D f e {test} +#D \stoptypen +#D +#D and only report some status info at the end of the run. + +sub InitializeFiles + { $NOfFiles = 0 ; + $NOfBadFiles = 0 } + +sub HandleFile + { $RestOfLine =~ s/.*\{(.*)\}/$1/gio ; + ++$Files{$RestOfLine} } + +sub FlushFiles + { print TUO "%\n" . "% $Program / Files\n" . "%\n" ; + foreach $File (keys %Files) + { print TUO "% $File ($Files{$File})\n" } + print TUO "%\n" ; + $NOfFiles = keys %Files ; + Report("EmbeddedFiles", $NOfFiles) ; + foreach $File (keys %Files) + { unless (($Files{$File} % 2) eq 0) + { ++$NOfBadFiles ; + Report("BeginEndError", $File) } } } + +#D Commands don't need a special treatment. They are just +#D copied. Such commands are tagged by a \type{c}, like: +#D +#D \starttypen +#D c \thisisutilityversion{year.month.day} +#D c \twopassentry{class}{key}{value} +#D c \mainreference{prefix}{entry}{pagenumber}{realpage}{tag} +#D c \listentry{category}{tag}{number}{title}{pagenumber}{realpage} +#D c \realnumberofpages{number} +#D \stoptypen +#D +#D For historic reasons we check for the presense of the +#D backslash. + +sub InitializeCommands + { print TUO "%\n" . "% $Program / Commands\n" . "%\n" ; + $NOfCommands = 0 } + +sub HandleCommand + { ++$NOfCommands ; + $RestOfLine =~ s/^\\//go ; + print TUO "\\$RestOfLine\n" } + +sub FlushCommands + { Report ("PassedCommands", $NOfCommands) } + +#D Synonyms are a sort of key||value pairs and are used for +#D ordered lists like abbreviations and units. +#D +#D \starttypen +#D s e {class}{sanitized key}{key}{associated data} +#D \stoptypen +#D +#D The sorted lists are saved as (surprise): +#D +#D \starttypen +#D \synonymentry{class}{sanitized key}{key}{associated data} +#D \stoptypen + +sub InitializeSynonyms + { $NOfSynonyms = 0 ; + $NOfBadSynonyms = 0 } + +#M \definieersynoniem [testname] [testnames] [\testmeaning] +#M +#M \stelsynoniemenin [testname] [criterium=alles] + +#D Let's first make clear what we can expect. Synonym +#D entries look like: +#D +#D \startbuffer +#D \testname [alpha] {\sl alpha} {a greek letter a} +#D \testname {alpha} {another a} +#D \testname [Beta] {\kap{beta}} {a greek letter b} +#D \testname {beta} {indeed another b} +#D \testname {gamma} {something alike g} +#D \testname {delta} {just a greek d} +#D \stopbuffer +#D +#D \typebuffer +#D +#D This not that spectacular list is to be sorted according +#D to the keys (names). \haalbuffer + +sub HandleSynonym + { ++$NOfSynonyms ; + ($SecondTag, $RestOfLine) = split(/ /, $RestOfLine, 2) ; + ($Class, $Key, $Entry, $Meaning) = split(/} \{/, $RestOfLine) ; + chop $Meaning ; + $Class = substr $Class, 1 ; + if ($Entry eq "") + { ++$NOfBadSynonyms } + else + { $SynonymEntry[$NOfSynonyms] = + $Class . $JOIN . + $Key . $JOIN . + $Entry . $JOIN . + $Meaning ; + $SynonymEntry[$NOfSynonyms+1] = "" ; } } + +#D Depending on the settings\voetnoot{One can call for +#D all defined entries, call only the used ones, change +#D layout, attach (funny) commands etc.} a list of +#D {\em testnames} looks like: +#D +#D \plaatslijstmettestnames +#D +#D Watch the order in which these entries are sorted. + +$SynonymEntry[0] = ("") ; # TH: initalize + +sub FlushSynonyms + { print TUO "%\n" . "% $Program / Synonyms\n" . "%\n" ; + @SynonymEntry = sort { lc($a) cmp lc($b) } @SynonymEntry ; + $NOfSaneSynonyms = 0 ; + for ($n=1; $n<=$NOfSynonyms; ++$n) + { # check normally not needed + if ($SynonymEntry[$n] ne $SynonymEntry[$n-1]) + { ($Class, $Key, $Entry, $Meaning) = + split(/$JOIN/, $SynonymEntry[$n]) ; + ++$NOfSaneSynonyms ; + print TUO "\\synonymentry{$Class}{$Key}{$Entry}{$Meaning}\n" } } + Report("SynonymEntries", $NOfSynonyms, "->", $NOfSaneSynonyms, "Entries") ; + if ($NOfBadSynonyms>0) + { Report("SynonymErrors", $NOfBadSynonyms) } } + +#D Register entries need a bit more care, especially when they +#D are nested. In the near future we will also handle page +#D ranges. +#D +#D \starttypen +#D r e {class}{tag}{sanitized key}{key}{pagenumber}{realpage} +#D r s {class}{tag}{sanitized key}{key}{string}{pagenumber} +#D \stoptypen + +#D The first one is the normal entry, the second one concerns +#D {\em see this or that} entries. Keys are sanitized, unless +#D the user supplies a sanitized key. To save a lot of +#D programming, all data concerning an entry is stored in one +#D string. Subentries are specified as: +#D +#D \starttypen +#D first&second&third +#D first+second+third +#D \stoptypen +#D +#D When these characters are needed for typesetting purposes, we +#D can also use the first character to specify the separator: +#D +#D \starttypen +#D &$x^2+y^2=r^2$ +#D +this \& that +#D \stoptypen +#D +#D Subentries are first unpacked and next stored in a +#D consistent way, which means that we can use both separators +#D alongside each other. We leave it to the reader to sort +#D out the dirty tricks. + +$SPLIT ="%%" ; +$JOIN ="__" ; + +sub InitializeRegisters + { $NOfEntries = 0 ; + $NOfBadEntries = 0 } + +$ProcessType = "" ; # TH: initialize + +sub HandleRegister + { ($SecondTag, $RestOfLine) = split(/ /, $RestOfLine, 2) ; + ++$NOfEntries ; + if ($SecondTag eq "s") + { ($Class, $Location, $Key, $Entry, $SeeToo, $Page ) = + split(/} \{/, $RestOfLine) ; + chop $Page ; + $Class = substr $Class, 1 ; + $RealPage = 0 } + else + { ($Class, $Location, $Key, $Entry, $Page, $RealPage ) = + split(/} \{/, $RestOfLine) ; + chop $RealPage ; + $Class = substr $Class, 1 ; + $SeeToo = "" } + if ($Key eq "") + { $Key = SanitizedString($Entry) } + if ($ProcessHigh) + { $Key = HighConverted($Key) } + $KeyTag = substr $Key, 0, 1 ; + if ($KeyTag eq "&") + { $Key =~ s/^\&//go ; + $Key =~ s/([^\\])\&/$1$SPLIT/go } + elsif ($KeyTag eq "+") + { $Key =~ s/^\+//go ; + $Key =~ s/([^\\])\+/$1$SPLIT/go } + else + { $Key =~ s/([^\\])\&/$1$SPLIT/go ; + $Key =~ s/([^\\])\+/$1$SPLIT/go } + $EntryTag = substr $Entry, 0, 1 ; + if ($EntryTag eq "&") + { $Entry =~ s/^\&//go ; + $Entry =~ s/([^\\])\&/$1$SPLIT/go } + elsif ($EntryTag eq "+") + { $Entry =~ s/^\+//go ; + $Entry =~ s/([^\\])\+/$1$SPLIT/go } + else + { $Entry =~ s/([^\\])\&/$1$SPLIT/go ; + $Entry =~ s/([^\\])\+/$1$SPLIT/go } + $Key =~ s/^([^a-zA-Z])/ $1/go ; + if ($ProcessIJ) + { $Key =~ s/ij/yy/go } + $LCKey = lc $Key ; + $RegisterEntry[$NOfEntries] = + $Class . $JOIN . + $LCKey . $JOIN . + $Key . $JOIN . + $Entry . $JOIN . + $RealPage . $JOIN . + $Location . $JOIN . + $Page . $JOIN . + $SeeToo } + +#M \definieerregister [testentry] [testentries] + +#D The previous routine deals with entries like: +#D +#D \startbuffer +#D \testentry {alpha} +#D \testentry {beta} +#D \testentry {gamma} +#D \testentry {gamma} +#D \testentry {delta} +#D \testentry {epsilon} +#D \testentry {alpha+first} +#D \testentry {alpha+second} +#D \testentry {alpha+second} +#D \testentry {alpha+third} +#D \testentry {alpha+second+one} +#D \testentry {alpha+second+one} +#D \testentry {alpha+second+two} +#D \testentry {alpha+second+three} +#D \testentry {gamma+first+one} +#D \testentry {gamma+second} +#D \testentry {gamma+second+one} +#D +#D \testentry {alpha+fourth} +#D \testentry {&alpha&fourth} +#D \testentry {+alpha+fourth} +#D +#D \testentry [alpha+fourth] {alpha+fourth} +#D \testentry [&alpha&fourth&one] {&alpha&fourth&one} +#D \testentry [+alpha+fourth+two] {&alpha&fourth&two} +#D +#D \testentry {\kap{alpha}+fifth} +#D \testentry {\kap{alpha}+f\'ifth} +#D \testentry {\kap{alpha}+f"ifth} +#D +#D \testentry [&betaformula] {&$a^2+b^2=c^2$} +#D +#D \testentry {zeta \& more} +#D \stopbuffer +#D +#D \typebuffer +#D +#D \haalbuffer After being sorted, these entries are +#D turned into something \TEX\ using: + +$RegisterEntry[0] = ("") ; # TH: initialize + +sub FlushRegisters + { print TUO "%\n" . "% $Program / Registers\n" . "%\n" ; + @RegisterEntry = sort { lc($a) cmp lc($b) } @RegisterEntry ; + $NOfSaneEntries = 0 ; + $NOfSanePages = 0 ; + $LastPage = "" ; + $LastRealPage = "" ; + $AlfaClass = "" ; + $Alfa = "" ; + $PreviousA = "" ; + $PreviousB = "" ; + $PreviousC = "" ; + $ActualA = "" ; + $ActualB = "" ; + $ActualC = "" ; + for ($n=1 ; $n<=$NOfEntries ; ++$n) + { ($Class, $LCKey, $Key, $Entry, $RealPage, $Location, $Page, $SeeToo) = + split(/$JOIN/, $RegisterEntry[$n]) ; + if (((lc substr $Key, 0, 1) ne lc $Alfa) or ($AlfaClass ne $Class)) + { $Alfa= lc substr $Key, 0, 1 ; + $AlfaClass = $Class ; + if ($Alfa ne " ") + { print TUO "\\registerentry{$Class}{$Alfa}\n" } } + ($ActualA, $ActualB, $ActualC ) = + split(/$SPLIT/, $Entry, 3) ; + unless ($ActualA) { $ActualA = "" } # TH: this would be an error + unless ($ActualB) { $ActualB = "" } # TH: might become undef through split() + unless ($ActualC) { $ActualC = "" } # TH: might become undef through split() + if ($ActualA eq $PreviousA) + { $ActualA = "" } + else + { $PreviousA = $ActualA ; + $PreviousB = "" ; + $PreviousC = "" } + if ($ActualB eq $PreviousB) + { $ActualB = "" } + else + { $PreviousB = $ActualB ; + $PreviousC = "" } + if ($ActualC eq $PreviousC) + { $ActualC = "" } + else + { $PreviousC = $ActualC } + $Copied = 0 ; + if ($ActualA ne "") + { print TUO "\\registerentrya{$Class}{$ActualA}\n" ; + $Copied = 1 } + if ($ActualB ne "") + { print TUO "\\registerentryb{$Class}{$ActualB}\n" ; + $Copied = 1 } + if ($ActualC ne "") + { print TUO "\\registerentryc{$Class}{$ActualC}\n" ; + $Copied = 1 } + if ($Copied) + { $NOfSaneEntries++ } + if ($RealPage eq 0) + { print TUO "\\registersee{$Class}{$SeeToo}{$Page}\n" ; + $LastPage = $Page ; + $LastRealPage = $RealPage } + elsif (($Copied) || + ! (($LastPage eq $Page) and ($LastRealPage eq $RealPage))) + { print TUO "\\registerpage{$Class}{$Location}{$Page}{$RealPage}\n" ; + ++$NOfSanePages ; + $LastPage = $Page ; + $LastRealPage = $RealPage } } + Report("RegisterEntries", $NOfEntries, "->", $NOfSaneEntries, "Entries", + $NOfSanePages, "References") ; + if ($NOfBadEntries>0) + { Report("RegisterErrors", $NOfBadEntries) } } + +#D As promised, we show the results: +#D +#D \plaatstestentry + +#D For debugging purposes we flush some status information. The +#D faster machines become, the more important this section will +#D be. + +sub FlushData + { print TUO + "% \n" . + "% embedded files : $NOfFiles ($NOfBadFiles errors)\n" . + "% passed commands : $NOfCommands\n" . + "% synonym entries : $NOfSynonyms ($NOfBadSynonyms errors)\n" . + "% register entries : $NOfEntries ($NOfBadEntries errors)" } + +#D The functionallity described on the previous few pages is +#D called upon in the main routine: + +sub HandleReferences + { Report("Action", "ProcessingReferences") ; + if ($ProcessIJ ) + { Report("Option", "SortingIJ") } + if ($ProcessHigh) + { Report("Option", "ConvertingHigh") } + if ($ProcessQuotes) + { Report("Option", "ProcessingQuotes") } + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { unless (open (TUI, "$InputFile.tui")) + { Report("Error", "EmptyInputFile", $InputFile) } + else + { Report("InputFile", "$InputFile.tui" ) ; + InitializeCommands ; + InitializeRegisters ; + InitializeSynonyms ; + InitializeFiles ; + $ValidOutput = 1 ; + unlink "$InputFile.tmp" ; + rename "$InputFile.tuo", "$InputFile.tmp" ; + Report("OutputFile", "$InputFile.tuo" ) ; + open (TUO, ">$InputFile.tuo") ; + while ($SomeLine=<TUI>) + { chomp $SomeLine ; + ($FirstTag, $RestOfLine) = split ' ', $SomeLine, 2 ; + if ($FirstTag eq "c") + { HandleCommand } + elsif ($FirstTag eq "s") + { HandleSynonym } + elsif ($FirstTag eq "r") + { HandleRegister } + elsif ($FirstTag eq "f") + { HandleFile } + elsif ($FirstTag eq "q") + { $ValidOutput = 0 ; + last } } + if ($ValidOutput) + { FlushCommands ; # already done during pass + FlushRegisters ; + FlushSynonyms ; + FlushFiles ; + FlushData } + else + { unlink "$InputFile.tuo" ; + rename "$InputFile.tmp", "$InputFile.tuo" ; + Report ("Error", "NoOutputFile") } } } } + +#D \extras +#D {documents} +#D +#D Documentation can be woven into a source file. The next +#D routine generates a new, \TEX\ ready file with the +#D documentation and source fragments properly tagged. The +#D documentation is included as comment: +#D +#D \starttypen +#D %D ...... some kind of documentation +#D %M ...... macros needed for documenation +#D %S B begin skipping +#D %S E end skipping +#D \stoptypen +#D +#D The most important tag is \type{%D}. Both \TEX\ and +#D \METAPOST\ files use \type{%} as a comment chacacter, while +#D \PERL\ uses \type{#}. Therefore \type{#D} is also handled. +#D +#D The generated file gets the suffix \type{ted} and is +#D structured as: +#D +#D \starttypen +#D \startmodule[type=suffix] +#D \startdocumentation +#D \stopdocumentation +#D \startdefinition +#D \stopdefinition +#D \stopmodule +#D \stoptypen +#D +#D Macro definitions specific to the documentation are not +#D surrounded by start||stop commands. The suffix specifaction +#D can be overruled at runtime, but defaults to the file +#D extension. This specification can be used for language +#D depended verbatim typesetting. + +sub HandleDocuments + { Report("Action", "HandlingDocuments") ; + if ($ProcessType ne "") + { Report("Option", "ForcingFileType", $ProcessType) } + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { CheckInputFiles ($InputFile) ; + foreach $FullName (@UserSuppliedFiles) + { ($FileName, $FileSuffix) = split (/\./, $FullName, 2) ; + unless ($FileSuffix) + { $FileSuffix = "tex" } + unless (-f "$FileName.$FileSuffix") + { next } + unless (open (TEX, "$FileName.$FileSuffix")) + { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) } + else + { Report("InputFile", "$FileName.$FileSuffix") ; + Report("OutputFile", "$FileName.ted") ; + open (TED, ">$FileName.ted") ; + $NOfDocuments = 0 ; + $NOfDefinitions = 0 ; + $NOfSkips = 0 ; + $SkipLevel = 0 ; + $InDocument = 0 ; + $InDefinition = 0 ; + if ($ProcessType eq "") + { $FileType=lc $FileSuffix } + else + { $FileType=lc $ProcessType } + Report("FileType", $FileType) ; + print TED "\\startmodule[type=$FileType]\n" ; + while (<TEX>) # TH: $SomeLines replaced by $_ + { chomp ; + if (/^[%\#]D/) + { if ($SkipLevel == 0) + { if (length $_ < 3) # TH: empty #D comment + {$SomeLine = "" } + else # HH: added after that + {$SomeLine = substr $_, 3 } + if ($InDocument) + { print TED "$SomeLine\n" } + else + { if ($InDefinition) + { print TED "\\stopdefinition\n" ; + $InDefinition = 0 } + unless ($InDocument) + { print TED "\n\\startdocumentation\n" } + print TED "$SomeLine\n" ; + $InDocument = 1 ; + ++$NOfDocuments } } } + elsif (/^[%\#]M/) + { if ($SkipLevel == 0) + { $SomeLine = substr $_, 3 ; + print TED "$SomeLine\n" } } + elsif (/^[%\%]S B]/) + { ++$SkipLevel ; + ++$NOfSkips } + elsif (/^[%\%]S E]/) + { --$SkipLevel } + elsif (/^[%\#]/) + { } + elsif ($SkipLevel == 0) + { $InLocalDocument = $InDocument ; + $SomeLine = $_ ; + if ($InDocument) + { print TED "\\stopdocumentation\n" ; + $InDocument = 0 } + if (($SomeLine eq "") && ($InDefinition)) + { print TED "\\stopdefinition\n" ; + $InDefinition = 0 } + else + { if ($InDefinition) + { print TED "$SomeLine\n" } + elsif ($SomeLine ne "") + { print TED "\n" . "\\startdefinition\n" ; + $InDefinition = 1 ; + unless ($InLocalDocument) + { ++$NOfDefinitions } + print TED "$SomeLine\n" } } } } + if ($InDocument) + { print TED "\\stopdocumentation\n" } + if ($InDefinition) + { print TED "\\stopdefinition\n" } + print TED "\\stopmodule\n" ; + close (TED) ; + unless (($NOfDocuments) || ($NOfDefinitions)) + { unlink "$FileName.ted" } + Report ("NOfDocuments", $NOfDocuments) ; + Report ("NOfDefinitions", $NOfDefinitions) ; + Report ("NOfSkips", $NOfSkips) } } } } + +#D \extras +#D {sources} +#D +#D Documented sources can be stripped of documentation and +#D comments, although at the current processing speeds the +#D overhead of skipping the documentation at run time is +#D neglectable. Only lines beginning with a \type{%} are +#D stripped. The stripped files gets the suffix \type{tes}. + +sub HandleSources + { Report("Action", "GeneratingSources") ; + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { CheckInputFiles ($InputFile) ; + foreach $FullName (@UserSuppliedFiles) + { ($FileName, $FileSuffix) = split (/\./, $FullName, 2) ; + unless ($FileSuffix) + { $FileSuffix = "tex" } + unless (-f "$FileName.$FileSuffix") + { next } + unless (open (TEX, "$FileName.$FileSuffix")) + { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) } + else + { Report("InputFile", "$FileName.$FileSuffix") ; + Report("OutputFile", "$FileName.tes") ; + open (TES, ">$FileName.tes") ; + $EmptyLineDone = 1 ; + $FirstCommentDone = 0 ; + while ($SomeLine=<TEX>) + { chomp $SomeLine ; + if ($SomeLine eq "") + { unless ($FirstCommentDone) + { $FirstCommentDone = 1 ; + print TES + "\n% further documentation is removed\n\n" ; + $EmptyLineDone = 1 } + unless ($EmptyLineDone) + { print TES "\n" ; + $EmptyLineDone = 1 } } + elsif ($SomeLine =~ /^%/) + { unless ($FirstCommentDone) + { print TES "$SomeLine\n" ; + $EmptyLineDone = 0 } } + else + { print TES "$SomeLine\n" ; + $EmptyLineDone = 0 } } + close (TES) ; # TH: repaired + unless ($FirstCommentDone) + { unlink "$FileName.tes" } } } } } + +#D \extras +#D {setups} +#D +#D All \CONTEXT\ commands are specified in a compact format +#D that can be used to generate quick reference tables and +#D cards. Such setups are preceded by \type{%S}. The setups +#D are collected in the file \type{texutil.tus}. + +sub HandleSetups + { Report("Action", "FilteringDefinitions" ) ; + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { SetOutputFile ("texutil.tus" ) ; + Report("OutputFile", $OutputFile) ; + open (TUS, ">$OutputFile") ; # always reset! + $NOfSetups = 0 ; + CheckInputFiles ($InputFile) ; + foreach $FullName (@UserSuppliedFiles) + { ($FileName, $FileSuffix) = split (/\./, $FullName, 2) ; + unless ($FileSuffix) + { $FileSuffix = "tex" } + unless (-f "$FileName.$FileSuffix") + { next } + unless (open (TEX, "$FileName.$FileSuffix")) + { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) } + else + { Report("InputFile", "$FileName.$FileSuffix") ; + print TUS "%\n" . "% File : $FileName.$FileSuffix\n" . "%\n" ; + while ($SomeLine=<TEX>) + { chomp $SomeLine ; + ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) ; + if ($Tag eq "%S") + { ++$NOfSetups ; + while ($Tag eq "%S") + { print TUS "$RestOfLine\n" ; + $SomeLine = <TEX> ; + chomp $SomeLine ; + ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) } + print TUS "\n" } } } } + close (TUS) ; + unless ($NOfSetups) + { unlink $OutputFile } + Report("NOfSetups", $NOfSetups) } } + +#D \extras +#D {templates, infos} +#D +#D From the beginning, the \CONTEXT\ source files contained +#D helpinfo and key||templates for \TEXEDIT. In fact, for a +#D long time, this was the only documentation present. More +#D and more typeset (interactive) documentation is replacing +#D this helpinfo, but we still support the traditional method. +#D This information is formatted like: +#D +#D \starttypen +#D %I n=Struts +#D %I c=\strut,\setnostrut,\setstrut,\toonstruts +#D %I +#D %I text +#D %I .... +#D %P +#D %I text +#D %I .... +#D \stoptypen +#D +#D Templates look like: +#D +#D \starttypen +#D %T n=kap +#D %T m=kap +#D %T a=k +#D %T +#D %T \kap{?} +#D \stoptypen +#D +#D The key||value pairs stand for {\em name}, {\em mnemonic}, +#D {\em key}. This information is copied to files with the +#D extension \type{tud}. + +sub HandleEditorCues + { if ($ProcessTemplates) + { Report("Action", "CopyingTemplates" ) } + if ($ProcessInfos) + {Report("Action", "CopyingInformation" ) } + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { CheckInputFiles ($InputFile) ; + foreach $FullName (@UserSuppliedFiles) + { ($FileName, $FileSuffix) = split (/\./, $FullName, 2) ; + if ($FileSuffix eq "") + { $FileSuffix = "tex" } + unless (-f "$FileName.$FileSuffix") + { next } + unless (open (TEX, "$FileName.$FileSuffix")) + { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) } + else + { Report("InputFile", "$FileName.$FileSuffix") ; + Report("OutputFile", "$FileName.tud") ; + open (TUD, ">$FileName.tud") ; + $NOfTemplates = 0 ; + $NOfInfos = 0 ; + while ($SomeLine=<TEX>) + { chomp $SomeLine ; + ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) ; + if (($Tag eq "%T") && ($ProcessTemplates)) + { ++$NOfTemplates ; + while ($Tag eq "%T") + { print TUD "$SomeLine\n" ; + $SomeLine = <TEX> ; + chomp $SomeLine ; + ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) } + print TUD "\n" } + elsif (($Tag eq "%I") && ($ProcessInfos)) + { ++$NOfInfos ; + while (($Tag eq "%I") || ($Tag eq "%P")) + { print TUD "$SomeLine\n" ; + $SomeLine = <TEX> ; + chomp $SomeLine ; + ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) } + print TUD "\n" } } + close (TUD) ; + unless (($NOfTemplates) || ($NOfInfos)) + { unlink "$FileName.tud" } + if ($ProcessTemplates) + { Report("NOfTemplates", $NOfTemplates) } + if ($ProcessInfos) + { Report("NOfInfos", $NOfInfos) } } } } } + +#D \extras +#D {figures} +#D +#D Directories can be scanned for illustrations in \EPS, \PDF, +#D \TIFF\ or \PNG\ format. The resulting file \type{texutil.tuf} +#D contains entries like: +#D +#D \starttypen +#D \thisisfigureversion{year.month.day} +#D \presetfigure[file][...specifications...] +#D \stoptypen +#D +#D where the specifications are: +#D +#D \starttypen +#D [e=suffix,x=xoffset,y=yoffset,w=width,h=height,t=title,c=creator,s=size] +#D \stoptypen +#D +#D This data can be used when determining dimensions and +#D generate directories of illustrations. + +$PTtoCM = 2.54/72.0 ; +$INtoCM = 2.54 ; + +sub SaveFigurePresets + { my ($FNam, $FTyp, $FXof, $FYof, $FWid, $FHei, $FTit, $FCre, $FSiz) = @_ ; + if ($ProcessVerbose) + { OpenTerminal ; + print "n=$FNam t=$FTyp" . + (sprintf " x=%5.3fcm y=%5.3fcm", $FXof, $FYof) . + (sprintf " w=%5.3fcm h=%5.3fcm\n", $FWid, $FHei) ; + CloseTerminal } + else + { ++$NOfFigures ; + $Figures[$NOfFigures] = "\\presetfigure[$FNam][e=$FTyp" . + (sprintf ",w=%5.3fcm,h=%5.3fcm", $FWid, $FHei) ; + if (($FXof!=0)||($FYof!=0)) + { $Figures[$NOfFigures] .= (sprintf ",x=%5.3fcm,y=%5.3fcm", $FXof, $FYof) } + if ($FTit) + { $Figures[$NOfFigures] .= ",t=\{$FTit\}" } + if ($FCre) + { $Figures[$NOfFigures] .= ",c=\{$FCre\}" } + $Figures[$NOfFigures] .= ",s=$FSiz]\n" } } + +#D The \EPS\ to \PDF\ conversion is inspired by a script posted +#D by Sebastian Ratz at the \PDFTEX\ mailing list. + +sub ConvertEpsToEps + { my ( $SuppliedFileName , $LLX, $LLY, $URX, $URY ) = @_ ; + ($FileName, $FileSuffix) = split (/\./, $SuppliedFileName, 2) ; + if ($ProcessEpsToPdf) + { unlink "$FileName.pdf" ; + $GSCommandLine = "-q " . + "-sDEVICE=pdfwrite " . + "-dNOCACHE " . + "-dUseFlateCompression=false " . + "-sDEVICE=pdfwrite " . + "-sOutputFile=$FileName.pdf " . + "- -c " . + "quit " ; + open ( EPS, "| gs $GSCommandLine") } + elsif ($PDFReady) + { return } + else + { open ( EPS, ">texutil.tmp" ) ; + binmode EPS } + open ( TMP , "$SuppliedFileName" ) ; + binmode TMP ; + $EpsBBOX = 0 ; + $EpsWidth = $URX - $LLX ; + $EpsHeight = $URY - $LLY ; + $EpsXOffset = 0 - $LLX ; + $EpsYOffset = 0 - $LLY ; + while (<TMP>) + { if (/%!PS/) + { s/(.*)%!PS/%!PS/o ; + print EPS $_ ; + last } } + while (<TMP>) + { if (/^%%(HiResB|ExactB|B)oundingBox:/o) + { unless ($EpsBBOX) + { print EPS "%%PDFready: $Program\n" ; + print EPS "%%BoundingBox: 0 0 $EpsWidth $EpsHeight\n" ; + print EPS "<< /PageSize [$EpsWidth $EpsHeight] >> setpagedevice\n" ; + print EPS "gsave $EpsXOffset $EpsYOffset translate\n" ; + $EpsBBOX = 1 } } + elsif (/^%%EOF/o) + { last } + else + { print EPS $_ } } + close ( TMP ) ; + if ($EpsBBOX) + { print EPS "grestore\n%%EOF\n%%RestOfFileIgnored: $Program\n" ; + close ( EPS ) ; + Report ( "PdfFile", "$SuppliedFileName" ) ; + unless ($ProcessEpsToPdf) + { unlink "$SuppliedFileName" ; + rename "texutil.tmp", "$SuppliedFileName" } } + else + { close (EPS) } + unlink "texutil.tmp" } + +sub HandleEpsFigure + { my ( $SuppliedFileName ) = @_ ; + ($FileName, $FileSuffix) = split ( /\./, $SuppliedFileName, 2) ; + $Temp = $FileSuffix; + $Temp =~ s/[0-9]//go; + if ($Temp eq "") + { $EpsFileName = $SuppliedFileName; + Report ( "MPFile", "$SuppliedFileName" ) } + elsif (lc $FileSuffix ne "eps") + { return } + else + { $EpsFileName = $SuppliedFileName; # $FileName + Report ( "EpsFile", "$SuppliedFileName" ) } + $HiResBBOX = "" ; + $LoResBBOX = "" ; + $EpsTitle = "" ; + $EpsCreator = "" ; + open ( EPS , $SuppliedFileName ) ; + binmode EPS ; + $EpsSize = -s EPS ; + $PDFReady = 0 ; + $MPSFound = 0 ; + $BBoxFound = 0 ; + while ($SomeLine = <EPS>) + { chomp $SomeLine ; + if ( ($BBoxFound) && ((substr $SomeLine,0,1) ne "%") ) + { last } + unless ($HiResBBOX) + { if ($SomeLine =~ /^%%BoundingBox:/io) + { ($Tag, $LoResBBOX) = split (/ /, $SomeLine, 2) ; + $BBoxFound = 1 ; next } + elsif ($SomeLine =~ /^%%HiResBoundingBox:/io) + { ($Tag, $HiResBBOX) = split (/ /, $SomeLine, 2) ; + $BBoxFound = 1 ; next } + elsif ($SomeLine =~ /^%%ExactBoundingBox:/io) + { ($Tag, $HiResBBOX) = split (/ /, $SomeLine, 2) ; + $BBoxFound = 1 ; next } } + if ($SomeLine =~ /^%%PDFready:/io) + { $PDFReady = 1 } + elsif ($SomeLine =~ /^%%Creator:/io) + { ($Tag, $EpsCreator) = split (/ /, $SomeLine, 2) ; + if ($EpsCreator =~ /MetaPost/io) + { $MPSFound = 1 } } + elsif ($SomeLine =~ /^%%Title:/io) + { ($Tag, $EpsTitle) = split (/ /, $SomeLine, 2) } } + close ( EPS ) ; + if ($BBoxFound) + { if ($HiResBBOX) + { $EpsBBOX = $HiResBBOX } + else + { $EpsBBOX = $LoResBBOX } + if ($EpsBBOX) + { ($LLX, $LLY, $URX, $URY, $RestOfLine) = split (/ /, $EpsBBOX, 5 ) ; + $EpsHeight = ($URY-$LLY)*$PTtoCM ; + $EpsWidth = ($URX-$LLX)*$PTtoCM ; + $EpsXOffset = $LLX*$PTtoCM ; + $EpsYOffset = $LLY*$PTtoCM ; + if ($ProcessGS) + { $EpsType = "pdf" } + elsif ($MPSFound) + { $EpsType = "mps" } + else + { $EpsType = "eps" } + SaveFigurePresets + ( $EpsFileName, $EpsType, + $EpsXOffset, $EpsYOffset, $EpsWidth, $EpsHeight, + $EpsTitle, $EpsCreator, $EpsSize ) ; + if (($ProcessEpsPage) || ($ProcessEpsToPdf)) + { ConvertEpsToEps ( $SuppliedFileName, $LLX, $LLY, $URX, $URY ) } } } + else + { Report ( "MissingBoundingBox", "$SuppliedFileName" ) } } + +sub HandleEpsFigures + { if ($InputFile eq "") + { $InputFile = "*.eps" } + CheckInputFiles ($InputFile) ; + foreach $FileName (@UserSuppliedFiles) + { HandleEpsFigure ( $FileName ) } } + +#D The \PDF\ scanning does a similar job. This time we +#D search for a mediabox. I could have shared some lines +#D with the previous routines, but prefer readability. + +sub HandlePdfFigure + { my ( $SuppliedFileName ) = @_ ; + ($FileName, $FileSuffix) = split ( /\./, $SuppliedFileName, 2) ; + if (lc $FileSuffix ne "pdf") + { return } + else + { $PdfFileName = $SuppliedFileName ; + Report ( "PdfFile", "$SuppliedFileName" ) } + open ( PDF , $SuppliedFileName ) ; + binmode PDF ; + $PdfSize = -s PDF ; + $MediaBoxFound = 0 ; + $MediaBox = 0 ; + $PageFound = 0 ; + $PagesFound = 0 ; + while ($SomeLine = <PDF>) + { chomp ($SomeLine) ; + if ($SomeLine =~ /\/Type \/Pages/io) + { $PagesFound = 1 } + elsif ($SomeLine =~ /\/Type \/Page/io) + { ++$PageFound ; + if ($PageFound>1) { last } } + elsif ((($PageFound)||($PagesFound)) && ($SomeLine =~ /\/MediaBox /io)) + { ($Tag, $MediaBox) = split (/ /, $SomeLine, 2) ; + $MediaBoxFound = 1 ; + if ($PagesFound) { last } } } + close ( PDF ) ; + if ($PageFound>1) + { Report ( "MultiPagePdfFile", "$SuppliedFileName" ) } + elsif (($MediaBoxFound) && ($MediaBox)) + { ($MediaBox, $RestOfLine) = split (/\]/, $MediaBox, 2 ) ; + ($RestOfLine, $MediaBox) = split (/\[/, $MediaBox, 2 ) ; + ($LLX, $LLY, $URX, $URY, $RestOfLine) = split (/ /, $MediaBox, 5 ) ; + $PdfHeight = ($URY-$LLY)*$PTtoCM ; + $PdfWidth = ($URX-$LLX)*$PTtoCM ; + $PdfXOffset = $LLX*$PTtoCM ; + $PdfYOffset = $LLY*$PTtoCM ; + SaveFigurePresets + ( $PdfFileName, "pdf", + $PdfXOffset, $PdfYOffset, $PdfWidth, $PdfHeight, + "", "", $PdfSize ) } + else + { Report ( "MissingMediaBox", "$SuppliedFileName" ) } } + +sub HandlePdfFigures + { if ($InputFile eq "") + { $InputFile = "*.pdf" } + CheckInputFiles ($InputFile) ; + foreach $FileName (@UserSuppliedFiles) + { HandlePdfFigure ( $FileName ) } } + +# #D Here we call the programs that generate information on +# #D the \TIFF\ files. The names of the programs are defined +# #D earlier. +# +# sub RunTifPrograms +# { $FindTifFigure = "" ; +# $UsedTifProgram = "" ; +# unlink "tifdata.tmp" ; +# foreach $TifProgram (@TifPrograms) +# { if ((system ("$TifProgram *.tif > tifdata.tmp") == 0) +# && (-s "tifdata.tmp")) +# { $UsedTifProgram = $TifProgram ; +# $FindTifFigure = "FindTifFigure_$UsedTifProgram" ; +# last } } } +# +# #D The scanning routines use filehandle \type{TMP} and call for +# #D \type{ReportTifFigure} with the arguments \type{Name}, +# #D \type{Width} and \type{Height}. +# +# sub ReportTifFigure +# { my ($Name, $Width, $Height) = @_ ; +# $Name = lc $Name ; +# # +# # if ($InputFile ne "") +# # { $Ok = 0 ; +# # foreach $IFile (@UserSuppliedFiles) +# # { $Ok = ($Ok || ($IFile eq "$Name.tif" )) } +# # else +# # { $Ok = 1 } +# # +# $Ok = 1 ; +# # +# if ($Ok) +# { $Size = -s "$Name.tif" ; +# Report ( "TifFile", "$Name.tif") ; +# $Figures[++$NOfFigures] = +# "\\presetfigure[$Name][e=tif" . +# (sprintf ",w=%5.3fcm,h=%5.3fcm", $Width, $Height) . +# ",s=$Size]\n" } } +# +# sub HandleTifFigures +# { if ($ProcessTif) +# { if (-s "tifdata.tmp") +# { Report ( "SystemCall", "$UsedTifProgram -> tifdata.tmp" ) ; +# if ((defined &$FindTifFigure) && (open(TMP, "tifdata.tmp"))) +# { &$FindTifFigure } +# else +# { Report ( "MissingSubroutine", $FindTifFigure ) } } +# else +# { } } } # Report ( "BadSystemCall", "@TifPrograms" ) } } } +# +# #D The next few routines are program specific. Let's cross our +# #D fingers on the stability off their output. As one can +# #D see, we have to work a bit harder when we use \TIFFINFO\ +# #D instead of \TIFFTAGS. +# +# sub FindTifFigure_tiffinfo +# { while ( $TifName = <TMP> ) +# { chomp $TifName ; +# if (($TifName =~ s/^(.*)\.tif\:.*/$1/i) && +# ($SomeLineA = <TMP>) && ($SomeLineA = <TMP>) && +# ($SomeLineA = <TMP>) && ($SomeLineB = <TMP>)) +# { chomp $SomeLineA ; +# $TifWidth = $SomeLineA ; +# $TifWidth =~ s/.*Image Width: (.*) .*/$1/i ; +# $TifHeight = $SomeLineA ; +# $TifHeight =~ s/.*Image Length: (.*).*/$1/i ; +# $TifWRes = $SomeLineB ; +# $TifWRes =~ s/.*Resolution: (.*)\,.*/$1/i ; +# $TifHRes = $SomeLineB ; +# $TifHRes =~ s/.*Resolution: .*\, (.*).*/$1/i ; +# $TifWidth = ($TifWidth/$TifWRes)*$INtoCM ; +# # $TifHeight = ($TifHeight/$TifHRes)*$INtoCM ; +# ReportTifFigure ($TifName, $TifWidth, $TifHeight) } } } +# +# sub FindTifFigure_tifftags +# { while ( $TifName = <TMP> ) +# { chomp $TifName ; +# if (($TifName =~ s/.*\`(.*)\.tif\'.*/$1/i) && +# ($SomeLine = <TMP>) && ($SomeLine = <TMP>)) +# { chomp $SomeLine ; +# $TifWidth = $SomeLine ; +# $TifWidth =~ s/.*\((.*) pt.*\((.*) pt.*/$1/ ; +# $TifHeight = $SomeLine ; +# $TifHeight =~ s/.*\((.*) pt.*\((.*) pt.*/$2/ ; +# $TifWidth = $TifWidth*$PTtoCM ; +# $TifHeight = $TifHeight*$PTtoCM ; +# ReportTifFigure ($TifName, $TifWidth, $TifHeight) } } } + +#D A previous version of \TEXUTIL\ used \type{tifftags} or +#D \type{tiffinfo} for collecting the dimensions. However, +#D the current implementation does this job itself. + +sub TifGetByte + { my ($S_1) ; + read TIF, $S_1, 1 ; + return ( ord($S_1) ) } + +sub TifGetShort + { my ($S_1, $S_2) ; + if ($TifLittleEndian) + { read TIF, $S_2, 1 ; + read TIF, $S_1, 1 } + else + { read TIF, $S_1, 1 ; + read TIF, $S_2, 1 } + return ( ord($S_1)*256 + + ord($S_2) ) } + +sub TifGetLong + { my ($S_1, $S_2, $S_3, $S_4) ; + if ($TifLittleEndian) + { read TIF, $S_4, 1 ; + read TIF, $S_3, 1 ; + read TIF, $S_2, 1 ; + read TIF, $S_1, 1 } + else + { read TIF, $S_1, 1 ; + read TIF, $S_2, 1 ; + read TIF, $S_3, 1 ; + read TIF, $S_4, 1 } + return ( ord($S_1)*16777216 + + ord($S_2)*65536 + + ord($S_3)*256 + + ord($S_4) ) } + +sub TifGetRational + { my ($N, $M) ; + $N = TifGetLong ; + $M = TifGetLong ; + return $N/$M } + +sub TifGetAscii + { my ($S) ; + --$TifValues; + if ($TifValues) + { return "" } + else + { read TIF, $S, $TifValues ; + return $S } } + +sub TifGetWhatever + { if (@_[0]==1) + { return TifGetByte } + elsif (@_[0]==2) + { return TifGetAscii } + elsif (@_[0]==3) + { return TifGetShort } + elsif (@_[0]==4) + { return TifGetLong } + elsif (@_[0]==5) + { return TifGetRational } + else + { return 0 } } + +sub TifGetChunk + { seek TIF, $TifNextChunk, 0 ; + $Length = TifGetShort ; + #print "[start at $TifNextChunk with length $Length]\n" ; + $TifNextChunk += 2 ; + for ($i=1; $i<=$Length; $i++) + { seek TIF, $TifNextChunk, 0 ; + $TifTag = TifGetShort ; + $TifType = TifGetShort ; + $TifValues = TifGetLong ; + #print "[tag $TifTag of type $TifType]\n" ; + if ($TifTag==256) + { $TifWidth = TifGetWhatever($TifType) } + elsif ($TifTag==257) + { $TifHeight = TifGetWhatever($TifType) } + elsif ($TifTag==296) + { $TifUnit = TifGetWhatever($TifType) } + elsif ($TifTag==282) + { seek TIF, TifGetLong, 0 ; + $TifHRes = TifGetWhatever($TifType) } + elsif ($TifTag==283) + { seek TIF, TifGetLong, 0 ; + $TifVRes = TifGetWhatever($TifType) } + elsif ($TifTag==350) + { seek TIF, TifGetLong, 0 ; + $TifCreator = TifGetWhatever($TifType) } + elsif ($TifTag==315) + { seek TIF, TifGetLong, 0 ; + $TifAuthor = TifGetWhatever($TifType) } + elsif ($TifTag==269) + { seek TIF, TifGetLong, 0 ; + $TifTitle = TifGetWhatever($TifType) } + $TifNextChunk += 12 } + seek TIF, $TifNextChunk, 0 ; + $TifNextChunk = TifGetLong ; + #print $TifNextChunk; + return ($TifNextChunk>0) } + +sub TifAnalyzeFile + { my ( $SuppliedFileName ) = @_ ; + ($FileName, $FileSuffix) = split ( /\./, $SuppliedFileName, 2) ; + if (lc $FileSuffix ne "tif") + { return } + else + { $TifFile = $SuppliedFileName ; + Report ( "TifFile", "$SuppliedFileName" ) } + $TifSize = 0 ; + $TifWidth = 0 ; + $TifHeight = 0 ; + $TifTitle = "" ; + $TifAuthor = "" ; + $TifCreator = "" ; + $TifUnit = 0 ; + $TifHRes = 1 ; + $TifVRes = 1 ; + open ( TIF, $TifFile ) ; + binmode TIF; + $TifSize = -s TIF ; + seek TIF, 0, 0 ; + read TIF, $TifByteOrder, 2 ; + $TifLittleEndian = ($TifByteOrder eq "II") ; + $TifTag = TifGetShort; + unless ($TifTag == 42) + { close ( TIF ) ; + return } + $TifNextChunk = TifGetLong ; + while (TifGetChunk) { } + #print "[$TifWidth,$TifHeight,$TifUnit,$TifHRes,$TifVRes]\n"; + if ($TifUnit==2) + { $TifMult = $INtoCM } + else + { $TifMult = 1 } + $TifWidth = ($TifWidth /$TifHRes)*$TifMult ; + $TifHeight = ($TifHeight/$TifVRes)*$TifMult ; + unless ($TifUnit) + { while ($TifHeight>20) + { $TifHeight /= 5 ; $TifWidth /= 5 } } + close ( TIF ) ; + SaveFigurePresets + ( $TifFile, "tif", + 0, 0, $TifWidth, $TifHeight, + $TifTitle, $TifCreator, $TifSize ) } + +sub HandleTifFigures + { if ($InputFile eq "") + { $InputFile = "*.tif" } + CheckInputFiles ($InputFile) ; + foreach $FileName (@UserSuppliedFiles) + { TifAnalyzeFile ( $FileName ) } } + +#D I first intended to use the public utility \type{pngmeta} +#D (many thanks to Taco for comiling it), but using this +#D utility to analyze lots of \PNG\ files, I tried to do a +#D similar job in \PERL. Here are the results: + +sub PngGetInteger + { my ($S_1, $S_2, $S_3, $S_4) ; + read PNG, $S_1, 1 ; + read PNG, $S_2, 1 ; + read PNG, $S_3, 1 ; + read PNG, $S_4, 1 ; + return ( ord($S_1)*16777216 + + ord($S_2)*65526 + + ord($S_3)*256 + + ord($S_4) ) } + +sub PngGetChunk + { seek PNG, $PngNextChunk, 0 ; + $Length = PngGetInteger ; + $PngNextChunk = $PngNextChunk + $Length + 12 ; + read PNG, $PngType, 4 ; + if ($PngType eq "") + { return 0 } + elsif ($PngType eq "IHDR") + { $PngWidth = PngGetInteger ; + $PngHeight = PngGetInteger } + elsif ($PngType eq "pHYs") + { $PngHRes = PngGetInteger ; + $PngVRes = PngGetInteger ; + read PNG, $PngUnit, 1 } + elsif ($PngType eq "tEXt") + { read PNG, $PngKeyword, 79 ; + read PNG, $Temp, 1 ; + if ( $PngKeyword eq "Title") + { read PNG, $PngTitle, $Length } + elsif ( $PngKeyword eq "Author") + { read PNG, $PngAuthor, $Length } + elsif ( $PngKeyword eq "Software") + { read PNG, $PngCreator, $Length } } + return 1 } + +sub PngAnalyzeFile + { my ( $SuppliedFileName ) = @_ ; + ($FileName, $FileSuffix) = split ( /\./, $SuppliedFileName, 2) ; + if (lc $FileSuffix ne "png") + { return } + else + { $PngFile = $SuppliedFileName ; + Report ( "PngFile", "$SuppliedFileName" ) } + $PngSize = 0 ; + $PngWidth = 0 ; + $PngHeight = 0 ; + $PngTitle = "" ; + $PngAuthor = "" ; + $PngCreator = "" ; + $PngUnit = 0 ; + $PngVRes = 1 ; + $PngHRes = 1 ; + $PngSignature = chr(137) . chr(80) . chr(78) . chr(71) . + chr (13) . chr(10) . chr(26) . chr(10) ; + open ( PNG, $PngFile ) ; + binmode PNG ; + $PngSize = -s PNG ; + seek PNG, 0, 0 ; + read PNG, $Str, 8; + unless ($Str eq $PngSignature) + { close ( PNG ) ; + return } + $PngNextChunk = 8 ; + while (PngGetChunk) { } + $PngWidth = ($PngWidth /$PngVRes) ; + $PngHeight = ($PngHeight/$PngHRes) ; + unless ($PngUnit) + { while ($PngHeight>20) + { $PngHeight /= 5 ; $PngWidth /= 5 } } + close ( PNG ) ; + SaveFigurePresets + ( $PngFile, "png", + 0, 0, $PngWidth, $PngHeight, + $PngTitle, $PngCreator, $PngSize ) } + +sub HandlePngFigures + { if ($InputFile eq "") + { $InputFile = "*.png" } + CheckInputFiles ($InputFile) ; + foreach $FileName (@UserSuppliedFiles) + { PngAnalyzeFile ( $FileName ) } } + +#D Now we can handle figures! + +sub InitializeFigures + { $NOfFigures = 0 } + +sub FlushFigures + { $Figures = sort { lc ($a) cmp lc ($b) } $Figures ; + SetOutputFile ("texutil.tuf") ; + open ( TUF, ">$OutputFile" ) ; + print TUF "%\n" . "% $Program / Figures\n" . "%\n" ; + print TUF "\\thisisfigureversion\{1996.06.01\}\n" . "%\n" ; + for ($n=1 ; $n<=$NOfFigures ; ++$n) + { print TUF $Figures[$n] } + close (TUF) ; + if ($NOfFigures) + { Report("OutputFile", $OutputFile ) } + else + { unlink $OutputFile } + Report ( "NOfFigures", $NOfFigures ) } + +sub HandleFigures + { Report("Action", "GeneratingFigures" ) ; + foreach $FileType (@ARGV) + { if ($FileType=~/eps/io) + { Report("Option", "UsingEps") ; + if ($ProcessEpsToPdf) { Report("Option", "EpsToPdf") } + if ($ProcessEpsPage) { Report("Option", "EpsPage") } + last } } + foreach $FileType (@ARGV) + { if ($FileType=~/pdf/io) + { Report("Option", "UsingPdf") ; + last } } + foreach $FileType (@ARGV) + { if ($FileType=~/tif/io) + { Report("Option", "UsingTif") ; + #RunTifPrograms ; + last } } + foreach $FileType (@ARGV) + { if ($FileType=~/png/io) + { Report("Option", "UsingPng") ; + last } } + InitializeFigures ; + HandleEpsFigures ; + HandlePdfFigures ; + HandleTifFigures ; + HandlePngFigures ; + FlushFigures } + +#D \extras +#D {logfiles} +#D +#D This (poor man's) log file scanning routine filters +#D overfull box messages from a log file (\type{\hbox}, +#D \type{\vbox} or both). The collected problems are saved +#D in \type{texutil.log}. One can specify a selection +#D criterium. +#D +#D \CONTEXT\ reports unknown entities. These can also be +#D filtered. When using fast computers, or when processing +#D files in batch, one has to rely on the log files and/or +#D this filter. + +$Unknown = "onbekend|unknown|unbekant" ; + +sub FlushLogTopic + { unless ($TopicFound) + { $TopicFound = 1 ; + print ALL "\n% File: $FileName.log\n\n" } } + +sub HandleLogFile + { if ($ProcessBox) + { Report("Option", "FilteringBoxes", "(\\vbox & \\hbox)") ; + $Key = "[h|v]box" } + elsif ($ProcessHBox) + { Report("Option", "FilteringBoxes", "(\\hbox)") ; + $Key = "hbox" ; + $ProcessBox = 1 } + elsif ($ProcessVBox) + { Report("Option", "FilteringBoxes", "(\\vbox)") ; + $Key = "vbox" ; + $ProcessBox = 1 } + if (($ProcessBox) && ($ProcessCriterium)) + { Report("Option", "ApplyingCriterium") } + if ($ProcessUnknown) + { Report("Option", "FilteringUnknown") } + unless (($ProcessBox) || ($ProcessUnknown)) + { ShowHelpInfo ; + return } + Report("Action", "FilteringLogFile" ) ; + if ($InputFile eq "") + { Report("Error", "NoInputFile") } + else + { $NOfBoxes = 0 ; + $NOfMatching = 0 ; + $NOfUnknown = 0 ; + SetOutputFile ("$Program.log") ; + Report("OutputFile", $OutputFile) ; + CheckInputFiles ($InputFile) ; + open ( ALL, ">$OutputFile" ) ; + foreach $FullName (@UserSuppliedFiles) + { ($FileName, $FileSuffix) = split (/\./, $FullName, 2) ; + if (! open (LOG, "$FileName.log")) + { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) } + elsif (-e "$FileName.tex") + { $TopicFound = 0 ; + Report("InputFile", "$FileName.log") ; + while ($SomeLine=<LOG>) + { chomp $SomeLine ; + if (($ProcessBox) && ($SomeLine =~ /Overfull \\$Key/)) + { ++$NOfBoxes ; + $SomePoints = $SomeLine ; + $SomePoints =~ s/.*\((.*)pt.*/$1/ ; + if ($SomePoints>=$ProcessCriterium) + { ++$NOfMatching ; + FlushLogTopic ; + print ALL "$SomeLine" ; + $SomeLine=<LOG> ; + print ALL $SomeLine } } + if (($ProcessUnknown) && ($SomeLine =~ /$Unknown/io)) + { ++$NOfUnknown ; + FlushLogTopic ; + print ALL "$SomeLine" } } } } + close (ALL) ; + unless (($NOfBoxes) ||($NOfUnknown)) + { unlink $OutputFile } + if ($ProcessBox) + { Report ( "NOfBoxes" , "$NOfBoxes", "->", $NOfMatching, "Overfull") } + if ($ProcessUnknown) + { Report ( "NOfUnknown", "$NOfUnknown") } } } + +#D We're done! All this actions and options are organized in +#D one large conditional: + + ShowBanner ; + +if ($UnknownOptions ) { ShowHelpInfo } # not yet done +elsif ($ProcessReferences) { HandleReferences } +elsif ($ProcessDocuments ) { HandleDocuments } +elsif ($ProcessSources ) { HandleSources } +elsif ($ProcessSetups ) { HandleSetups } +elsif ($ProcessTemplates ) { HandleEditorCues } +elsif ($ProcessInfos ) { HandleEditorCues } +elsif ($ProcessFigures ) { HandleFigures } +elsif ($ProcessLogFile ) { HandleLogFile } +elsif ($ProcessHelp ) { ShowHelpInfo } # redundant +else { ShowHelpInfo } + +#D So far. diff --git a/usergrps/uktug/baskervi/8_3/third.tex b/usergrps/uktug/baskervi/8_3/third.tex new file mode 100644 index 0000000000..6dec1fe873 --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/third.tex @@ -0,0 +1,775 @@ +\chapter{Environmentally aware}\label{env} +\section{Environments} +\LaTeX\ is environmentally aware! One of the key features +of \LaTeX\ is the way in which it uses `environments'\index{environment}: +that is, an `enclosed' structure (which may be part of +another structure), which has some kind of unity. We have +already met one environment, the \verb|document|. There +are a number of other \LaTeX\ environments, all intended +for slightly different purposes. + +Environments have the common feature that they are +bounded by a \verb|\begin{..}|\index{begin@\texttt{begin}} +\verb|\end{..}|\index{end@\texttt{end}} pair. You may only ever +terminate an environment by an environment of exactly the +same name. However, the \verb|\end{document}| will +generally close everything, perhaps with a few oblique +comments from \LaTeX. + +\section{Quoting} +To illustrate an environment, look first at quoting. \LaTeX\ +has two slightly different environments for quoting: +\verb|quote| and \verb|quotation|. A \texttt{quote}\index{quote@\texttt{quote}} +is intended for short, perhaps one line, quotations. +\begin{verbatim} +\begin{quote} +Joe Bob says check it out. +\end{quote} +\end{verbatim} +yields +\begin{quote} +Joe Bob says check it out. +\end{quote} +What do we note about this? The quote is indented to offset it +from the existing text, and there is a little white space +above and below. If we had a longer quotation, we would +be able to see whether the indentation we see was a `normal' paragraph +indentation or whether the whole quote was indented or whether the whole quote +is indented: +\begin{quote} +I am not now, and never have been, a member of the +American Communist Party -- \emph{attributed to Mao Xedung}. +\end{quote} +Obviously it applies to all lines. + +The other alternative is \verb|quotation|\index{quotation@\texttt{quotation}}, +which is really designed for longer quotations containing several +paragraphs: +\begin{quotation} +I know your works, that you are neither hot or cold: I would that you were +either hot or cold. + +But because you are lukewarm, neither hot or cold, I will spit +you out. +\end{quotation} +which may be obtained from +\begin{verbatim} +\begin{quotation} +I know your works, that you are neither +hot or cold: +I would that you were either hot or cold. + +But because you are lukewarm, +neither hot or cold, I will spit you out. +\end{quotation} +\end{verbatim} + +\begin{question} +Use the \texttt{quotation} environment to produce a piece of +quoted text. If your mind is a complete blank, you could +always try: +\begin{verbatim} +It's one hundred and six miles to Chicago; +we got a full tank of gas, half a pack of +cigarettes, it's dark, and we're wearing +sunglasses. + +Hit it. +\end{verbatim} +\end{question} + +\section{Verse or worse} +Lamport introduces another environment +which he describes thus: +\begin{quote} +Poetry is displayed with the \texttt{verse} environment. +\end{quote} +Few poets would want to have their work described as +verse\index{vers@\texttt{verse}}, and even fewer would use the \texttt{verse} +environment to present it. However, the environment is +not without its uses. +And in fact, to be `fair' it has some rather appealing +qualities. Unlike every other situation we have seen so +far, \LaTeX\ asks that you do the line breaking\index{line breaking} yourself +in the \texttt{verse} environment. Do this by terminating a +line with \verb|\\|\index{backslash}. As we shall discover, this works in all +sorts of other places too. +%\begin{verbatim} +\begin{verse} +Bring me my Bow of burning gold:\\ +Bring me my Arrows of desire:\\ +Bring me my Spear: O clouds unfold!\\ +Bring me my Chariot of fire! +\end{verse} +%\end{verbatim} +was produced from +\begin{verbatim} +\begin{verse} +Bring me my Bow of burning gold:\\ +Bring me my Arrows of desire:\\ +Bring me my Spear: O clouds unfold!\\ +Bring me my Chariot of fire! +\end{verse} +\end{verbatim} + +One feature may be worth emphasising. The last line of a stanza does not +have to end with \verb+\\+. Since it is immediately followed by +\verb+\end{verse}+ there is no need to introduce an additional (and +therefore redundant) instruction. +\begin{question} +Find out what happens when you end the last line with \verb+\\+. Does +\LaTeX\ handle it in an elegant and friendly way? +\end{question} + + + +Lamport clearly had Blake in mind when he created the +{\tt verse} environment, since lines which are too long +for the page width wrap over nicely, with a little bit +of extra indentation: +\begin{verse} +Excess of sorrow laughs. Excess of joy weeps.\\ +The roaring of lions, the howling of wolves, the raging +of the stormy sea, and the destructive sword, are +portions of eternity too great for the eye of man.\\ +The fox condemns the trap, not himself +\end{verse} + +There are two other features of note here. The first is that the \verb|\\| +instruction has a variant\index{variant} form, the \texttt{*}\index{asterisk@*} +form. If you write \verb|\\*|, \LaTeX\ will not allow the page to be +broken at that point. This useful feature is +an example of a variant form for the instruction. We will find that many +\LaTeX\ instructions have a \verb|*| variant, which modifies +the default way in which the instruction is handled. + +The second feature is that the instruction may take an optional\index{options} +argument. We have met optional arguments before, and we shall meet them again and +again. Optional arguments are always enclosed in square brackets -- +\mbox{\texttt{[}\thinspace\texttt{]}}. Here the optional argument allows us to +specify how much additional space to leave between lines -- a +\emph{dimension}\index{dimensions} is specified, complete with its units. In the +case of the +\verb+\\+ instruction we would have something like \verb+\\[0.5cm]+ where some +dimension, in this case 0.5\,cm, was specified in the square brackets. This is +similar to the optional arguments we have already met for +\verb|\documentclass|, except that +\verb|\documentclass| also requires an argument in braces. Once we know +what units we can use, this optional argument offers some useful +possibilities. + +\section{Units\index{units} -- a digression}\label{units} +We have come a long way, without any real reference to the sizes\index{size} of +things, except fonts. In general, we shouldn't be too concerned with sizes of most +things on the page, since the selection of the document style implicitly +specifies many of the relationships and sizes of parts of the document. +Nevertheless, there are times when we want to do something particular, +where we must somehow specify a size. + +\begin{table*} +\begin{center} +\begin{tabular}{|cll|} +\hline +abbreviation & name & conversion\\ +\hline + pt & point & \\ + pc & pica & 1\thinspace pc=12\thinspace pt \\ + in & inch & 1\thinspace in=72.27\thinspace pt \\ + bp & big point & 72\thinspace bp=1\thinspace in \\ + cm & centimeter & 1\thinspace in=2.54\thinspace cm \\ + mm & millimeter & 10\thinspace mm=1\thinspace cm \\ + dd & did\^ot point & 1157\thinspace dd=1238\thinspace pt \\ + cc & cicero & 1\thinspace cc=12\thinspace dd \\ + sp & scaled point & 65536\thinspace sp=$2^{16}$sp=1\thinspace pt \\ + em & width of `M' & (current font)\\ + ex & height of `x' & (current font)\\ +\hline +\end{tabular} +\end{center} +\caption{Units\index{units} used in \LaTeX\ to specify dimensions}\label{tunit} +\end{table*} + +Table \ref{tunit} shows the units which \LaTeX\ `knows' about, +together with their conversions. To specify a dimension, say +\verb|12pt|, \verb|0.7pc| or \verb|12in|, or even \verb|12 pt|, \verb|0.7 pc| +or \verb|12 in| if you find that easier to write or read. If you inadvertently +say \verb|12inches|, \LaTeX\ will assume that the \verb|12in| is the +dimension, and that the \verb|ches| is text to be printed. Of course +\verb|12points| wouldn't even be understood and would generate an error. + +(\La)\TeX\ uses the conversions as \emph{exact} +ratios -- in other words, even if they are not the exact and true +conversions, they are what \LaTeX\ uses (this ensures a degree of +standardisation within \LaTeX). Any value preceding one of these units +may be specified as either a whole (integer) number, or one with a decimal +point (decimal numbers would not make much sense in the case of `scaled +points'). \LaTeX\ does not support mixtures of units, so that `two picas +and four points' would not be acceptable, except as 2.3333333pc or 28pt. + +You do not have to stick to any particular dimensions throughout your +document. Mix metric, Imperial and printers' dimensions as you wish. The +printer's point\index{points} makes some sort of sense as a base unit, since all +the fonts are described in terms of their `point' size. But outside that +particular area, any other `size' can be described in any of the above +dimensions. If you do not include a dimension, \LaTeX\ will often assume +points are meant; it is safer to give the dimension. If the dimension is +zero, it still needs units. + +The \verb|em|\index{em} and \verb|ex|\index{ex} deserve a little more +explanation. They are the only two `relative measures'. In +typographic terms, an em (also known as a \emph{mutton}) is a horizontal +measure (being approximately the width of a capital `M' in the \emph{current} +font), while an ex (also known as an \emph{en-nut}) is a vertical measure (the +height of an `x' in the \emph{current} font). If you change font, the values of +em and ex will also change. Although an em is intended as a horizontal +measure, it will be possible to use it in a vertical sense: similarly, the ex +may be used for horizontal amounts. \LaTeX\ is not that picky. + +\subsection{The point} +In this sort of situation, in verse, it is more +general to specify a distance which is related in some way to the font in +use: a relative rather than an absolute figure: +\begin{verse} +Our plesance here is all vain glory,\\ +This fause warld is but transitory;\\ +The flesh is brukle, the Fiend is slee:\\*[2ex] +\emph{Timor mortis conturbat me.} +\end{verse} +The `refrain' is separated from the rest of the poem by an additional +2\,ex, obtained by terminating the line preceding the refrain by +\verb|\\[2ex]|: +\begin{verbatim} +The flesh is brukle, the Fiend is slee:\\[2ex] +\end{verbatim} +\begin{question} +Try that last example, but use different units. How would you leave a gap +which was equivalent to a blank line? +\end{question} +\section{Lists} +If \LaTeX\ is remembered for nothing else, it will be +remembered for the way in which Lamport elevated the +`list'\index{lists} into a common, powerful, all-pervading structure. +The more I think about it, the more I see myself +surrounded by documents which are most effectively +presented as lists, or lists within lists. As a technique +for structuring an argument, and giving relative weights +to various parts and sub-parts, it can be enlightening and fundamental. + +\LaTeX\ has three basic list structures, each with +slightly different attributes and visual properties. +There are also facilities to extend these. The structures +are\index{index@\texttt{itemize}}\index{enumerate@\texttt{enumerate}}\index{description@\texttt{description}} +\begin{itemize} +\item enumerate +\item itemize +\item description +\end{itemize} +Of course, this is a list! It was generated by +\begin{verbatim} +\begin{itemize} +\item enumerate +\item itemize +\item description +\end{itemize} +\end{verbatim} +Now we have (almost) the whole syntax\footnote{You should +be able to guess that there are probably some optional +arguments lurking about somewhere. There usually are.} of +these list-making environments. + +As usual, the environment must be terminated with the +correct name. + +\begin{question} +Try doing something like this: +\begin{verbatim} +\begin{itemize} +\item just a word or two +\item and another one +\end{enumerate} +\end{verbatim} +The error message which \LaTeX\ gives in this +context is very annoying: +\begin{verbatim} +! \begin{itemize} on input line 3 ended + by \end{description}. +\end{verbatim} +It is informative that \LaTeX\ stops at this point, but +also helpful that it will allow you to continue. A pity it misleads. +\end{question} + +If you are an \texttt{emacs} guru, or have another similarly +powerful editor\footnote{Correctly, \texttt{emacs} is a way +of life. Like (\La)\TeX, there is nothing \texttt{emacs} cannot do, +in the right hands.}, and skill, you could ensure that your +\verb|\begin{..}| was always terminated +correctly. + +\subsubsection{Itemizing} +Using the \verb|itemize|\index{itemize@\texttt{itemize}} environment, each item +is marked in some way. Different levels of itemization are given +different symbols. This implies that you can +nest itemization instructions. In fact, you can nest the +whole concept of environments in general, and lists in +particular\footnote{Almost true; don't go too deep.}. + +\begin{question} +Find out what the symbols are for the various levels of +itemization. +\end{question} +\begin{question} +Find out just how deeply you can nest itemization. +\end{question} + +\subsubsection{Enumerating} +As you may guess, the \texttt{enumerate} environment numbers each +item\index{enumerate@\texttt{enumerate}}. This implies that there must be a +counter marching away somewhere, incrementing each time \verb|\item| is +encountered. And so there is. There may be several, since we can, as +usual, nest enumeration too. +\begin{question} +Find out what happens when you nest levels of +enumeration. For example, you could use one of your last exercises, +changing the \verb|\begin{itemize}| to \verb|\begin{enumerate}|. +Remember to change the \verb|\end| too. +\end{question} +\begin{question} +Now nest enumeration within itemization (or even +itemization within enumeration). +\end{question} + +\subsubsection{Describing} +In the \verb|description|\index{description@\texttt{description}} environment, +you +\emph{must} provide an optional (\emph{sic}) argument on the \verb|\item|. +This argument will be the `key' to the list. In the +previous list environments, \LaTeX\ generated something +(a symbol, or a number\slash letter) to mark each \verb|item|. +This time, you have to provide the `mark': +\begin{verbatim} +\begin{description} +\item[aardvark] mainly harmless -- +as in ``aardvark never hurt anyone''. +\item[Betty Boop] a pleasure and a +delight. One of \emph{the} great artistes. +\item[crow] family of birds including the +magpie (\textsl{pica pica}) +\end{description} +\end{verbatim} +which comes out looking like +\begin{description} +\item[aardvark] mainly harmless -- as in ``aardvark never +hurt anyone''. +\item[Betty Boop] a pleasure and a delight. One of \emph{the} +great artistes. +\item[crow] family of birds including the magpie (\textsl{pica pica}) +\end{description} +\begin{question} +Perhaps I exaggerate when I say that this environment requires an optional +argument. Demonstrate what happens if you omit the optional argument on the +\verb+\item+s in \verb+description+. Or whether the other list environments +may take optional arguments. +\end{question} +\begin{question} +It has always seemed to me that these three basic list environments are not +well named -- with two verbs and a noun. Devise a better and more consistent +set of names. \textsc{Html} uses the rather terse \texttt{ol} (ordered list), +\texttt{ul} (unordered list), and \texttt{dl} (data list). +\end{question} +%%%%%%%%%%%inserted section 3-e.tex +\section{Read my lips} +Another two pairs of environments may be useful. As these +notes show, it is often useful to be able to express chunks +of text in typrewriter form -- that is `verbatim', where +every symbol is recorded as it was typed in. This may not be +a frequent requirement. \LaTeX\ has a \verb+verbatim+ environment +which will handle this. Obviously it has to turn off lots of \LaTeX's normal +processing, and as a result there are some limitations. When the environment is +ended, the \verb+\end{verabtim}+ must occur on a line by itself. A variant is +the *-form, where any blanks (spaces) within the material will be printed out +as \verb*+ +. Besides needing to be able to present chunks of text literally, +it may also be necessary to do this for odd symbols or words. The command +\verb+\verb+ is provided for this. For example, if we write +\begin{verbatim} +The backslash, \verb+\+, introduces every instruction, with a few +exceptions, including \verb=~=. +\end{verbatim} +then the result will be +\begin{quote} +The backslash, \verb+\+, introduces every instruction, with a few +exceptions, including \verb=~=. +\end{quote} +Note how \verb+\verb+ works. The material which is to be expressed verbatim is +`enclosed' within a pair of repeated arbitrary symbols. The only symbols which +may not be used are \verb+*+, since there is a variant, \verb+\verb*+, where +any enclosed blanks are again represented by \verb*+ +. For example +\begin{verbatim} +The tag \verb*+< html>+ will not be +recognized, since the space (\verb*+ +) +after the \verb+<+ should not be present +\end{verbatim} +would give us +\begin{quote} +The tag \verb*+< html>+ will not be recognized, since +the space (\verb*+ +) after the \verb+<+ should not be present +\end{quote} +Although line endings are respected in the \verb+verbatim+ environment, + you should not have a line end in the body of a \verb+\verb+. This is seldom a +problem, but if you use an editor which wraps (like \Textures), you may +inadvertantly break a \verb+\verb+ over a line. \LaTeX\ will note the error. +Another important factor is that neither of these instructions may appear in +the argument of another instruction. + + +The sister environment to \verb+verbatim+ is \verb+alltt+. This is identical, +except that \verb+\+, \verb+{+ and \verb+}+ all have their `normal' meanings. +We may therefore have +\begin{verbatim} +\begin{alltt} +Even in text we need to \textsl{slant} +\end{alltt} +\end{verbatim} +to yield +\begin{quote} +\begin{alltt} +Even in text we need to \textsl{slant} +\end{alltt} +\end{quote} +If we wish to use this feature we should first ensure that the \verb+alltt+ +package is loaded. We'll cover this aspect a little later. + +\section{One paragraph at a time} +The other major environments are connected with the setting of paragraphs. In +a later chapter we will look at how \LaTeX\ actually handles the +setting of text. In the mean time we will note that sometimes it does not +manage to align the right margin and complains of `overfull boxes'. There are +many solutions to this. One is to provide \LaTeX\ with more flexibility in +setting the paragraph. This can be translated as `being more sloppy'. The two +environments \verb+sloppypar+ and \verb+fussypar+ are provided to handle this. +The default is \verb+fussypar+, and therefore it is unclear just why you might +want to switch it on, when a `sloppy' set of paragraphs can be delimited +easily. Note this is a paragraph matter. Since \LaTeX\ does its +typesetting on a paragraph by paragraph basis, there is no point trying to set +part of a paragraph `sloppy' and part `fussy'. The concept just does not exist. + +An alternative to this \verb+sloppypar+ environment is to use the instruction +\verb+\sloppy+. There is a corresponding +\verb+\fussy+ instruction too. One of \LaTeX's quirks, a consequence +of treating text on a paragraph basis, is that the inclusion of +one of these instructions within a paragraph, whether at the end or the +beginning, turns the whole paragraph into that style; and of course every +following paragraph too, unless you issue new instructions, or are careful to +limit the action in some other way. + + + +It is also possible to exercise control over the way \LaTeX\ sets lines within +paragraphs. Normally \LaTeX\ spreads out the space between words to have both +the right and left margins aligned vertically -- set `flush left' and +`flush right' +(or \emph{justified}). If, instead of adjusting the space, +it is made constant, the left margin remains fixed and a ragged +right margin would appear. The \verb+flushleft+ environment has this effect. +Its mirror-twin, \verb+flushright+ will make the left margin ragged. And a third +variant may be more useful, \verb+center+, where the text is effectively +centred around the middle axis. Taken with \verb+\\+ to break lines, this is +sometimes a useful way of creating title information. All three of these +environments have corresponding instructions: respectively they are +\verb+\raggedright+, \verb+\raggedleft+ and \verb+\centering+. Again, recall that +these instructions and environments will apply to whole paragraphs. + +Observation will demonstrate that the \verb+verse+ environment is set +ragged right, presumably to minimise +hyphenation, while \verb+quotation+ is justified. + +\subsection{More to come} +This is was just a glimpse of the environments available in \LaTeX. +A few more will crop up. It makes little sense to present + \emph{all} the environments at once, especially +when they each have quite different functions. The key +things to note are +\begin{itemize} +\item that they must be enclosed by the same +identifier or label (e.g.~\texttt{quote} or \texttt{itemize}), +\item that they \emph{may} have +optional arguments, +\item and that they may not overlap. +\end{itemize} + +\section{Sections\index{sections} and the like} +Many (most) documents can be thought of as highly +hierarchical, with a subdivision into successively +smaller units, down the scale through `parts', +`chapters', `section', `subsections', right down through +`paragraphs'\index{paragraphs} to sentences and even words. \LaTeX\ recognizes +this and provides a set of `sectioning' instructions, shown in +Table~\ref{tsect} +\begin{figure*} +\begin{center} +\begin{tabbing} +\makebox[1.5in]{}\=\verb|\part|\\ +\>\quad\=\verb|\chapter|\\ +\>\>\quad\=\verb|\section|\\ +\>\>\>\quad\=\verb|\subsection|\\ +\>\>\>\>\quad\=\verb|\subsubsection|\\ +\>\>\>\>\>\quad\=\verb|\paragraph|\\ +\>\>\>\>\>\>\quad\=\verb|\subparagraph| +\end{tabbing} +\end{center} +\caption{The sectional hierarchy}\label{tsect} +\end{figure*} + +Now, note that we do not in fact go down right to the +sentence or word level. And also note that Lamport's +\verb|\paragraph|\index{paragraph@\texttt{paragraph}} and \verb|\subparagraph| +are not really paragraphs at all. Lamport merely says +\begin{quote} +``The names \dots\ are unfortunate, since they usually +denote units that are usually composed of several +paragraphs; they have been retained for historical +reasons.'' +\end{quote} +Make of that what you will. + +Each sectioning instruction requires an `argument' -- its own +title. Since this is mandatory, it appears in braces. +(Remember that only optional arguments appear in square +brackets.) + +What do we get out of sectioning? It is easiest to see by +trying it out. As you will have realised, this document +is produced with \LaTeX. We have already used +\verb|\chapter|\index{chapter@\texttt{chapter}} at the beginning of this +`section', using the statement +\begin{verbatim} +\chapter{Environmentally aware} +\end{verbatim} +Somehow, \LaTeX\ managed to work out that this is the +chapter~\ref{env}, and arranged for the details to be +printed out. So one of the things going on in the +background is to keep track of the level of the +sections. Similarly, this particular section started with a +\begin{verbatim} +\section{Sections and the like} +\end{verbatim} +instruction. Again, \LaTeX\ kept track of the levels. Notice +too that it presented the information in different ways. +There are no sub-sections here, but we could invent a few: +\begin{verbatim} +\section{Sections} +In article and report, section is the + highest level. +\subsection{Subsections} +After the section comes the subsection. +\subsubsection{Subsubsection} +After that comes the subsubsection. +\paragraph{Paragraph} +Then we have paragraphs which run on + immediately after the paragraph label. +\subparagraph{Subparagraph} +And at the very lowest level, the + subparagraph, which, like the paragraph + runs on. +\end{verbatim} + yields Figure~\ref{sectioning} where the slight reduction in size is +deliberately introduced to highlight these sub-divisions. +Each of these sections must contain something, if only a lower level unit. +At the lowest unit, there must be some text. + + +\begin{figure*} +\begin{center} +\begin{minipage}{0.75\textwidth} +\small +\textbf{\large 3\quad Sections}\\[0.4\baselineskip] +In article and report, section is the highest level.\\[0.75\baselineskip] +\textbf{\normalsize 3.2\quad Subsections}\\[0.4\baselineskip] +After the section comes the subsection.\\[0.75\baselineskip] +\textbf{3.2.1\quad Subsubsection}\\[0.4\baselineskip] +After that comes the subsubsection.\\[0.75\baselineskip] +\textbf{Paragraph}\quad +Then we have paragraphs which run on immediately after the paragraph +label.\\[0.75\baselineskip] +\textbf{Subparagraph}\quad +And at the very lowest level, the subparagraph, which, like the paragraph runs +on. +\end{minipage} +\end{center} +\caption{Sub-divisions from Section to Subparagraph\label{sectioning}} +\end{figure*} + + + + +\begin{question} +This book makes no real use of \verb|\paragraph| and \verb|\subparagraph| +since its author doesn't think in those terms. Find out how \LaTeX\ +actually handles the text which follows these sectioning instructions. The +results may not be entirely anticipated. +\end{question} + + Naturally, in order to begin +(say) a subsection, you will already have begun a section. And equally +naturally, you may expect to have several subdivisions within a division. +On the other hand, as may be obvious here, the +\verb|book| style does not require the presence of +\verb|\part|. It can start with a \verb|\chapter|. +Similarly, the \verb|\article| style does not use +\verb|\chapter| at all. This does mean you can string all +your articles together into a book, all too easily, just +by a few easy edits. + +\begin{question} +Demonstrate what happens when you nest the sectioning (subsectioning, +subsubsectioning\dots) instructions inconsistently. +\end{question} + +What else have we gained? The table of contents\index{table of +contents}\index{contents} at the beginning is also generated automatically as a +result of creating sections. Now, examine the table of contents +carefully to determine which levels are actually +reflected in the table of contents which is created. The section +`argument' (the bit in braces) goes into the table of contents ({\em +toc}) in its entirety. The entry may also be used to change the +running head\index{running head}\index{head} (at the top of the +page)\footnote{not here, because the \BV\ house style over-rides this.}. + +\LaTeX\ allows you to modify the behaviour of the +sectioning\index{sections} instructions in two main ways: +\begin{enumerate} +\item we may wish a different entry +to appear in the table of contents from the `body'; or +\item we may not wish the entry to appear in the table of contents, or +the running head (and by implication, not to be numbered). +\end{enumerate} + +Both these requirements may be fairly readily +accommodated. +Changing the table of contents `\texttt{toc}' entry is readily +accomplished by adding an optional argument: +\begin{verbatim} +\subsection[What I really +want to appear]{Sub-sub-section} +\end{verbatim} +This optional argument will now appear in the table of contents +in place of the entry which introduces the subsection. +Limiting the action, and producing a `simple' entry +is possible through the \verb|*| form\index{variant}. This is another of the +instructions which have a variant form, followed immediately by the~\verb|*|. +In this case, it would appear as +\begin{verbatim} +\subsubsection*{An almost anonymous entry} +\end{verbatim} +This also suppresses the increments in the +counter for this particular subsection. +%\end{itemize} + + +\section{Table of contents} +Having mentioned the presence of a table of contents (or +a \emph{potential} table of contents), we have to say a +little more about it. This is not generated unless you do +actually ask for it. How do you ask for it? +Say\index{tableofcontents@\texttt{tableofcontents}} +\begin{verbatim} +\tableofcontents +\end{verbatim} +and \LaTeX\ will insert the table of contents at that +point. Now, if the table of contents appears somewhere at the beginning +of the document, how does \LaTeX\ `anticipate' what the section +descriptions are to be? +Since it cannot know, what actually happens is +that you run your \LaTeX\ file several times. The first +time round \LaTeX\ generates a new file of the same name, +but with a \verb|.toc|\index{toc@\texttt{.toc}} extension. It is this file which +is read the second time around. Note that it might still +be out of step, if you have edited the file in between. +Essentially what has to happen is that the very final, +unchanged file has to be run \emph{at least} twice to resolve the table +of content entries (recall that it includes the page +numbers too). + +\section{Other background activity} +Although we have not touched on figures and tables (yet), +there are similar instructions which allow list of figures and tables to be +generated. A similar sort of process goes on. A special +file is generated which contains information about the +list of figures, the list of tables, or even a glossary +or an index. The instructions for lists of figures and +tables are: +\begin{verbatim} +\listoffigures +\listoftables +\end{verbatim} +and the files they write are given the extensions +\verb|.lof|\index{lof@\texttt{.lof}} and +\verb|.lot|\index{lot@\texttt{.lot}}. In +fact, you will find that +\LaTeX\ can be altogether profligate, creating all sorts +of other files, usually with the main file's name, but +different extensions. Every \LaTeX\ job creates a +\verb|.log|\index{log@\texttt{.log}} and an +\verb|.aux|\index{aux@\texttt{.aux}} file. The log file can give +a lot of information about what +is going on. Sometimes some of it is useful. Typically +a log is produced as you run the file through \LaTeX, but +more information will be inserted into the \verb+.log+ file, which may +be consulted later. The `auxiliary' file is more specific and +contains some useful information for subsequent \LaTeX\ runs. It is not +intended for reading by people, just \LaTeX. + +The truth is simply that we very +rarely get everything finished, or right, the first time +around -- it is so tempting to run a bit through \LaTeX\ +and see if it looks any good. In passing we could +demolish the myth that electronic document preparation +saves any time or money, or that office productivity tools have anything to +do with increasing productivity. When you can make the corrections yourself, +you do, using your time, which is costly. And you seek perfection, because you +know it is attainable. Before, you were just grateful to get something -- +anything. + +Most of these extra `information' files are there solely for +\LaTeX, and are of little direct use to us (except in terms of what they will +allow us to do). They are just about human readable, but why bother? Perhaps +the key thing to note though is that if you send off your \LaTeX\ file to +someone else, or receive one from someone else, you +really should expect to have it run through your document at least twice before +it looks as it should. This is a bit unexpected for the naive +or inexperienced. + + + +\begin{question} +Now have a look and see what extra files \LaTeX\ appears +to have generated for you. Look too at an old \verb|.log| +file to see the information which \LaTeX\ will have +issued about these extra files. As usual, it is often +difficult to distinguish the useful material from the +rather less useful material (`garbage'). We really need a +\verb|.junk| file too. +\end{question} + + +%\mbox{\verb|[|\thinspace\verb|]|}. Here the optional argument allows us to + +\begin{question} +One of the things that puzzle me about +\LaTeX\ is why sections are not environments, or even +lists. \LaTeX\ will permit you to write something like +\begin{verbatim} +\begin{itemize} +\section{... +\begin{quote} +\section{..... +\end{quote} +. +. +\end{itemize} +\end{verbatim} +While I can see that the section may be part of an +environment, I am surprised that it can span environments +in this way. + +Any explanations? +\end{question} diff --git a/usergrps/uktug/baskervi/8_3/wellcome.tex b/usergrps/uktug/baskervi/8_3/wellcome.tex new file mode 100644 index 0000000000..2f2b6e572e --- /dev/null +++ b/usergrps/uktug/baskervi/8_3/wellcome.tex @@ -0,0 +1,37 @@ + +------------- +Original Text +>From Jeschin Ms Dagmar@Wellcome Trust, on 07/05/98 16:15: +To: Wujastyk Dr Dominik +Cc: Allan Dr Nigel, Serikoff Dr Nikolai + +Dear Dominik + +As discussed here is the suggested text for an advert in Baskerville. Since +you suggested the next publication date to be mid to end of June I have set +a deadline of the end of July - please amend this as seems fit should the +publication date change. + +Many thanks, Dagmar +---------------------------------------------------------------------- + +The Wellcome Trust is interested to hear from TeX experts who would be +willing and able to provide technical support and consultancy to one user +on an ad-hoc basis. + +The project concerned aims to catalogue several hundred Arabic manuscripts +and software used at the moment is MS Word, emTeX, emTeXgi and ArabTex +under MS Windows 3.11. This tool-set might change with an imminent move to +Windows NT4 or could be changed if recommended. It is foreseen that there +will be telephone inquiries as well as on-site visits. + +Interested parties should apply to The Wellcome Trust by submitting a +resume of their relevant technical experience, details of other +commitments and expected payment mode. To find out more about the +project, please e-mail Dr Nikolai Serikoff (n.serikoff@wellcome.ac.uk) , +to apply please send the requested information to Ms Dagmar Jeschin +(d.jeschin@wellcome.ac.uk or Dagmar Jeschin, The Wellcome Trust, 210 +Euston Road, London NW1 2BE) by the end of July. + + + |