Ich hatte gehofft, dass mit Ausnahme von inputenc
/ fontenc
versus fontspec
alte, .tex
in codierte Dateien UTF-8
verwendet werden könnten, ohne dass an den pdftex
- xetex
oder luatex
-Engines etwas geändert werden müsste.
Aber das folgende MWE weist darauf hin, dass dies aufgrund einiger
xunicode
öffentlicher Makros nicht der Fall ist, unter anderem \m
, \B
, \G
, \M
, \T
und \U
: Schade, dass dieses Paket so kurze und daher beliebte Makronamen gewählt hat!
\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
Soweit ich weiß, betreffen alle diese Makros außer OT1
die Schriftkodierung und \T
sind wie folgt definiert \DeclareRobustCommand{\T}[1]{\~{\m{#1}}}
:
Daher meine Frage: Ist es im Falle der T1
Schriftkodierung möglich, diese Makros sicher zu patchen, um sie zu deaktivieren (direkt nach fontspec
dem Laden)?
Antwort1
xunicode setzt für diese Befehle auch einige OT1-Standards, aber der Hauptpunkt sind Akzentbefehle. Z. B.
\DeclareEncodedCompositeCharacter{\UTFencname}{\M}{0322}{0322} % (Combining retroflex hook below)
Sie können den Befehl natürlich neu definieren, wenn Sie ihn nicht verwenden, aber es besteht die Tradition, für Akzentbefehle „Ein-Zeichen-Befehle“ zu verwenden, und deshalb würde ich einen solchen Namen niemals für einen Befehl verwenden.