[pgfgantt] Meilenstein gesondert mit Datum markieren

Tabellen und Grafiken erstellen und anordnen


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

[pgfgantt] Meilenstein gesondert mit Datum markieren

Beitrag von MoonKid »

X-Post: http://texwelt.de/wissen/fragen/2132/pg ... -markieren

Ich möchte die Meilensteine in meinem Gantt-Chart gesondert mit einem Datum (also ein Label) versehen.

Am liebsten wäre mir eine vertikale Linie durch den Meilenstein, an dessen unterem Ende ein Datum steht. Also was wie die TODAY-Linie. Soweit ich weiß, kann man von der TODAY-Linie aber nur eine einzige Zeichnen. Ich benötige mehrere.

Alternativ könnte ich auch das Label der Meilensteine in das Gantt-Chart direkt (links) neben dem Meilenstein zeichnen (sieh auskommentierten Code). Hierbei ist aber das Problem, dass sich das für alle Chart-Elemente so verhält. Also auch die Labels der Bars rutschen vom Rand des Charts, dann direkt in die Bar.

Ich muss auf die Meilensteine einfach irgendwie einen Text mit Datum setzen können. Alternativ würde ich auch ein zweites Label draufsetzen.

Gibt es da pgfgantt-spezifische Möglichkeiten?
\documentclass{scrartcl}

\usepackage{pgfgantt}
\usetikzlibrary{shadows}
\usetikzlibrary{shadings}
\usetikzlibrary{shapes}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\begin{document}
\begin{ganttchart}
    [
    today=2013-12-31, today label={},   % Jahreswechsel
    x unit=1mm,                         % timeslot breite
    milestone left shift=-0.7,
    milestone right shift=1.7,
    %inline,milestone inline label node/.append style={left=5mm},
    time slot format=isodate]           % Datumsformat
    {2013-09-22}{2014-01-19}

    \gantttitlecalendar{year, month=shortname}\\

    \ganttmilestone{Auftrag einreichen}{2013-10-28}\\
    \ganttbar{Bar}{2013-10-15}{2014-01-05}
\end{ganttchart}

\end{document}
Falls das mit pgfgantt nicht geht, könnte ich ja selbst noch per tikz was reinzeichnen. Aber wie komme ich an den Node, des Meilenstein bzw. welchen Namen hat er oder wie kann ich ihn adressieren, wenn ich über ihm ein eigenen Text schreiben möchte?

Als ganz schlechten Workaround würde auch ein Zeilenumbruch im Label gehen. Aber das läuft nicht, \\, \newline und \linebreak werden ignoriert.
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Zwei schöne Lösungen, wobei ich die erste reine Tikz-Lösung bevorzuge.

http://texwelt.de/wissen/fragen/2132/pg ... -markieren
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Kleine Nachfrage zu dieser Lösung. Das ganze wollte ich in ein extra Makro packen. Irgendwas stört ihn aber daran.

Die zweite Variante funktioniert. Aber das Makrio \mymile geht nicht.
% mile.tex
\documentclass{scrartcl}

\usepackage{pgfgantt}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Gantt
\newcounter{mymileC}
\setcounter{mymileC}{0}
\newcommand{\mymile}[2]{%
    \addtocounter{mymileC}{1}
    \ganttmilestone[name=m\the\mymileC]{#1}{#2} \\
    \node (datum\the\mymileC) [below=0 of m\the\mymileC] {\emph{#2}};
}

\begin{document}
\begin{ganttchart}{1}{10}

    \mymile{Test}{7}

    %\ganttmilestone[name=x]{Meilenstein}{4} \\
    %\node (datumx) [below=0 of x] {\emph{4}};
\end{ganttchart}

\end{document}
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

\documentclass{scrartcl}
\usepackage{pgfgantt}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
% Gantt
\newcounter{mymileC}
%\setcounter{mymileC}{0}%defaults to zero
\newcommand{\mymile}[2]{%
    \stepcounter{mymileC}%stepcounter 
    \ganttmilestone[name=m\themymileC]{#1}{#2} \\
    \node (datum\themymileC) [below=0 of m\themymileC] {\emph{#2}};
}

\begin{document}

Achte auf den korrekten Zugriff auf den Wert des Counters: 
 \newcounter{Hallo} \par
 \theHallo
 \stepcounter{Hallo}
 \theHallo

 \begin{verbatim} \newcounter{Hallo}
 \theHallo
 \stepcounter{Hallo}
 \theHallo
 \end{verbatim}



\begin{ganttchart}{1}{10}

\mymile{Test}{7}
\mymile{TestB}{8}

\end{ganttchart}

\end{document}
Zuletzt geändert von Johannes_B am Mo 10. Feb 2014, 17:55, insgesamt 1-mal geändert.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Prima so gehts.

Ich habe beide Varianten von \the. Mit und ohne \ danach. Einen Unterschied konnte ich bisher nicht festellten bzw. mir auch keiner erklären.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Ich habe oben noch ein wenig ergänzt.
Ich habe beide Varianten von \the. Mit und ohne \ danach. Einen Unterschied konnte ich bisher nicht festellten bzw. mir auch keiner erklären.
Wie meinst du das?

Nähere Informationen: texdoc latex2e (Schau dir bitte auch refstepcounter an)
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Antworten