编辑:这篇文章最初名为“为什么 siunitx 在 newcommand 中抛出 \endcsname?”,但我认为重命名确实更好地反映了问题的意图。
为什么此代码 (追踪到 siunitx\unit
命令) 会抛出\endcsname
? newcommand 的常见缺陷是什么?
\documentclass{article}
\usepackage{pgfplots}
\usepackage{siunitx}
\pgfplotsset{compat=1.18}
\begin{document}
\newcommand{\axissettings}{ymin=-1, xlabel={Test with $\unit{\celsius}$}}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[grid, \axissettings]
\addplot coordinates {(0,0)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
谢谢
答案1
我觉得这没什么麻烦。你被链接答案的其余部分吓到了吗?
\documentclass{article}
\usepackage{pgfplots}
\usepackage{siunitx}
\pgfplotsset{compat=1.18}
\pgfplotsset{yourcustomaxissettings/.style={ymin=-1, xlabel={Test with $\unit{\celsius}$}}}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[grid,yourcustomaxissettings,ymax=1,xmin=-1,xmax=1]
\addplot coordinates {(0,0)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}