
문제
pgffgantt 패키지를 사용하여 Gantt 차트를 만들고 있습니다. 작업 날짜를 막대 위에 표시하고 싶습니다(아래 이미지에서 주황색).
다양한 질문을 바탕으로 성공하지 못한 채 일을 시도했지만(1,2),날짜가 올바른 위치에 있지 않습니다. 두 개의 막대가 같은 줄에 있으면 겹칠 것입니다...
누구든지 이 작업을 수행하는 방법을 알고 있습니까? 아니면 올바른 방향을 알려줄 수 있습니까?
최소 작업 예
\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}
답변1
다음 코드는 두 개의 명령을 생성 \myganttgroup
하고 \myganttbar
두 개의 원래 막대 또는 그룹에 레이블을 추가합니다.
\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}