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}

관련 정보