
Ao tentar responderuma pergunta, encontrei um comportamento estranho do TikZ-cd com remember picture
.
Se eu compilar o código a seguir mais vezes, a distância entre o primeiro e o segundo TikZ-cd aumenta:
\documentclass{article}
\usepackage{amsmath, tikz-cd}
\tikzset{every picture/.append style={remember picture}}
\begin{document}
\[
\begin{tikzcd}
A \ar[r] & |[alias=B]|B \ar[r] & C
\end{tikzcd}
\]
\[
\begin{tikzcd}
D\ar[r] & E \ar[from=B] \ar[r] & F
\end{tikzcd}
\]
\end{document}
Primeira corrida:
Segunda corrida:
Terceira corrida:
Quarta corrida:
Quinta corrida:
Sexta corrida:
Sétima corrida:
e assim por diante :D
Qual é o problema?
Responder1
Encontrei o motivo (simples): overlay
estava faltando.
Do manual TikZ:
/tikz/overlay=<boolean>
(padrão verdadeiro) Esta opção destina-se principalmente ao uso quando nós em outras imagens são referenciados, mas você também pode usá-la em outras situações. O efeito desta opção é que tudo dentro do escopo atual não é levado em consideração quando a caixa delimitadora da imagem atual é calculada. Você precisa especificar esta opção em todos os caminhos (ou pelo menos em todas as partes dos caminhos) que contenham uma referência a um nó em outra imagem. A razão é que,caso contrário, o TikZ tentará aumentar a imagem atual o suficiente para abranger o nó na outra imagem. Contudo, em um segunda execução do TeX, isso criará uma imagem ainda maior, levando a fotos cada vez maiores.A menos que você saiba o que está fazendo, sugiro especificar a opção de sobreposição com todas as imagens que contenham referências a outras imagens.
Isso funciona:
\documentclass{scrartcl}
\usepackage{amsmath, tikz-cd}
\tikzcdset{diagrams={remember picture}}
\begin{document}
\[
\begin{tikzcd}[ampersand replacement=\&]
A \rar \& |[alias=B]|B \ar[r] \& C
\end{tikzcd}
\]\vspace{1ex}
\[
\begin{tikzcd}[overlay, ampersand replacement=\&]
D\ar[r] \& E \ar[from=B] \rar \& F
\end{tikzcd}
\]
\end{document}
Observe também que:
- como muzimuzhi Z disse em seu comentário, neste caso,
\tikzcdset{diagrams={remember picture}}
é melhor que\tikzset{every picture/.append style={remember picture}}
, porque anexa opções apenas aotikzcd
diagrama, portanto, os nãotikzcd
tikzpicture
-s não são afetados - como Qrrbrbirlbel disse em seu comentário, apenas o segundo
tikzcd
(onde está a seta vertical) precisa daoverlay
opção.