
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}