我的问题:我发现siunitx
需要 Latex3 支持。不幸的是,我没有此支持(就使用非管理员服务器上的 latex 而言)。siunitx.sty
在我想使用之前,较旧版本的 (2009/03/29 v2.0alpha) 对我来说是可行的\ang
。因此
因此
我的问题:我需要什么明确的宏才能拥有\ang
并继续使用旧版本siunitx
?
答案1
您需要直接使用单位\degree
、\arcminute
和\arcsecond
。
这是一个简单的解析器,其作用类似于当前的\ang
宏。
代码
\documentclass{article}
\usepackage{siunitx}
\listfiles
\makeatletter
\def\ang{\kernel@ifnextchar[\ang@{\ang@[]}}
\def\ang@[#1]#2{\def\@tempb{[{#1}]}\@ang#2;;;\@nil}
\def\@ang#1;#2;#3;#4\@nil{%
\@tempswatrue
\@@ang{#1}{\degree}%
\@@ang{#2}{\arcminute}%
\@@ang{#3}{\arcsecond}%
}
\def\@@ang#1#2{%
\edef\@tempa{#1}%
\ifx\@tempa\@empty
\if@tempswa
\expandafter\SI\@tempb{0}{#2}%
\fi
\else
\expandafter\SI\@tempb{#1}{#2}%
\@tempswafalse
\fi
}
\makeatother
\begin{document}
\ang{0.1} \quad \ang{1;2} \quad \ang{2;30;59}
\ang{;0.2} \quad \ang[symbols/math/degree=^?]{;;3} % just for fun, don't use this!
\end{document}
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
siunitx.sty 2009/03/29 v2.0alpha A comprehensive (SI) units package
amstext.sty 2000/06/29 v2.01
amsgen.sty 1999/11/30 v2.0
array.sty 2008/09/09 v2.4c Tabular extension package (FMi)
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
pgfkeys.sty
pgfkeys.code.tex
ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions