\renewcommand 和 \newcommand 用于重音字母

\renewcommand 和 \newcommand 用于重音字母

我使用的是 OT1 字体编码,但我想对 OT1 中不存在的字形使用 T1 字体编码。为此,我重新定义了典型的 T1 命令,以便它们自动选择 T1 编码。但是,对于重音字母的命令,例如\'eé使用\newcommand{\'e}不起作用,因为\'已经定义,但我也不能使用\renewcommand{\'e},因为完整序列\'e尚未定义。

有什么建议吗?

\documentclass{article}
\usepackage[T1, OT1]{fontenc}
%\newcommand{\'e}{\fontencoding{T1}\selectfont{\symbol{233}}} <- gives 'Command \' already defined' error
%\renewcommand{\'e}{\fontencoding{T1}\selectfont{\symbol{233}}} <- gives '\'eundefined' error
\begin{document}
\'e
\end{document}

编辑:

鉴于所有关于 OT1 与 T1 编码的评论,以下是 OT1 和 T1 字体的内容libertine。从这里可以看出 OT1 字体有一些 T1 字体没有的连字:

\documentclass{article}
\usepackage{fonttable}
\begin{document}
\fonttable{LinLibertineT-lf-ot1} % OT1 encoding
\fonttable{LinLibertineT-lf-t1} % T1 encoding
\end{document}

enter image description here enter image description here

答案1

可以,但是切换到 T1 编码不是更简单吗?

\documentclass{article}
\usepackage[T1,OT1]{fontenc}
\usepackage{libertine}

\DeclareTextCompositeCommand{\'}{OT1}{e}{{\fontencoding{T1}\selectfont\'e}}

\begin{document}

a\accent19 ei % the original one

a\'ei

\end{document}

enter image description here

您可以使用相同的模式轻松扩展到所有所需的组合。请注意,您甚至可以\'e在定义中使用,因为编码已经T1在组中,因此组合\'e将使用相对定义。

相关内容