让我们考虑以下例子:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=.6pt]
\draw (1,0)--(20,0);
\foreach \x in {1,...,20}{
\draw[fill] (\x,0) circle (1.5pt);
}
\foreach \x/\a in {1/1,2/2,3/3,4/4,5/5,6/6,7/7,8/8,9/9,10/10,11/11,12/12,13 /13,14/14,15/15,16/16,17/17,18/18,19/19,20/20}{
\node[below] at (\x,0) {\a};
}
\end{tikzpicture}
\end{document}
这产生了
每当我使用以下快捷方式技术时都会出现错误。
\foreach \x/\a in {1/1,...,20/20}{
\node[below] at (\x,0) {\a};
}
我怎样才能通过快捷方法做到这一点?
答案1
使用同一个计数器来做标签。
\draw[fill] (\x,0)node[below]{$\x$} circle (1.5pt);
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=.6]
\draw (1,0)--(20,0);
\foreach \x in {1,...,20}{
\draw[fill] (\x,0)node[below]{$\x$} circle (1.5pt);
}
\end{tikzpicture}
\end{document}
附言:below=5pt
只是为了通知,您可以利用例如来控制标签和点之间的距离。
答案2
只是为了和 PSTricks 一起玩。
\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\begin{pspicture}(20,2)
\psline(0,1)(20,1)
\foreach \x in {0,...,20}{\qdisk(\x,1){2pt}\uput{10pt}[-90](\x,1){$\x\mathstrut$}}
\end{pspicture}
\end{document}
答案3
PSTricks 解决方案借助强大的xfp
包裹:
\documentclass{article}
\usepackage{pstricks-add}
\usepackage{xfp}
\newcommand*\Total{\fpeval{\maxNumber+1}}
\newcommand*\Unit{\fpeval{11.5/\maxNumber}}
\def\maxNumber{20}
\begin{document}
\begin{pspicture}(0,-0.35)(11.6,0)
\psset{unit = \Unit}
\psline(0,0)(\maxNumber,0)
\multido{\i = 0+1}{\Total}{%
\psdot(\i,0)
\uput[270](\i,0){\small $\i$}}
\end{pspicture}
\end{document}
请注意,您只需选择值\maxNumber
,然后绘图就会自动调整。