标题基本上说明了一切。
我siunitx
用
\usepackage[binary-units=true]{siunitx}
\sisetup{locale = DE}
对于\SI{...}{\micro\ohm}
,\micro
输出正确(非斜体),\ohm
输出为斜体。这在文本和数学模式下都会发生。
我的 MWE 是
\documentclass{publisher-custom}
\usepackage[binary-units=true]{siunitx}
\sisetup{locale = DE}
\begin{document}
\SI{1,09715247}{\micro\ohm}
\end{document}
由于我无法更改(或在此处发布)发布商自定义文档类代码中的内容,我该如何修复此问题?
更新:
通过 grep 搜索 [Oo]mega,我在发布者的 cls 文件中找到了以下几行:
...
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
...
\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A}
...
这有帮助吗?
答案1
更新后问题的答案
特殊类文件用途:
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A}
然后\Omega
默认为斜体且\varOmega
直立。如果可用,则包siunitx
使用\upOmega
来初始化 的符号math-ohm
,否则\Omega
用作\text{$\Omega$}
,从而得到斜体Ω。而\mathrm{\Omega}
会给出一个直立的 Ω。
由于直立欧姆符号可用,因此可以轻松为包提供\varOmega
宏:\upOmega
siunitx
\documentclass{article}
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}% italics
\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A}% upright
\providecommand*{\upOmega}{\varOmega}% for siunitx
\usepackage[binary-units=true]{siunitx}
\sisetup{locale = DE}
\begin{document}
\SI{1,09715247}{\micro\ohm}
\end{document}
回答第一个版本问题的
我得到的是斜体\mu
。也许你想要的是\micro
斜体。\ohm
是直立的:
\documentclass{article}
\usepackage[binary-units=true]{siunitx}
\sisetup{locale = DE}
\begin{document}
\si{\mu\ohm} vs.\@ \si{\micro\ohm}
\end{document}
答案2
您的文档类的设计者希望您使用斜体大写希腊字母,在我看来,根据 ISO 这是理想的(但当然是一个品味问题)。
由于您的模板是按原样编写的,因此我不会像评论中建议的那样更改此行为。只需像这样重新定义math-ohm
from :siunitx
% arara: pdflatex
%\documentclass{publisher-custom}
\documentclass{article}
\usepackage{siunitx}
\sisetup{%
,binary-units=true
,locale = DE
,math-ohm =\Omega
}
\usepackage{lmodern}
% from your class definition
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A}
\begin{document}
\si{\micro\ohm} and $\si{\micro\ohm}$ but $\mu\times\Omega$
\end{document}