使用 DeclareSIUnit 的单位格式正在被 \cdot 修改

使用 DeclareSIUnit 的单位格式正在被 \cdot 修改

我想在新的变量 \kPaf 的开头插入一个 cdot 符号,这样我就不需要一直写它了。当我尝试这样做时,就像在 \cdotkPaf 中一样,\dfrac 被关闭了。如何在开头添加 \cdot 以使其看起来像第三个等式,它仅使用数学模式?

\documentclass[12pt]{article}
\usepackage{amsmath} % for "\dfrac" macro
\usepackage[per-mode = fraction,fraction-function=\dfrac]{siunitx}
\DeclareSIUnit{\kPaf}{\kilo\newton\per\meter\squared} 
\DeclareSIUnit{\cdotkPaf}{\cdot\kilo\newton\per\meter\squared}

\begin{document}

\begin{gather}
A=2\si{\kPaf} \\
A=2\si{\cdotkPaf} \\
A=2\cdot\dfrac{kN}{m^{2}}
\end{gather}

\end{document}

答案1

你用\cdot来表示标量(此处:2)和相关单位(此处:\kPaf)的(抽象)乘积,对吗?如果是这样,你似乎在滥用siunitx机制,试图将\cdot符号作为单位表达式的一部分。而不是写

A=2\si{\cdotkPaf} 

你真的应该写

A=\SI[number-unit-product=\cdot]{2}{\kPaf}

请注意,它\SI接受两个强制参数:数字部分和单位部分。当然,number-unit-product=\cdot可以在运行 时声明该选项\sisetup;这样,每次使用 时就不必重新声明它\SI

顺便说一句,如果您确实需要 ,请重新考虑\cdot。 细间距(使用 时的默认设置SI)在分隔数字和单位方面同样有效。

另外,我认为提供选项 不是一个好主意fraction-function=\dfrac。即使没有此选项,如果 TeX 处于显示样式数学模式,也会自动使用显示样式分数符号。但是,如果没有此选项,更合理的方法\tfrac是在内联数学模式下使用。通过在内联数学模式下使用,几乎可以确保创建一个完整的印刷火车残骸。对于和\dfrac的内联数学应用,请考虑使用 选项以获得“不拥挤”的外观。\SI\siper-mode=symbol

enter image description here

\documentclass[12pt]{article}
\usepackage[per-mode=fraction, % default is "per-mode=symbol"
            number-unit-product=\cdot % <-- new
           ]{siunitx}
\DeclareSIUnit{\kPaf}{\kilo\newton\per\meter\squared} 

\begin{document}
$\displaystyle
A=2\cdot\si{\kPaf}  \quad
A=\SI{2}{\kPaf}     \quad
A=\SI[number-unit-product=\,]{2}{\kPaf} $

\bigskip
\sisetup{number-unit-product={\,}} % revert to default
$A=\SI{2}{\kPaf} \quad
 A=\SI[per-mode=symbol]{2}{\kPaf}$
\end{document}

相关内容