我试图隐藏第二行中与图表边界重叠的任何日期(在本例中为 11 月 14 日)。有人知道怎么做吗?提前谢谢!
\documentclass[a4paper]{article}
\usepackage{pgfgantt}
\usepackage{pgfcalendar}
\usepackage{lscape}
\usepackage[a4paper,landscape,left=1cm,top=1cm,%
bottom=1.5cm,right=1cm]{geometry}
\begin{document}
\ganttset{%
calendar week text={%
\pgfcalendarmonthshortname{\startmonth}~\startday, \startyear%
}%
}
\begin{landscape}
\thispagestyle{plain}\centering
\begin{ganttchart}[vgrid={draw=none,draw=none},%
hgrid=true,
vgrid=true,
y unit title=0.9cm,
y unit chart=0.6cm,
bar incomplete/.append style={fill=red},%
progress label text= {\quad\pgfmathprintnumber[precision=0,verbatim]{#1}\%}%
]{1}{35}
\gantttitle{Projektplan}{35} \\
\gantttitlecalendar*[time slot format=little-endian]{10.10.2022}{14.11.2022}{week, day} \\
\ganttgroup{Total Duration}{1}{35} \\
\end{ganttchart}
\end{landscape}
\end{document}
答案1
正如我在评论中所说,您显示的是 36 天,因此我将每个出现的 都35
改为36
。
对于最后一天,我已经改变了,calendar week text
以便它检查日历中的最后一天,并且实际上并不打印任何内容(可能有一种方法可以向这些节点的选项添加类似的测试并将该节点变成coordinate
或清空,calendar week text
但这足够简单。
我使用的格式\pgfcalendarendiso
是日历的最后一天YYYY-MM-DD
,当然你也可以2022-11-14
在那里明确地写上。
代码
\documentclass[a4paper]{article}
\usepackage{pgfgantt}
\usepackage{pgfcalendar}
\usepackage{lscape}
\usepackage[a4paper,landscape,left=1cm,top=1cm,bottom=1.5cm,right=1cm]{geometry}
\begin{document}
\ganttset{%
calendar week text={%
\ifdate{equals=\pgfcalendarendiso}{}{%
\pgfcalendarmonthshortname{\startmonth}~\startday, \startyear
}%
}
}
%\begin{landscape}
\thispagestyle{plain}\centering
\begin{ganttchart}[vgrid={draw=none,draw=none},%
hgrid=true,
vgrid=true,
y unit title=0.9cm,
y unit chart=0.6cm,
bar incomplete/.append style={fill=red},%
progress label text={\quad\pgfmathprintnumber[precision=0,verbatim]{#1}\%}%
]{1}{36}
\gantttitle{Projektplan}{36} \\
\gantttitlecalendar*[time slot format=little-endian]{10.10.2022}{14.11.2022}{week, day} \\
\ganttgroup{Total Duration}{1}{36} \\
\end{ganttchart}
%\end{landscape}
\end{document}