Al dibujar un rectángulo usando \node
y minimum width/height
, el tamaño del rectángulo resultante es diferente del dibujado con \draw … rectangle …
. Necesito el \node
para poder referirme a él por su nombre.
Entiendo que puedo solucionar este problema agregando unidades de todos los tamaños (10 mm, 15 mm), pero estoy tratando de entender por qué no funciona sin ellas. Asumí que las unidades predeterminadas <dimension>
eran puntos.
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x = 1mm, y = 1mm]
%% named rectangle with minimum size of 10x15.
\node[%
minimum width = 10,
minimum height = 15,
draw = blue
]
(rect) at (0,0) {};
%% unnamed rectangle with size of 10x15.
\draw [red] (0,0) rectangle ++(10, 15);
\end{tikzpicture}
\end{document}
Respuesta1
Esto está relacionado con las transformaciones entikz
(vermanual de PFGpágina 373). Un párrafo dice explícitamente:
¡El aspecto más importante de la transformación de coordenadas [...] es que se aplica sólo a coordenadas!
Las dimensiones de los nodos no se ven afectadas por las transformaciones y la unidad predeterminada es pt
. Si desea que las dimensiones funcionen como si mm
se usaran, agregue scale
y transform shape
a las opciones de cada nodo afectado o use opciones globales. Vea el ejemplo a continuación
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\tikzset{
x = 1mm, y = 1mm,
every node/.style = {
transform shape,
scale = 2.84, % Converts mm to pt by the factor 72.27/25.4
},
}
\begin{document}
\begin{tikzpicture}
%% named rectangle with minimum size of 10x15.
\node[%
minimum width = 10,
minimum height = 15,
draw = blue,
] (rect) at (0,0) {};
%% unnamed rectangle with size of 10x15.
\draw [red] (0,0) rectangle ++(10, 15);
\end{tikzpicture}
\end{document}