# substitutefont

Combine font families

Copyright:
  © 2010 Günter Milde <milde@users.sf.net>
Contributor:

  Special thanks to Ulrike Fischer who provided the indirect definition with active \nfss@catcodes.

Licence:

  This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or (at your option) any later version.

Abastract:

  In traditional 8-bit LaTeX, fonts are restricted to 256 glyphs per file. To support different languages and scripts, the New Font Selection Scheme uses a set of TeX font encodings [encguide].

  Many Latin TeX fonts do not support Greek or Cyrillic, while many non-Latin fonts are extensions of a Latin font family but use a different family name due to license reasons or the creators preference.

  The substitutefont package facilitates the task to set up a font family as substitute for another one in a specified font encoding.

News:

  The package is obsoleted by the NFSS command \DeclareFontFamilySubstitution added to the LaTeX kernel in the 2020-02 release [ltnews31].

Source:

  substitutefont.sty

  The literate source was converted with PyLit to reStructuredText and with Docutils to the HTML documentation substitutefont.sty.html.

## Usage

This package is obsolete.

Authors are encouraged to use the command \DeclareFontFamilySubstitution provided by the LaTeX kernel.

Existing documents can be updated by removing \usepackage{substitutefont} and replacing all uses of \substitutefont with \DeclareFontFamilySubstitution.

The macro \substitutefont{<encoding>}{<family>}{<new-family>} selects the font family <new-family> as replacement for <family> in the font encoding <encoding>. The substitution must be defined before the first use of the specified font encoding, preferably in the document preamble. In contrast to the deprecated \substitutefontfamily macro provided by Babel, \substitutefont does not write auxiliary files.

The <encoding> is one of the LaTeX font encodings [encguide], e.g., T1 for Latin, T2A for Cyrillic(Russian), or LGR for Greek.

For <family> and <new-family>, use the «TeX names» of the font. They are defined by a TeX font package’s *.fd or *.sty file(s). LaTeX stores the default family names for Roman, Sans-Serif, and Teletype fonts in the \rmdefault, \sfdefault, and \ttdefault macros respectively.

Example: Set the font family to Palatino using the standard package mathpazo for Latin and GFS Didot for Greek:

    \usepackage[sc,slantedGreek]{mathpazo}
    \usepackage{substitutefont}
    \substitutefont{LGR}{\rmdefault}{udidot}

For details on LaTeX font selection, see [encguide] and [fntguide].

## Tests/Examples

- Simple test with Latin fonts: substitutefont-test.tex, substitutefont-test.pdf

- Palatino with Greek from GFS Didot: greek-palatino-didot.tex, greek-palatino-didot.pdf

- Times/Helvetica/Courier (newtx) with GFS Artemisia, GFS Neohellenic, and teletype from the CB fonts: greek-times-artemisia.tex, greek-times-artemisia.pdf (see also package txfontsb)

- Latin Modern with Cyrillic from CM LGC: cyrillic-lm-lgc.tex, cyrillic-lm-lgc.pdf

- Times/Helvetica/Courier (TeX Gyre) with Cyrillic ParaType fonts: cyrillic-paratype.tex, cyrillic-paratype.pdf

## References

[encguide] (1,2,3)

Frank Mittelbach, Robin Fairbairns, Werner Lemberg, LaTeX3 Project Team, LaTeX font encodings: https://mirrors.ctan.org/macros/latex/doc/encguide.pdf.

[fntguide]

LaTeX3 Project Team, LaTeX 2e font selection: https://mirrors.ctan.org/macros/latex/doc/fntguide.pdf.

[ltnews31]

LaATeX News, Issue 31, February 2020, p. 3: https://www.latex-project.org/news/latex2e-news/ltnews31.pdf.