我想要有单位的方程。例如,物理学中的胡克定律。有以下 4 种非平凡方法。
第一个选项
% first option
\documentclass[border=1cm,varwidth]{standalone}
\usepackage{siunitx,esvect}
\begin{document}
\SI[parse-numbers=false]{\vv F=-kx\hat{x}}{\newton}
\end{document}
第二种选择(无法编译)
% second option
\documentclass[border=1cm,varwidth]{standalone}
\usepackage{siunitx,esvect}
\begin{document}
\SI[parse-numbers=true]{$\vv F=-kx\hat{x}$}{\newton}
\end{document}
第三种选择
% third option
\documentclass[border=1cm,varwidth]{standalone}
\usepackage{siunitx,esvect}
\begin{document}
$\vv F=-kx\hat{x}\,\si{\newton}$
\end{document}
第四种选择
% fourth option
\documentclass[border=1cm,varwidth]{standalone}
\usepackage{siunitx,esvect}
\begin{document}
$\vv F=-kx\hat{x}$~\si{\newton}
\end{document}
因为第一个数学字体渲染不正确,第二个无法编译,所以我必须在后两个之间做出选择。那么哪一个是推荐的呢?
答案1
来自文档(第siunitx
4.3 节):
数字和单位经常一起给出。形式上,数量的值是数字和单位的乘积,空格被视为乘法符号。宏结合了和
\SI
的功能,使这既可行又简单。\num
\si
因此,您的第一和第二个选项不应该给出令人满意的结果,因为 的第一个参数\SI
被设计为接受数字而不是公式。因此,您的第三和第四个选项是正确的,改为使用 来\si
排版公式并将其手动连接到单元。
我假设您希望公式和单位之间的间距与\SI
数字和单位之间的间距相同。 中的间距\SI
由选项 给出number-unit-product
。 根据文档的第 24 表,此选项的默认值为\,
。 因此,“推荐”方法是您的选项 3:
\documentclass[border=1cm,varwidth]{standalone}
\usepackage{siunitx,esvect}
\begin{document}
$\vv F=-kx\hat{x}\,\si{\newton}$
\end{document}
文档第 4.3 节中还有一段引文:
格式化方法适用于数学和文本模式。
\si
因此,只要选择合适的空间,将其放在数学模式内部还是外部都无关紧要。