summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/substitutefont/substitutefont.sty.txt
blob: 6d93be456cdb23b75e37fa5c41f51f2e520bebe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Easy font substitution
**********************

:Copyright: © 2010 Günter Milde

: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 any later version.

:Abstract: Provide the ``\substitutefont`` macro for defining
           substitute fonts for specified font encodings.

:Identification:
 ::

  \NeedsTeXFormat{LaTeX2e}
  \ProvidesPackage{substitutefont}
  [2012/07/07 v0.1.3 combine font families]

Changelog:
  .. class:: borderless

  ============  ===== =================================================
   2010-11-04   0.1   initial version
   2012-04-30   0.1.1 documentation update, upload to CTAN
   2012-07-05   0.1.2 documentation/example update
   2012-07-07   0.1.3 bugfix (comment usage example)
  ============  ===== =================================================


Usage
=====

The macro ``\substitutefont{<encoding>}{<family>}{<new-family>}``
selects the font <new-family> as replacement for <family> if the font
encoding is <encoding> in the variants "normal", "italic", "slanted",
and "small-caps" and the shapes "medium", "bold", and "bold-extended".

Example:
  Palatino with the standard package `mathpazo` for Latin and
  `GFS Didot`_ for Greek:

  .. code:: latex

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


Implementation
==============
::

  \begingroup
  \nfss@catcodes
  \newcommand*{\substitutefont}[3]{%
   \DeclareFontFamily{#1}{#2}{}
   \DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}
   \DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}
   \DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}
   \DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}
   \DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/b/n}{}
   \DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/b/it}{}
   \DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/b/sl}{}
   \DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/b/sc}{}
   \DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}
   \DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}
   \DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}
   \DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}
  }
  \global\let\substitutefont\substitutefont
  \endgroup

.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
.. _GFS Didot: http://mirror.ctan.org/help/Catalogue/entries/gfsdidot.html