tikz でエッジを描画中に不正な測定単位 (pt が挿入されました) が検出されました

tikz でエッジを描画中に不正な測定単位 (pt が挿入されました) が検出されました

tikx を使用して一連の図の特定のグリッド ポイントに矢印を描画しようとしていますが、次のコマンドを使用しようとすると、「無効な測定単位 (pt が挿入されました)」というメッセージが表示されます。

\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
}

質問して申し訳ありませんが、何が間違っているのかわかりません。計算はすべて非常に標準的なようです (掛け算と足し算だけ)。誰か私の間違いを見つけるのを手伝ってくれませんか?

乾杯、トーマス

答え1

\ifdimは、寸法/長さを比較するためのものです。おそらく、 のようなコマンド\drawhigharrow{1}{2}、つまり数字だけを使用するのでしょう。ステートメントのpt後に と#1を追加すると、機能するようです。#2\ifdim

代わりに を使用することもできます\ifnum #1 < #2。その場合、比較は数値に対して行われます。

ここに画像の説明を入力してください

\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}

関連情報