`\usepackage{txfonts}`似乎与`\usepackage{siunitx}`冲突? `\SI{}{\ohm}`的欧姆符号无法显示,而且使用`\textbf{}`也会失效。看了一下`texdoc txfonts`,该宏包似乎将字体全部设置成了Times New Roman,所以不能加粗吗? 不使用该宏包的话,有替代方案吗?该宏包含有许多`\usepackage{txfonts, latexsym}`没有包含的符号。同一作者的`\usepackage{pxfonts}` 也不行。

2 回答2

1
整体的解决方案% ```tex \PassOptionsToPackage{no-math}{fontspec}% optional \documentclass{ctexart} \usepackage{newtxtext} \usepackage{siunitx} \sisetup{mode=text} \begin{document} \si{\um} \end{document} ``` 输出效果即为你标注的第三种情况下的输出(article + siunitx + txfonts)。 在使用 xelatex 时,推荐用 newtx 包提供的 newtxtext 宏包代替 txfonts。 配置 `siunitx` 包,把默认的 `mode = math` 改成 `mode = text`。参考 [siunitx 宏包文档](https://mirrors.ctan.org/macros/latex/contrib/siunitx/siunitx.pdf),Sec. 5.3。 xelatex 下,因为字体编码等原因,最好所有字体都通过 `fontspec` 和 `unicode-math` 进行设置。参考 [newtx 宏包文档](https://mirrors.ctan.org/fonts/newtx/doc/newtxdoc.pdf),Sec. 5。 作者:知乎用户 链接:https://www.zhihu.com/question/346544697/answer/827406526 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

作者追问:2019-10-09 13:54

非常感谢!方案是可行的,测试后发现如下几个情况: 1. 如果在`\usepackage{newtxtext}`之前`\usepackage{textcomp}`会报错`d:\bin\texlive\2019\texmf-dist\tex\latex\newtx\newtxtext.sty|91 error| LaTeX Error: Option clash for package textcomp.`,但调换顺序则不会。 2. 如果使用`\usepackage{ctex}`和`\usepackage{siunitx}`会导致`\SI{}{\kohm}`无法显示,必须要先使用`\sisetup{mode=text}`才行 3. 如果在`\usepackage{newtxtext}`之后`\usepackage{ctex}`会导致`\textbf{A}`无法加粗,但调换顺序就可以。 能请教一下这几个情况是怎么回事吗? 另外,是不是`\usepackage{newtxtext}`和`\usepackage{newtxmath}`可以取代`\usepackage{amsfont, amsmath, latexsym}`?看了一下`texdoc`感觉功能是包含的:)

作者追问:2019-10-09 14:20

非常感谢:)方案是可行的,测试了之后发现如下情况: 1. 如果`\usepackage{textcomp,newtxtext}`会报错`d:\bin\texlive\2019\texmf-dist\tex\latex\newtx\newtxtext.sty|91 error| LaTeX Error: Option clash for package textcomp.`,但`\usepackage{textcomp,newtxtext}`则不会。 2. 如果`\usepackage{newtxtext, ctex}`会导致`\textbf{A}`无法加粗,但`\usepackage{ctex, newtxtext}`则不会。 3. 如果`\usepackage{siunitx, ctex}`会导致`\SI{}{\kohm}`无法显示,如果加了`\sisetup{mode=text}`则不会。颠倒顺序`\usepackage{ctex, siunitx}`也是一样的。 请教一下以上是什么情况? 另外看了`texdoc`感觉`\usepackage{newtxtext, newtxmath}`是不是可以取代`\usepackage{amsfont, amsmath, latexsym, textcomp}`?感觉大部分数学符号和宏都是包含的,是不是不用再重复包含了?:)
1
支持把 `txfonts` 换成 `newtxtext`

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。