在 siunitx 中用角度和空间定义新单位

在 siunitx 中用角度和空间定义新单位

我想定义一个渲染单元

\SI{5}{\degTTh}

作为

在此处输入图片描述

到目前为止,我已经能够定义一个新单位

\DeclareSIUnit{\degTTh}{%
 \text{$^\circ\ 2\theta$}%
}

但数字和度数符号之间有一个空格。使用该选项\SI[space-before-unit=false]{5}{\degTTh}无法解决问题。

我也尝试过声明

\DeclareSIUnit{\TTh}{%
 \text{$\ 2\theta$}%
}

然后使用\SI[space-before-unit=false]{5}{\degree\TTh},但这也会导致数字和度数符号之间出现空格。

我该如何定义这样的单位?

答案1

当创建新单位时希尼奇<options>,您可以通过在字段中提供任何键值对选项来覆盖

\DeclareSIUnit[<options>]{<unit>}{<definition>}

数字和单位之间的符号用 来设置number-unit-product。对于您的情况,您希望数字和单位之间的符号,即{}。单位的定义则变为

\DeclareSIUnit[number-unit-product={}]{\degTTh}{\SIUnitSymbolDegree\ensuremath{~2\theta}}

另外,我^\circ用符号替换了\SIUnitSymbolDegree,其定义为希尼奇。最后,我按照包文档中的建议,将 替换$ ... $为。\ensuremath

\documentclass{article}
\usepackage{siunitx}

\setlength{\parindent}{0pt}    % only to make all examples aligned.

\DeclareSIUnit{\degTThold}{\text{$^\circ\ 2\theta$}}
\DeclareSIUnit[number-unit-product={}]{\degTTh}{\SIUnitSymbolDegree\ensuremath{~2\theta}}

\begin{document}

\SI{5}{\degTThold} \\
\SI{5}{\degTTh} \\
$x = \SI{5}{\degTThold}$ \\
$x = \SI{5}{\degTTh}$

\end{document}

结果输出

相关内容