PGFGantt 交替画布颜色

PGFGantt 交替画布颜色

我目前正在使用 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}

相关内容