Absolute Positionierung in TikZ3

Absolute Positionierung in TikZ3

Ich übermittle auch die Lösung. Bitte sparen Sie bei dieser Frage Zeit und Energie.

Mein Problem ist folgendes. Die absolute Positionierung funktionierte in einigen Fällen nach dem Upgrade von TikZ2 auf TikZ3 nicht mehr. Dies ist der Code, bei dem ich ein Quadrat oben auf der Seite erwartet hatte (Bild links), aber etwas anderes erhalten habe (Bild rechts). Wie können wir das in TikZ3 beheben?

%! pdflatex or xelatex or lualatex
%! bug0002-problem.tex
%! running it twice
\documentclass[a4paper]{article}
\pagestyle{empty}
\addtolength{\hoffset}{-1in}
\addtolength{\voffset}{-1in}
\usepackage{tikz} % version 3
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\node[minimum width=4cm, minimum height=4cm, draw, fill=orange, anchor=north] at (current page.north) {Hello World!};
\end{tikzpicture}
\end{document}

Beispiel 1

Antwort1

Ich denke, ich muss nicht ausdrücklich zum Ausdruck bringen, wie glücklich ich war, als ich all die neuen Funktionen in TikZ3 sah, und wie unglücklich ich war, als die (für mich) wichtigste Funktion von Zeit zu Zeit nicht mehr richtig funktionierte.

Meine erste Lösung ist aus dem Code selbst ersichtlich: Kommentieren Sie \addtolength{\hoffset}{-1in}und aus \addtolength{\voffset}{-1in}. Es war nicht so einfach, dies in einem echten Projekt aufzuspüren, und es war mir nicht möglich, eine solche Lösung zu verwenden, als der Seitenspiegel vor langer Zeit eingerichtet wurde. Dies ist der Code.

%! pdflatex or xelatex or lualatex
%! bug0002-solution-a.tex
%! running it twice
% This solution works in xelatex!
\documentclass[a4paper]{article}
\pagestyle{empty}
%\addtolength{\hoffset}{-1in}
%\addtolength{\voffset}{-1in}
\usepackage{tikz} % version 3
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\node[minimum width=4cm, minimum height=4cm, draw, fill=orange, anchor=north] at (current page.north) {Hello World!};
\end{tikzpicture}
\end{document}

Ich brauchte eine andere Lösung und habe eine gefunden: Lassen Sie uns die Dimensionen \hoffsetund \voffsetauf ihre Anfangswerte zurücksetzen, aber nur in allen tikzpictureUmgebungen, da TikZ3 sie eindeutig für Berechnungen verwendet. Bitte versuchen Sie dieses Beispiel, in dem ich \tikzsetden Stil von verwendet und geändert habe every picture:

%! pdflatex or xelatex or lualatex
%! bug0002-solution-b.tex
%! running it twice
% This solution does not work in xelatex!
\documentclass[a4paper]{article}
\pagestyle{empty}
\addtolength{\hoffset}{-1in}
\addtolength{\voffset}{-1in}
\usepackage{tikz} % version 3
\begin{document}
\tikzset{every picture/.style={execute at begin picture={
   \hoffset=0pt
   \voffset=0pt
   }}} 
\begin{tikzpicture}[remember picture, overlay]
\node[minimum width=4cm, minimum height=4cm, draw, fill=orange, anchor=north] at (current page.north) {Hello World!};
\end{tikzpicture}
\end{document}

Ich glaube, da ist noch mehr im Gange, denn diese Lösung funktioniert in nicht , in und xelatexjedoch schon . Wir können die erwartete (Bild links) und die tatsächliche Ausgabe von (Bild rechts) problemlos vergleichen. Meine Antwort öffnet leider eine Unterfrage. Wie kann das in TikZ3 behoben werden?pdflatexlualatexxelatex

Beispiel 2

verwandte Informationen