我想在每次应用特定样式时增加计数器。下面的 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
密钥。
或者你可以使用.code
handler 来代替.style
handler:
\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}