我使用的是 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}
答案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}
您可以使用相同的模式轻松扩展到所有所需的组合。请注意,您甚至可以\'e
在定义中使用,因为编码已经T1
在组中,因此组合\'e
将使用相对定义。