Unzulässige Maßeinheit (pt eingefügt) beim Zeichnen von Kanten in Tikz

Unzulässige Maßeinheit (pt eingefügt) beim Zeichnen von Kanten in Tikz

Ich versuche, mit Tikx Pfeile an bestimmten Rasterpunkten für eine Diagrammsequenz zu zeichnen, erhalte jedoch die Meldung „Unzulässige Maßeinheiten (pt eingefügt)“, wenn ich versuche, den folgenden Befehl zu verwenden:

\newcommand*{\drawhigharrow}[2]{
    \ifdim #1 < #2 {
        \draw (#1*\gridsize+0.5*\gridsize, 5*\gridsize) edge[thick,out=90,in=180] (#2*\gridsize, 6*\gridsize);
        \draw (#2*\gridsize, 6*\gridsize) edge[thick, out=0,in=90,->] (#2*\gridsize+0.5*\gridsize, 5*\gridsize+0.1);
    } \else {
        \draw (#1*\gridsize+0.5*\gridsize, 5*\gridsize) edge[thick, out=90,in=0] (#1*\gridsize, 6*\gridsize);
        \draw (#1*\gridsize, 6*\gridsize) edge[thick, out=180,in=90,->]
              (#2*\gridsize+0.5*\gridsize, 5*\gridsize+0.1);        
    }
    \fi
}

Entschuldigen Sie die Frage, aber ich kann nicht herausfinden, was falsch läuft – die Berechnungen scheinen alle sehr standardisiert zu sein (nur Multiplikation und Addition). Kann mir jemand helfen, meinen Fehler zu finden?

Viele Grüße, Thomas

Antwort1

\ifdimdient zum Vergleichen von Dimensionen/Längen. Vermutlich verwendest du den Befehl wie \drawhigharrow{1}{2}, also nur mit Zahlen. Wenn du ptnach #1und #2in der \ifdimAnweisung einfügst, scheint es zu funktionieren.

Alternativ können Sie verwenden \ifnum #1 < #2. In diesem Fall erfolgt der Vergleich für Zahlen.

Bildbeschreibung hier eingeben

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\newcommand\gridsize{1cm}
\newcommand*{\drawhigharrow}[2]{
    \ifdim #1pt < #2pt { % note the addition of pt
        \draw (#1*\gridsize+0.5*\gridsize, 5*\gridsize) edge[thick,out=90,in=180] (#2*\gridsize, 6*\gridsize);
        \draw (#2*\gridsize, 6*\gridsize) edge[thick, out=0,in=90,->] (#2*\gridsize+0.5*\gridsize, 5*\gridsize+0.1);
    } \else {
        \draw (#1*\gridsize+0.5*\gridsize, 5*\gridsize) edge[thick, out=90,in=0] (#1*\gridsize, 6*\gridsize);
        \draw (#1*\gridsize, 6*\gridsize) edge[thick, out=180,in=90,->]
              (#2*\gridsize+0.5*\gridsize, 5*\gridsize+0.1);        
    }
    \fi
}
\begin{document}
\begin{tikzpicture}
\drawhigharrow{1}{2}
\end{tikzpicture}
\end{document}

verwandte Informationen