Trong sách lịch sử, bạn thường có dòng thời gian, trong đó các sự kiện và dấu chấm được đánh dấu trên một dòng trong khoảng cách tương đối chính xác với nhau. Làm thế nào là nó có thể tạo ra một cái gì đó tương tự trong LaTeX?Cách tạo dòng thời gian với LaTeX?
Trả lời
Gói tikz dường như có những gì bạn muốn.
\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}
Tôi không quá chuyên gia với tikz, nhưng điều này không đưa ra một thời gian tốt, trông giống như:
Có timeline.sty nổi xung quanh.
Cú pháp là đơn giản hơn so với sử dụng 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.
Tôi đã sử dụng python của datetime.data.toordinal để chuyển đổi ngày để 'phím loại' trong bối cảnh của gói.
Bạn có thể chỉnh sửa câu trả lời của mình để bao gồm ví dụ không? – russellpierce
Tim Storer đã viết một cái nhìn linh hoạt và đẹp hơn timeline.sty
(liên kết Máy chủ lưu trữ Internet Wayback, khi đã biến mất). Ngoài ra, đường thẳng nằm ngang chứ không phải dọc. Vì vậy, ví dụ:
\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}
tạo ra một mốc thời gian mà trông như thế này:
2008 2010
· · April, 2008 First Podcast ·
· July, 2008 Private Beta
· September, 2008 Public Beta
· 2009 IPO?
Cá nhân, tôi thấy đây là một giải pháp làm hài lòng nhiều hơn câu trả lời khác. Nhưng tôi cũng thấy mình sửa đổi mã để có được một cái gì đó gần gũi hơn với những gì tôi nghĩ rằng một dòng thời gian sẽ như thế nào. Vì vậy, không có giải pháp dứt khoát theo ý kiến của tôi.
Nếu bạn đang tìm kiếm sơ đồ trình tự UML, bạn có thể quan tâm đến pkf-umlsd, dựa trên TiKZ. Bản trình diễn tuyệt vời có thể được tìm thấy here.
Không, tôi quan tâm nhiều hơn đến dòng thời gian như trong một cuốn sách lịch sử. Nhưng nhờ vậy, các sơ đồ UML trong LaTeX có thể xuất hiện trong một dự án khác. – Mnementh
Thứ nhất, tôi thích tikz
giải pháp được hướng dẫn, vì nó mang đến cho bạn nhiều tự do hơn. Thứ hai, tôi không đăng bất cứ điều gì hoàn toàn mới. Nó rõ ràng là tương tự như câu trả lời của Zoe Gagnon, bởi vì anh ta đã chỉ đường.
Tôi cần một khoảng thời gian năm và tôi mất một thời gian (thật bất ngờ!) Để làm điều đó, vì vậy tôi đang chia sẻ kết quả. Tôi hy vọng bạn sẽ thích nó.
\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}
Như bạn thấy, nó phù hợp với máy chiếu thuyết trình (chọn một phần và cũng có thể mở rộng tùy chọn), nhưng nếu bạn thực sự muốn thử nghiệm nó trong một bài thuyết trình, sau đó bạn nên di chuyển \newlength\yearposx
bên ngoài của định nghĩa khung hình, vì nếu không bạn sẽ nhận được lỗi một cách rõ ràng nói rằng lệnh \yearposx
đã được xác định (trừ khi bạn xóa phần lựa chọn và bất kỳ lệnh tách khung nào khác khỏi khung của bạn).
Chỉ cần cập nhật.
Gói TiKZ hiện tại sẽ phát hành: Gói tikz Cảnh báo: Rắn đã được thay thế bằng trang trí. Vui lòng sử dụng thư viện trang trí thay vì thư viện rắn trên dòng đầu vào. . .
Vì vậy, các bộ phận liên quan của mã phải được đổi thành:
\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
Tôi nghĩ rằng điều này đã trở thành: '\ usetikzlibrary {decorations.pathmorphing}'. Ngoài ra, hãy làm '\ documentclass [tikz] {standalone}' nếu bạn muốn một hình ảnh được cắt chặt để chèn vào một tài liệu khác. – PatrickT
Có một mới chronology.sty bởi Levi Wiseman. documentation (pdf) cho biết:
Hầu hết các gói và giải pháp thời gian cho LATEX được sử dụng để truyền đạt nhiều thông tin và do đó được thiết kế theo chiều dọc. Nếu bạn chỉ cố gắng gán nhãn cho các ngày, một dòng thời gian truyền thống hơn có thể phù hợp hơn. Đó là niên đại là gì.
Dưới đây là một số mã ví dụ:
\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}
nào sản xuất sản lượng này:
Cần lưu ý rằng gói này dường như chỉ hỗ trợ một dòng thời gian cho mỗi tài liệu. Ít nhất đối với tôi, tôi nhận được lỗi "lệnh \ c @ bước đã được xác định" khi tôi cố gắng có nhiều hơn một. – russellpierce
Tôi đã cố gắng sửa đổi tệp chronology.sty để có được dòng thời gian theo chiều dọc nhưng không thành công. Có phiên bản theo chiều dọc không? – highsciguy
Gói nào chứa '' '\ textwidth'''? –
Cũng gói chronosys cung cấp một giải pháp tốt đẹp. Dưới đây là một ví dụ từ các hướng dẫn sử dụng:
cảm ơn!lạ lùng, anh chàng người viết tài liệu vẫn gọi điện thoại cho dòng thời gian là một "sự đóng băng" như thể đó là điều tương tự như một dòng thời gian. chỉ cần đặt ở đây trong trường hợp bất kỳ ai khác đọc tài liệu. –
đây câu trả lời của tôi: http://tex.stackexchange.com/questions/183046/how-do-i-develop-a-complex- time-line/227149 # 227149 Tôi hy vọng Nó có thể giúp – flav