summaryrefslogtreecommitdiff
path: root/obsolete
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-08-15 03:00:53 +0000
committerNorbert Preining <norbert@preining.info>2023-08-15 03:00:53 +0000
commit3593305133bcfb167225af1b35c299bde1456579 (patch)
treec80fe825c17682b4b49b9b2f9ac687210e5df157 /obsolete
parent8360ddccbd0538a65b33a2474e0b3b79acd83dab (diff)
CTAN sync 202308150300
Diffstat (limited to 'obsolete')
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/README121
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/artemisia-greek.sty23
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.pdfbin0 -> 320118 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.tex90
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.pdfbin0 -> 261997 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.tex98
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.pdfbin0 -> 522176 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.tex91
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.pdfbin0 -> 613142 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.tex75
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.pdfbin0 -> 506602 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.tex73
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/substitutefont-doc.html125
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/substitutefont-test.pdfbin0 -> 147378 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/substitutefont-test.tex53
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/substitutefont.sty81
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/substitutefont.sty.html111
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.pdfbin0 -> 439218 bytes
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.tex43
-rw-r--r--obsolete/macros/latex/contrib/substitutefont/txfontsb-test.tex71
20 files changed, 1055 insertions, 0 deletions
diff --git a/obsolete/macros/latex/contrib/substitutefont/README b/obsolete/macros/latex/contrib/substitutefont/README
new file mode 100644
index 0000000000..72c0c57c44
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/README
@@ -0,0 +1,121 @@
+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 <encguide>`_.
+
+: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
+=====
+
+.. admonition:: 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] 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.
+
+.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+
+.. _Babel: https://ctan.org/pkg/babel
+.. _CM LGC: https://ctan.org/pkg/cm-lgc
+.. _CB: https://ctan.org/pkg/cbgreek-complete
+.. _GFS Artemisia: https://ctan.org/pkg/gfsartemisia
+.. _GFS Didot: https://ctan.org/pkg/gfsdidot
+.. _GFS Neohellenic: https://ctan.org/pkg/gfsneohellenic
+.. _mathpazo: https://ctan.org/pkg/mathpazo
+.. _newtx: https://ctan.org/pkg/newtx
+.. _txfontsb: https://ctan.org/pkg/txfontsb
+.. _ParaType: https://ctan.org/pkg/paratype
+
+.. _PyLit: https://pypi.org/project/pylit/
+.. _reStructuredText: http://docutils.sourceforge.net/rst.html
+.. _Docutils: http://docutils.sourceforge.net/rst.html
diff --git a/obsolete/macros/latex/contrib/substitutefont/artemisia-greek.sty b/obsolete/macros/latex/contrib/substitutefont/artemisia-greek.sty
new file mode 100644
index 0000000000..efab528a0d
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/artemisia-greek.sty
@@ -0,0 +1,23 @@
+% :Copyright: © 2013, 2023 Günter Milde
+% :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.
+%
+% :Identification:
+% ::
+
+\ProvidesFile{artemisia-greek.sty}
+[2023-08-12 v0.2 Artemisia as Greek complement to default Roman font.]
+
+\NeedsTeXFormat{LaTeX2e}
+
+% make sure LGR is available
+\@ifundefined{ver@lgrenc.def}
+ {\input{lgrenc.def}}
+ {}
+
+% set font substitution
+% \RequirePackage{substitutefont}
+% \substitutefont{LGR}{\rmdefault}{artemisia}
+
+\DeclareFontFamilySubstitution{LGR}{\rmdefault}{artemisia}
diff --git a/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.pdf b/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.pdf
new file mode 100644
index 0000000000..d55e85d379
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.tex b/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.tex
new file mode 100644
index 0000000000..e8d5f5bf0b
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/cyrillic-lm-lgc.tex
@@ -0,0 +1,90 @@
+\documentclass[a4paper]{scrartcl}
+\usepackage[T2A, T1]{fontenc}
+\usepackage[russian,english]{babel}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+\usepackage{parskip}
+\pagestyle{empty}
+
+% Combine "Latin Modern" fonts for Latin and
+% "CLG" fonts for Cyrillic.
+\usepackage{lmodern}
+% Use LaTeX kernel macro instead of the obsolete "substitutefont" package:
+\DeclareFontFamilySubstitution{T2A}{lmr}{fcm}
+\DeclareFontFamilySubstitution{T2A}{lmss}{fcs}
+\DeclareFontFamilySubstitution{T2A}{lmtt}{fct}
+% \usepackage{substitutefont}
+% \substitutefont{T2A}{lmr}{fcm}
+% \substitutefont{T2A}{lmss}{fcs}
+% \substitutefont{T2A}{lmtt}{fct}
+
+
+\begin{document}
+
+\section*{Cyrillic fonts to match Latin Modern}
+
+Declaring the font encoding T1 (by inclusion in the option list for fontenc)
+is recommended, if the text contains accented Latin characters as is usual
+in most European languages and even in some English words (e.g. \emph{Résumé
+of Nathan Söderblom}). However, the original Computer Modern fonts (CM) are
+not available in T1 encoding. There are two alternative CM-compatible vector
+fonts supporting T1:
+
+\begin{itemize}
+
+\item The \href{https://ctan.org/pkg/cm-super}{CM-Super} package installes
+ itself as CM substitute and is used for Cyrillic text, too.
+
+\item \href{https://ctan.org/pkg/lm}{Latin Modern} does not include Cyrillic
+ fonts. The default substitution is CM, either CM-Super or
+ \href{https://ctan.org/pkg/LH}{LH} bitmap fonts.
+\end{itemize}
+
+The preamble code of this document uses \emph{substitutefont} to set up the
+vector-fonts from the \href{https://ctan.org/pkg/cm-lgc}{cm-lgc}
+package as a Cyrillic replacement for Latin Modern.
+
+\section{\foreignlanguage{russian}{Тест шрифтов}}
+
+\newcommand{\teststring}{Hello world!
+ \foreignlanguage{russian}{Здравствуй, мир!}}
+
+\begin{description}
+ \item [Normal:] \teststring
+
+ \item [it:] \textit{\teststring}
+
+ \item [sl:] \textsl{\teststring}
+
+ \item [bf:] \textbf{\teststring}
+
+ \item [bf it:] \textbf{\textit\teststring}
+
+ \item [sc:] \textsc{\teststring}
+
+ % \item [bf sc:] \textsc{\textbf\teststring} missing in Didot
+
+ \item [sf:] \textsf{\teststring}
+
+ \item [sf bf:] \textsf{\textbf\teststring}
+
+ \item [sf sl:] \textsf{\textsl\teststring}
+
+ \item [sf sc:] \textsf{\textsc\teststring}
+
+ \item [tt:] \texttt{\teststring}
+
+\end{description}
+
+\selectlanguage{english}
+
+The Russian language definition switches the font encoding from
+\emph{cyrillicencoding} to \emph{latinencoding} when changing from Russian
+to another language. Babel base sets the variable \emph{latinencoding} to T1
+if this font encoding is declared and to OT1 else.
+
+\selectlanguage{russian}
+
+До свидания!
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.pdf b/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.pdf
new file mode 100644
index 0000000000..06cbd6b1c5
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.tex b/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.tex
new file mode 100644
index 0000000000..e005a5300e
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/cyrillic-paratype.tex
@@ -0,0 +1,98 @@
+\documentclass[a4paper]{article}
+\usepackage[T2A,T1]{fontenc}
+\usepackage[russian,english]{babel}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+
+\pagestyle{empty}
+
+% Combine "TeX Gyre" fonts for Latin and "ParaType" fonts for Cyrillic:
+
+% 1. Load paratype font-packages to get scaled Paratype fonts
+\usepackage[scaled=0.95]{PTSerif}
+\usepackage[scaled=0.95]{PTSans}
+\usepackage[scaled=0.9]{PTMono}
+
+% 2. Load TeX Gyre font-packages (after Paratype to use them as default fonts)
+\usepackage{tgtermes}
+\usepackage[scale=.90]{tgheros}
+\usepackage{tgcursor}
+
+% 3. Set up the substitutions:
+% Use LaTeX kernel macro instead of the obsolete "substitutefont" package:
+\DeclareFontFamilySubstitution{T2A}{lmr}{fcm}
+\DeclareFontFamilySubstitution{T2A}{\rmdefault}{PTSerif-TLF}
+\DeclareFontFamilySubstitution{T2A}{\sfdefault}{PTSans-TLF}
+\DeclareFontFamilySubstitution{T2A}{\ttdefault}{PTMono-TLF}
+% \usepackage{substitutefont}
+% \substitutefont{T2A}{\rmdefault}{PTSerif-TLF}
+% \substitutefont{T2A}{\sfdefault}{PTSans-TLF}
+% \substitutefont{T2A}{\ttdefault}{PTMono-TLF}
+
+
+\begin{document}
+
+\section*{Cyrillic fonts to match Times/Helvetica/Curier}
+
+The \href{https://ctan.org/pkg/tex-gyre}{TeX Gyre} project provides
+extensions to the URW standard Postscript fonts. Cyrillic extensions by
+Valek Filippov were part of TeXGyre but removed due to license
+incompatibility.
+
+These fonts are still available in the
+\href{http://packages.debian.org/stable/scalable-cyrfonts-tex}%
+{scalable-cyrfonts-tex} Debian package but not on CTAN. Furthermore, both
+\href{https://ctan.org/pkg/fouriernc}{Fourier New Century} and
+\emph{Free New Century} use the TeX-name \emph{fnc}. Therefore
+\emph{scalable-cyrfonts-tex} conflicts with the Debian
+\href{http://packages.debian.org/stable/texlive-fonts-extra}%
+{texlive-fonts-extra} package.
+
+The Cyrillic fonts from the
+\href{https://ctan.org/pkg/paratype}{paratype} package are not exact
+matches but fit quite well if they are downscaled a bit. As the Paratype
+package includes also T1 encoded fonts, Paratype fonts can be used for both
+Latin and Cyrillic text.
+
+Other vector fonts supporting Cyrillic include
+\href{https://ctan.org/pkg/dejavu}{Deja Vu},
+\href{https://ctan.org/pkg/droid}{Droid},
+\href{https://ctan.org/pkg/gentium-tug}{Gentium}, and
+\href{https://ctan.org/pkg/libertine}{Linux Libertine}.
+
+\section*{\selectlanguage{russian}Тест шрифтов}
+
+\newcommand{\teststring}{Hello world!
+ \foreignlanguage{russian}{Здравствуй, мир!}}
+
+\begin{description}
+ \item [Normal:] \teststring
+
+ \item [it:] \textit{\teststring}
+
+ \item [sl:] \textsl{\teststring}%
+ \footnote{TeX Gyre merges slanted and italic shapes}
+
+ \item [bf:] \textbf{\teststring}
+
+ \item [bf it:] \textbf{\textit\teststring}
+
+ \item [sc:] not available in Paratype % \textsc{\teststring}
+
+ \item [bf sc:] missing % \textsc{\textbf\teststring}
+
+ \item [sf:] \textsf{\teststring}
+
+ \item [sf bf:] \textsf{\textbf\teststring}
+
+ \item [sf sl:] \textsf{\textsl\teststring}
+
+ \item [sf sc:] not available in Paratype % \textsf{\textsc\teststring}
+
+ \item [tt:] \texttt{\teststring}
+
+\end{description}
+
+
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.pdf b/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.pdf
new file mode 100644
index 0000000000..009a755071
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.tex b/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.tex
new file mode 100644
index 0000000000..e125f27948
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-palatino-didot.tex
@@ -0,0 +1,91 @@
+% Example and test for the substitutefont package:
+\documentclass[a4paper,DIV14]{scrartcl}
+\usepackage{parskip}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[greek,english]{babel}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+\pagestyle{empty}
+
+% \usepackage{substitutefont} % obsolete
+
+% Serif
+\usepackage[sc,slantedGreek]{mathpazo}
+\DeclareFontFamilySubstitution{LGR}{\rmdefault}{udidot}
+
+% Sans
+\usepackage[scale=.90]{tgheros}
+\DeclareFontFamilySubstitution{LGR}{\sfdefault}{neohellenic}
+
+% Monospaced
+% \usepackage[matchlowercase]{tgcursor}
+\renewcommand{\ttdefault}{txtt}
+\DeclareFontFamilySubstitution{LGR}{\ttdefault}{cmtt} % CB fonts
+% \DeclareFontFamilySubstitution{LGR}{\ttdefault}{fdm} % Droid Sans Mono
+
+
+% Teststring
+\newcommand{\alphabet}{%
+ abcdefghjiklmnoprqrstuvwxyzäöüß
+ \foreignlanguage{greek}{abgdezhjiklmnxoprsctufqyw} \\
+ ABCDEFGHJIKLMNOPRQRSTUVWXYZÄÖÜ
+ \foreignlanguage{greek}{ABGDEZHJIKLMNXOPRSTUFQYW}
+}
+
+\begin{document}
+
+\section*{Palatino/Helvetica/TXTT and Greek replacements}
+
+Default font families after loading mathpazo, tgheros, and tgcursor:\\
+familydefault: \familydefault{},
+rmdefault: \rmdefault{},
+sfdefault: \sfdefault{},
+ttdefault: \ttdefault{}
+
+Palatino (mathpazo) with GFS Didot:
+
+\begin{description}
+ \item [Normal:] \alphabet
+
+ \item [it:] \textit{\alphabet}
+
+ \item [sl:] \textsl{\alphabet}
+
+ \item [bf:] \textbf{\alphabet}
+
+ \item [bf it:] \textbf{\textit\alphabet}
+
+ \item [sc:] \textsc{\alphabet}
+
+ % \item [bf sc:] \textsc{\textbf\alphabet}
+
+\end{description}
+
+Helvetica (TG Heros) with GFS Neohellenic:
+
+\begin{description}
+
+ \item [sf:] \textsf{\alphabet}
+
+ \item [sf bf:] \textsf{\textbf\alphabet}
+
+ \item [sf sl:] \textsf{\textsl\alphabet}
+
+ \item [sf sc:] \textsf{\textsc\alphabet}
+
+\end{description}
+
+There is no Greek extension for the monospaced standard PS font Curier.
+A good replacement are the teletype fonts from
+\href{https://ctan.org/pkg/newtx}{txfonts} and
+\href{https://ctan.org/pkg/cbgreek-complete}{CB-Greek}:
+
+\begin{description}
+
+ \item [tt:] \texttt{\alphabet}
+ % \item [tt bf:] \texttt{\textbf\alphabet} % not in CB-Greek
+ \item [tt it:] \texttt{\textit\alphabet}
+
+\end{description}
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.pdf b/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.pdf
new file mode 100644
index 0000000000..39b20c4174
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.tex b/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.tex
new file mode 100644
index 0000000000..88d96d4fba
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-times-artemisia.tex
@@ -0,0 +1,75 @@
+% Example and test for the substitutefont package:
+\documentclass{article}
+\usepackage{parskip}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+\pagestyle{empty}
+
+\usepackage{substitutefont}
+
+% Serif
+\usepackage[scaled=0.97]{newtxtext}
+\substitutefont{LGR}{\rmdefault}{artemisia}
+
+% Sans
+% \substitutefont{LGR}{\sfdefault}{neohellenic}
+\substitutefont{LGR}{\sfdefault}{maksf}
+
+% Monospaced
+\substitutefont{LGR}{\ttdefault}{cmtt} % CB fonts
+
+
+% Teststring
+\newcommand{\alphabet}{%
+ abcdefghjiklmnoprqrstuvwxyzäöüß
+ {\fontencoding{LGR}\selectfont abgdezhjiklmnxoprsctufqyw} \\
+ ABCDEFGHJIKLMNOPRQRSTUVWXYZÄÖÜ
+ {\fontencoding{LGR}\selectfont ABGDEZHJIKLMNXOPRSTUFQYW}%
+}
+
+\begin{document}
+
+\section*{Times/Helvetica/TXTT and Greek replacements}
+
+Use Times, Helvetica, and TXTT (from the
+\href{https://ctan.org/pkg/newtx}{newtx} package) with
+\href{https://ctan.org/pkg/gfsartemisia}{GFS Artemisia},
+\href{https://ctan.org/pkg/kerkis}{Kerkis Sans},
+and \href{https://ctan.org/pkg/cbgreek-complete}{CB-Fonts Mono},
+for Greek text.\footnote{%
+See the \href{https://ctan.org/pkg/txfontsb}{txfontsb}
+package for an alternative.}
+
+\begin{description}
+ \item [Normal:] \alphabet
+
+ \item [it:] \textit{\alphabet}
+
+ \item [sl:] \textsl{\alphabet}
+
+ \item [bf:] \textbf{\alphabet}
+
+ \item [bf it:] \textbf{\textit\alphabet}
+
+ \item [sc:] \textsc{\alphabet}
+
+ % \item [bf sc:] \textsc{\textbf\alphabet} missing in Bodoni
+
+ \item [sf:] \textsf{\alphabet}
+
+ \item [sf bf:] \textsf{\textbf\alphabet}
+
+ \item [sf sl:] \textsf{\textsl\alphabet}
+
+ \item [sf sc:] \textsf{\textsc\alphabet}
+
+ \item [tt:] \texttt{\alphabet}
+
+ % \item [tt bf:] \texttt{\textbf\alphabet} % not in CB-Greek
+
+ \item [tt it:] \texttt{\textit\alphabet}
+
+\end{description}
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.pdf b/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.pdf
new file mode 100644
index 0000000000..78d00695ef
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.tex b/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.tex
new file mode 100644
index 0000000000..75a08664b1
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/greek-times-freeserifb.tex
@@ -0,0 +1,73 @@
+% Example and test for the substitutefont package:
+\documentclass{article}
+\usepackage{parskip}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+\pagestyle{empty}
+
+% \usepackage{substitutefont} % obsolete
+
+% Serif
+\usepackage[scaled=0.97]{newtxtext}
+\DeclareFontFamilySubstitution{LGR}{\rmdefault}{txrc}
+
+% Sans
+\DeclareFontFamilySubstitution{LGR}{\sfdefault}{neohellenic}
+% \DeclareFontFamilySubstitution{LGR}{\sfdefault}{epigrafica}
+
+% Monospaced
+\DeclareFontFamilySubstitution{LGR}{\ttdefault}{cmtt} % CB fonts
+
+
+% Teststring
+\newcommand{\alphabet}{%
+ abcdefghjiklmnoprqrstuvwxyzäöüß
+ {\fontencoding{LGR}\selectfont abgdezhjiklmnxoprsctufqyw} \\
+ ABCDEFGHJIKLMNOPRQRSTUVWXYZÄÖÜ
+ {\fontencoding{LGR}\selectfont ABGDEZHJIKLMNXOPRSTUFQYW}%
+}
+
+\begin{document}
+
+\section*{Times/Helvetica/TXTT and Greek replacements}
+
+Use Times, Helvetica, and TXTT (from the
+\href{https://ctan.org/pkg/newtx}{newtx} package) with
+\href{https://ctan.org/pkg/txfontsb}{FreeSerifb},
+\href{https://ctan.org/pkg/gfsneohellenic}{GFS Neohellenic},
+and \href{https://ctan.org/pkg/cbgreek-complete}{CB-Fonts},
+for Greek text.
+
+\begin{description}
+ \item [Normal:] \alphabet
+
+ \item [it:] \textit{\alphabet}
+
+ \item [sl:] \textsl{\alphabet}
+
+ \item [bf:] \textbf{\alphabet}
+
+ \item [bf it:] \textbf{\textit\alphabet}
+
+ \item [sc:] \textsc{\alphabet}
+
+ % \item [bf sc:] \textsc{\textbf\alphabet} missing in Bodoni
+
+ \item [sf:] \textsf{\alphabet}
+
+ \item [sf bf:] \textsf{\textbf\alphabet}
+
+ \item [sf sl:] \textsf{\textsl\alphabet}
+
+ \item [sf sc:] \textsf{\textsc\alphabet}
+
+ \item [tt:] \texttt{\alphabet}
+
+ % \item [tt bf:] \texttt{\textbf\alphabet} % not in CB-Greek
+
+ \item [tt it:] \texttt{\textit\alphabet}
+
+\end{description}
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/substitutefont-doc.html b/obsolete/macros/latex/contrib/substitutefont/substitutefont-doc.html
new file mode 100644
index 0000000000..2c95198cbe
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/substitutefont-doc.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="generator" content="Docutils 0.21b.dev: https://docutils.sourceforge.io/" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<meta name="dcterms.rights" content="© 2010 Günter Milde &lt;milde&#64;users.sf.net&gt;" />
+<title>substitutefont</title>
+<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
+<link rel="stylesheet" href="../../Python/docutils/docutils/docutils/writers/html5_polyglot/minimal.css" type="text/css" />
+<link rel="stylesheet" href="../../Python/docutils/docutils/docutils/writers/html5_polyglot/responsive.css" type="text/css" />
+</head>
+<body>
+<main id="substitutefont">
+<h1 class="title">substitutefont</h1>
+<p class="subtitle" id="combine-font-families">Combine font families</p>
+<dl class="docinfo">
+<dt class="copyright">Copyright<span class="colon">:</span></dt>
+<dd class="copyright">© 2010 Günter Milde &lt;<a class="reference external" href="mailto:milde&#64;users.sf.net">milde&#64;users.sf.net</a>&gt;</dd>
+<dt class="contributor">Contributor<span class="colon">:</span></dt>
+<dd class="contributor"><p>Special thanks to Ulrike Fischer who provided
+the indirect definition with active <span class="docutils literal">\nfss&#64;catcodes</span>.</p>
+</dd>
+<dt class="licence">Licence<span class="colon">:</span></dt>
+<dd class="licence"><p>This work may be distributed and/or modified under the
+conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>,
+either version 1.3 of this license or (at your option)
+any later version.</p>
+</dd>
+<dt class="abastract">Abastract<span class="colon">:</span></dt>
+<dd class="abastract"><p>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
+<a class="citation-reference" href="#encguide" id="citation-reference-1" role="doc-biblioref">[encguide]</a>.</p>
+<p>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.</p>
+<p>The <cite>substitutefont</cite> package facilitates the task to set up a
+font family as substitute for another one in a specified <a class="reference external" href="encguide">font
+encoding</a>.</p>
+</dd>
+<dt class="news">News<span class="colon">:</span></dt>
+<dd class="news"><p>The package is obsoleted by the NFSS command
+<span class="docutils literal">\DeclareFontfamilySubstitution</span> added to the
+LaTeX kernel in the 2020-02 release <a class="citation-reference" href="#ltnews31" id="citation-reference-2" role="doc-biblioref">[ltnews31]</a>.</p>
+</dd>
+<dt class="source">Source<span class="colon">:</span></dt>
+<dd class="source"><p><a class="reference external" href="substitutefont.sty">substitutefont.sty</a></p>
+<p>The literate source was converted with <a class="reference external" href="https://pypi.org/project/pylit/">PyLit</a> to <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> and
+with <a class="reference external" href="http://docutils.sourceforge.net/rst.html">Docutils</a> to the HTML documentation <a class="reference external" href="substitutefont.sty.html">substitutefont.sty.html</a>.</p>
+</dd>
+</dl>
+<section id="usage">
+<h2>Usage</h2>
+<aside class="admonition admonition-this-package-is-obsolete">
+<p class="admonition-title">This package is obsolete.</p>
+<p>Authors are encouraged to use the command
+<span class="docutils literal">\DeclareFontfamilySubstitution</span> provided by the LaTeX kernel.</p>
+<p>Existing documents can be updated by removing
+<span class="docutils literal">\usepackage{substitutefont}</span> and replacing all uses of
+<span class="docutils literal">\substitutefont</span> with <span class="docutils literal">\DeclareFontFamilySubstitution</span>.</p>
+</aside>
+<p>The macro <span class="docutils literal"><span class="pre">\substitutefont{&lt;encoding&gt;}{&lt;family&gt;}{&lt;new-family&gt;}</span></span> selects
+the font family &lt;new-family&gt; as replacement for &lt;family&gt; in the font
+encoding &lt;encoding&gt;. The substitution must be defined before the first use
+of the specified font encoding, preferably in the document preamble.
+In contrast to the deprecated <span class="docutils literal">\substitutefontfamily</span> macro provided by
+<a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>, <span class="docutils literal">\substitutefont</span> does not write auxiliary files.</p>
+<p>The <span class="docutils literal">&lt;encoding&gt;</span> is one of the LaTeX font encodings <a class="citation-reference" href="#encguide" id="citation-reference-3" role="doc-biblioref">[encguide]</a>, e.g., T1
+for Latin, T2A for Cyrillic(Russian), or LGR for Greek.</p>
+<p>For <span class="docutils literal">&lt;family&gt;</span> and <span class="docutils literal"><span class="pre">&lt;new-family&gt;</span></span>, use the «TeX names» of the font.
+They are defined by a TeX font package’s <span class="docutils literal">*.fd</span> or <span class="docutils literal">*.sty</span> file(s).
+LaTeX stores the default family names for Roman, Sans-Serif, and Teletype
+fonts in the <span class="docutils literal">\rmdefault</span>, <span class="docutils literal">\sfdefault</span>, and <span class="docutils literal">\ttdefault</span> macros
+respectively.</p>
+<p>Example: Set the font family to Palatino using the standard package
+<cite>mathpazo</cite> for Latin and <a class="reference external" href="https://ctan.org/pkg/gfsdidot">GFS Didot</a> for Greek:</p>
+<pre class="literal-block">\usepackage[sc,slantedGreek]{mathpazo}
+\usepackage{substitutefont}
+\substitutefont{LGR}{\rmdefault}{udidot}</pre>
+<p>For details on LaTeX font selection, see <a class="citation-reference" href="#encguide" id="citation-reference-4" role="doc-biblioref">[encguide]</a> and <a class="citation-reference" href="#fntguide" id="citation-reference-5" role="doc-biblioref">[fntguide]</a>.</p>
+</section>
+<section id="tests-examples">
+<h2>Tests/Examples</h2>
+<ul class="simple">
+<li><p>Simple test with Latin fonts:
+<a class="reference external" href="substitutefont-test.tex">substitutefont-test.tex</a>, <a class="reference external" href="substitutefont-test.pdf">substitutefont-test.pdf</a></p></li>
+<li><p>Palatino with Greek from <a class="reference external" href="https://ctan.org/pkg/gfsdidot">GFS Didot</a>:
+<a class="reference external" href="greek-palatino-didot.tex">greek-palatino-didot.tex</a>, <a class="reference external" href="greek-palatino-didot.pdf">greek-palatino-didot.pdf</a></p></li>
+<li><p>Times/Helvetica/Courier (<a class="reference external" href="https://ctan.org/pkg/newtx">newtx</a>) with <a class="reference external" href="https://ctan.org/pkg/gfsartemisia">GFS Artemisia</a>, <a class="reference external" href="https://ctan.org/pkg/gfsneohellenic">GFS
+Neohellenic</a>, and teletype from the <a class="reference external" href="https://ctan.org/pkg/cbgreek-complete">CB</a> fonts:
+<a class="reference external" href="greek-times-artemisia.tex">greek-times-artemisia.tex</a>, <a class="reference external" href="greek-times-artemisia.pdf">greek-times-artemisia.pdf</a>
+(see also package <a class="reference external" href="https://ctan.org/pkg/txfontsb">txfontsb</a>)</p></li>
+<li><p>Latin Modern with Cyrillic from <a class="reference external" href="https://ctan.org/pkg/cm-lgc">CM LGC</a>:
+<a class="reference external" href="cyrillic-lm-lgc.tex">cyrillic-lm-lgc.tex</a>, <a class="reference external" href="cyrillic-lm-lgc.pdf">cyrillic-lm-lgc.pdf</a></p></li>
+<li><p>Times/Helvetica/Courier (TeX Gyre) with Cyrillic <a class="reference external" href="https://ctan.org/pkg/paratype">ParaType</a> fonts:
+<a class="reference external" href="cyrillic-paratype.tex">cyrillic-paratype.tex</a>, <a class="reference external" href="cyrillic-paratype.pdf">cyrillic-paratype.pdf</a></p></li>
+</ul>
+</section>
+<section id="references">
+<h2>References</h2>
+<div role="list" class="citation-list">
+<div class="citation" id="encguide" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span>encguide<span class="fn-bracket">]</span></span>
+<span class="backrefs">(<a role="doc-backlink" href="#citation-reference-1">1</a>,<a role="doc-backlink" href="#citation-reference-3">2</a>,<a role="doc-backlink" href="#citation-reference-4">3</a>)</span>
+<p>Frank Mittelbach, Robin Fairbairns, Werner Lemberg,
+LaTeX3 Project Team, <cite>LaTeX font encodings</cite>:
+<a class="reference external" href="https://mirrors.ctan.org/macros/latex/doc/encguide.pdf">https://mirrors.ctan.org/macros/latex/doc/encguide.pdf</a>.</p>
+</div>
+<div class="citation" id="fntguide" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">fntguide</a><span class="fn-bracket">]</span></span>
+<p>LaTeX3 Project Team, <cite>LaTeX 2e font selection</cite>:
+<a class="reference external" href="https://mirrors.ctan.org/macros/latex/doc/fntguide.pdf">https://mirrors.ctan.org/macros/latex/doc/fntguide.pdf</a>.</p>
+</div>
+<div class="citation" id="ltnews31" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-2">ltnews31</a><span class="fn-bracket">]</span></span>
+<p><cite>LaATeX News</cite>, Issue 31, February 2020, p. 3:
+<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews31.pdf">https://www.latex-project.org/news/latex2e-news/ltnews31.pdf</a>.</p>
+</div>
+</div>
+</section>
+</main>
+</body>
+</html>
diff --git a/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.pdf b/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.pdf
new file mode 100644
index 0000000000..7a3da290c2
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.tex b/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.tex
new file mode 100644
index 0000000000..6c33a67122
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/substitutefont-test.tex
@@ -0,0 +1,53 @@
+\documentclass[a4paper]{article}
+\usepackage[T1,OT1]{fontenc}
+\usepackage{parskip}
+
+\title{Simple substitutefont test}
+\author{Günter Milde}
+
+% Combine "Latin Modern" fonts for OT1 and Bookman for T1.
+\usepackage{substitutefont}
+\usepackage{lmodern}
+% Substitution also works for fonts that exist in the specified encoding:
+\substitutefont{T1}{lmr}{pbk}
+
+% \addto\extrasgerman{\fontencoding{T1}\selectfont}
+% \addto\noextrasgerman{\fontencoding{\encodingdefault}\selectfont}
+
+\begin{document}
+
+\maketitle
+
+This document is a test that should work with any standard basic LaTeX
+installation. For real use cases, see the test documents setting up matching
+Latin and Greek or Cyrillic fonts.
+
+Some text in \encodingdefault{} encoding, the font is Latin Modern:
+Résumé of Nathan Söderblom.
+
+% (Defining the substitution in the document body is possible (but not
+% recommended) if it is done before the first use of a font in the specified
+% encoding.)
+% \substitutefont{T1}{lmr}{pbk}
+
+\fontencoding{T1}\selectfont
+
+Some text in T1 encoding, the font is Bookmark: Résumé of Nathan Söderblom%
+\footnote{Compare the result of drag-and-drop or text search for words with
+accented characters for OT1 and T1 encoded text.}
+
+\fontencoding{OT1}\selectfont
+
+Back to OT1 and Latin Modern.
+
+% The following substitution definition is ignored, because T1 fonts are
+% already set up:
+\substitutefont{T1}{lmr}{pag}
+
+
+
+\fontencoding{T1}\selectfont
+
+Some more text in T1 encoding and Bookmark.
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty b/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty
new file mode 100644
index 0000000000..f3e5a086be
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty
@@ -0,0 +1,81 @@
+% 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}
+[2023-08-13 v0.1.5 combine font families (obsolete)]
+
+% 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)
+% 2013-11-04 0.1.4 documentation update
+% 2023-08-13 0.1.5 declare obsolete, update documentation and tests
+% ============ ===== ================================================
+%
+%
+% 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}
+% \usepackage{substitutefont}
+% \substitutefont{LGR}{\rmdefault}{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: https://mirrors.ctan.org/help/Catalogue/entries/gfsdidot.html
+% .. _mathpazo: https://ctan.org/pkg/mathpazo
diff --git a/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty.html b/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty.html
new file mode 100644
index 0000000000..4e4bf9a636
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/substitutefont.sty.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="generator" content="Docutils 0.21b.dev: https://docutils.sourceforge.io/" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<meta name="dcterms.rights" content="© 2010 Günter Milde" />
+<title>Easy font substitution</title>
+<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
+<link rel="stylesheet" href="../../Python/docutils/docutils/docutils/writers/html5_polyglot/minimal.css" type="text/css" />
+<link rel="stylesheet" href="../../Python/docutils/docutils/docutils/writers/html5_polyglot/responsive.css" type="text/css" />
+</head>
+<body>
+<main id="easy-font-substitution">
+<h1 class="title">Easy font substitution</h1>
+<dl class="docinfo">
+<dt class="copyright">Copyright<span class="colon">:</span></dt>
+<dd class="copyright">© 2010 Günter Milde</dd>
+<dt class="contributor">Contributor<span class="colon">:</span></dt>
+<dd class="contributor"><p>Special thanks to Ulrike Fischer who provided
+the indirect definition with active <span class="docutils literal">\nfss&#64;catcodes</span>.</p>
+</dd>
+<dt class="licence">Licence<span class="colon">:</span></dt>
+<dd class="licence"><p>This work may be distributed and/or modified under the
+conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either
+version 1.3 of this license or any later version.</p>
+</dd>
+<dt class="identification">Identification<span class="colon">:</span></dt>
+<dd class="identification"><pre class="literal-block">\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{substitutefont}
+[2023-08-13 v0.1.5 combine font families (obsolete)]</pre>
+</dd>
+</dl>
+<div class="topic abstract" role="doc-abstract">
+<p class="topic-title">Abstract</p>
+<p>Provide the <span class="docutils literal">\substitutefont</span> macro for defining
+substitute fonts for specified font encodings.</p>
+</div>
+<dl>
+<dt>Changelog:</dt>
+<dd><table class="borderless">
+<tbody>
+<tr><td><p>2010-11-04</p></td>
+<td><p>0.1</p></td>
+<td><p>initial version</p></td>
+</tr>
+<tr><td><p>2012-04-30</p></td>
+<td><p>0.1.1</p></td>
+<td><p>documentation update, upload to CTAN</p></td>
+</tr>
+<tr><td><p>2012-07-05</p></td>
+<td><p>0.1.2</p></td>
+<td><p>documentation/example update</p></td>
+</tr>
+<tr><td><p>2012-07-07</p></td>
+<td><p>0.1.3</p></td>
+<td><p>bugfix (comment usage example)</p></td>
+</tr>
+<tr><td><p>2013-11-04</p></td>
+<td><p>0.1.4</p></td>
+<td><p>documentation update</p></td>
+</tr>
+<tr><td><p>2023-08-13</p></td>
+<td><p>0.1.5</p></td>
+<td><p>declare obsolete, update documentation and tests</p></td>
+</tr>
+</tbody>
+</table>
+</dd>
+</dl>
+<section id="usage">
+<h2>Usage</h2>
+<p>The macro <span class="docutils literal"><span class="pre">\substitutefont{&lt;encoding&gt;}{&lt;family&gt;}{&lt;new-family&gt;}</span></span>
+selects the font &lt;new-family&gt; as replacement for &lt;family&gt; if the font
+encoding is &lt;encoding&gt; in the variants “normal”, “italic”, “slanted”,
+and “small-caps” and the shapes “medium”, “bold”, and “bold-extended”.</p>
+<dl>
+<dt>Example:</dt>
+<dd><p>Palatino with the standard package <a class="reference external" href="https://ctan.org/pkg/mathpazo">mathpazo</a> for Latin and
+<a class="reference external" href="https://mirrors.ctan.org/help/Catalogue/entries/gfsdidot.html">GFS Didot</a> for Greek:</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[sc,slantedGreek]</span><span class="name builtin">{</span>mathpazo<span class="name builtin">}</span>
+<span class="keyword">\usepackage</span><span class="name builtin">{</span>substitutefont<span class="name builtin">}</span>
+<span class="keyword">\substitutefont</span><span class="name builtin">{</span>LGR<span class="name builtin">}{</span><span class="keyword">\rmdefault</span><span class="name builtin">}{</span>udidot<span class="name builtin">}</span></code></pre>
+</dd>
+</dl>
+</section>
+<section id="implementation">
+<h2>Implementation</h2>
+<pre class="literal-block">\begingroup
+\nfss&#64;catcodes
+\newcommand*{\substitutefont}[3]{%
+ \DeclareFontFamily{#1}{#2}{}
+ \DeclareFontShape{#1}{#2}{m}{n}{&lt;-&gt;ssub * #3/m/n}{}
+ \DeclareFontShape{#1}{#2}{m}{it}{&lt;-&gt;ssub * #3/m/it}{}
+ \DeclareFontShape{#1}{#2}{m}{sl}{&lt;-&gt;ssub * #3/m/sl}{}
+ \DeclareFontShape{#1}{#2}{m}{sc}{&lt;-&gt;ssub * #3/m/sc}{}
+ \DeclareFontShape{#1}{#2}{b}{n}{&lt;-&gt;ssub * #3/b/n}{}
+ \DeclareFontShape{#1}{#2}{b}{it}{&lt;-&gt;ssub * #3/b/it}{}
+ \DeclareFontShape{#1}{#2}{b}{sl}{&lt;-&gt;ssub * #3/b/sl}{}
+ \DeclareFontShape{#1}{#2}{b}{sc}{&lt;-&gt;ssub * #3/b/sc}{}
+ \DeclareFontShape{#1}{#2}{bx}{n}{&lt;-&gt;ssub * #3/bx/n}{}
+ \DeclareFontShape{#1}{#2}{bx}{it}{&lt;-&gt;ssub * #3/bx/it}{}
+ \DeclareFontShape{#1}{#2}{bx}{sl}{&lt;-&gt;ssub * #3/bx/sl}{}
+ \DeclareFontShape{#1}{#2}{bx}{sc}{&lt;-&gt;ssub * #3/bx/sc}{}
+}
+\global\let\substitutefont\substitutefont
+\endgroup</pre>
+</section>
+</main>
+</body>
+</html>
diff --git a/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.pdf b/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.pdf
new file mode 100644
index 0000000000..2758e3b764
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.tex b/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.tex
new file mode 100644
index 0000000000..4bd193e914
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/test-artemisia-greek.tex
@@ -0,0 +1,43 @@
+\documentclass{article}
+\usepackage{parskip}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\pagestyle{empty}
+
+\usepackage[scaled=0.97]{newtxtext}
+\usepackage{artemisia-greek}
+
+\begin{document}
+
+\section*{Times and Artemisia}
+
+Combine Times from the \href{https://ctan.org/pkg/newtx}{newtx} package
+with \href{https://ctan.org/pkg/gfsartemisia}{GFS Artemisia},
+for Greek text.
+
+% Teststring
+\newcommand{\alphabet}{%
+ abcdefghjiklmnoprqrstuvwxyzäöüß
+ {\fontencoding{LGR}\selectfont abgdezhjiklmnxoprsctufqyw} \\
+ ABCDEFGHJIKLMNOPRQRSTUVWXYZÄÖÜ
+ {\fontencoding{LGR}\selectfont ABGDEZHJIKLMNXOPRSTUFQYW}%
+}
+
+\begin{description}
+ \item [Normal:] \alphabet
+
+ \item [it:] \textit{\alphabet}
+
+ \item [sl:] \textsl{\alphabet}
+
+ \item [bf:] \textbf{\alphabet}
+
+ \item [bf it:] \textbf{\textit\alphabet}
+
+ \item [sc:] \textsc{\alphabet}
+
+ % \item [bf sc:] \textsc{\textbf\alphabet} missing in Bodoni
+
+\end{description}
+
+\end{document}
diff --git a/obsolete/macros/latex/contrib/substitutefont/txfontsb-test.tex b/obsolete/macros/latex/contrib/substitutefont/txfontsb-test.tex
new file mode 100644
index 0000000000..cbbeed7eb3
--- /dev/null
+++ b/obsolete/macros/latex/contrib/substitutefont/txfontsb-test.tex
@@ -0,0 +1,71 @@
+% Example and test for the substitutefont package:
+\documentclass{article}
+\usepackage{parskip}
+\usepackage[LGR,T1]{fontenc}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage{bookmark}
+\pagestyle{empty}
+
+\usepackage{substitutefont}
+
+% Serif
+\usepackage{txfontsb}
+% \substitutefont{LGR}{\rmdefault}{txrc}
+
+% Sans
+% \substitutefont{LGR}{\sfdefault}{neohellenic}
+\substitutefont{LGR}{\sfdefault}{epigrafica}
+
+% Monospaced
+\substitutefont{LGR}{\ttdefault}{cmtt} % CB fonts
+
+
+% Teststring
+\newcommand{\alphabet}{%
+ abcdefghjiklmnoprqrstuvwxyzäöüß
+ {\fontencoding{LGR}\selectfont abgdezhjiklmnxoprsctufqyw} \\
+ ABCDEFGHJIKLMNOPRQRSTUVWXYZÄÖÜ
+ {\fontencoding{LGR}\selectfont ABGDEZHJIKLMNXOPRSTUFQYW}%
+}
+
+\begin{document}
+
+\section*{TX fonts and Greek replacements with ``txfontsb''}
+
+% Use Times, Helvetica, and TXTT (from the
+% \href{https://ctan.org/pkg/newtx}{newtx} package) with
+% \href{https://ctan.org/pkg/txfontsb}{FreeSerifb},
+% \href{https://ctan.org/pkg/gfsneohellenic}{GFS Neohellenic},
+% and \href{https://ctan.org/pkg/cbgreek-complete}{CB-Fonts},
+% for Greek text.
+
+\begin{description}
+ \item [Normal:] \alphabet
+
+ \item [it:] \textit{\alphabet}
+
+ \item [sl:] \textsl{\alphabet}
+
+ \item [bf:] \textbf{\alphabet}
+
+ \item [bf it:] \textbf{\textit\alphabet}
+
+ \item [sc:] \textsc{\alphabet}
+
+ % \item [bf sc:] \textsc{\textbf\alphabet} missing in Bodoni
+
+ \item [sf:] \textsf{\alphabet}
+
+ \item [sf bf:] \textsf{\textbf\alphabet}
+
+ % \item [sf sl:] \textsf{\textsl\alphabet}
+ %
+ % \item [sf sc:] \textsf{\textsc\alphabet}
+
+ \item [tt:] \texttt{\alphabet}
+
+ % \item [tt bf:] \texttt{\textbf\alphabet}
+
+\end{description}
+
+\end{document}