这是我第一次在这里寻求帮助,所以请不要嘲笑我。
我正在编写一些宏来使用自动检测和标记图表(在 t 中ikz/pgfplots
)中的峰值\ifdim
。问题是,我有两个条件要结合使用:峰值是>615pt
和<650pt
但我无法让它工作。下面是我目前正在使用的代码,它可以很好地标记高于一个阈值(在本例中为 615pt)的峰值。(代码或多或少是从这里复制的原始代码)
\pgfplotsset{
/tikz/max node/.style={mark=none},
mark max/.style={
point meta rel=per plot,
visualization depends on={x \as \xvalue},
scatter/@pre marker code/.code={
\ifdim\pgfplotspointmetatransformed pt>615pt
\def\markopts{mark=none}
\node[coordinate ,pin = {[rotate=-45]left,inner sep=3pt:{\pgfmathprintnumber[fixed,precision=2,zerofill=true]{\xvalue}}}] at (0,1) {};
\else
\def\markopts{mark=none}
\fi
\expandafter\scope\expandafter[\markopts]
},
scatter/@post marker code/.code={%
\endscope
},
scatter
}}
是否可以用于\ifdim
多种条件?我很想有这样的东西: \ifdim\pgfplotspointmetatransformed pt>615pt AND \ifdim\pgfplotspointmetatransformed pt<650pt
答案1
正如史蒂文所说,你可以使用
\ifdim\mydim>615pt\relax
\ifdim\mydim<650pt\relax
in range%
\else
above 650%
\fi
\else
below 615%
\fi
如果两个超出范围的情况的代码相同,并且你不想重复,那么你可以将其构造为
\ifdim\ifdim\mydim>615pt\mydim\else\maxdimen\fi<650pt\relax
in range%
\else
out of range%
\fi