更新 2013-02-15

更新 2013-02-15

我读到过,newtxtextnewtxmath包比timestxfonts和更可取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 以下尺寸的常规和粗体数学斜体中的问题。

相关内容