该siunitx
包支持使用angle-symbol-over-decimal
开关以“天文学风格”放置度数符号,以及使用以下形式简单输入度分秒值
\ang{6;7;6.5}
有没有办法使用包的\DeclareSIUnit
宏来定义相应的格式赤经例如,可以使用类似
\ra[ra-symbol-over-decimal]{5.237}
\ra{5.237}
\ra{5;15;6.5}
(大致)生产
间距和其他行为是否遵循软件包的当前设置\ang
?
答案1
阅读siunitx
手册(→5.15“符号”,第 62/63 页)可以找到两种方法来实现这一点:
- 重新定义
\SIUnitSymbolDegree
, -Arcminute
和 -Arcsecond
- 使用选项
text-
/math-degree
、 -arcminute
和 -arcsecond
(→表 43,第 63 页)
两种情况均适用:
新的宏\ra
接受两个参数:
- 一个可选项,传递
\ang
给 - 一个是强制性的(角度本身)。
所有“弧格式”选项(angle-symbol-over-decimal
,,arc-separator
...)也可以赋予\ra
。
解决方案 1
\newcommand*{\ra}[2][]{{% extra pair of braces to keep the \def-intion local!
\def\SIUnitSymbolDegree{\textsuperscript{h}}%
\def\SIUnitSymbolArcminute{\textsuperscript{m}}%
\def\SIUnitSymbolArcsecond{\textsuperscript{s}}%
\ang[#1]{#2}}%
}
解决方案 2
\newcommand*{\ra}[2][]{%
\ang[
math-degree=\textsuperscript{h},
text-degree=\textsuperscript{h},
math-arcminute=\textsuperscript{m},
text-arcminute=\textsuperscript{m},
math-arcsecond=\textsuperscript{s},
text-arcsecond=\textsuperscript{s},
#1]{#2}%
}
代码
\documentclass{article}
\usepackage{siunitx}
\newcommand*{\ra}[2][]{{% extra pair of braces for solution 1, doesn't hurt for solution 2
% \def\SIUnitSymbolDegree{\textsuperscript{h}}% Solution 1
% \def\SIUnitSymbolArcminute{\textsuperscript{m}}% Solution 1
% \def\SIUnitSymbolArcsecond{\textsuperscript{s}}% Solution 1
\ang[
math-degree=\textsuperscript{h}, % Solution 2
text-degree=\textsuperscript{h}, % Solution 2
math-arcminute=\textsuperscript{m}, % Solution 2
text-arcminute=\textsuperscript{m}, % Solution 2
math-arcsecond=\textsuperscript{s}, % Solution 2
text-arcsecond=\textsuperscript{s}, % Solution 2
#1]{#2}%
}}
\begin{document}
\ra[angle-symbol-over-decimal]{5.237} \par
\ra{5.237} \par \ra{5;15;6.5} \par \vspace{2ex}
\ang{2.3;3.4;4.5} \par \ra{2.3;3.4;4.5} \par \ang{2.3;3.4;4.5} \par
\ra[angle-symbol-over-decimal,arc-separator=\,]{2.3} \par \vspace{2ex}
$\ra[angle-symbol-over-decimal]{5.237} \quad \ra{5.237} \quad \ra{5;15;6.5}$
\end{document}
输出
答案2
自 2012 年以来,siunitx 包的代码已经更新,现在两种解决方案都无法按预期工作(但也不会引发错误,这是一件好事)。
拟议的解决方案 2@Qrrbrbirlbel 可以使用以下方法轻松纠正
\newcommand*{\ra}[2][]{{
\ang[
angle-symbol-degree=\textsuperscript{h},
angle-symbol-minute=\textsuperscript{m},
angle-symbol-second=\textsuperscript{s},
#1]{#2}%
}}
因此代码
\documentclass{article}
\usepackage{siunitx}
\newcommand*{\ra}[2][]{{
\ang[
angle-symbol-degree=\textsuperscript{h},
angle-symbol-minute=\textsuperscript{m},
angle-symbol-second=\textsuperscript{s},
#1]{#2}%
}}
\begin{document}
\ra[angle-symbol-over-decimal]{5.237} \par
\ra{5.237}. \par
\ra{5;15;6.5} \par
\vspace{2ex}
\ang{2.3;3.4;4.5} \par
\ra{2.3;3.4;4.5} \par
\ang{2.3;3.4;4.5} \par
\ra[angle-symbol-over-decimal,arc-separator=\,]{2.3} \par
\vspace{2ex}
$\ra[angle-symbol-over-decimal]{5.237} \quad \ra{5.237} \quad \ra{5;15;6.5}$
\end{document}
按预期工作并输出
希望这有用!