В книгах по истории у вас часто есть временная шкала, где события и периоды отмечены на линии в правильном относительном расстоянии друг от друга. Как можно создать что-то подобное в LaTeX?Как создать временную шкалу с помощью LaTeX?
ответ
tikz упаковка, кажется, имеет то, что вы хотите.
\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}
Я не слишком эксперт tikz, но это действительно дает хороший график, который выглядит как:
Существует timeline.sty плавающие вокруг.
Синтаксиса проще, чем с помощью tikz:
%%% In LaTeX:
%%% \begin{timeline}{length}(start,stop)
%%% .
%%% .
%%% .
%%% \end{timeline}
%%%
%%% in plain TeX
%%% \timeline{length}(start,stop)
%%% .
%%% .
%%% .
%%% \endtimeline
%%% in between the two, we may have:
%%% \item{date}{description}
%%% \item[sortkey]{date}{description}
%%% \optrule
%%%
%%% the options to timeline are:
%%% length The amount of vertical space that the timeline should
%%% use.
%%% (start,stop) indicate the range of the timeline. All dates or
%%% sortkeys should lie in the range [start,stop]
%%%
%%% \item without the sort key expects date to be a number (such as a
%%% year).
%%% \item with the sort key expects the sort key to be a number; date
%%% can be anything. This can be used for log scale time lines
%%% or dates that include months or days.
%%% putting \optrule inside of the timeline environment will cause a
%%% vertical rule to be drawn down the center of the timeline.
Я использовал Питон datetime.data.toordinal для преобразования даты, чтобы «ключи сортировки» в контексте пакета.
Не могли бы вы отредактировать свой ответ, чтобы включить пример? – russellpierce 2012-01-15 17:46:06
Tim Storer написал более гибкий и приятный вид timeline.sty
(ссылка на интернет-архив Wayback Machine, поскольку оригинал ушел). Кроме того, линия горизонтальная, а не вертикальная. Так, например:
\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}
производит график, который выглядит следующим образом:
2008 2010
· · April, 2008 First Podcast ·
· July, 2008 Private Beta
· September, 2008 Public Beta
· 2009 IPO?
Лично я нахожу это более приятным решением, чем другие ответы. Но я также могу изменить код, чтобы получить что-то ближе к тому, что, по моему мнению, должно выглядеть так. На мой взгляд, нет окончательного решения.
Если вы ищете диаграммы последовательности UML, возможно, вас заинтересует pkf-umlsd, который основан на TiKZ. Хорошие демонстрации можно найти here.
Нет, меня больше интересовала временная шкала, как в исторической книге. Но, тем не менее, UML-диаграммы в LaTeX могут появиться и в другом проекте. – Mnementh 2009-06-26 10:20:55
Во-первых, я предпочитаю ориентированное решение tikz
, потому что оно дает вам больше свободы. Во-вторых, я не публикую ничего нового. Очевидно, это похоже на ответ Зои Ганьон, потому что он показал путь.
Мне нужна была временная шкала года, и мне потребовалось некоторое время (что за сюрприз!), Чтобы сделать это, поэтому я делюсь результатами. Я надеюсь, вам понравится.
\documentclass[tikz]{standalone}
\usepackage{verbatim}
\begin{document}
\newlength\yearposx
\begin{tikzpicture}[scale=0.57] % timeline 1990-2010->
% define coordinates (begin, used, end, arrow)
\foreach \x in {1990,1992,2000,2002,2004,2005,2008,2009,2010,2011}{
\pgfmathsetlength\yearposx{(\x-1990)*1cm};
\coordinate (y\x) at (\yearposx,0);
\coordinate (y\x t) at (\yearposx,+3pt);
\coordinate (y\x b) at (\yearposx,-3pt);
}
% draw horizontal line with arrow
\draw [->] (y1990) -- (y2011);
% draw ticks
\foreach \x in {1992,2000,2002,2004,2005,2008,2009}
\draw (y\x t) -- (y\x b);
% annotate
\foreach \x in {1992,2002,2005,2009}
\node at (y\x) [below=3pt] {\x};
\foreach \x in {2000,2004,2008}
\node at (y\x) [above=3pt] {\x};
\begin{comment}
% for use in beamer class
\only<2> {\fill (y1992) circle (5pt);}
\only<3-5> {\fill (y2000) circle (5pt);}
\only<4-5> {\fill (y2002) circle (5pt);}
\only<5> {\fill[red] (y2004) circle (5pt);}
\only<6> {\fill (y2005) circle (5pt);}
\only<7> {\fill[red] (y2005) circle (5pt);}
\only<8-11> {\fill (y2008) circle (5pt);}
\only<11> {\fill (y2009) circle (5pt);}
\end{comment}
\end{tikzpicture}
\end{document}
Как вы можете видеть, это с учетом BEAMER презентации (выбрать часть, а также масштабировать вариант), но если вы действительно хотите, чтобы проверить его в презентации, то вы должны двигаться \newlength\yearposx
вне определения кадра, потому что в противном случае вы получите ошибочную уверенность в том, что команда \yearposx
уже определена (если вы не удалите часть выбора и любые другие команды разделения кадра из вашего фрейма).
Просто обновление.
Настоящий пакет TiKZ выдаст: Пакет tikz Предупреждение: Змеи были заменены украшениями. Пожалуйста, используйте библиотеки украшений вместо библиотеки змей на входной строке. , ,
Так относящиеся часть кода должен быть изменен на:
\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
Я думаю, что теперь это стало: `\ usetikzlibrary {decorations.pathmorphing}`. Кроме того, do `\ documentclass [tikz] {standalone}`, если вы хотите, чтобы изображение с плотным обрезанием было вставлено в другой документ. – PatrickT 2014-02-11 11:38:15
Существует новая chronology.sty по Levi Wiseman. documentation (PDF) говорит:
Большинство пакетов по временной шкале и решения для LATEX используются, чтобы передать много информации, и поэтому разработаны вертикально. Если вы просто пытаетесь присвоить метки датам, более подходящая временная шкала может быть более подходящей. Это , для какой хронологии.
Вот несколько примеров кода:
\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}
Который производит этот выход:
Также пакет chronosys обеспечивает хорошее решение. Вот пример из руководства пользователя:
- 1. Как создать графическую временную шкалу с помощью javascript
- 2. Как персонализировать временную шкалу с помощью R?
- 3. Как создать временную шкалу в Access?
- 4. Как создать временную шкалу на iPhone
- 5. Можно ли создать «временную шкалу» с помощью FFMPEG?
- 6. Как изменить временную шкалу TimelineLite?
- 7. Рассчитать временную шкалу времени
- 8. Как создать временную шкалу в phpmyadmin с использованием наносекунд?
- 9. Как ускорить временную шкалу гринзока?
- 10. Как изменить отзывчивую временную шкалу?
- 11. создавая временную шкалу в Android
- 12. Нужно сделать вертикальную временную шкалу
- 13. Как получить временную шкалу twitter с помощью SLRequest
- 14. Как получить пользовательскую временную шкалу с помощью twitter4j
- 15. Как создать временную шкалу для узла в Neo4j
- 16. Как создать временную шкалу, используя html, css, javascript?
- 17. Как создать excel 2013 временную шкалу от доступа
- 18. Как создать прерывистую временную шкалу в высоких диаграммах?
- 19. google отображает временную шкалу api
- 20. Создайте отзывчивую временную шкалу с строками Bootstrap
- 21. Как получить старую временную шкалу или твит?
- 22. Как отправить сообщение на временную шкалу Facebook?
- 23. Как добавить эту временную шкалу анимации SuperScrollorama
- 24. Как визуализировать временную шкалу событий в D3?
- 25. Как твиттер вживую обновить свою временную шкалу?
- 26. Как сделать текущую «временную шкалу» в Bootstrap
- 27. Twitter → как получить пользовательскую временную шкалу
- 28. Как отобразить временную шкалу в вертикальном положении
- 29. Как я могу вложить свою временную шкалу t2 в свою временную шкалу t1?
- 30. Как создать выделенный календарь с помощью LaTex?
вот мой ответ: http://tex.stackexchange.com/questions/183046/how-do-i-develop-a-complex- time-line/227149 # 227149 Надеюсь, это может помочь – flav 2015-02-12 12:29:30