summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltfinal.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltfinal.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltfinal.dtx144
1 files changed, 138 insertions, 6 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx
index 614f4cb73cf..72b09cc8567 100644
--- a/Master/texmf-dist/source/latex/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfinal.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright 1993-2015
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2014/09/29 v1.1e LaTeX Kernel (Final Settings)]
+ [2015/03/26 v2.0e LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -48,13 +48,14 @@
Chris Rowley\and
Rainer Sch\"opf}
\begin{document}
-\maketitle
+ \MaintainedByLaTeXTeam{latex}
+ \maketitle
\DocInput{ltfinal.dtx}
\end{document}
%</driver>
% \fi
%
-% \CheckSum{472}
+% \CheckSum{558}
%
% \section{Final settings}
% This section contains the final settings for \LaTeX. It initialises
@@ -109,6 +110,75 @@
% \end{macro}
% \end{macro}
% \end{macro}
+%
+%
+%\begin{macro}{\newmarks}
+% \changes{v2.0a}{2014/12/30}{macro added}
+% \changes{v2.0b}{2015/01/23}{use reserved count 256}
+% Allocate extended marks types if etex is active.
+% Placed here at the end of the format
+% to increase compatibility with count allocations
+% in earlier releases.
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\newmarks}{Extended Allocation}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\marks\@undefined\else
+\def\newmarks{%
+ \e@alloc\marks \e@alloc@chardef{\count256}\e@alloc@top\e@alloc@top}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\newmarks}{Extended Allocation}%
+%<latexrelease>\let\newmarks\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%\begin{macro}{\newXeTeXintercharclass}
+% \changes{v2.0a}{2014/12/30}{macro added}
+% \changes{v2.0b}{2015/01/23}{use reserved count 257}
+% Allocate |\XeTeXintercharclass| types if xetex is active.
+% previously defined in |xetex.ini|.
+%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\newXeTeXintercharclass}{Extended Allocation}%
+% \end{macrocode}
+%
+% Classes allocatedfrom 4 (1,2 and 3 are used by CJK), up to 254.
+% \begin{macrocode}
+\ifx\XeTeXcharclass\@undefined
+\else
+\count257=\thr@@
+\def\newXeTeXintercharclass{%
+ \e@alloc\XeTeXcharclass\chardef{\count257}\@cclv\@cclv}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\newXeTeXintercharclass}{Extended Allocation}%
+%<latexrelease>\let\xe@alloc@intercharclass\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
% The default values of the picture and |\fbox| parameters:
% \begin{macrocode}
\unitlength = 1pt
@@ -140,7 +210,44 @@
% \end{macrocode}
%
% \subsection{Lccodes for hyphenation}
-%
+%
+% \changes{v2.0a}{2015/01/03}{Unicode data loading added}
+% \changes{v2.0c}{2015/01/24}{Skip T1-code entirely with Unicode engines}
+% \changes{v2.0d}{2015/03/26}{Use renamed
+% \texttt{unicode-letters.def}}
+% For $7$- and $8$-bit engines the assumption of T1 encodings is the
+% basis for the hyphenation patterns. That's not the case for the Unicode
+% engines, where the assumption is engine-native working. The file
+% |unicode-letters.def| contains data extracted from the
+% master Unicode Consortium
+% information covering not only |\lccode| but also other related data. The
+% |\lccode| part of that at least needs to be loaded before hyphenation is
+% tackled: Xe\TeX{} follows the standard \TeX{} route of building patterns
+% into the format. Lua\TeX{} doesn't require this data be loaded \emph{here}
+% but it does need to be loaded somewhere. Rather than test for the Unicode
+% engines by name, the approach here is to look for the extended math mode
+% handling both provide: any other engine developed in this area will
+% presumably also provide |\Umathcode| (older Xe\TeX{} versions use
+% |\XeTeXmathcode| so that is covered too).
+% \begin{macrocode}
+\ifnum 0%
+ \ifx\Umathcode\@undefined\else 1\fi
+ \ifx\XeTeXmathcode\@undefined\else 1\fi
+ >\z@
+ \message{ Unicode character data,}
+ \input{unicode-letters.def}
+% \end{macrocode}
+% \changes{v2.0d}{2015/02/03}{Set \cs{lccode} for \texttt{-} with Unicode
+% engines}
+% There is one over-ride that makes sense here (see below for the same for
+% $8$-bit engines): setting the lccode for |-| to itself.
+% \begin{macrocode}
+ \lccode`\- =`\- % default hyphen char
+% \end{macrocode}
+% The alternative is that a ``traditional'' engine is in use.
+% \begin{macrocode}
+\else
+% \end{macrocode}
% \changes{v1.1b}{1998/05/20}{Set up lccodes before loading
% hyphenation files: pr/2639}
% We set things up so that hyphenation files can assume that the
@@ -226,6 +333,21 @@
\lccode 23 =23 % textcompwordmark in T1
% \end{macrocode}
%
+% End of the conditional to select either Unicode or T1 encoding defaults.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% This is as good a place as any to active a few Xe\TeX{}-specific
+% settings
+% \begin{macrocode}
+\ifx\XeTeXuseglyphmetrics\@undefined
+\else
+ \XeTeXuseglyphmetrics=1 %
+ \XeTeXdashbreakstate=1 %
+\fi
+% \end{macrocode}
+%
% \subsection{Hyphenation}
%
% \changes{v0.1a}{1994/03/07}{move code here from lhyphen.dtx}
@@ -372,7 +494,16 @@
% this for non-ASCII characters.
% \changes{v1.0n}{1994/06/09}{For \TeX2, do not set codes for higher
% half of character table.}
-% \begin{macrocode}
+% \changes{v2.0a}{2015/01/03}{Skip resetting codes with Unicode engines}
+% For the Unicode engines (Xe\TeX{} and Lua\TeX{}) there is no need to
+% do any of this: they use hyphenation data which does not alter any
+% of the set up and so this entire block is skipped.
+% \begin{macrocode}
+\ifnum 0%
+ \ifx\Umathcode\@undefined\else 1\fi
+ \ifx\XeTeXmathcode\@undefined\else 1\fi
+ >\z@
+\else
\def\reserved@c#1{%
\count@=#1\advance\count@ by -"20
\uccode#1=\count@
@@ -419,6 +550,7 @@
% {Added extra \cs{lcode}, hoping it does no harm in T1 (pr/1969)}
% \begin{macrocode}
\lccode`\^^[=`\^^[ % oe in OT1
+\fi % End of reset block for 8-bit engines
% \end{macrocode}
%
% \begin{macro}{\MakeUppercase}