Einfügen von Inhalten am Anfang jeder Seite für einen benutzerdefinierten Seitenbereich

Einfügen von Inhalten am Anfang jeder Seite für einen benutzerdefinierten Seitenbereich

Ich möchte am Anfang jeder Seite Inhalt (in meinem Fall eine Tabelle) einfügen. Außerdem möchte ich im Dokument zwei „Marker“ setzen, so dass der Inhalt nur am Anfang jeder Seite zwischen den Markern gedruckt wird (insbesondere möchte ich ihn auf der ersten Seite weglassen können).

Hier ist ein Pseudocode, wie es funktionieren könnte:

\documentclass{article}

\usepackage{tabularray}
\usepackage{geometry}

\usepackage{fancyhdr}

\fancyhf{} 
\fancyhead[R]{\small Header} 
\fancyfoot[C]{\small Header} 
\fancyhead[L]{\small Header}
\pagestyle{fancy}

\usepackage{lipsum}


%\AtBeginDocument{
\AtEveryPageFromMarkerAtoB{
\begin{center}
\begin{tblr}{hlines,vlines,width=\linewidth,colspec={XXX}}
A table & containing & some stuff \\
large enough & not to fit & into \\
a header & & \\
\end{tblr}
\end{center}
}

\begin{document}

%% On the first page the header should be ommitted, or more general it should start on the page with marker A
\lipsum

\markerA

\newpage
%% From here on, the table should be inserted automatically to the beginning of every page

\lipsum

\newpage

\lipsum

%% From now on the table should be ommited. 
\markerB

\lipsum

\newpage

\lipsum

\end{document}

Nicht, dass ich nur die expliziten \newpageBefehle eingefügt habe, um ein Beispiel zu erstellen. Es sollte funktionieren, egal ob ich explizit eine neue Seite einfüge oder ob sie automatisch generiert wird

Antwort1

Sie könnten Hooks verwenden:

\documentclass{article}

\usepackage{tabularray}
\usepackage{geometry}

\usepackage{fancyhdr}

\fancyhf{} 
\fancyhead[R]{\small Header} 
\fancyfoot[C]{\small Header} 
\fancyhead[L]{\small Header}
\pagestyle{fancy}

\usepackage{lipsum}




\begin{document}

%% On the first page the header should be ommitted, or more general it should start on the page with marker A
\lipsum

\AddToHook{shipout/before}[foo]{
\begin{center}
\begin{tblr}{hlines,vlines,width=\linewidth,colspec={XXX}}
A table & containing & some stuff \\
large enough & not to fit & into \\
a header & & \\
\end{tblr}
\end{center}
}

\newpage
%% From here on, the table should be inserted automatically to the beginning of every page

\lipsum

\newpage

\lipsum

\RemoveFromHook{shipout/before}[foo]

\lipsum

\newpage

\lipsum

\end{document}

verwandte Informationen