我正在使用\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}
这让我
如何调整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>
以包含所需的偏移量。