ユーザーが定義したページ範囲の各ページの先頭にコンテンツを挿入します

ユーザーが定義したページ範囲の各ページの先頭にコンテンツを挿入します

各ページの先頭に何らかのコンテンツ (私の場合は表) を挿入したいと考えています。さらに、ドキュメントに 2 つの「マーカー」を設定して、マーカー間の各ページの先頭にのみ印刷されるようにしたいと考えています (特に、最初のページでは省略できるようにしたいと考えています)。

動作する可能性のある疑似コードを次に示します。

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

\newpage例を作成するための明示的なコマンドだけを記載したわけではありません。新しいページを明示的に挿入しても、自動的に生成されても動作するはずです。

答え1

フックを使うこともできます:

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

関連情報