如何创建和使用新的 pgf 密钥

如何创建和使用新的 pgf 密钥

在这个例子中,我想要一个新密钥,NbGrad然后我可以写:

\begin{tikzpicture}[>=stealth,x=6cm,font=\footnotesize,NbGrad=12]

并使用我使用的密钥\NbGrad或其他更好的方法:

\documentclass[10pt,a4paper,french]{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[>=stealth,x=6cm,font=\footnotesize]
\def\NbGrad{12}

\draw [->] (0,0)--(1,0)  ;

\foreach \x in {0,1,...,\NbGrad} {%
    \coordinate (\x) at (\x/\NbGrad,0) ;
    \draw [very thin] (\x/\NbGrad,+2pt)--(\x/\NbGrad,-2pt) ;

    \pgfmathsetmacro\result{2 + \x / 10}
    \node[above=1pt]  at (\x)%
        {\pgfmathprintnumber[precision=1,fixed,use comma]{\result}};

    } ;

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

其他方式:

\documentclass[10pt,a4paper]{article}
\usepackage{tikz}

\pgfkeys{/tikz/.cd,
  NbGrad/.store in=\NbGrad,
   }

\begin{document}


\begin{tikzpicture}[>=stealth,x=6cm,font=\footnotesize,NbGrad=12]

\draw [->] (0,0)--(1,0)  ;

\foreach \x in {0,1,...,\NbGrad} {%
    \coordinate (\x) at (\x/\NbGrad,0) ;
    \draw [very thin] (\x/\NbGrad,+2pt)--(\x/\NbGrad,-2pt) ;

    \pgfmathsetmacro\result{2 + \x / 10}
    \node[above=1pt,text depth=0.5ex]  at (\x)%
        {\pgfmathprintnumber[precision=1,fixed,use comma]{\result}};

    } ;

\end{tikzpicture}
\end{document}

在此处输入图片描述

正如 Claudio 所指出的,我们可以为 NbGrad 分配一个初始值,这样,如果之后没有给出明确的定义,文档仍然可以编译,就像

\pgfkeys{/tikz/.cd,
  NbGrad/.store in=\NbGrad,
  NbGrad=12,
   }

答案2

您可以创建一个新的 pgf 密钥,其初始值为 1

\pgfkeys{/tikz/NbGrad/.initial=1}

然后创建一个\NbGrad允许您使用其值的新命令:

\newcommand{\NbGrad}{\pgfkeysvalueof{/tikz/NbGrad}}

请注意,如果您未在中指定其值tikzpicture,则使用默认值 1。

梅威瑟:

\documentclass[10pt,a4paper,french]{article}
\usepackage{tikz}

\pgfkeys{/tikz/NbGrad/.initial=1}
\newcommand{\NbGrad}{\pgfkeysvalueof{/tikz/NbGrad}}

\begin{document}


\begin{tikzpicture}[>=stealth,x=6cm,font=\footnotesize,NbGrad=12]

\draw [->] (0,0)--(1,0)  ;

\foreach \x in {0,1,...,\NbGrad} {%
    \coordinate (\x) at (\x/\NbGrad,0) ;
    \draw [very thin] (\x/\NbGrad,+2pt)--(\x/\NbGrad,-2pt) ;

    \pgfmathsetmacro\result{2 + \x / 10}
    \node[above=1pt]  at (\x)%
        {\pgfmathprintnumber[precision=1,fixed,use comma]{\result}};

    } ;

\end{tikzpicture}

\bigskip

\begin{tikzpicture}[>=stealth,x=6cm,font=\footnotesize]

\draw [->] (0,0)--(1,0)  ;

\foreach \x in {0,1,...,\NbGrad} {%
    \coordinate (\x) at (\x/\NbGrad,0) ;
    \draw [very thin] (\x/\NbGrad,+2pt)--(\x/\NbGrad,-2pt) ;

    \pgfmathsetmacro\result{2 + \x / 10}
    \node[above=1pt]  at (\x)%
        {\pgfmathprintnumber[precision=1,fixed,use comma]{\result}};

    } ;

\end{tikzpicture}

\end{document} 

输出:

在此处输入图片描述

相关内容