Das Verschieben von TikZ-Koordinaten verhält sich auf einer neuen Maschine anders

Das Verschieben von TikZ-Koordinaten verhält sich auf einer neuen Maschine anders

Ich habe angefangen, einen neuen Computer zu verwenden, und einer meiner vorherigen TikZ-Codes hat unerwartete Ergebnisse geliefert. Nach dem Debuggen kam ich zum folgenden MWE.

\documentclass{article}
\usepackage{tikz}

\begin{document}
\thispagestyle{empty}
    \begin{tikzpicture}[remember picture,overlay]
        \coordinate  (CENTER) at (current page.center);
        \coordinate  (A) at ([xshift=1cm,yshift=-2cm] CENTER); %This coordinate is not shifted on PGF 3.1.5 running on texlive on windows; but it is shifted on PGFs 3.1 running on MacTex.
        \coordinate [xshift=1cm,yshift=-2cm] (B) at (CENTER); %This is shifted in both computers.

        \node at (CENTER) {XXX};
        \node at (A) {000};
        \node at (B) {111};
    \end{tikzpicture}
\end{document}

Seltsamerweise wird die Verschiebung nicht auf die Koordinate (A) angewendet, sodass sie über (CENTER) bleibt, wenn ich diesen Code auf der neuen Maschine kompiliere (brandneues Vanilla Texlive unter Windows mit aktualisierter PGF-Version 3.1.5). Auf meinem vorherigen Computer (mit MacTex 2019 und PGF-Version 3.1 unter MACOS) wird die Koordinate (A) jedoch verschoben, sodass sie über (B) erscheint.

Dieses Verhalten tritt bei Koordinaten auf, nicht jedoch bei Knoten. Im folgenden Code erscheinen die Knoten (A) und (B) wie erwartet an derselben Position.

\begin{tikzpicture}[remember picture,overlay]
    \node  (CENTER) at (current page.center) {XXX};
    \node  (A) at ([xshift=1cm,yshift=-2cm] CENTER) {000};
    \node [xshift=1cm,yshift=-2cm] (B) at (CENTER) {111};
\end{tikzpicture}%

Weiß jemand, warum das passiert? Soll ich es irgendwo als Fehler melden (wie)? Ich mache mir Sorgen, dass ich alle meine alten Codes aktualisieren muss, um die Dateien auf der neuen Maschine zu kompilieren.

Antwort1

Dieses Problem wird bereits nicht ganz so direkt angesprochen in#809Da es sich um ein ernstes Problem handelt,Hotfix 3.1.5aist bereits veröffentlicht und Sie können es in ein paar Tagen von CTAN erhalten.

In der Zwischenzeit,Henri Menkebietet einen Workaround:

\makeatletter
\def\tikz@@coordinate@at@math#1{%
  \pgf@process{#1}%
  \edef\tikz@temp{(\the\pgf@x,\the\pgf@y)}%
  \expandafter\tikz@coordinate@caller\tikz@temp{}%
}%
\makeatother

Funktionierendes Beispiel in 3.1.5:

\documentclass{article}
\usepackage{tikz}
\makeatletter
\def\tikz@@coordinate@at@math#1{%
  \pgf@process{#1}%
  \edef\tikz@temp{(\the\pgf@x,\the\pgf@y)}%
  \expandafter\tikz@coordinate@caller\tikz@temp{}%
}%
\makeatother
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
  \coordinate (CENTER) at (current page.center);
  \coordinate (A) at ([xshift=1cm,yshift=-2cm] CENTER);
  \coordinate [xshift=1cm,yshift=-2cm] (B) at (CENTER); 
  \node at (CENTER) {XXX};
  \node at (A) {000};
  \node at (B) {111};
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen