% *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
%	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
% ************************************************************************
