Dateixetex.ini
wird beim Generieren verwendet xetex.fmt
.
%% xetex.ini
% General Unicode set up
\input load-unicode-data.tex %
% Classes that have always been defined by the XeTeX format
\input load-unicode-xetex-classes.tex %
Diese INI-Datei lädt sowohl load-unicode-data.tex
als auch load-unicode-xetex-classes.tex
. Aber bei der Generierung von wird xelatex.fmt
die verwendete Dateixelatex.ini
scheint nur die erste Datei zu laden load-unicode-data.tex
(durch latex.ltx
).
Ich habe das Repository von latex2e durchsucht und kann keine Einbindung der zweiten Datei finden load-unicode-xetex-classes.tex
. Warum wird diese Datei nur von xetex.ini eingegeben?
Antwort1
Der.ini
von TeX Live und MiKTeX verwendeten Dateien waren ursprünglich eine einfache Möglichkeit, mit DVI umzugehengegenPDF-Ausgabe: latex.ini
undpdflatex.ini
. Allerdings sind sie im Laufe der Zeit gewachsen, insbesondere die für einfache TeX-ähnliche Formate. Der Grund dafür ist, dass Knuth für einfaches TeX nur das ursprüngliche TeX (TeX90) in einer Datei unterstützt, die (gemäß Konvention) nicht von anderen geändert werden kann. Um also die wichtigsten Funktionen von XeTeX, LuaTeX,usw., war es notwendig, den Dateien Code hinzuzufügen .ini
.
Eine Zeit lang wurden auch keine Änderungen vorgenommen latex.ltx
und so sammelten sich verschiedene Dinge inxelatex.ini
,usw.Vor einiger Zeit hat das Team beschlossen, XeTeX und LuaTeX aktiv zu unterstützen, und viel Code wurde aus den .ini
Dateien zurück nach verschoben latex.ltx
.
Wenn Sie in ltfinal.dtx
(Quelle für den letzten Teil von latex.ltx
) nachsehen, werden Sie feststellen, dassload-unicode-xetex-classes
Istlesen Sie: der Quellteil sagt derzeit
% \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}}
% \changes{v2.0i}{2015/12/10}{Use new common Unicode data loaders}
% \changes{v2.0j}{2016/01/04}{Do not set up inter character classes for
% XeTeX}
% \changes{v2.0l}{2016/01/05}{Correct \textsf{latexrelease} guards}
% \changes{v2.0l}{2016/01/05}{Ensure old definitions for inter-character
% class toks are available using \textsf{latexrelease}}
% \changes{v2.0m}{2016/01/05}{Undefine XeTeX classes when using patching
% an older kernel}
% \changes{v2.0l}{2016/01/05}{Missing brace}
% \changes{v2.0p}{2016/01/05}{Only apply XeTeX change if XeTeX is in use}
% 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 common
% loader system provides access to data from the Unicode Consortium
% 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|.
% \begin{macrocode}
\ifnum 0%
\ifx\Umathcode\@undefined\else 1\fi
\ifx\XeTeXmathcode\@undefined\else 1\fi
>\z@
\message{ Unicode character data,}
\input{load-unicode-data}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2016/02/01}%
%<latexrelease> {\XeTeXintercharclasses}{XeTeX character classes}%
%<latexrelease> \ifx\XeTeXinterchartoks\undefined
%<latexrelease> \else
%<latexrelease> \begingroup
%<latexrelease> \chardef\XeTeXcharclassID = 0 %
%<latexrelease> \chardef\XeTeXcharclassOP = 0 %
%<latexrelease> \chardef\XeTeXcharclassCL = 0 %
%<latexrelease> \chardef\XeTeXcharclassEX = 0 %
%<latexrelease> \chardef\XeTeXcharclassIS = 0 %
%<latexrelease> \chardef\XeTeXcharclassNS = 0 %
%<latexrelease> \chardef\XeTeXcharclassCM = 0 %
%<latexrelease> \input{load-unicode-xetex-classes}
%<latexrelease> \endgroup
%<latexrelease> \global\let\xtxHanGlue\undefined
%<latexrelease> \global\let\xtxHanSpace\undefined
%<latexrelease> \global\XeTeXinterchartoks 0 1 = {}
%<latexrelease> \global\XeTeXinterchartoks 0 2 = {}
%<latexrelease> \global\XeTeXinterchartoks 0 3 = {}
%<latexrelease> \global\XeTeXinterchartoks 1 0 = {}
%<latexrelease> \global\XeTeXinterchartoks 2 0 = {}
%<latexrelease> \global\XeTeXinterchartoks 3 0 = {}
%<latexrelease> \global\XeTeXinterchartoks 1 1 = {}
%<latexrelease> \global\XeTeXinterchartoks 1 2 = {}
%<latexrelease> \global\XeTeXinterchartoks 1 3 = {}
%<latexrelease> \global\XeTeXinterchartoks 2 1 = {}
%<latexrelease> \global\XeTeXinterchartoks 2 2 = {}
%<latexrelease> \global\XeTeXinterchartoks 2 3 = {}
%<latexrelease> \global\XeTeXinterchartoks 3 1 = {}
%<latexrelease> \global\XeTeXinterchartoks 3 2 = {}
%<latexrelease> \global\XeTeXinterchartoks 3 3 = {}
%<latexrelease> \fi
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\XeTeXintercharclasses}{XeTeX character classes}%
%<latexrelease> \ifx\XeTeXinterchartoks\undefined
%<latexrelease> \else
%<latexrelease> \input{load-unicode-xetex-classes}
%<latexrelease> \gdef\xtxHanGlue{\hskip0pt plus 0.1em\relax}
%<latexrelease> \gdef\xtxHanSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}
%<latexrelease> \global\XeTeXinterchartoks 0 1 = {\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 0 2 = {\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 0 3 = {\nobreak\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 1 0 = {\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 2 0 = {\nobreak\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 3 0 = {\xtxHanSpace}
%<latexrelease> \global\XeTeXinterchartoks 1 1 = {\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 1 2 = {\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 1 3 = {\nobreak\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 2 1 = {\nobreak\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 2 2 = {\nobreak\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 2 3 = {\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 3 1 = {\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 3 2 = {\xtxHanGlue}
%<latexrelease> \global\XeTeXinterchartoks 3 3 = {\nobreak\xtxHanGlue}
%<latexrelease> \fi
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \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}
Sie werden sehen, dass es zwei Versionen des XeTeX-Klassenladens gibt: dies spiegelt Änderungen in der.ini
Dateien widerspiegelt,usw.
Für reines TeX ist dienurMöglichkeit, Unicode-Daten in das Format zu laden, befindet sich in der .ini
Datei. Daher ist der Loader dort, zusammen mit anderen (wie Unicode-Basisdaten und Unicode-Informationen zum mathematischen Modus).