我正在尝试绘制一个在轴上等距年份的自动时间轴,如下所示:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagenumbering{gobble}
\begin{tikzpicture}
\def\start{2010}; %Start year
\def\ende{2018}; %End year
\draw[->](0,0) -- (\textwidth, 0);
\foreach \j in {0,...,{\ende-\start}} {
({\j*{\textwidth/{\ende-\start}}},0) \node[rotate=45, left] {{\start+\j}};
};
\end{tikzpicture}
\end{document}
然而,我不断收到以下变体:
如您所见,我有两个问题:
\start+\j
不相加,循环就不会运行。我选择的武器是过多的{}
-括号。谢谢你的帮助 :-)。
答案1
尝试以下操作。它修复了您的“非计算”(括号不等于计算)和错误的语法\foreach
。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagenumbering{gobble}
\begin{tikzpicture}
\pgfmathtruncatemacro\start{2010} %Start year
\pgfmathtruncatemacro\ende{2018} %End year
\pgfmathtruncatemacro\differenz{\ende-\start}
\draw[->](0,0) -- (\textwidth, 0);
\foreach \j in {0,..., \differenz} {
\pgfmathsetlengthmacro\tmp{\j*\textwidth/\differenz}
\pgfmathtruncatemacro\jahr{\start+\j}
\draw (\tmp,0) node[rotate=45, left, yshift=-6pt] {\jahr};
}
\end{tikzpicture}
\end{document}