siunitx 的 \ang 错误与变量

siunitx 的 \ang 错误与变量

当我将一个数字放入一个变量并将该变量放入时\ang,出现siunitx错误:

\documentclass{article}
\usepackage{siunitx,pgfplots}

\begin{document}
\def\degreed{129.2234}
\pgfkeys{/pgf/number format/.cd,int trunc}
\pgfmathprintnumberto{\degreed}{\degree}
\degree\\
\ang{\degree}% Returns:
%! siunitx error: ``restricted-number''
%!
%! Token '$' forbidden in restricted numerical input.

\ang{129}%works
\end{document}

可以将变量放入吗\ang

答案1

这里的问题是,它pgf返回的不只是129数据,而是一个更复杂的数据。如果你\show\degree得到

> \degree=macro:
->\pgfutilensuremath {129}.

无论如何siunitx,一个简单的方法是

\documentclass{article}
\usepackage{siunitx}

\begin{document}
\def\degreed{129.2234}
\ang[round-precision = 0, round-mode = places]{\degreed}
\end{document}

相关内容