Отключить некоторые макросы xunicode в случае кодировки шрифта T1?

Отключить некоторые макросы xunicode в случае кодировки шрифта T1?

Я надеялся, что, за исключением 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)

Естественно, вы можете переопределить команду, если она вам не нужна, но существует традиция использовать «односимвольные команды» для команд с акцентами, поэтому я бы никогда не использовал такое название для команды.

Связанный контент