有没有一种简单的方法来测试宏是否在 PGF\begin{axis}...\end{axis}
环境中被调用?一种解决方案是自己定义一个新环境,在 处设置一个标志\begin{axis}
并将其清除为\end{axis}
,但我不想这样做。
答案1
pgfplots
提供一个命令\pgfplotsifinaxis
,测试键是否pgfplots@is@in@axis
定义并根据结果调用代码。
它定义pgfplots.code.tex
为
\long\def\pgfplotsifinaxis#1#2{%
\pgfutil@ifundefined{pgfplots@is@in@axis}{#2}{#1}%
}%
它用作
\pgfplotsifinaxis{code if in axis}{code if outside axis}