siunitx 中附加单位的间距

siunitx 中附加单位的间距

我想用 siunitx 写地理位置。我认为在这种表示法中,数字和度数符号之间不应该有空格,度数符号和 N/S 或 E/W 表示法之间也不应该有空格,就像摄氏度一样。所以我通常会53,5$^\circ$N在普通的 LaTeX 中输入。

我尝试通过使用 siunitx 编写以下内容来实现这一点:

\documentclass{report}

\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}
\DeclareSIUnit{\north}{N}

\begin{document}
\noindent
\SI{53,5}{\degree}\\
\SI{53,5}{\degree\north}\\
53,5$^\circ$N

\end{document}

但我得到的是:

度

我不明白为什么 siunitx 要在数字和度数符号之间以及度数符号和 N 之间添加空格。

答案1

这些不是单位,严格意义,但siunitx足够灵活:

\documentclass{article}
\usepackage{siunitx}

\sisetup{output-decimal-marker={,}}
\DeclareSIUnit{\north}{\degree N}
\DeclareSIUnit{\south}{\degree S}
\DeclareSIUnit{\east}{\degree E}
\DeclareSIUnit{\west}{\degree W}

\NewDocumentCommand{\xtude}{O{}mm}{%
  \SI[number-unit-product={},#1]{#2}{#3}%
}

\begin{document}

The latitude is \xtude{53,5}{\north}

The longitude is \xtude{45.3}{\east}

\end{document}

在此处输入图片描述

答案2

在此处输入图片描述

\documentclass{report}

\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}
\DeclareSIUnit{\north}{\!\degree N}

\begin{document}
\noindent
\SI{53,5}{\degree}\\
\SI{53,5}{\north}\\
53,5$^\circ$N

\end{document}

相关内容