Typesetting with the Computer Modern Bright fonts

Walter Schmidt

(v4.0b – 1995/10/22)

1 Description

The L^{A}TEX macro package cmbright supports typesetting with the font family ‘Computer Modern Bright’ in traditional (OT1) or extended (T1, Cork) encoding. Loading this package will effect the following:

• The default sans serif font family will be CM Bright.

• The sans serif font family will be the default for the whole document, in text and math mode.

• The default typewriter font family will be CM Typewriter Light, which blends better with CM Bright than the cmtt fonts do.

   • The leading for the font sizes \normalsize, \small and \footnotesize

will be increased.

To typeset with CM Bright in traditional encoding for both text and math mode you have put the following command in the preamble:

     \usepackage{cmbright}

If you want to use the extended (T1) encoding in text mode:

     \usepackage{cmbright}
     \usepackage[T1]{fontenc}

CM Bright fonts are available as fontseries m and bx. In the medium series, there is a slanted shape, too. If italic is requested, it will be replaced by the slanted font.

All the standard fonts for typesetting mathematics are provided. A new mathematical alphabet \mathbold provides bold slanted letters. There is, however, no bold \mathversion to bolden complete formulae.

Problems and known bugs

• With the CM Bright fonts the line width may be larger than with CM Roman at the same size. This package, however, does not change the document layout.

• Macro packages which read the current value of \baselineskip must be loaded after cmbright.

• The OT1 encoded CM Bright fonts do not provide a \pounds sign.

• The oldstyle numerals are taken from the mathematical font. This may be incompatible to future versions of L^{A}TEX.

The code

Default font families

The sans serif font family will be the default one:

1 ⟨∗cm⟩

 2 \renewcommand{\familydefault}{\sfdefault}

CM Bright will be the default sans serif font family:

 3 \renewcommand{\sfdefault}{cmbr}

CM Typewriter Light will be the default typewriter font family, because the usual cmtt fonts look too dark in combination with CM Bright:

 4 \renewcommand{\ttdefault}{cmtl}

Mathematical fonts

Definitions which remain unchanged are commented out:

 5 \DeclareSymbolFont{operators} {OT1}{cmbr}{m}{n}
 6 \DeclareSymbolFont        {letters} {OML}{cmbrm}{m}{it}
 7 \DeclareSymbolFont        {symbols} {OMS}{cmbrs}{m}{n}
 8 % \DeclareSymbolFont {largesymbols} {OMX}{cmex}{m}{n}
 9 %
10 % \DeclareSymbolFontAlphabet    {\mathrm} {operators}
11 % \DeclareSymbolFontAlphabet{\mathnormal} {letters}
12 % \DeclareSymbolFontAlphabet   {\mathcal} {symbols}

13 %

14 \DeclareMathAlphabet{\mathit} {OT1}{cmbr}{m}{sl}
15 \DeclareMathAlphabet{\mathbf} {OT1}{cmbr}{bx}{n}
16 \DeclareMathAlphabet{\mathtt} {OT1}{cmtl}{m}{n}

Despite its name \mathrm is not a font with serifs, but it is, what the user expects it to be: it’s the upright font used e. g. for operator names.

We do not set up a bold \mathversion, but we make a bold slanted mathematical font available:

17 \DeclareMathAlphabet{\mathbold}{OML}{cmbrm}{b}{it}

Font sizes and leading

The \baselineskip should be larger than with CM Roman. For text sizes, i.e. 8–12 pt, a value of 1.25 × designsize is recommended.

18 \ifcase\@ptsize\relax% 10pt
19 \renewcommand{\normalsize}{%
20 \@setfontsize\normalsize\@xpt{12.5}
21 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
22 \abovedisplayshortskip \z@ \@plus3\p@
23 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
24 \belowdisplayskip \abovedisplayskip
25 \let\@listi\@listI}
26 \normalsize
27 \renewcommand{\small}{%
28 \@setfontsize\small\@ixpt{11.25}%
29 \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
30 \abovedisplayshortskip \z@ \@plus2\p@
31 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
32 \def\@listi{\leftmargin\leftmargini
33  \topsep 4\p@ \@plus2\p@ \@minus2\p@
34  \parsep 2\p@ \@plus\p@ \@minus\p@
35  \itemsep \parsep}%
36 \belowdisplayskip \abovedisplayskip

37 }

38 \renewcommand{\footnotesize}{%
39 \@setfontsize\footnotesize\@viiipt{10}%
40 \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
41 \abovedisplayshortskip \z@ \@plus\p@
42 \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
43 \def\@listi{\leftmargin\leftmargini
44  \topsep 3\p@ \@plus\p@ \@minus\p@
45  \parsep 2\p@ \@plus\p@ \@minus\p@
46  \itemsep \parsep}%
47 \belowdisplayskip \abovedisplayskip

48 }

