在 T1 字型編碼的情況下停用某些 xunicode 巨集?

在 T1 字型編碼的情況下停用某些 xunicode 巨集?

我希望,除了inputenc/fontenc與 之外fontspec,可以使用.tex編碼的舊文件,UTF-8而無需更改任何內容pdftex而無需使用,xetexluatex引擎進行任何更改。

但以下的 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”作為重音命令,因此我永遠不會對命令使用這樣的名稱。

相關內容