[latex3-commits] [git/LaTeX3-latex3-latex2e] gh478: text draft for #478 (ac9c7f04)

Frank Mittelbach frank.mittelbach at latex-project.org
Fri Mar 26 15:01:11 CET 2021


Repository : https://github.com/latex3/latex2e
On branch  : gh478
Link       : https://github.com/latex3/latex2e/commit/ac9c7f043cf21dbbaac483f62c6eae274a0ede45

>---------------------------------------------------------------

commit ac9c7f043cf21dbbaac483f62c6eae274a0ede45
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Fri Mar 26 15:01:11 2021 +0100

    text draft for #478


>---------------------------------------------------------------

ac9c7f043cf21dbbaac483f62c6eae274a0ede45
 base/doc/ltnews33.tex | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/base/doc/ltnews33.tex b/base/doc/ltnews33.tex
index 83ef0dd7..9f96d834 100644
--- a/base/doc/ltnews33.tex
+++ b/base/doc/ltnews33.tex
@@ -560,6 +560,83 @@ existing documents, a rollback to \pkg{longtable 4.13}
 \githubissue{xxx}
 
 
+\section{Documentation updates}
+
+\subsection{A note on the \texttt{TS1} encoding}
+
+The \enquote{text symbol encoding} (\texttt{TS1}) was orginally
+designed at the Cork Conferense as a companion to the \texttt{T1}
+encoding. In it various symbols that are not subject to hyphenation
+got assembled and the \pkg{textcomp} package was developed to make
+them accessible. Unfortunately the \TeX{} community was a bit too
+enthusiastic and included several symbols only available in a few
+\TeX{} fonts and some, such as the capital accents, not available at
+all but developed as part of the reference font implementation.
+
+In hindsight that was a very bad idea because it meant that other
+existing fonts (at the time) and later new fonts that got developed
+were unable to provide the full set of glyphs that made up the
+\texttt{TS1} encoding. For existing free PostScript fonts people to
+the extra effort and produced virtual fonts that that faked (some) of
+the missing glyphs. But this was and is a timeconsuming effort so it
+was done only for a few basic fonts. But even then, only some fonts
+included all glyphs from \texttt{TS1} so the \pkg{textcomp} already
+back then contained a long list, dividing fonts into 5 categories
+according to which glyphs were implemented and which were missing.
+
+A couple of releases back the functionality of the \pkg{textcomp}
+package got integrated into the core code of the \LaTeX{} kernel so
+that its glyph definitions, e.g., \cs{textcopyright}, \cs{texteuro} or
+\cs{textyen}, are now automatically available without the need to load
+an additional package in the preamble.
+
+At the time this happened many new free fonts had appeared and
+unfortunately the chaos around the question \enquote{which glyphs of
+  the \texttt{TS1} encoding are implemented by which font} had
+increased with it. Not only did one find many new holes it was next to
+impossible to order the set of fonts into a reasonable set of
+sub-encodings that are contained in each other in a single sequence.
+
+In the end we decided on nine or ten sub-encodings with a reasonable
+number of font in each so that all font implemented all glyphs of the
+sub-encoding they got mapped to. Thus when typsetting with a font one
+could be sure that a command like \cs{texcopyleft} would either
+typeset the requested character (if the ghyph was part of the
+sub-encoding the font belonged to) or it would raise an error, saying
+that the glyph is unavailable in that fact. The mapping would ensure
+that \LaTeX{} always errs on the side of caution, because it might
+claim a glyph is unavailable even though in fact it is.
+
+For example, the old \texttt{pcr} (PostScript Courier) font (as well
+as most other older PS fonts) is mapped to sub-encoding 5 and
+therefore claims that \cs{textasciigrave} is unavailable even though
+in fact for Courier this is not true. If one uses such a font and this
+becomes an issue then there are a couple (suboptimal) possibilities.
+For one, one can alter the mapping of Courier and pretend that belongs
+to a fuller sub-encoding, e.g.
+\begin{verbatim}
+  \DeclareEncodingSubset{TS1}{pcr}{2}
+\end{verbatim}
+The downside is, that it then believe other glyphs tha are in fact
+unavailable are also there so that it is important to check that the
+final document doesn't have some missing glphs.
+%
+An alternative is to pretent that \cs{textasciigrave} can always be
+taken from the \texttt{TS1} encoding (no questions asked):
+\begin{verbatim}
+  \DeclareTextSymbolDefault{\textasciigrave}{TS1}
+\end{verbatim}
+Again there is a danger that this is not true when it is used with a
+different font and would then generate a missing glyph.
+
+Finally, and possibly the best solution, if not impossible for other
+reasons, is to simply use a different font, for example, to use the
+\TeX{} Gyre Cursor font (a reimplementation of Courier but with a
+muchmore complete glyph set).
+
+
+
+
 \medskip
 \begin{thebibliography}{9}
 





More information about the latex3-commits mailing list.