49 \or% 11pt
50 \renewcommand\normalsize{%
51 \@setfontsize\normalsize\@xipt{13.75pt}%
52 \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
53 \abovedisplayshortskip \z@ \@plus3\p@
54 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
55 \belowdisplayskip \abovedisplayskip
56 \let\@listi\@listI}
57 \normalsize
58 \renewcommand\small{%
59 \@setfontsize\small\@xpt{12.5}
60 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@

61 \abovedisplayshortskip \z@ \@plus3\p@
62 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
63 \def\@listi{\leftmargin\leftmargini
64  \topsep 6\p@ \@plus2\p@ \@minus2\p@
65  \parsep 3\p@ \@plus2\p@ \@minus\p@
66  \itemsep \parsep}%
67 \belowdisplayskip \abovedisplayskip

68 }

69 \renewcommand\footnotesize{%
70 \@setfontsize\footnotesize\@ixpt{11.25}%
71 \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
72 \abovedisplayshortskip \z@ \@plus\p@
73 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
74 \def\@listi{\leftmargin\leftmargini
75  \topsep 4\p@ \@plus2\p@ \@minus2\p@
76  \parsep 2\p@ \@plus\p@ \@minus\p@
77  \itemsep \parsep}%
78 \belowdisplayskip \abovedisplayskip

79 }

80

81 \or% 12pt
82 \renewcommand{\normalsize}{%
83 \@setfontsize\normalsize\@xiipt{15}%
84 \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
85 \abovedisplayshortskip \z@ \@plus3\p@
86 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
87 \belowdisplayskip \abovedisplayskip
88 \let\@listi\@listI}
89 \normalsize
90 \renewcommand{\footnotesize}{%
91 \@setfontsize\footnotesize\@xpt{12.5}
92 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
93 \abovedisplayshortskip \z@ \@plus3\p@
94 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
95 \def\@listi{\leftmargin\leftmargini
96  \topsep 6\p@ \@plus2\p@ \@minus2\p@
97  \parsep 3\p@ \@plus2\p@ \@minus\p@
98  \itemsep \parsep}%
99 \belowdisplayskip \abovedisplayskip

100 }

101 \let\small=\footnotesize
102 \fi

Old-style numerals

Old-style numerals are taken from CM Bright, too:

103 \def\oldstylenums#1{%
104 \begingroup
105  \spaceskip\fontdimen\tw@\font

106  \usefont{OML}{cmbrm}{\f@series}{it}%
107  \mathgroup\symletters #1%
108 \endgroup

109 }

In the future this may change; old-style numerals could be taken from the ‘text companion font’, thus even providing ‘oldstyle bold extended’ …

Patches

With a L^{A}TEX release previous to 1995/06/01 some macros from the L^{A}TEX kernel and the standard classes must be redefined, because they explicitely select a font with serifs:

110 ⟨∗patch⟩

111 \typeout{*}
112 \typeout{* This package contains patches so that it can be}
113 \typeout{* used with a LaTeX release previous to June 1995.}
114 \typeout{* However, if your LaTeX is from 1995/06/01 or newer,}
115 \typeout{* you MUST redo the installation of the `cmbright'}
116 \typeout{* files in order to generate this package again,}
117 \typeout{* without these patches!}
118 \typeout{*}

119 %

120 \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
121 \vskip \z@ \@plus.2\p@
122 {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
123  \parindent #2\relax\@afterindenttrue
124 \interlinepenalty\@M
125 \leavevmode
126 \@tempdima #3\relax
127 \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
128  {#4}\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
129  mu$}\hfill \nobreak
130  \hbox to\@pnumwidth{\hfil\reset@font #5}\par}\fi}

131 %

132 \def\@eqnnum{{\reset@font(\theequation)}}

133 %

134 \DeclareOption{leqno}{
135 \renewcommand\@eqnnum{\hbox to .01\p@{}%
136  \rlap{\reset@font%
137  \hskip -\displaywidth(\theequation)}}}

138 %

139 \def\ps@plain{\let\@mkboth\@gobbletwo
140  \let\@oddhead\@empty\def\@oddfoot{\reset@font\hfil\thepage
141  \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
142 \pagestyle{plain}

143 ⟨/patch⟩

Initialization

144 ⟨+patch⟩ \ProcessOptions
145 \normalfont

146 ⟨/cm⟩

This file …

… cmbright.dtx contains the following DocStrip modules:

module: contents:

cm  package cmbright

driver driver for documentaion
patch patches for L^{A}TEX release < June 1995

The module patch should only be selected together with cm.

The next line of code prevents DocStrip from adding the character table to all modules:

147 \endinput