Tex-Zähler im Tikz-Code verwenden

Tex-Zähler im Tikz-Code verwenden

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 \StartTimeals auch \EndTimeGanzzahlen sind, die zu groß für die Dimensionen sind (in pt).

Problemumgehung:

Berechnen Sie die Differenz zwischen \StartTimeund , \EndTimebevor pgfmathder 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}

verwandte Informationen