请教:如何在LaTeX中制作类似Excel完成的时间线?
用LaTeX制作时间线的实用方法
当然可以!我之前用LaTeX制作过类似的时间线,主要依赖TikZ包(以及它的timeline扩展库),下面分享两种适配不同需求的实现方案,你可以根据你的Excel样例调整细节:
方法一:使用tikz-timeline库快速生成
这个库封装了常用的时间线样式,上手快,适合规整的时间线需求:
首先需要在导言区导入必要的包:
\usepackage{tikz} \usetikzlibrary{timeline}
然后是核心代码示例(你可以直接替换成Excel里的时间和事件内容):
\begin{tikzpicture} \timeline[ timescale=year, % 时间刻度单位,可选year/month/day等 start=2018, % 时间线起始年份 end=2024, % 时间线结束年份 tickwidth=2pt, % 刻度线宽度 axiswidth=1pt % 时间轴宽度 ] % 添加事件节点,格式:\event{时间点}{事件内容}{样式选项} \event{2018}{项目启动}{text width=3cm, align=center, fill=blue!10} \event{2020}{核心功能完成}{text width=3cm, align=center, fill=green!10} \event{2022}{Beta测试发布}{text width=3cm, align=center, fill=yellow!10} \event{2024}{正式上线}{text width=3cm, align=center, fill=red!10} \endtimeline \end{tikzpicture}
你可以根据Excel里的内容,调整start/end的时间范围,给不同事件设置不同的填充色、文本宽度,轻松匹配你的样例布局。
方法二:纯TikZ手动绘制(高度自定义)
如果你的时间线有特殊样式(比如非均匀时间间隔、复杂的事件标注),纯TikZ手动绘制更灵活:
\begin{tikzpicture}[ eventbox/.style={rectangle, rounded corners, fill=gray!20, padding=5pt, align=center}, timeline/.style={thick, black} ] % 绘制时间轴 \draw[timeline] (0,0) -- (10,0); % 添加时间刻度和标签 \foreach \x/\year in {0/2018, 2.5/2020, 5/2022, 7.5/2023, 10/2024} { \draw[timeline] (\x, -0.2) -- (\x, 0.2); \node[below] at (\x, -0.3) {\year}; } % 添加事件节点(对应Excel里的内容) \node[eventbox, above=10pt of 0,0] {项目启动 \\ 团队组建完成}; \node[eventbox, above=10pt of 2.5,0] {核心功能开发完成 \\ 内部验收通过}; \node[eventbox, below=10pt of 5,0] {Beta版本发布 \\ 面向用户测试}; \node[eventbox, above=10pt of 7.5,0] {迭代优化 \\ 修复关键Bug}; \node[eventbox, below=10pt of 10,0] {正式上线 \\ 全渠道推广}; % 用连线连接事件和时间轴 \foreach \x in {0,2.5,5,7.5,10} { \draw (\x,0) -- (\x, 0.5); % 上方事件连线 \draw (\x,0) -- (\x, -0.5); % 下方事件连线 } \end{tikzpicture}
这种方式可以自由调整时间轴长度、事件位置(上下交替避免重叠)、盒子样式,完全复刻你Excel样例的细节。
实用小技巧
- 如果你需要从Excel批量导入数据,可以把时间和事件整理成CSV,用
datatool包自动生成时间线节点,节省手动输入的时间; - 调整事件框的
fill参数可以匹配你Excel里的颜色方案; - 如果时间线太长,可以用
adjustbox包缩放整个时间线,或者分成多页展示。
内容的提问来源于stack exchange,提问作者bhawesh sah
相关产品推荐
相关产品推荐

