% *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % Copyright (C) 1991 - 1994 Y&Y, Inc. All Rights Reserved % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % lcdplain.tex Version 2.2 1995 March 1 % % This TeX macro header file is used for replacing CM fonts with the % LucidaBright + LucidaNewMath fonts from Y&Y in Adobe Type 1 format. % % \input lcdplain.tex at the top of your TeX source file. % This countermands declarations in plain.tex which set up the CM fonts. % % This is for use with plain TeX --- for LaTeX 2.09 use `lcdlatex.tex' % instead. For LaTeX 2e, instead run `lucida.ins' on `lucida.dtx' from % PSNFSS on CTAN (ftp.shsu.edu, ftp.tex.ac.uk, ftp.dante.de). % % NOTE: Loading many new fonts on top of a predefined format may cause % some implementations of TeX to run out of space for fonts. % You may wish to create a new `TeX format' in that case using `ini TeX' % (or use a `big' TeX, or better yet a `dynamic' TeX). % % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % \chardef\lqcode=\catcode96 % remember catcode of quoteleft \catcode96=12 % make quoteleft act as `other' \chardef\rqcode=\catcode39 % remember catcode of quoteright \catcode39=12 % make quoteright act as `other' % We make @ signs act like letters, temporarily, to avoid conflict % between user names and internal control sequences of plain format. \chardef\atcode=\catcode`\@ % save catcode of at sign \catcode`\@=11 % make at a letter % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % LucidaBright has larger x-height and cap-height than CM, so it is % desirable to use a somewhat smaller font size (95%), as is done here. % Also, since smaller sizes are derived by scaling, it is better to % increase the relative size of super/sub-scripts a bit, as shown here. % set up the basic set of fonts needed - for additional ones see later % plain CM uses: 5, 6, 7, 8, 9, 10, 11, 12, 14, 18 % plain LB uses: 5.2, 6.1, 6.9, 7.8, 8.6, 9.5, 10.4, 11.2, 12.9, 16.4 \font\tenrm=lbr at 9.5pt \font\sevenrm=lbr at 6.9pt \font\fiverm=lbr at 5.2pt \font\teni=lbmo at 9.5pt \font\seveni=lbmo at 6.9pt \font\fivei=lbmo at 5.2pt \font\tensy=lbms at 9.5pt \font\sevensy=lbms at 6.9pt \font\fivesy=lbms at 5.2pt \font\tenex=lbme at 9.5pt \font\sevenex=lbme at 6.9pt \font\fiveex=lbme at 5.2pt \font\tenbf=lbd at 9.5pt \font\sevenbf=lbd at 6.9pt \font\fivebf=lbd at 5.2pt \font\tensl=lbsl at 9.5pt \font\sevensl=lbsl at 6.9pt \font\fivesl=lbsl at 5.2pt \font\tentt=lstr at 9.5pt \font\seventt=lstr at 6.9pt \font\fivett=lstr at 5.2pt \font\tenit=lbi at 9.5pt \font\sevenit=lbi at 6.9pt \font\fiveit=lbi at 5.2pt \font\tenar=lbma at 9.5pt \font\sevenar=lbma at 6.9pt \font\fivear=lbma at 5.2pt \skewchar\teni=127 \skewchar\seveni=127 \skewchar\fivei=127 \skewchar\tensy=48 \skewchar\sevensy=48 \skewchar\fivesy=48 % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy % \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex \textfont3=\tenex \scriptfont3=\sevenex \scriptscriptfont3=\fiveex \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf \textfont\ttfam=\tentt \def\hexnumber#1{\ifcase #10\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or A\or B\or C\or D\or E\or F\fi} % Create a new family for the LucidaNewMath-Arrows font now: \newfam\arfam \def\ar{\fam\arfam\tenar} % \ar is family 8 in plain TeX \textfont\arfam=\tenar \scriptfont\arfam=\sevenar \scriptscriptfont\arfam=\fivear \edef\thearfam{\hexnumber\arfam} % LucidaNewmath-Arrows is family 8 - can now refer to it using \thearfam % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Set up some additional sizes. If you need to conserve TeX memory % (or gain some speed), then comment out the rarely used sizes marked with %* % math italic \font\eighteeni=lbmo at 16.4pt %* \font\fourteeni=lbmo at 12.9pt %* \font\twelvei=lbmo at 11.2pt %* \font\eleveni=lbmo at 10.4pt %* %\font\teni=lbmo at 9.5pt \font\ninei=lbmo at 8.6pt %* \font\eighti=lbmo at 7.8pt %* %\font\seveni=lbmo at 6.9pt \font\sixi=lbmo at 6.1pt %* %\font\fivei=lbmo at 5.2pt % math symbols \font\eighteensy=lbms at 16.4pt %* \font\fourteensy=lbms at 12.9pt %* \font\twelvesy=lbms at 11.2pt %* \font\elevensy=lbms at 10.4pt %* %\font\tensy=lbms at 9.5pt \font\ninesy=lbms at 8.6pt %* \font\eightsy=lbms at 7.8pt %* %\font\sevensy=lbms at 6.9pt \font\sixsy=lbms at 6.1pt %* %\font\fivesy=lbms at 5.2pt % math extension \font\eighteenex=lbme at 16.4pt %* \font\fourteenex=lbme at 12.9pt %* \font\twelveex=lbme at 11.2pt %* \font\elevenex=lbme at 10.4pt %* %\font\tenex=lbme at 9.5pt % roman text \font\eighteenrm=lbr at 16.4pt %* \font\fourteenrm=lbr at 12.9pt %* \font\twelverm=lbr at 11.2pt \font\elevenrm=lbr at 10.4pt %* %\font\tenrm=lbr at 9.5pt \font\ninerm=lbr at 8.6pt \font\eightrm=lbr at 7.8pt %\font\sevenrm=lbr at 6.9pt \font\sixrm=lbr at 6.1pt %* %\font\fiverm=lbr at 5.2pt % text italic \font\eighteenit=lbi at 16.4pt %* \font\fourteenit=lbi at 12.9pt %* \font\twelveit=lbi at 11.2pt %* \font\elevenit=lbi at 10.4pt %* %\font\tenit=lbi at 9.5pt \font\nineit=lbi at 8.6pt \font\eightit=lbi at 7.8pt %* % boldface extended \font\eighteenbf=lbd at 16.4pt %* \font\fourteenbf=lbd at 12.9pt %* \font\twelvebf=lbd at 11.2pt \font\elevenbf=lbd at 10.4pt %* %\font\tenbf=lbd at 9.5pt \font\ninebf=lbd at 8.6pt \font\eightbf=lbd at 7.8pt %* %\font\sevenbf=lbd at 6.9pt \font\sixbf=lbd at 6.1pt %* %\font\fivebf=lbd at 5.2pt % text bold italic \font\eighteenbi=lbdi at 16.4pt %* \font\fourteenbi=lbdi at 12.9pt %* \font\twelvebi=lbdi at 11.2pt \font\elevenbi=lbdi at 10.4pt %* \font\tenbi=lbdi at 9.5pt %* \font\ninebi=lbdi at 8.6pt %* \font\eightbi=lbdi at 7.8pt %* % typewriter \font\eighteentt=lstr at 16.4pt %* \font\fourteentt=lstr at 12.9pt %* \font\twelvett=lstr at 11.2pt %* \font\eleventt=lstr at 10.4pt %* %\font\tentt=lstr at 9.5pt \font\ninett=lstr at 8.6pt %* \font\eighttt=lstr at 7.8pt %* % slanted roman \font\eighteensl=lbsl at 16.4pt %* \font\fourteensl=lbsl at 12.9pt %* \font\twelvesl=lbsl at 11.2pt \font\elevensl=lbsl at 10.4pt %* %\font\tensl=lbsl at 9.5pt \font\ninesl=lbsl at 8.6pt %* \font\eightsl=lbsl at 7.8pt %* % If we do define math fonts here we would need to also set \skewchar: \skewchar\eighteeni=127 \skewchar\fourteeni=127 \skewchar\twelvei=127 \skewchar\eleveni=127 \skewchar\teni=127 \skewchar\ninei=127 \skewchar\eighti=127 \skewchar\seveni=127 \skewchar\sixi=127 \skewchar\fivei=127 \skewchar\eighteensy=48 \skewchar\fourteensy=48 \skewchar\twelvesy=48 \skewchar\elevensy=48 \skewchar\tensy=48 \skewchar\ninesy=48 \skewchar\eightsy=48 \skewchar\sevensy=48 \skewchar\sixsy=48 \skewchar\fivesy=48 % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Adjusted for LucidaNewMath-Extension at 9.5pt and math axis at 3.13pt % Note: delimiter increments are 5.5pt (as opposed to 6pt in CM) \def\big#1{{\hbox{$\left#1\vbox to8.20\p@{}\right.\n@space$}}} \def\Big#1{{\hbox{$\left#1\vbox to10.80\p@{}\right.\n@space$}}} \def\bigg#1{{\hbox{$\left#1\vbox to13.42\p@{}\right.\n@space$}}} \def\Bigg#1{{\hbox{$\left#1\vbox to16.03\p@{}\right.\n@space$}}} \def\biggg#1{{\hbox{$\left#1\vbox to17.72\p@{}\right.\n@space$}}} \def\Biggg#1{{\hbox{$\left#1\vbox to21.25\p@{}\right.\n@space$}}} \def\n@space{\nulldelimiterspace\z@ \m@th} % define some extra large sizes - always done using extensible parts \def\bigggl{\mathopen\biggg} \def\bigggr{\mathclose\biggg} \def\Bigggl{\mathopen\Biggg} \def\Bigggr{\mathclose\Biggg} % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Following is needed if the roman text font is NOT just LucidaBright % Draw the small sizes of `[' and `]' from LBMO instead of LBR \mathcode`\[="4186 \delcode`\[="186302 \mathcode`\]="5187 \delcode`\]="187303 % Draw the small sizes of `(' and `)' from LBMO instead of LBR \mathcode`\(="4184 \delcode`\(="184300 \mathcode`\)="5185 \delcode`\)="185301 % The small sizes of `{' and `}' are already drawn from LBMS instead of LBR % Draw small `/' from LBMO instead of LBR \mathcode`\/="013D \delcode`\/="13D30E % Draw `=' and `+' from LBMS instead of LBR \mathcode`\=="3283 \mathcode`\+="2282 % May want to comment out this last one if text font IS known to be LBR % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Make open face brackets accessible, i.e. [[ and ]] \def\ldbrack{\delimiter"4182382 } \def\rdbrack{\delimiter"5183383 } % Provide access to surface integral signs (linked from text to display size) \mathchardef\surfintop="1390 \def\surfint{\surfintop\nolimits} % Make medium size integrals available (NOT linked to display size) \mathchardef\midintop="1392 \def\midint{\midintop\nolimits} \mathchardef\midointop="1393 \def\midoint{\midointop\nolimits} \mathchardef\midsurfintop="1394 \def\midsurfint{\midsurfintop\nolimits} % Extensible integral (use with \bigg, \Bigg, \biggg, \Biggg etc) \def\largeint{\delimiter"135A395 } % Various types of small integrals % \mathchardef\dblint="0188 % \mathchardef\trplint="0189 % \mathchardef\contint="018A % \mathchardef\surfint="018B % \mathchardef\volint="018C % \mathchardef\clwint="018D % \mathchardef\cclwcint="018E % \mathchardef\clwcint="018F % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % To close up gaps in special math characters constructed from pieces \def\joinrel{\mathrel{\mkern-4mu}} % \def\joinrel{\mathrel{\mkern-3mu}} % The \mkern-2.5mu undoes the bogus `italic correction' after joiners in LBMA \def\relbar{\mathrel{\smash{\mathchar"3\thearfam 2D}}\mathrel{\mkern-2.5mu}} \def\Relbar{\mathrel{\mathchar"3\thearfam 3D}\mathrel{\mkern-2.5mu}} % The \mkern4mu undoes the overhang at the ends of the joiners (and more) \def\longleftarrow{\leftarrow\relbar\mathrel{\mkern4mu}} \def\longrightarrow{\mathrel{\mkern4mu}\relbar\rightarrow} \def\Longleftarrow{\Leftarrow\Relbar\mathrel{\mkern4mu}} \def\Longrightarrow{\mathrel{\mkern4mu}\Relbar\Rightarrow} % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Some characters that need construction in CM exist complete in LBMO or LBMS \mathchardef\bowtie="31F6 \mathchardef\models="32EE \mathchardef\doteq="32C9 \mathchardef\cong="329B \mathchardef\angle="028B % Other characters may be found in LucidaNewMath-Arrows (more negated later) % \mathchardef\hbar="0\thearfam 1B \mathchardef\hbar="019D \mathchardef\neq="3\thearfam 94 \mathchardef\rightleftharpoons="3\thearfam 7A \mathchardef\leftrightharpoons="3\thearfam 79 \mathchardef\hookleftarrow="3\thearfam 3C \mathchardef\hookrightarrow="3\thearfam 3E \mathchardef\mapsto="3\thearfam 2C % \def\longmapsto{\mapstochar\longrightarrow} % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % SPECIAL LaTeX character definitions (originally from LaTeX symbol font) \mathchardef\mho"0192 \mathchardef\Join"31F6 \mathchardef\sqsubset"32E4 \mathchardef\sqsupset"32E5 \mathchardef\rhd"312E \mathchardef\lhd"312F \mathchardef\unlhd"32F4 \mathchardef\unrhd"32F5 \mathchardef\Box"0\thearfam 02 \mathchardef\Diamond"0\thearfam 08 \mathchardef\leadsto"3\thearfam 8E \mathchardef\leadsfrom"3\thearfam 8D % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Here are some additional adjustments: % following changed because `(' is not large enough for strut in LBMO \def\mathstrut{\vphantom{f}} % In n-th root, don't want the `n' to come too close to the radical \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\z@} % The following are the standard plain TeX defaults for CM % \delimiterfactor=901 % \delimitershortfall=5pt % \nulldelimiterspace=1.2pt % \scriptspace=0.5pt % \thinmuskip=3mu % \medmuskip=4mu plus 2mu minus 4mu % \thickmuskip=5mu plus 5mu % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Here are some extra definitions of mathematical symbols and operators % {\buildrel \rm def \over =} \mathchardef\defineequal"32D6 % Here are some negated operators from LucidaNewMath-Arrows: \mathchardef\notleq="3\thearfam 9C \mathchardef\notgeq="3\thearfam 9D \mathchardef\notequiv="3\thearfam 95 \mathchardef\notprec="3\thearfam E5 \mathchardef\notsucc="3\thearfam E6 \mathchardef\notapprox="3\thearfam 98 \mathchardef\notpreceq="3\thearfam E7 \mathchardef\notsucceq="3\thearfam E8 \mathchardef\notasymp="3\thearfam F3 \mathchardef\notsubset="3\thearfam C6 \mathchardef\notsupset="3\thearfam C7 \mathchardef\notsim="3\thearfam 96 \mathchardef\notsubseteq="3\thearfam C8 \mathchardef\notsupseteq="3\thearfam C9 \mathchardef\notsimeq="3\thearfam 97 \mathchardef\notsqsubseteq="3\thearfam D4 \mathchardef\notsqsupseteq="3\thearfam D5 \mathchardef\notcong="3\thearfam 99 \mathchardef\notin="3\thearfam 1D \mathchardef\notni="3\thearfam 1F \mathchardef\notvdash="3\thearfam F8 \mathchardef\notmodels="3\thearfam F9 \mathchardef\notparallel="3\thearfam F7 \mathchardef\noteq="3\thearfam 94 \mathchardef\notless="3\thearfam 9A \mathchardef\notgreater="3\thearfam 9B \mathchardef\notmid="3\thearfam F6 % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Draw small radical from LBME also (do this ONLY if LBME exist in three sizes) \def\sqrt{\radical"39F370 } % \def\sqrt{\radical"270370 } % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Now for some AMS TeX items % Start with black-board bold (open face) characters \def\nonmatherr@#1{\errmessage{\string#1\space allowed only in math mode}} \def\Bbb{\relax\ifmmode\expandafter\Bbb@\else \expandafter\nonmatherr@\expandafter\Bbb\fi} \def\Bbb@#1{{\Bbb@@{#1}}} \def\Bbb@@#1{\fam\arfam\relax#1} % \mathchardef\Bbbk="0\thearfam 6B % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % plain.tex draws upper case upright Greek from roman text font --- % --- need to draw instead from LucidaNewMath-Extension \mathchardef\Gamma="03D0 \mathchardef\Delta="03D1 \mathchardef\Theta="03D2 \mathchardef\Lambda="03D3 \mathchardef\Xi="03D4 \mathchardef\Pi="03D5 \mathchardef\Sigma="03D6 \mathchardef\Upsilon="03D7 \mathchardef\Phi="03D8 \mathchardef\Psi="03D9 \mathchardef\Omega="03DA % Draw upper case italic Greek from LucidaNewMath-Italic --- % --- use the following instead of \mit for italic Greek \mathchardef\varGamma="0100 \mathchardef\varDelta="0101 \mathchardef\varTheta="0102 \mathchardef\varLambda="0103 \mathchardef\varXi="0104 \mathchardef\varPi="0105 \mathchardef\varSigma="0106 \mathchardef\varUpsilon="0107 \mathchardef\varPhi="0108 \mathchardef\varPsi="0109 \mathchardef\varOmega="010A % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % THE \LaTeX AND \SLiTeX LOGOS ARE DEFINED HERE (for plain TeX) \font\scrm=lbr at 7.5pt % for LucidaBright \def\TeX{T\kern-.18em\lower.4ex\hbox{E}\kern-.1emX} \def\LaTeX{L\kern-.25em\raise.3ex\hbox{\scrm A}\kern-.15em% T\kern-.18em\lower.4ex\hbox{E}\kern-.1emX} \def\SLiTeX{S\kern-.06em{\scrm L\kern-.015emI}\kern-.01em% T\kern-.18em\lower.4ex\hbox{E}\kern-.1emX} % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Ideally, \matrix should be changed because fonts (i.e. LBMO) not at 10pt, % but \matrix is defined differently in AMS TeX than in plain TeX & LaTeX. \ifx\amstexloaded@\relax \def\matrix{\null\,\vcenter\bgroup\Let@\vspace@ \normalbaselines\openup\spreadmlines@\ialign \bgroup\hfil$\m@th##$\hfil&&\quad\hfil$\m@th##$\hfil\crcr \Mathstrut@\crcr\noalign{\kern-0.9\baselineskip}} \def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-0.9\baselineskip}\egroup \egroup\,} \else \def\matrix#1{\null\,\vcenter{\normalbaselines\m@th \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-0.9\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-0.9\baselineskip}}}\,} \fi \catcode`\@=\atcode % restore original catcode of at sign \catcode`\'=\rqcode % restore original catcode of quoteright \catcode`\`=\lqcode % restore original catcode of quoteleft \rm \endinput % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % AMS TeX with amsppt.sty: % For use with amsppt.sy, need the following fonts (make sure uncommented): % \eightbf, \eightit, \eightsl, \eighttt, \sevenit, \sixrm, \sixbf, % \eighti, \sixi, \eightsy, \sixsy % *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** % % Note that plain TeX has the accent character positions hardwired to: % 16 for `dotlessi', 17 for `dotlessj', % 18 for `grave', 19 for `acute', 20 for `caron', % 21 for `breve', 22 for `macron', % 23 for `ring', 24 for `cedilla', % 25 for `germandbls', 26 for `ae', 27 for `oe', % 28 for `oslash', 29 for `AE', 30 for 'OE', 31 for `Oslash', % 94 for `circumflex', 95 for `dotaccent', 125 for `hungarumlaut', % 126 for `tilde', 127 for `dieresis', % (see page 356 of the TeX book, and plain.tex for additional information) % These should be adjusted - if these characters are to be used - % AND if the text fonts are encoded to something other than TeX text % \input texnansi.tex if you are using `TeX n ANSI' encoding % \input ansiacce.tex if you are using Windows ANSI encoding % \input stanacce.tex if you are using Adobe StandardEncoding % ************************************************************************ % Y&Y, Inc. 45 Walden Street, Concord, MA 01742 USA (508) 371-3286 % ************************************************************************