我读到过,newtxtext
和newtxmath
包比times
、txfonts
和更可取mathptmx
,至少与一起使用时是这样pdfTeX
。我正在写一篇论文,其中的一些测量值以微米 (µm) 为单位。不幸的是,\textmu
(以及\micro
中的siunitx
)被 Computer Modern 替换了。
例子:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage{textcomp}
\begin{document}
This is 10\textmu m.
\end{document}
在编译过程中,我看到了这一点:
LaTeX Font Warning: Font shape `TS1/ntxrx/m/n' undefined
(Font) using `TS1/cmr/m/n' instead
(Font) for symbol `textmu' on input line 12.
和LaTeX Font Warning: Some font shapes were not available, defaults substituted.
这似乎\textohm
也发生在命令上(也许还有其他我没有使用的命令)。它在粗体文本中看起来特别糟糕。 txfonts
似乎会产生输出(尽管 mu 符号不如 好用mathptmx
)。使用mathptmx
会导致编译失败\textohm
。Arg。
我想知道是否有一些我不知道的技巧可以让这些软件包\textmu
(或\micro
从 siunitx 中)正常工作。我使用的是 1.07 版newtxtext
,发布日期为 2012 年 12 月 25 日。
谢谢。
答案1
你可以用以下方法纠正错误行为
\usepackage{textcomp}
\renewcommand{\textmu}{\ensuremath{\upmu}}
\renewcommand{\textOhm}{\ensuremath{\upOmega}}
但是,newtx{text,math}
TS1 编码中没有配套字体,因此您可能会收到有关其他符号的警告。
为了使用siunitx
,只需更改相关设置:
\usepackage{siunitx}
\sisetup{math-micro=\upmu,text-micro=\ensuremath{\upmu},
math-ohm=\upOmega,text-ohm=\ensuremath{\upOmega}}
再做一些工作,您就可以获得一个版本,\textmu
并且\textohm
该版本也是粗体:
\makeatletter
\DeclareRobustCommand{\textmu}{{\usefont{U}{ntxmia}{\f@series}{it}\symbol{\string"16}}}
\DeclareRobustCommand{\textohm}{{\usefont{U}{ntxmia}{\f@series}{it}\symbol{\string"0A}}}
\makeatother
\sisetup{math-micro=\upmu,text-micro=\textmu,
math-ohm=\upOmega,text-ohm=\textohm}
不支持斜体,抱歉;如果你真的需要它,就可以做点什么。
更新 2013-02-15
该软件包的最新修订版(版本 1.08)newtx
提供了该系列中 TS1 编码的字体定义文件ntxrx
,因此原始示例可以正常工作,不再需要任何解决方法。摘自 README 文件:
1.08 版的变化:
所有修正仅影响文本和数学中的 Times 模式。1
. 修复了数学斜体中的矢量字形问题。2
. 添加了丢失的文件ts1ntxrx.fd
。3
. 修正了 10pt 以下尺寸的常规和粗体数学斜体中的问题。