inputenc
나는 / fontenc
대 를 제외하고 에 인코딩된 fontspec
오래된 파일을 , 또는 엔진 에서 아무것도 변경하지 않고 사용할 수 있기를 바랐습니다 ..tex
UTF-8
pdftex
xetex
luatex
그러나 다음 MWE는 , , , 및 : xunicode
등의 일부 공개 매크로 때문에 그렇지 않다는 점을 지적합니다 . 이렇게 짧고 대중적인 매크로 이름이 이 패키지에서 선택되었다는 점은 아쉽습니다 !\m
\B
\G
\M
\T
\U
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\pdftex_if_engine:TF
{
\show\m
\show\B
\show\G
\show\M
\show\T
\show\U
}
{
\usepackage{fontspec}
\show\m
\show\B
\show\G
\show\M
\show\T
\show\U
}
\ExplSyntaxOff
\begin{document}
% \newcommand{\m}{}
% \newcommand{\B}{}
% \newcommand{\G}{}
% \newcommand{\M}{}
% \newcommand{\T}{}
% \newcommand{\U}{}
\end{document}
AFAIU, 이러한 매크로를 제외한 모든 매크로는 글꼴 인코딩 과 \T
관련 이 있으며 .OT1
\T
\DeclareRobustCommand{\T}[1]{\~{\m{#1}}}
따라서 내 질문은 다음과 같습니다. 글꼴 인코딩의 경우 T1
이러한 매크로를 안전하게 패치하여 비활성화할 수 있습니까( fontspec
로드 직후)?
답변1
xunicode는 이러한 명령에 대해 일부 OT1 기본값도 설정하지만 주요 요점은 악센트 명령입니다. 예:
\DeclareEncodedCompositeCharacter{\UTFencname}{\M}{0322}{0322} % (Combining retroflex hook below)
사용하지 않으면 자연스럽게 명령을 재정의할 수 있지만 악센트 명령에 "one-char-commands"를 사용하는 전통이 있으므로 명령에 그런 이름을 사용하지 않습니다.