TikZ Style 中的增量计数器

TikZ Style 中的增量计数器

我想在每次应用特定样式时增加计数器。下面的 MWE 编译得很好,但计数器没有增加。

在此处输入图片描述

我希望 之后的计数器值为 3 tikzpicture

代码:

\documentclass{article}
\usepackage{tikz}

\newcounter{MyCounter}

\tikzset{My Style/.style={draw=red, .code={\stepcounter{MyCounter}}}}

\begin{document}
\stepcounter{MyCounter}
BEFORE MyCounter=\the\value{MyCounter}

\begin{tikzpicture}
\draw [My Style] (0,0) -- (3,0);
\draw [My Style] (0,0) -- (3,2) -- (4,0);
\end{tikzpicture}

AFTER MyCounter=\the\value{MyCounter}
\end{document}

答案1

使用My Style/.style={draw=red, .code={\stepcounter{MyCounter}}},您的风格My Style定义一个与您的代码相关的未使用的空白键。

您可以使用:

\tikzset{My Style/.style={draw=red,inc/.code={\stepcounter{MyCounter}},inc}}

定义并使用inc密钥。

或者你可以使用.codehandler 来代替.stylehandler:

\tikzset{My Style/.code={\stepcounter{MyCounter}\tikzset{draw=red}}}

或者您可以使用预定义键/utils/exec

\documentclass{article}
\usepackage{tikz}

\newcounter{MyCounter}

\tikzset{My Style/.style={draw=red,/utils/exec={\stepcounter{MyCounter}}}}

\begin{document}
\stepcounter{MyCounter}
BEFORE MyCounter=\the\value{MyCounter}

\begin{tikzpicture}
\draw [My Style] (0,0) -- (3,0);
\draw [My Style] (0,0) -- (3,2) -- (4,0);
\end{tikzpicture}

AFTER MyCounter=\the\value{MyCounter}
\end{document}

在此处输入图片描述

相关内容