summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx')
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx96
1 files changed, 63 insertions, 33 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx b/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
index fb437d4ad2b..6ebb62cee8d 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
@@ -37,14 +37,14 @@
%<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm)
%<TU>\ProvidesFile{tuenc.def}
%<package>\ProvidesPackage{fontenc}
-%<OT1|T1|OMS|OML|OT4|TU|package> [2019/11/22 v2.0l
+%<OT1|T1|OMS|OML|OT4|TU|package> [2020/01/25 v2.0m
%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
%<package> Standard LaTeX package]
%
%<*driver>
% \fi
\ProvidesFile{ltoutenc.dtx}
- [2019/12/18 v2.0m LaTeX Kernel (font encodings)]
+ [2020/01/20 v2.0n LaTeX Kernel (font encodings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutenc.dtx}
@@ -1044,7 +1044,7 @@
% \begin{macrocode}
\@onlypreamble\DeclareTextComposite
% \end{macrocode}
-%
+%
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1062,7 +1062,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\UseTextAccent}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macro}{\UseTextAccent}
% \begin{macro}{\UseTextSymbol}
% \changes{v1.7p}{1995/11/17}{Support \cs{@wrong@font@char} latex/1676}
@@ -1512,8 +1512,16 @@
% Some commands can be used in both text and math mode:
% \begin{macrocode}
\DeclareRobustCommand{\$}{\ifmmode\mathdollar\else\textdollar\fi}
-\DeclareRobustCommand{\{}{\ifmmode\lbrace\else\textbraceleft\fi}
-\DeclareRobustCommand{\}}{\ifmmode\rbrace\else\textbraceright\fi}
+% \end{macrocode}
+% We use \cs{protected} not \cs{DeclareRobustCommand} so that
+% \verb=\bigl\{= etc.\ works inside \cs{protected@edef}.
+% \changes{v2.0n}{2020/01/20}{fix for gh/251}
+% \begin{macrocode}
+\protected\def\{{\ifmmode\lbrace\else\textbraceleft\fi}
+\protected\def\}{\ifmmode\rbrace\else\textbraceright\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}
\DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi}
\DeclareRobustCommand{\dag}{\ifmmode{\dagger}\else\textdagger\fi}
@@ -2008,7 +2016,7 @@
\DeclareTextSymbol{\guillemotleft}{T1}{19}
\DeclareTextSymbol{\guillemotright}{T1}{20}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\guilsinglleft}{T1}{14}
\DeclareTextSymbol{\guilsinglright}{T1}{15}
@@ -2397,7 +2405,7 @@
\DeclareTextSymbol{\guillemotleft}{OT4}{174}
\DeclareTextSymbol{\guillemotright}{OT4}{175}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\i}{OT4}{16}
\DeclareTextSymbol{\j}{OT4}{17}
@@ -2998,7 +3006,7 @@
% old Adobe name
\DeclareTextSymbol{\guillemotleft} \UnicodeEncodingName{"00AB}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\textlnot} \UnicodeEncodingName{"00AC}
\DeclareTextSymbol{\textregistered} \UnicodeEncodingName{"00AE}
@@ -3020,7 +3028,7 @@
% old Adobe name
\DeclareTextSymbol{\guillemotright} \UnicodeEncodingName{"00BB}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\textonequarter} \UnicodeEncodingName{"00BC}
\DeclareTextSymbol{\textonehalf} \UnicodeEncodingName{"00BD}
@@ -3109,7 +3117,7 @@
\DeclareTextSymbol{\Hwithstroke} \UnicodeEncodingName{"0126}
\DeclareTextSymbol{\hwithstroke} \UnicodeEncodingName{"0127}
% \end{macrocode}
-%
+%
% Not all fonts have U+2217 but using U+002A requires some adjustment.
% \begin{macrocode}
\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
@@ -3487,27 +3495,48 @@
% \begin{macrocode}
\DeclareOption*{%
\let\encodingdefault\CurrentOption
- \edef\reserved@f{%
- \lowercase{\def\noexpand\reserved@f{\CurrentOption enc.def}}}%
- \reserved@f
- \InputIfFileExists\reserved@f
- {}{\PackageError{fontenc}%
- {Encoding file `\reserved@f' not found.%
- \MessageBreak
- You might have misspelt the name of the encoding}%
- {Necessary code for this encoding was not
- loaded.\MessageBreak
- Thus calling the encoding later on will
- produce further error messages.}}%
- \let\reserved@f\relax
+% \end{macrocode}
+% From 2020/02/02 release onward we only load the encoding files if
+% they haven't be loaded already. To check this we look if
+% \verb=\T@=\textit{encoding} is already defined. If not we load
+% (indicated by setting the switch
+% \texttt{@tempswa} to true and we always load if we run in an older
+% format (or rather in a rollback situation).
+% \changes{v2.0m}{2020/01/25}{Load each encoding file only once (gh/255)}
+% \begin{macrocode}
+ \@tempswafalse
+ \@ifl@t@r\fmtversion{2020/02/02}%
+ {\expandafter\ifx\csname T@\CurrentOption\endcsname\relax
+ \@tempswatrue\fi}%
+ {\@tempswatrue}%
+% \end{macrocode}
+% Load if necessary:
+% \begin{macrocode}
+ \if@tempswa
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \edef\reserved@f{%
+ \lowercase{\def\noexpand\reserved@f{\CurrentOption enc.def}}}%
+ \reserved@f
+ \InputIfFileExists\reserved@f
+ {}{\PackageError{fontenc}%
+ {Encoding file `\reserved@f' not found.%
+ \MessageBreak
+ You might have misspelt the name of the encoding}%
+ {Necessary code for this encoding was not
+ loaded.\MessageBreak
+ Thus calling the encoding later on will
+ produce further error messages.}}%
+ \let\reserved@f\relax
% \end{macrocode}
%
% In case the current encoding is one of a list of known
% cyrillic ones we extend the |\@uclclist|:
% \begin{macrocode}
- \expandafter\in@\expandafter{\CurrentOption}%
- {T2A,T2B,T2C,X2,LCY,OT2}%
- \ifin@
+ \expandafter\in@\expandafter{\CurrentOption}%
+ {T2A,T2B,T2C,X2,LCY,OT2}%
+ \ifin@
% \end{macrocode}
%
% But only if it hasn't already been extended. This might happen if
@@ -3516,12 +3545,13 @@
% unnecessarily big, slowing down the processing at runtime.
% \changes{v1.9v}{1999/06/12}{Extend \cs{@uclclist} only once}
% \begin{macrocode}
- \expandafter\in@\expandafter\cyra\expandafter
- {\@uclclist}%
- \ifin@
- \else
- \update@uclc@with@cyrillic
- \fi
+ \expandafter\in@\expandafter\cyra\expandafter
+ {\@uclclist}%
+ \ifin@
+ \else
+ \update@uclc@with@cyrillic
+ \fi
+ \fi
\fi
}
% \end{macrocode}