The L^{A}TEX symbol fonts for use with L^{A}TEX 2ε.^{∗}

Frank Mittelbach

1995/11/28

1 Introduction

This file defines the package latexsym which makes the few additional characters available that come from the lasy fonts (L^{A}TEX’s symbol fonts). These fonts are not automatically included in the NFSS2/L^{A}TEX 2ε since they take up important space and aren’t necessary if one makes use of the packages amsfonts or amssymb.

The commands defined by the latexsym package are:

     \mho ℧ \Join ⋈ \Box □ \Diamond ◇ \leadsto ⇝
     \sqsubset ⊏ \sqsupset ⊐ \lhd ⊲ \unlhd ⊴ \rhd ⊳
     \unrhd ⊵

2 The docstrip modules

The following modules are used in the implementation to direct docstrip in generating the external files:

driver  produce a documentation driver file
package produce a package file
fd  produce a font definition file

3 The Implementation

The individual files generated from this code are identified at the very top of this file by a couple of lines looking like this:

 %<fd>\ProvidesFile{Ulasy.fd}
 %<-driver>             [????/??/?? v2.2?
 %<package>                 Standard LaTeX package (lasy symbols)]
 %<fd>              LaTeX symbol font definitions]

1 ⟨∗package⟩

∗This file has version number v2.2c, dated 1995/11/28.

\symlasy It is possible to detect whether or not the L^{A}TEX symbols are already defined by

checking for the math group number with the name \symlasy.

In that case we exit but write a message to the transcript file

 2 \ifx\symlasy\undefined \else
 3 \wlog{Package latexsym: nothing to set up^^J}%
 4 \endinput \fi

Otherwise we define the new symbol font.

 5 \DeclareSymbolFont{lasy}{U}{lasy}{m}{n}
 6 \SetSymbolFont{lasy}{bold}{U}{lasy}{b}{n}

Because the lasy symbols are made an error in the format we have to undefine them before we can set them anew with \DeclareMathSymbol.

 7 \let\mho\undefined            \let\sqsupset\undefined
 8 \let\Join\undefined           \let\lhd\undefined
 9 \let\Box\undefined            \let\unlhd\undefined
10 \let\Diamond\undefined        \let\rhd\undefined
11 \let\leadsto\undefined        \let\unrhd\undefined
12 \let\sqsubset\undefined
13 \DeclareMathSymbol\mho     {\mathord}{lasy}{"30}
14 \DeclareMathSymbol\Join    {\mathrel}{lasy}{"31}
15 \DeclareMathSymbol\Box     {\mathord}{lasy}{"32}
16 \DeclareMathSymbol\Diamond {\mathord}{lasy}{"33}
17 \DeclareMathSymbol\leadsto {\mathrel}{lasy}{"3B}
18 \DeclareMathSymbol\sqsubset{\mathrel}{lasy}{"3C}
19 \DeclareMathSymbol\sqsupset{\mathrel}{lasy}{"3D}
20 \DeclareMathSymbol\lhd     {\mathbin}{lasy}{"01}
21 \DeclareMathSymbol\unlhd   {\mathbin}{lasy}{"02}
22 \DeclareMathSymbol\rhd     {\mathbin}{lasy}{"03}
23 \DeclareMathSymbol\unrhd   {\mathbin}{lasy}{"04}

To save some space we can remove the definition of \not@base since it isn’t any longer needed. (We use \@undefined so that gives an error and not a recursive definition if it is still used somewhere.)

24 \let\not@base\@undefined

25 ⟨/package⟩

3.1 L^{A}TEX symbols fonts

The rest of this file defines the the font shape declarations that have to go into the corresponding .fd file.

26 ⟨∗fd⟩

27 \DeclareFontFamily{U}{lasy}{}
28 \DeclareFontShape{U}{lasy}{m}{n}{ <5> <6> <7> <8> <9> gen * lasy
29  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>lasy10  }{}

Since there are no bold lasy symbols below 10pt we silently substitute them the medium ones to avoid terminal warnings if \boldmath is selected.

30 \DeclareFontShape{U}{lasy}{b}{n}{ <-10> ssub * lasy/m/n
31  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>lasyb10  }{}

32 ⟨/fd⟩

The next line goes into all files and in addition prevents docstrip from adding any further code from the main source file (such as a character table).

33 \endinput