确定是否在 PGF 轴环境中

确定是否在 PGF 轴环境中

有没有一种简单的方法来测试宏是否在 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}

相关内容