0

The problem

I am making a Gantt chart using the pgffgantt package. I would like the dates of the tasks to be displayed above the bars (in orange in the image below)

My goal

I tried to do things without success based on different questions (1, 2),the date was not in the right place, if two bars were on the same line, it would overlap ...

Would anyone know how to do this, or just point me in the right direction?

Minimum working example

\documentclass[a4paper, 12pt]{article}
\usepackage[babel=true, kerning=true]{microtype} % Required by the package pgfgantt
\usepackage{pgfgantt}

\begin{document} \begin{ganttchart}[ expand chart=\linewidth, time slot format=little-endian, % Format of the date dd-mm-yyyy inline, vgrid={6{draw=none}, 1{dotted}}, % Draw a line 1 out of 7 times, which is the same as framing the weeks ]{14-02-2022}{12-08-2022} \ganttset{calendar week text=\currentweek} % Overload the week text, display the week number (1, 2,, ...) instead of "Week <number>" \gantttitlecalendar{month=name, week}\

    % Group 1
    \ganttset{
        bar/.append style={fill=lightblue},
        group/.append style={fill=darkblue},
    }
    \ganttgroup{Group 1}{14-02-2022}{25-06-2022}\\
    \ganttbar{Task 1}{14-04-2022}{28-05-2022}\\
    \ganttbar{Task 2}{18-02-2022}{18-04-2022} \ganttbar{Task 2 bis}{18-05-2022}{18-06-2022} \\
    % \ganttbar{Task 3}{14-02-2022}{28-03-2022}\\

\end{ganttchart}

\end{document}

Brinfer
  • 105

1 Answers1

0

Following code creates two commands \myganttgroup and \myganttbar which add labels two original bars or grups.

\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[a4paper, 12pt]{article}
\usepackage[babel=true, kerning=true]{microtype} % Required by the package pgfgantt
\usepackage{pgfgantt}

\tikzset{ date/.style={text=yellow!80!black, font=\small, anchor=south} }

\newcommand{\myganttgroup}[4][]{% \ganttgroup[#1, name=#2]{#2}{#3}{#4} \node[date] at (#2.north west) {#3}; \node[date] at (#2.north east) {#4}; }

\newcommand{\myganttbar}[4][]{% \ganttbar[#1, name=#2]{#2}{#3}{#4} \node[date] at (#2.north west) {#3}; \node[date] at (#2.north east) {#4}; }

\begin{document} \begin{ganttchart}[ expand chart=\linewidth, time slot format=little-endian, % Format of the date dd-mm-yyyy inline, vgrid={6{draw=none}, 1{dotted}}, % Draw a line 1 out of 7 times, which is the same as framing the weeks ]{14-02-2022}{12-08-2022} \ganttset{calendar week text=\currentweek} % Overload the week text, display the week number (1, 2,, ...) instead of "Week <number>" \gantttitlecalendar{month=name, week}\

    % Group 1
    \ganttset{
        bar/.append style={fill=LightBlue},
        group/.append style={fill=DarkBlue},
    }

% \ganttgroup{Group 1}{14-02-2022}{25-06-2022}\ \myganttgroup{Group 1}{14-02-2022}{25-06-2022}\ \myganttbar{Task 1}{14-04-2022}{28-05-2022}\ \myganttbar{Task 2}{18-02-2022}{18-04-2022} \myganttbar{Task 2 bis}{18-05-2022}{18-06-2022} \ % \ganttbar{Task 3}{14-02-2022}{28-03-2022}\ % \node[left] at (task1.north west) {A}; % \node[right] at (task1.north east) {B};

\end{ganttchart}

\end{document}

enter image description here

Ignasi
  • 136,588