在 T1 字体编码的情况下禁用一些 xunicode 宏?

在 T1 字体编码的情况下禁用一些 xunicode 宏?

我希望,除了inputenc/fontenc与 之外fontspec,可以使用.tex中编码的旧文件,UTF-8而无需对pdftexxetexluatex引擎进行任何更改。

但是以下 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}

据我所知,所有这些宏除了\T涉及OT1字体编码之外都\T被定义为\DeclareRobustCommand{\T}[1]{\~{\m{#1}}}

因此我的问题是:在字体编码的情况下T1,是否可以安全地修补这些宏以禁用它们(在fontspec加载之后)?

答案1

xunicode 也为这些命令设置了一些 OT1 默认值,但重点是重音命令。例如

\DeclareEncodedCompositeCharacter{\UTFencname}{\M}{0322}{0322}  % (Combining retroflex hook below)

如果您不使用该命令,您自然可以重新定义它,但是传统上对重音命令使用“单字符命令”,因此我永远不会对命令使用这样的名称。

相关内容