load-unicode-xetex-classes.tex가 xetex.ini(xelatex.ini가 아님)에 의해서만 로드되는 이유는 무엇입니까?

load-unicode-xetex-classes.tex가 xetex.ini(xelatex.ini가 아님)에 의해서만 로드되는 이유는 무엇입니까?

파일xetex.ini생성할 때 사용됩니다 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 %

이 .ini 파일은 load-unicode-data.texload-unicode-xetex-classes.tex. 하지만 생성 시 xelatex.fmt사용된 파일은xelatex.iniload-unicode-data.tex(를 통해 ) 첫 번째 파일만 로드하는 것 같습니다 latex.ltx.

latex2e 저장소를 검색했는데 두 번째 파일이 포함된 것을 찾을 수 없습니다 load-unicode-xetex-classes.tex. 이 파일은 왜 xetex.ini에서만 입력됩니까?

답변1

TeX Live와 MiKTeX에서 사용하는 파일 .ini은 DVI를 처리하는 간단한 방법으로 시작되었습니다.~ 대PDF 출력: latex.inipdflatex.ini. 그러나 시간이 지남에 따라 특히 일반 TeX와 유사한 형식의 경우 성장했습니다. 그 이유는 Knuth가 (관습에 따라) 다른 사람이 변경할 수 없는 파일의 원본 TeX(TeX90)만 지원하기 때문입니다. 따라서 XeTeX, LuaTeX의 주요 기능을 지원하기 위해등., 파일에 코드를 추가 .ini해야 했습니다.

일정 기간 동안 변경 사항도 적용되지 않아 latex.ltx다양한 내용이 수집되었습니다 xelatex.ini.등.얼마 전 팀에서는 XeTeX와 LuaTeX를 적극적으로 지원하기로 결정했고, 많은 코드가 파일에서 .ini다시 latex.ltx.

ltfinal.dtx(의 마지막 부분에 대한 출처 ) 를 살펴보면 latex.ltx다음과 같은 내용을 찾을 수 있습니다.load-unicode-xetex-classes ~이다읽기: 현재 소스 부분에는 다음과 같이 나와 있습니다.

% \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}

XeTeX 클래스 로딩에는 두 가지 버전이 있다는 것을 알 수 있습니다. 파일의 변경 사항을 반영하는 것 .ini,등.

일반 TeX의 경우오직유니코드 데이터를 형식으로 로드하는 방법은 파일에 있습니다 .ini. 따라서 로더는 다른 것(예: 유니코드 기본 데이터 및 유니코드 수학 모드 정보)과 함께 존재합니다.

관련 정보