TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to use the chronology package to draw a timeline from 2011 until 2016 where each year should be a major tick and between each major tick, there should be 3 minor ticks.

I tried to implement this like this:



However, this ends up in a timeline like this:


How can I achieve the timeline I want?

share|improve this question
Do you just need the timeline (I mean, would it be valid to produce the timeline without the chronology package) or are you planning to use other features from the chronology package? – Gonzalo Medina Feb 19 '14 at 13:42
I'm planning to add a couple of events and time ranges. So yes, I need the chronology package. – RoflcoptrException Feb 19 '14 at 13:43
the phrase "where is year should be a major tick": do you mean "where each year should be a major tick"? – Willie Wong Feb 19 '14 at 14:45
Yes, I'm going to change taht. – RoflcoptrException Feb 19 '14 at 17:35
up vote 8 down vote accepted

The original chronology environment doesn't allow this. Below I defined a markschronology environment which behaves in a similar fashion to chronology (it has the same arguments and it was defined following the original definition) and allows you to specify a number of intermediate ticks; the number of intermediate ticks is controlled by \Marks with default value 0 (i.e., no intermediate ticks):



    \@ifstar{\chronology@startrue\markschronology@i*}  {\chronology@starfalse\markschronology@i*}%



  \begin{tikzpicture}[baseline={(current bounding box.north)}]%
    \draw [|->] (0,0) -- (\thedeltayears*\unit+\unit, 0);%
    \foreach \x in {1,...,\thedeltayears}
      \draw[xshift=\x*\unit] (0,-0.1\unit) -- (0,0.1\unit);%
    \foreach \x in {1,\@marks,...,\thedeltayears}
      \draw[xshift=\x*\unit] (0,-0.05\unit) -- (0,0.05\unit);%
    \foreach \x in {\thestepstart,\thestep,...,\thestepstop}
        \node at (\xstop,0) [above=.2\unit] {\x};%
        \node at (\xstop,0) [below=.2\unit] {\x};%






enter image description here

share|improve this answer
Could you write, whether the original package is able to do this or not(and thereby justifying your hard work:o) – Hans-Peter E. Kristiansen Feb 19 '14 at 15:06
@Hans-PeterE.Kristiansen done! :) – Gonzalo Medina Feb 19 '14 at 15:08
Sounds great. When I compile your code I get the following error: ! Undefined control sequence. \reserved@c ->\chronology@starfalse \markschronology@i * l.70 \noindent\begin{markschronology}[ 1]{2010}{2016}{\textwidth} ? – RoflcoptrException Feb 19 '14 at 17:42
@RoflcoptrException Are you using updated versions of the packages? If you compile just my example code exactly as it is, do you still get the same error message? – Gonzalo Medina Feb 19 '14 at 18:01
@GonzaloMedina That's exactly what I did, I copied all your code and compiled it. – RoflcoptrException Feb 19 '14 at 18:34

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.