siunitx 中的矢量符号

siunitx 中的矢量符号

我正在尝试使用该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之前就已经开始了,因此依赖于定义单位名称的包,但是在下一个主要版本中将独立于和,同时希望不会妨碍后者的使用。siunitxSIunitsmandiSIunitssiunitx

免责声明:我是的作者mandi

相关内容