我目前正在使用 pgfgantt 在 Latex 文档中添加甘特图。为了提高可读性,我尝试交替使用行的背景颜色。这样第 1 组,任务2和最后的任务有背景颜色,任务1和里程碑有不同的背景颜色。
有什么指点我该如何实现它?
\begin{ganttchart}[
hgrid,
vgrid]{1}{12}[
\gantttitle{2011}{18} \\
\gantttitlelist{1,...,12}{1} \\
\ganttgroup{Group 1}{1}{7} \\
\ganttbar{Task 1}{1}{2} \\
\ganttlinkedbar{Task 2}{3}{7} \ganttnewline
\ganttmilestone{Milestone}{7} \ganttnewline
\ganttbar{Final Task}{8}{12}
\ganttlink{elem2}{elem3}
\ganttlink{elem3}{elem4}
\end{ganttchart}
答案1
灵感来自如何根据日历日期为 pgfgantt 画布着色,您可以使用样式列表为了hgrid
做到这一点。
hgrid
/的样式列表vgrid
在手册第 8 页有描述(适用于 的 v4.0 pgfgantt
,日期为 2013/06/01)。与表格的列规范类似,您可以这样写:
hgrid={ *{2}{blue}, *{3}{red} }
使前两条网格线为蓝色,后三条为红色。然后重复此模式。下面使用的技巧是将线宽设置为行高(通过 获得)\ganttvalueof{y unit chart}
,然后将其向上移动一半。
\documentclass{article}
\usepackage{pgfgantt}
\tikzset{
oddlines/.style={
line width=\ganttvalueof{y unit chart},
yshift=-0.5*\ganttvalueof{y unit chart},
opacity=0.2,
red
},
evenlines/.style={
oddlines,
blue
}
}
\begin{document}
\begin{ganttchart}[
hgrid={
*{1}{oddlines},
*{1}{evenlines},
},
vgrid
]{1}{12}
\gantttitle{2011}{12} \\
\gantttitlelist{1,...,12}{1} \\
\ganttgroup{Group 1}{1}{7} \\
\ganttbar{Task 1}{1}{2} \\
\ganttlinkedbar{Task 2}{3}{7} \ganttnewline
\ganttmilestone{Milestone}{7} \ganttnewline
\ganttbar{Final Task}{8}{12}
\ganttlink{elem2}{elem3}
\ganttlink{elem3}{elem4}
\end{ganttchart}
\end{document}