
Me encontré con este problema cuando lo usé draw
con un comando predefinido. ¿Alguna idea de cómo solucionarlo? Aquí hay un ejemplo mínimo (que no) funciona:
\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}
El error produjo:
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.
Respuesta1
Necesitas paréntesis. En \draw
la ruta indicada, por ejemplo, se deben dibujar dos puntos. Las coordenadas de las posiciones inicial y final se especifican como puntos enentre paréntesis.[Ver:2.3 Construcción de camino recto,p.31]
Definición:posición del punto
- en cm:
(1,0)
y(1,1)
Las posiciones se especifican dentro de un sistema de coordenadas especial en el que inicialmente hay una unidad
1cm
. [Ver2.2.1 Configurar el entorno en LATEXpág.29-30] - en pt:
(1pt,0pt)
y(1pt,1pt)
-> Las posiciones se especifican dentro de un sistema de coordenadas especial con unidadpt
. - en coordenadas polares:
(0:1)
y(45:{sqrt(2)})
-> coordenadas polares:1
respectivamentesqrt(2)
(como radio) en dirección0
respectivamente45
grados (ángulo). Para calcular{sqrt(2)}
(para obtener el radio correcto)\usetikzlibrary{calc}
necesita.Ver2.15 Especificación de coordenadas,p37ss. - con macro:
(\Va)
y(\Ve)
-> El analizador TikZ comprende coordenadas y nodos (y sus nombres) buscando explícitamente(
caracteres en el flujo de entrada. Por lo tanto, si los corchetes están ocultos dentro de la macro, el analizador primero no podrá encontrar el corchete y luego expandirá la macro, lo cual será demasiado tarde. En su lugar, defina sus propios comandos con\newcommand{\Va}{1,0}
y\newcommand{\Ve}{1,1}
(pista del comentario de @JLDiaz)
Pero prefiero y recomiendo:
- con coordenadas:
(A)
y(B)
-> Definiendo dos coordenadas (nombre:A,B) usando el\coordinate
comando. Por ejemplo\coordinate (A) at (1,0);
y\coordinate (B) at (1,1);
Solución:
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}