Inserir conteúdo no início de cada página para um intervalo de páginas definido pelo usuário

Inserir conteúdo no início de cada página para um intervalo de páginas definido pelo usuário

Quero inserir algum conteúdo (no meu caso, uma tabela) no início de cada página. Além disso, quero definir dois "marcadores" no documento, de modo que sejam impressos apenas no início de cada página entre os marcadores (em particular, quero poder omiti-los na primeira página).

Aqui está um pseudocódigo que pode funcionar:

\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}

Não que eu tenha incluído apenas os \newpagecomandos explícitos para criar um exemplo. Deve funcionar se eu inserir explicitamente uma nova página ou se ela for gerada automaticamente

Responder1

Você poderia usar ganchos:

\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}

informação relacionada