
Todavía no he encontrado una buena solución para representar tareas (barras) en resolución diaria sin tener un título de Gantt demasiado ocupado, es decir, limitarlo a resolución mensual.
Me gustaría definir las horas de inicio y finalización para grupos y tareas/barras mediante un especificador de fecha del formato: aaaa-mm-dd.
Aquí hay un mwe:
\NeedsTeXFormat{LaTeX2e}
\documentclass[10pt]{standalone}
\usepackage{pgfgantt}
\usepackage[scaled]{helvet}
\newcommand{\graphstart}{2019-01} % start of graph (two months buffer)
\newcommand{\graphend}{2019-09} % end date (two months buffer)
\renewcommand\familydefault{\sfdefault}
% create a new command for a ganttbar entry
\newcommand{\ganttbarentry}[4]{%
\ganttbar[bar/.append style={pattern color = #1}]{#2}{#3}{#4}%
}%
\begin{document}
\begin{ganttchart}[
vgrid,
hgrid,
x unit=0.47cm,
y unit chart=0.41cm,
time slot format=isodate-yearmonth,
time slot unit=month,
%compress calendar=true,
bar/.append style={pattern=north west lines, pattern color = cyan},%
]{\graphstart}{\graphend}
\gantttitlecalendar{year, month}\\
%
\ganttgroup{Group I}{2019-03}{2019-05} \\%
% March 4th - 6th
\ganttbarentry{gray}{Task I}{2019-03}{2019-03} \\%
% March 15 - April 5th
\ganttbarentry{gray}{Task II}{2019-03}{2019-03} \\%
\\
\ganttgroup{Group II}{2019-03}{2019-05} \\%
% March 4th - 6th
\ganttbarentry{gray}{Task I}{2019-03}{2019-03} \\%
% March 4th - March 15th
\ganttbarentry{gray}{Task II}{2019-04}{2019-04} \\%
\end{ganttchart}
\end{document}
La salida es en bloques/limitada a una resolución mensual:
Respuesta1
He aquí una propuesta. Viene con un comando \Ganttbarentry
que funciona de manera muy similar a su propio comando \ganttbarentry
excepto que requiere seis parámetros en lugar de cuatro. Los dos últimos parámetros son los días de inicio y finalización, por lo que, por ejemplo
\Ganttbarentry{gray}{Task I}{2019-03}{2019-03}{4}{6}
le dará una barra con estadísticas del 3 de marzo y que finaliza el 4 de abril.
\NeedsTeXFormat{LaTeX2e}
\documentclass[10pt]{standalone}
\usepackage{pgfgantt}
\usepackage[scaled]{helvet}
\newcommand{\graphstart}{2019-01} % start of graph (two months buffer)
\newcommand{\graphend}{2019-09} % end date (two months buffer)
\renewcommand\familydefault{\sfdefault}
% create a new command for a ganttbar entry
\newcommand{\ganttbarentry}[4]{%
\ganttbar[bar/.append style={pattern color = #1}]{#2}{#3}{#4}%
}%
\newcommand{\Ganttbarentry}[6]{%
\ganttbar[/pgfgantt/bar left shift=#5/30,
/pgfgantt/bar right shift=#6/30,bar/.append style={pattern color = #1}]{#2}{#3}{#4}%
}%
\begin{document}
\begin{ganttchart}[
vgrid,
hgrid,
x unit=0.47cm,
y unit chart=0.41cm,
time slot format=isodate-yearmonth,
time slot unit=month,
%compress calendar=true,
bar/.append style={pattern=north west lines, pattern color = cyan},%
]{\graphstart}{\graphend}
\gantttitlecalendar{year, month}\\
%
\ganttgroup{Group I}{2019-03}{2019-05} \\%
% March 4th - 6th
\Ganttbarentry{gray}{Task I}{2019-03}{2019-03}{4}{6} \\%
% March 15 - April 5th
\Ganttbarentry{gray}{Task II}{2019-03}{2019-03}{15}{5} \\%
\ganttgroup{Group II}{2019-03}{2019-05} \\%
% March 4th - 6th
\Ganttbarentry{gray}{Task I}{2019-03}{2019-03}{4}{6} \\%
% March 4th - March 15th
\Ganttbarentry{gray}{Task II}{2019-04}{2019-04}{4}{15} \\%
\end{ganttchart}
\end{document}
Esto se puede mejorar de muchas maneras. Una forma es hacer que analice la fecha completa (en lugar de que el usuario tenga que dividirla a mano). Esto parece factible, pero supone un esfuerzo mayor del que uno podría esperar ingenuamente. Y la versión actual supone que cada mes tiene 30 días. Implementar esto también parece factible, pero aún más tedioso.