更改 pgfgantt 图表标题中的“日期”内容

更改 pgfgantt 图表标题中的“日期”内容

在甘特图(包)中生成带有日期的标题时pgfgantt,日期编号由

\gantttitlecalendar{day}

它将以0102、 ... 等形式生成日期数字。

是否可以操纵这种格式?例如,在其中添加星期几的首字母,如M01,,, ......?(这可能看起来很奇怪T02W03但在西班牙的学校日历中却很常用)。

答案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}

这将产生:

输出

相关内容