使用 txfonts 和 fontenc 的美元符号

使用 txfonts 和 fontenc 的美元符号

\textbf{}我在使用txfonts和包时遇到了美元符号 ($) 和 的一个奇怪问题fontenc。美元符号后面有一个空格。需要两个包才能重现此问题。

在此处输入图片描述

\documentclass{report}
\usepackage{txfonts}
\usepackage[T1]{fontenc}

\begin{document}
\begin{tabular}{l}
\textbf{\$500}\\
\$500
\end{tabular}
\end{document}

为什么会这样?最好的解决方案是什么?

答案1

根据我的测试,T1 编码 TX 字体中的粗体美元符号可能存在​​一些问题,但具体机制我不太清楚。无论如何,暂时切换到 OT1 编码字体确实是一种非最佳补救措施。

\documentclass{report}
\usepackage{txfonts}
\usepackage[T1]{fontenc}
\renewcommand{\$}{{\fontencoding{OT1}\selectfont\textdollar}}

\begin{document}

\begin{tabular}{l}
\textbf{\$500}\\
\$500 
\end{tabular}
\end{document}

答案2

这是 TXfonts 发行版中的一个错误。在构建粗体字体指标时,美元符号(字符 36,八进制 44)接收了“&”符号(字符 38,八进制 46)的信息,这从派生自和t1xb.tfmtxb.tfm分别用于 T1 和 OT1 编码中的粗体字体)的属性列表文件中可以看出。由于这个错误,TeX 会打印美元符号,但为其保留的空间与“&”符号的相同。差异是 3.33pt,因此它类似于单词间空间。

t1xb.pl

(CHARACTER O 44
   (CHARWD R 0.833)
   (CHARHT R 0.681999)
   (CHARDP R 0.0135)
   )
(CHARACTER O 45
   (CHARWD R 1.0)
   (CHARHT R 0.681999)
   (CHARDP R 0.0135)
   )
(CHARACTER O 46
   (CHARWD R 0.833)
   (CHARHT R 0.681999)
   (CHARDP R 0.0135)
   )

txb.pl

(CHARACTER O 44
   (CHARWD R 0.5)
   (CHARHT R 0.75)
   (CHARDP R 0.0975)
   )
(CHARACTER O 45
   (CHARWD R 1.0)
   (CHARHT R 0.686)
   (CHARDP R 0.0135)
   )
(CHARACTER O 46
   (CHARWD R 0.833)
   (CHARHT R 0.686)
   (CHARDP R 0.0175)
   )

\textdollar解决方法是在 T1 编码中取消声明该命令。

\documentclass{report}
\usepackage[T1]{fontenc}
%\usepackage{txfonts}
\usepackage{newtxtext}

\UndeclareTextCommand{\textdollar}{T1}

\begin{document}
\bfseries\$5
\end{document}

newtxtextNewTX 字体的开发人员很活跃,如果不是针对原始 TXfonts,也许他至少可以针对该软件包想出解决方案。

相关内容