10

here's a problem I have: I want my gantt bars to have two types of labels -- one on the side of the chart, and one inline -- and I'm having a hard time making it work. The code I use to generate the chart is listed below:

\begin{ganttchart}[
vgrid,
x unit=1cm,
title height=1]{12}{12}
  \gantttitle{Quarters}{12} \\
  \gantttitlelist{1,...,12}{1} \\
  \gantttitle{Year 1}{4}
  \gantttitle{Year 2}{4}
  \gantttitle{Year 3}{4}\\
\ganttbar{WP1 Theoretical part}{1}{5} \\
\ganttbar{WP1 Experimental part}{2}{6} \\
\ganttbar{WP2 Theoretical part}{7}{11}\\
\ganttbar{WP2 Experimental part}{8}{12}\\
\ganttbar[bar/.append style={fill=gray,pattern=north east lines}]{WP3 Theoretical part}{6}{12}\\
\ganttbar[bar/.append style={fill=gray,pattern=north east lines}]{WP3 Experimental part}{7}{12}
\end{ganttchart}

And the idea is to have WPx labels on the left of the chart, but "Theoretical/experimental part" labels inside the bars. Is it possible to make this with pgfgantt?

13

You could use two \ganttbars; the second one using the inline option. Below, this approach, thorough a command:

\Dganttbar{<side text>}{<inline text>}{<start>}{<end>}

The code:

\documentclass{article}
\usepackage{pgfgantt}

\newcommand\Dganttbar[4]{%
  \ganttbar{#1}{#3}{#4}\ganttbar[inline,bar label font=\footnotesize]{#2}{#3}{#4}
}

\begin{document}

\begin{ganttchart}{1}{12}
\gantttitle{2011}{12} \\
\gantttitlelist{1,...,12}{1} \\
\Dganttbar{WP1}{Theoretical part}{1}{5} \\
\Dganttbar{WP1}{Experimental part}{2}{6} \\
\Dganttbar{WP2}{Theoretical part}{7}{11}\\
\Dganttbar{WP2}{Experimental part}{8}{12}\\
\end{ganttchart}

\end{document}

enter image description here

  • 1
    @pkazmierczak You're welcome! I edited my answer suppressing a superfluous ` \\ ` command. – Gonzalo Medina Feb 23 '14 at 18:20
  • That is a nice solution indeed! Nevertheless, unfortunately I'm loosing all my other ganttbar-options like [progress=00, name=test1] when using it. How can I combine your nice text option AND the original options? It should look like that: \Dganttbar[progress=00, name=test1]{Text in outer label}{Text in ganttbar}{01.01.2018}{01.02.2018}. – Dave Nov 25 '17 at 3:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.