Das Skalieren von Tikzpicture und anschließende Ändern des Maßstabs bringt alles durcheinander

Das Skalieren von Tikzpicture und anschließende Ändern des Maßstabs bringt alles durcheinander
\begin{tikzpicture}[scale=x]
\node[scale=y] (a,b)

Wenn man beispielsweise ein komplexes Bild einrichtet und alles von Hand positioniert (alle (a,b)s angibt) und dann x ändert, um es größer oder kleiner zu machen, bringt das alles durcheinander.

Ich nehme an, ich könnte ein Größenänderungsfeld verwenden, würde aber annehmen, dass Maßstab x der Gesamtmaßstab wäre und dass das Festlegen eines beliebigen Werts dazu führen würde, dass alle Maßstäbe darin auch skaliert würden … was aber nicht der Fall ist.

Aber vielleicht gibt es einen einfacheren Weg?

Antwort1

Es ist ziemlich schwierig, das Problem bei einer so knappen Frage zu verstehen, aber vielleicht sucht der OP nach transform shape? Schauen Sie:

\documentclass[]{article}
\usepackage{tikz}
\begin{document}
{\Huge X}
\begin{tikzpicture}[
    ]
    \node[draw] at (0,0) {A};
    \node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}

\bigskip

{\Huge X}
\begin{tikzpicture}[
    scale=0.5]
    \node[draw] at (0,0) {A};
    \node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}

\bigskip

{\Huge X}
\begin{tikzpicture}[
    scale=0.5, every node/.style={transform shape}]
    \node[draw] at (0,0) {A};
    \node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}
\end{document}

erzeugt (das große X dient als Referenz. Beachten Sie die Änderung der Grundlinie):

Bildbeschreibung hier eingeben

Antwort2

scaleist keine von unterstützte Option tikzpicture. Sie wird einfach global im Rahmen des Bildes festgelegt, sodass sie sich auf alles innerhalb des Bildes auswirkt, das eine Option dieser Art hat. Das kann alles oder nichts sein, aber normalerweise sind es einige Dinge und andere nicht.

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw [ultra thick, ->] (0,0) -- (1,1) node [right] {A};
  \begin{scope}[scale=2, xshift=10mm]
    \draw [ultra thick, ->] (0,0) -- (1,1) node [right] {A};
  \end{scope}
\end{tikzpicture}
\end{document}  

Skalierungseffekte

Im Allgemeinen ist dies das gewünschte Ergebnis: Schriftart, Linienstärke und Pfeilspitzen bleiben von der Skalierung unberührt, die Koordinaten jedoch nicht.

Der Grund, warum die Verwendung \resizeboxvon schlecht ist, liegt genau darin, dass sie alles im Feld beeinflusst: Linien, Schriftarten, alles. Das ist bei weitem nicht optimal, da es ein Dokument mit inkonsistenten Schriftarten und Linien bedeutet. Wenn Schriftarten mit verfügbaren optischen Größen verwendet werden, ist die Verzerrung noch größer, da Glyphenformen, die für eine größere oder kleinere Größe entworfen wurden, anstelle der für den Kontext geeigneten gerendert werden.

In Fällen, in denen eine Größenänderung unvermeidlich ist, tikzscaleist vorzuziehen \resizebox, da dabei die Linienbreiten und Schriftgrößen beibehalten werden und gleichzeitig die Skalierung des Rests umfassender und einheitlicher erfolgt als bei der Skalierung nur der Bildelemente, die zufällig unterstützen scale.

verwandte Informationen