Einheiten der „Mindestgröße“ beim Zeichnen eines benannten Rechtecks ​​in TikZ

Einheiten der „Mindestgröße“ beim Zeichnen eines benannten Rechtecks ​​in TikZ

Wenn ich ein Rechteck mit \nodeund zeichne minimum width/height, ist die Größe des resultierenden Rechtecks ​​anders als die eines mit gezeichneten Rechtecks \draw … rectangle …. Ich brauche das , \nodedamit ich es mit Namen referenzieren kann.

Ich verstehe, dass ich das beheben kann, indem ich die Einheiten zu allen Größen hinzufüge (10 mm, 15 mm), aber ich versuche zu verstehen, warum es ohne nicht funktioniert. Ich bin davon ausgegangen, dass die Standardeinheiten <dimension>Punkte sind.

\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}

Antwort1

Dies hängt mit Transformationen in zusammen tikz(siehePFG-HandbuchSeite 373). In einem Absatz heißt es ausdrücklich:

Das Wichtigste an der Koordinatentransformation [...] ist, dass sie nur für Koordinaten gilt!

Knotendimensionen werden von Transformationen nicht beeinflusst und die Standardeinheit ist pt. Wenn Sie möchten, dass Dimensionen so funktionieren, als ob mmverwendet würden, fügen Sie scaleund transform shapezu den Optionen jedes betroffenen Knotens hinzu oder verwenden Sie globale Optionen. Siehe das Beispiel unten

\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}

Bildbeschreibung hier eingeben

verwandte Informationen