pgfgantt-使用 \gantttitlecalendar 调整 vgrid

pgfgantt-使用 \gantttitlecalendar 调整 vgrid

我正在使用\gantttitlecalendar它来生成由月份和周数组成的标题栏。

的默认行为vgrid是将每个单位视为一天,或者如果compress calendar为真,则将每个单位视为一个月。

我希望有垂直网格线来划分每周。

这就是我目前拥有的

 % Minimal
\documentclass{article}
\usepackage{pgfgantt}

\begin{document}

\ganttset{calendar week text= \small {\startday/\startmonth}}

\begin{ganttchart}[
    hgrid,x unit=1.5mm,
    hgrid style/.style={draw=black!5, line width=.75pt},
    vgrid,
    time slot format=little-endian]{22-09-2014}{30-11-2014}
\gantttitlecalendar{ month=shortname,week=4} \\
\ganttgroup{Group A}{22-09-14}{28-11-14}\\
\ganttbar{Task A}{22-09-14}{10-11-14}
\end{ganttchart}

\end{document}

这让我 最小示例 - vgird = days

如何调整vgrid数周的时间?

答案1

您可以使用一个<style list>值作为vgrid键来每周仅绘制一次网格线,如下所示:

vgrid={*{6}{draw=none},dotted},

<style list>当我们从左到右浏览甘特图时, 会循环显示, 的工作方式与重复元素的前言*{<num>}{<style>}相同tabular。因此,上面的代码行使前 6 条网格线具有样式draw=none(因此完全不可见),第七条网格线具有dotted样式。这样重复进行,因此实现了每周一条网格线的目标。

以下是完整的代码和输出:

\documentclass{standalone}
\usepackage{pgfgantt}

\begin{document}

\ganttset{calendar week text= \small {\startday/\startmonth}}

\begin{ganttchart}[
  hgrid,x unit=1.5mm,
  hgrid style/.style={draw=black!5, line width=.75pt},
  vgrid={*{6}{draw=none},dotted},
  time slot format=little-endian,
]{22-09-2014}{30-11-2014}
  \gantttitlecalendar{ month=shortname,week=4} \\
  \ganttgroup{Group A}{22-09-14}{28-11-14}\\
  \ganttbar{Task A}{22-09-14}{10-11-14}
\end{ganttchart}

\end{document}

在此处输入图片描述

我假设您希望网格线与标题栏部分中的周标记相对应,但如果您希望该线位于一周中的不同日期,您可以调整<style list>以包含所需的偏移量。

相关内容