사용자 정의 페이지 범위의 모든 페이지 시작 부분에 콘텐츠 삽입

사용자 정의 페이지 범위의 모든 페이지 시작 부분에 콘텐츠 삽입

모든 페이지의 시작 부분에 일부 내용(제 경우에는 표)을 삽입하고 싶습니다. 또한 마커 사이의 모든 페이지 시작 부분에만 인쇄되도록 문서에 두 개의 "마커"를 설정하고 싶습니다(특히 첫 번째 페이지에서는 생략할 수 있기를 원합니다).

다음은 작동할 수 있는 의사코드입니다.

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

관련 정보