
Das Problem
Ich erstelle ein Gantt-Diagramm mit dem Paket pgffgantt. Ich möchte, dass die Daten der Aufgaben über den Balken angezeigt werden (im Bild unten in Orange).
Ich habe erfolglos versucht, Dinge auf der Grundlage verschiedener Fragen zu tun (1,2), das Datum war nicht an der richtigen Stelle, wenn zwei Balken auf der gleichen Linie wären, hätten sie sich überlappt ...
Weiß jemand, wie das geht, oder kann mir jemand einfach den richtigen Weg zeigen?
Minimales Arbeitsbeispiel
\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}
Antwort1
Der folgende Code erstellt zwei Befehle \myganttgroup
, \myganttbar
die zwei Originalbalken oder -gruppen Beschriftungen hinzufügen.
\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}