
Beim Versuch zu antworteneine Frage, ich habe ein merkwürdiges Verhalten von TikZ-cd mit festgestellt remember picture
.
Wenn ich den folgenden Code mehrmals kompiliere, vergrößert sich der Abstand zwischen der ersten und der zweiten TikZ-CD:
\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}
Erster Lauf:
Zweiter Lauf:
Dritter Lauf:
Vierter Lauf:
Fünfter Lauf:
Sechster Lauf:
Siebter Lauf:
und so weiter :D
Was ist das Problem?
Antwort1
Ich habe den (einfachen) Grund gefunden: overlay
fehlte.
Aus dem TikZ-Handbuch:
/tikz/overlay=<boolean>
(Standard: true) Diese Option ist hauptsächlich für den Einsatz bei der Referenzierung von Knoten in anderen Bildern gedacht, Sie können sie aber auch in anderen Situationen verwenden. Diese Option bewirkt, dass alles innerhalb des aktuellen Bereichs bei der Berechnung des Begrenzungsrahmens des aktuellen Bildes nicht berücksichtigt wird. Sie müssen diese Option für alle Pfade (oder zumindest für alle Teile von Pfaden) angeben, die eine Referenz auf einen Knoten in einem anderen Bild enthalten. Der Grund dafür ist, dassAndernfalls wird TikZ versuchen, das aktuelle Bild zu vergrößern genug, um den Knoten im anderen Bild zu umfassen. Auf einem Beim zweiten Durchlauf von TeX entsteht ein noch größeres Bild, das zu immer größere Bilder.Sofern Sie nicht wissen, was Sie tun, empfehle ich, die Überlagerungsoption bei allen Bildern anzugeben, die Verweise auf andere Bilder enthalten.
Das funktioniert:
\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}
Beachten Sie außerdem:
- wie muzimuzhi Z in seinem Kommentar sagte, ist in diesem Fall
\tikzcdset{diagrams={remember picture}}
besser als\tikzset{every picture/.append style={remember picture}}
, weil es Optionen nur antikzcd
das Diagramm anhängt, dahertikzcd
tikzpicture
sind Nicht- s nicht betroffen - wie Qrrbrbirlbel in seinem Kommentar sagte,
tikzcd
benötigt nur der zweite (wo der vertikale Pfeil ist) dieoverlay
Option.