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
\ifdim
dient zum Vergleichen von Dimensionen/Längen. Vermutlich verwendest du den Befehl wie \drawhigharrow{1}{2}
, also nur mit Zahlen. Wenn du pt
nach #1
und #2
in der \ifdim
Anweisung einfügst, scheint es zu funktionieren.
Alternativ können Sie verwenden \ifnum #1 < #2
. In diesem Fall erfolgt der Vergleich für Zahlen.
\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}