97 votes

Comment créer une ligne de temps avec LaTeX ?

Dans les livres d'histoire, on trouve souvent une ligne de temps, où les événements et les périodes sont marqués sur une ligne à la distance relative correcte les uns des autres. Comment est-il possible de créer quelque chose de similaire dans LaTeX ?

3 votes

Voici ma réponse : tex.stackexchange.com/questions/183046/ J'espère que cela pourra aider

88voto

nibot Points 5057

Il y a un nouveau chronologie.sty par Levi Wiseman . Le site documentation (pdf) dit :

La plupart des paquets et solutions temporelles pour LATEX sont utilisés pour transmettre beaucoup d'informations et sont donc conçus verticalement. Si vous essayez simplement d'attribuer des étiquettes aux dates, une ligne de temps plus traditionnelle pourrait être plus appropriée. C'est c'est à cela que sert la chronologie.

Voici un exemple de code :

\documentclass{article}
\usepackage{chronology}
\begin{document}

\begin{chronology}[5]{1983}{2010}{3ex}[\textwidth]
\event{1984}{one}
\event[1985]{1986}{two}
\event{\decimaldate{25}{12}{2001}}{three}
\end{chronology}

\end{document}

Ce qui produit cette sortie :

example output from chronology.sty

2 votes

Il convient de noter que ce paquet ne semble prendre en charge qu'une seule ligne de temps par document. En tout cas pour moi, j'obtiens l'erreur "command \c @step already defined" lorsque j'essaie d'en avoir plusieurs.

4 votes

J'ai essayé de modifier le fichier chronology.sty afin d'obtenir une ligne de temps verticale mais je n'y suis pas parvenu. Existe-t-il une version verticale de ce fichier ?

1 votes

Ce que contient le paquet \textwidth ?

56voto

Zoe Gagnon Points 341

Le site tikz Le paquet semble avoir ce que vous voulez.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{snakes}

\begin{document}

  \begin{tikzpicture}[snake=zigzag, line before snake = 5mm, line after snake = 5mm]
    % draw horizontal line   
    \draw (0,0) -- (2,0);
    \draw[snake] (2,0) -- (4,0);
    \draw (4,0) -- (5,0);
    \draw[snake] (5,0) -- (7,0);

    % draw vertical lines
    \foreach \x in {0,1,2,4,5,7}
      \draw (\x cm,3pt) -- (\x cm,-3pt);

    % draw nodes
    \draw (0,0) node[below=3pt] {$ 0 $} node[above=3pt] {$   $};
    \draw (1,0) node[below=3pt] {$ 1 $} node[above=3pt] {$ 10 $};
    \draw (2,0) node[below=3pt] {$ 2 $} node[above=3pt] {$ 20 $};
    \draw (3,0) node[below=3pt] {$  $} node[above=3pt] {$  $};
    \draw (4,0) node[below=3pt] {$ 5 $} node[above=3pt] {$ 50 $};
    \draw (5,0) node[below=3pt] {$ 6 $} node[above=3pt] {$ 60 $};
    \draw (6,0) node[below=3pt] {$  $} node[above=3pt] {$  $};
    \draw (7,0) node[below=3pt] {$ n $} node[above=3pt] {$ 10n $};
  \end{tikzpicture}

\end{document}

Je ne suis pas trop expert en tikz, mais cela donne une bonne chronologie, qui ressemble à.. :

enter image description here

0 votes

Le résultat semble bon. La syntaxe n'est pas aussi simple que je l'espérais, mais je pense pouvoir créer quelques commandes pour simplifier les choses. Merci pour cette suggestion.

0 votes

Peut-on étiqueter la ligne de temps sur le côté gauche ? comme des chiffres

31voto

Alessandro Cuttin Points 1450

En outre, le paquet chronosys offre une solution intéressante. Voici un exemple tiré du manuel d'utilisation :

enter image description here

5 votes

Merci ! il est étrange que le gars qui a écrit la documentation continue d'appeler la ligne de temps une "frise" comme si c'était la même chose qu'une ligne de temps. je mets juste cela ici au cas où quelqu'un d'autre lit la documentation.

7 votes

@JonathanKomar c'est du français frise, du latin médiéval frisium. Il désigne une large bande horizontale de décor sculpté ou peint, ou encore une bande de papier horizontale.

18voto

Cesar Rabak Points 121

Juste une mise à jour.

Le présent paquet TiKZ sera émis : Paquet tikz Avertissement : Les serpents ont été remplacés par décorations. Veuillez utiliser les bibliothèques de décoration au lieu de la bibliothèque snakes sur la ligne d'entrée. . .

Ainsi, la partie du code concerné doit être modifiée en :

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\begin{document}
\begin{tikzpicture}
%draw horizontal line
\draw (0,0) -- (2,0);
\draw[decorate,decoration={snake,pre length=5mm, post length=5mm}] (2,0) -- (4,0);
\draw (4,0) -- (5,0);
\draw[decorate,decoration={snake,pre length=5mm, post length=5mm}] (5,0) -- (7,0);

%draw vertical lines
\foreach \x in {0,1,2,4,5,7}
\draw (\x cm,3pt) -- (\x cm,-3pt);

%draw nodes
\draw (0,0) node[below=3pt] {$ 0 $} node[above=3pt] {$   $};
\draw (1,0) node[below=3pt] {$ 1 $} node[above=3pt] {$ 10 $};
\draw (2,0) node[below=3pt] {$ 2 $} node[above=3pt] {$ 20 $};
\draw (3,0) node[below=3pt] {$  $} node[above=3pt] {$  $};
\draw (4,0) node[below=3pt] {$ 5 $} node[above=3pt] {$ 50 $};
\draw (5,0) node[below=3pt] {$ 6 $} node[above=3pt] {$ 60 $};
\draw (6,0) node[below=3pt] {$  $} node[above=3pt] {$  $};
\draw (7,0) node[below=3pt] {$ n $} node[above=3pt] {$ 10n $};
\end{tikzpicture}

\end{document}

HTH

6 votes

Je pense que c'est maintenant devenu : \usetikzlibrary{decorations.pathmorphing} . De même, ne \documentclass[tikz]{standalone} si vous souhaitez obtenir une image fortement recadrée à insérer dans un autre document.

16voto

Jon Ericson Points 9703

Tim Storer a écrit une version plus flexible et plus agréable à regarder timeline.sty (lien Internet Archive Wayback Machine, l'original ayant disparu). En outre, la ligne est horizontale plutôt que verticale. Ainsi, par exemple :

\begin{timeline}{2008}{2010}{50}{250}
  \MonthAndYearEvent{4}{2008}{First Podcast}
  \MonthAndYearEvent{7}{2008}{Private Beta}
  \MonthAndYearEvent{9}{2008}{Public Beta}
  \YearEvent{2009}{IPO?}
\end{timeline}

produit une ligne de temps qui ressemble à ceci :

2008                              2010
 · · April, 2008 First Podcast    ·
       · July, 2008 Private Beta
           · September, 2008 Public Beta
                · 2009 IPO?

Personnellement, je trouve cette solution plus agréable que les autres réponses. Mais je me retrouve aussi à modifier le code pour obtenir quelque chose de plus proche de ce que je pense qu'une ligne de temps devrait ressembler. Il n'y a donc pas de solution définitive à mon avis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X