
beim Versuch, einige Befehle zu schreiben, um das Generieren von Zeitleisten mit Tikz zu vereinfachen, bin ich über diesen Fehler gestolpert:
MWE:
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfcalendar}
\begin{document}
\newcount\StartTime
\newcount\EndTime
\begin{tikzpicture}
\pgfcalendardatetojulian{2021-01-01}{\StartTime}
\pgfcalendardatetojulian{2022-01-01}{\EndTime}
\typeout{\the\StartTime}
\draw let
\n{length} = (\the\StartTime-\the\EndTime),
in
(0,0) -- (\n{length},0);
\end{tikzpicture}
\end{document}
Beim Ausführen erhalte ich diese Ausgabe:
2459216
/media/daten/coding/01_manuals/tex/testing/chrono/mwe.tex:17: Use of \tikz@cc@stop@let doesn't match its definition.
<recently read> \the
l.17 \n{length} = (\the
\StartTime-\the\EndTime),
Ich sehe, ich habe ein Problem damit, die Werte der Zähler dort zu ermitteln. Da ich ein Neuling in Sachen Erweiterung in LaTeX bin, kann ich das leider nicht selbst beheben (und meine Internetrecherche hat nichts Nützliches ergeben).
Kann mir jemand helfen, Tex-Zähler in Tikz zu integrieren?
Antwort1
Die \n{<number register>}
Syntax lautet
\n{<number register>} = {<pgfmath expression>}
Daher sollte es \n{length} = {\the\StartTime-\the\EndTime}
(geschweifte Klammern, keine runden Klammern) heißen.
Es wird jedoch \n{length} = {\the\StartTime-\the\EndTime}
der Fehler „Dimension zu groß“ auftreten, da sowohl \StartTime
als auch \EndTime
Ganzzahlen sind, die zu groß für die Dimensionen sind (in pt
).
Problemumgehung:
Berechnen Sie die Differenz zwischen \StartTime
und , \EndTime
bevor pgfmath
der mathematische Ausdruck analysiert wird. Dies kann entweder vorher \draw
(mithilfe einer weiteren Zählung) oder direkt vor Ort auf erweiterbare Weise erfolgen.
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfcalendar}
\begin{document}
\newcount\StartTime
\newcount\EndTime
\begin{tikzpicture}
\pgfcalendardatetojulian{2021-01-01}{\StartTime}
\pgfcalendardatetojulian{2022-01-01}{\EndTime}
\typeout{\the\StartTime}
\draw let
\n{length} = {\the\numexpr\StartTime-\EndTime pt},
in
% \n{length} is -365pt
(0,0) -- (\n{length},0);
\end{tikzpicture}
\end{document}