Ao desenhar um retângulo usando \node
e minimum width/height
, o tamanho do retângulo resultante é diferente daquele desenhado com \draw … rectangle …
. Preciso do \node
para poder me referir a ele pelo nome.
Entendo que posso consertar isso adicionando unidades em todos os tamanhos (10 mm, 15 mm), mas estou tentando entender por que não funciona sem. Presumi que as unidades padrão <dimension>
eram pontos.
\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}
Responder1
Isto está relacionado com transformações em tikz
(verManual PFGpágina 373). Um parágrafo afirma explicitamente:
O aspecto mais importante da transformação de coordenadas [...] é que ela se aplica apenas a coordenadas!
As dimensões do nó não são afetadas pelas transformações e a unidade padrão é pt
. Se desejar que as dimensões funcionem como se mm
fossem usadas, adicione scale
e transform shape
às opções de cada nó afetado ou use opções globais. Veja o exemplo abaixo
\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}