Dimensionar o tikzpicture e depois alterar a escala confunde tudo

Dimensionar o tikzpicture e depois alterar a escala confunde tudo
\begin{tikzpicture}[scale=x]
\node[scale=y] (a,b)

ao configurar uma imagem complexa e posicionar tudo manualmente (especificando todos os (a,b)'s), em seguida, alterar x para torná-lo maior ou menor estraga tudo.

Suponho que poderia usar uma caixa de redimensionamento, mas acho que a escala x seria a escala geral e definir seu valor para qualquer coisa também dimensionaria todas as escalas dentro dela... o que não é o caso.

Talvez haja uma maneira mais fácil?

Responder1

É muito difícil entender o problema com uma pergunta tão concisa, mas talvez o OP esteja procurando transform shape? Olhar:

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

produzirá (o enorme X é para referência e observe a mudança da linha de base):

insira a descrição da imagem aqui

Responder2

scalenão é uma opção suportada por tikzpicture. Ele é apenas definido globalmente dentro do escopo da imagem, de modo que afeta tudo o que dentro da imagem tem uma opção desse tipo. Isso pode ser tudo ou nada, mas geralmente serão algumas coisas e outras não.

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

efeitos de escala

Em geral, é isso que você deseja: fontes, larguras de linhas e pontas de setas não são afetadas pela escala, mas as coordenadas não.

A razão pela qual o uso \resizeboxé ruim é justamente porque afeta tudo na caixa: linhas, fontes, tudo. Isso é abaixo do ideal por uma margem porque significa um documento com fontes e linhas inconsistentes. Quando forem usadas fontes com tamanhos ópticos disponíveis, a distorção será ainda maior porque as formas de glifo projetadas para um tamanho maior ou menor serão renderizadas no lugar daquelas apropriadas ao contexto.

Nos casos em que o redimensionamento é inevitável, tikzscaleé preferível \resizebox, pois manterá as larguras das linhas e os tamanhos das fontes, ao mesmo tempo que faz um trabalho mais abrangente e consistente de dimensionar o restante do que dimensionar apenas os elementos da imagem que suportam scale.

informação relacionada