在这个例子中,我想要一个新密钥,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}
输出: