Escalar tikzpicture y luego cambiar la escala desvía todo

Escalar tikzpicture y luego cambiar la escala desvía todo
\begin{tikzpicture}[scale=x]
\node[scale=y] (a,b)

al configurar una imagen compleja y colocar todo a mano (especificando todos los (a,b)) y luego cambiar x para hacerlo más grande o más pequeño arruina todo.

Supongo que podría usar un cuadro de cambio de tamaño, pero creo que la escala x sería la escala general y establecer su valor en cualquier cosa también escalaría todas las escalas dentro de ella... lo cual no es el caso.

¿Quizás haya una manera más fácil?

Respuesta1

Es bastante difícil entender el problema con una pregunta tan concisa, pero ¿tal vez el OP esté buscando transform shape? Mirar:

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

producirá (la X enorme es como referencia, y observe el cambio de línea de base):

ingrese la descripción de la imagen aquí

Respuesta2

scaleno es una opción admitida por tikzpicture. Simplemente se establece globalmente dentro del alcance de la imagen, de modo que afecta a cualquier cosa dentro de la imagen que tenga una opción de este tipo. Eso puede ser todo o puede ser nada, pero normalmente serán algunas cosas y no otras.

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

efectos de escala

En general, esto es lo que desea: las fuentes, los anchos de línea y las puntas de las flechas no se ven afectados por la escala, pero las coordenadas no.

La razón por la que usarlo \resizeboxes malo es precisamente porque afecta todo lo que hay en el cuadro: líneas, fuentes, todo. Esto no es óptimo por un margen porque significa un documento con fuentes y líneas inconsistentes. Cuando se utilizan fuentes con tamaños ópticos disponibles, la distorsión será aún mayor porque las formas de glifos diseñadas para un tamaño mayor o menor se representarán en lugar de aquellas apropiadas para el contexto.

En los casos en los que el cambio de tamaño es inevitable, tikzscalees preferible usar \resizebox, ya que mantendrá los anchos de línea y los tamaños de fuente, mientras realiza un trabajo más completo y consistente al escalar el resto que escalar solo aquellos elementos de la imagen que soportan scale.

información relacionada