Unidades de "tamanho mínimo" ao desenhar um retângulo nomeado no TikZ

Unidades de "tamanho mínimo" ao desenhar um retângulo nomeado no TikZ

Ao desenhar um retângulo usando \nodee minimum width/height, o tamanho do retângulo resultante é diferente daquele desenhado com \draw … rectangle …. Preciso do \nodepara 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 mmfossem usadas, adicione scalee 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}

insira a descrição da imagem aqui

informação relacionada