时间线,使用 foreach

时间线,使用 foreach

我正在尝试绘制一个在轴上等距年份的自动时间轴,如下所示:

\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}

相关内容