在甘特图(包)中生成带有日期的标题时pgfgantt
,日期编号由
\gantttitlecalendar{day}
它将以01
、02
、 ... 等形式生成日期数字。
是否可以操纵这种格式?例如,在其中添加星期几的首字母,如M01
,,, ......?(这可能看起来很奇怪T02
,W03
但在西班牙的学校日历中却很常用)。
答案1
这是添加wday
说明符的一种可能方法:
\documentclass[border=10pt]{standalone}
\usepackage{pgfgantt}
\makeatletter
\def\pgfcalendarweekdayletter#1{%
\ifcase#1M\or T\or W\or T\or F\or S\or S\fi%
}
\ganttset{%
calendar/wday/.code={%
\ifgtt@calendar@eol\ganttnewline\fi%
\begingroup%
\pgfcalendar{}{\gtt@calendar@startdate}{\gtt@calendar@enddate}{%
\gantttitle{%
\pgfcalendarweekdayletter{\pgfcalendarcurrentweekday}%
\pgfcalendarcurrentday}{1}%
}%
\endgroup%
\gtt@calendar@eoltrue%
}%
}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{ganttchart}[
title/.append style={fill=black!10},
x unit=10pt,
time slot format=isodate,
hgrid, vgrid,
]{2017-9-4}{2017-9-17}
\gantttitlecalendar{year, month=name} \\
\gantttitle{W1}{7}
\gantttitle{W2}{7}
\\
\gantttitlecalendar[
title label font=\ttfamily\tiny,
title label node/.append style={rotate=90},
]{wday} \\
\ganttbar[inline]{task}{2017-9-8}{2017-9-14}
\end{ganttchart}
\end{tikzpicture}
\end{document}
这将产生: