미리 정의된 명령을 사용하거나 \draw bent right로 좌표 지정

미리 정의된 명령을 사용하거나 \draw bent right로 좌표 지정

draw미리 정의된 명령을 사용할 때 이 문제가 발생했습니다 . 어떻게 고치는지 아시나요? 다음은 작동하지 않는 최소한의 예입니다.

\documentclass{article}
\usepackage{tikz}

\newcommand{\Ve}{(1,1)}
\begin{document}
    \begin{tikzpicture}
        \draw (1,0) to[bend right] (1,1) ; %works
        \draw   \Ve to[bend right] (1,0) ; %works
        \draw (1,0) to[bend right] \Ve ;   %doesn't work
    \end{tikzpicture}
\end{document}

발생한 오류:

Latex Error: ./untitled.tex:9 Package tikz Error: (, +, coordinate, pic, or node expected. Latex Error: ./untitled.tex:9 Package pgf Error: No shape named is known.

답변1

괄호가 필요합니다. \draw예를 들어 지정된 경로를 사용하면 두 개의 점을 그려야 합니다. 시작 위치와 끝 위치의 좌표는 다음의 점으로 지정됩니다.둥근 괄호.[보다:2.3 직선 경로 건설,p.31]

정의:포인트 위치

  • cm 단위: (1,0)(1,1)

    위치는 처음에 하나의 단위가 인 특수 좌표계 내에서 지정됩니다 1cm. [보다2.2.1 LATEX에서 환경 설정p.29-30]

  • pt: (1pt,0pt)(1pt,1pt)-> 위치는 단위가 있는 특수 좌표계 내에서 지정됩니다 pt.
  • 극좌표: (0:1)(45:{sqrt(2)})-> 극좌표: 1각각 sqrt(2)(반지름) 방향 및 0각도 45(각도). {sqrt(2)}(올바른 반경을 얻으려면) 계산하려면 가 필요합니다 \usetikzlibrary{calc}.2.15 좌표 지정,p37ff.
  • 매크로 사용: (\Va)및 -> TikZ 파서는 입력 스트림에서 문자를 (\Ve)명시적으로 찾아서 좌표와 노드(및 해당 이름)를 이해합니다 . (따라서 대괄호가 매크로 내부에 숨겨져 있으면 파서는 먼저 대괄호를 찾지 못하고 매크로를 확장하므로 너무 늦습니다. 대신 \newcommand{\Va}{1,0}및 를 사용하여 자신만의 명령을 정의하십시오 \newcommand{\Ve}{1,1}(@JLDiaz 주석의 힌트).

하지만 나는 다음을 선호하고 추천합니다.

  • 좌표 사용: (A)(B)-> 두 좌표 정의(이름:,) \coordinate명령을 사용합니다. 예를 \coordinate (A) at (1,0);들어\coordinate (B) at (1,1);

해결책:

여기에 이미지 설명을 입력하세요

MWE:

\documentclass{article}
\usepackage{tikz}
%\usetikzlibrary{calc}
%\newcommand{\Ve}{1,1}
\begin{document}
    \begin{tikzpicture}
    \coordinate (VE) at (1,1);
   %\coordinate (VE) at (45:{sqrt(2)});
        \draw (1,0) to[bend right] (1,1);
        \draw   (VE) to[bend right] (1,0);
        \draw (1,0) to[bend right] (VE) ;
    \end{tikzpicture}
%    \begin{tikzpicture}
%        \draw (1,0) to[bend right] (1,1);
%        \draw (\Ve) to[bend right] (1,0);
%        \draw (1,0) to[bend right] (\Ve) ;
%    \end{tikzpicture}
\end{document}

관련 정보