OT4 字体编码和 tgpagella 包之间似乎存在不兼容。当我加载任一包时,磅号显示为 $(这很危险,因为我们已经陷入了金融危机 =;-)。我已通过日志文件预先加载了这两个包。我能做些什么呢?
\documentclass{article}
\usepackage{tgpagella}
%\usepackage[OT4]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\begin{document}
15€ + \$17 = 13£?
\end{document}
答案1
OT* 字体编码的问题在于它们只有 128 个插槽位置。OT4 编码中没有英镑的位置。该符号由粗略的黑客支持。英镑和美元符号共享同一个插槽。斜体形状it
和直立形式的特殊形状ui
包含英镑,其他形状包含美元:
\DeclareTextCommand{\textdollar}{OT4}{\hmode@bgroup
\ifdim \fontdimen\@ne\font >\z@
\slshape
\else
\upshape
\fi
\char`\$\egroup}
\DeclareTextCommand{\textsterling}{OT4}{\hmode@bgroup
\ifdim \fontdimen\@ne\font >\z@
\itshape
\else
\fontshape{ui}\selectfont
\fi
\char`\$\egroup}
然而,TeX Gyre Pagella 不支持这一点,始终使用美元符号。字体形状ui
甚至没有定义:
LaTeX Font Warning: Font shape `OT4/qpl/m/ui' undefined
(Font) using `OT4/qpl/m/n' instead on input line 12.
解决方案\textsterling
可以重新定义为 OT4 编码,以使用不同的编码而不会出现这样的麻烦:
\DeclareTextCommand{\textsterling}{OT4}{%
\begingroup\fontencoding{T1}\selectfont\textsterling}\endgroup
}
更好的解决方案是使用更好的编码,如T1
Herbert 所建议的。这也可以在类加载后完成:
\documentclass{...}
\usepackage[T1]{fontenc}
Packagefontenc
是 LaTeX 包管理系统中的例外。它可以通过不同的选项加载多次。
对于某些文本仍在使用的情况OT4
,我会为 OT4 添加的重新定义\textsterling
,并使用更好的编码,例如T1
。