我正在尝试使用该siunitx
包来格式化一个向量数字(使用\hat{x}
表示 x 方向的向量)。使用\hat{x}
会导致对无效令牌的投诉。
看到后这个问题,我尝试包括
\sisetup{input-symbols=\hatx\haty}
\protected\def\hatx{\ensuremath{\hat{x}}}
\protected\def\haty{\ensuremath{\hat{y}}}
在我的序言中。然后,我得到siunitx error: "misplaced-sign-token" Misplaced sign token '+'.
为了完整起见,这是我现在正在尝试的:
\documentclass{article}
\usepackage{siunitx}
\sisetup{input-symbols=\hatx\haty}
\protected\def\hatx{\ensuremath{\hat{x}}}
\protected\def\haty{\ensuremath{\hat{y}}}
\begin{document}
\begin{equation}
\vec{F} = \SI{-3.24e-20\hatx + 4.56e-18\haty}{\newton}
\end{equation}
\end{document}
有什么想法可以使这种东西正常工作吗?
答案1
一种方法是简单地使用:
\vec{F} = (\num{-3.24e-20}\hatx + \num{4.56e-18}\haty) \,\si{\newton}
代码:
\documentclass{article}
\usepackage{siunitx}
\protected\def\hatx{\ensuremath{\hat{x}}}
\protected\def\haty{\ensuremath{\hat{y}}}
\begin{document}
\SI{1234}{\newton}
\num{1234}\,\si{\newton}
\begin{equation}
\vec{F} = (\num{-3.24e-20}\hatx + \num{4.56e-18}\haty) \,\si{\newton}
\end{equation}
\end{document}
答案2
我可以建议你尝试一下这个mandi
包吗?它就是为处理这个问题而设计的。此外,它的设计使得用户永远不需要担心物理量的单位,因为它们都嵌入到包中。例如,你可以说\force{5}
并得到
您还可以说\force{\mivector{2,4,-5}}
并得到预期的结果
尽管它不会像上面的例子那样被格式化。在出现mandi
之前就已经开始了,因此依赖于定义单位名称的包,但是在下一个主要版本中将独立于和,同时希望不会妨碍后者的使用。siunitx
SIunits
mandi
SIunits
siunitx
免责声明:我是的作者mandi
。