%20%EA%B2%B9%EC%B3%90%20%EB%84%A3%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
결합하려는 일련의 PDF 파일이 있습니다. 그 정도는 문제 없이 할 수 있어요.
또한 내가 해야 할 일은 각 페이지의 상단 '바깥쪽' 모서리에 소량의 텍스트를 추가하여 본질적으로 각 페이지의 원본 문서를 식별하는 것입니다. 나는 지금까지 각 페이지의 왼쪽 상단에 텍스트를 배치했습니다. Stack Exchange에는 이 문제를 해결하는 다른 질문이 있습니다.
그러나 그 중 어느 것도 홀수 페이지와 짝수 페이지에서 텍스트를 다른 위치(예: 짝수 페이지의 왼쪽 상단 모서리, 홀수 페이지의 오른쪽 상단 모서리)에 배치하는 작업을 처리하지 않습니다. 이것이 어떻게 달성될 수 있습니까?
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{pdfpages}
\usepackage{tikz}
\renewcommand{\contentsname}{My combined file}
\setlength\parindent{0pt}
\begin{document}
\includepdf[pages=-]{cover.pdf}
\includepdf[pages=2-4,pagecommand={\begin{tikzpicture}[remember picture, overlay]
\node[right] at (-2, 2.5) {\LARGE{doc1}};
\end{tikzpicture}}]{doc1.pdf}
% More files included here
\end{document}
추가 크레딧을 위해 포함된 문서의 파일 이름을 삽입된 텍스트로 (자동으로) 사용하는 방법이 있습니까?
답변1
이는 everypage
패키지를 사용하여 작업을 수행합니다. 구문은 다음과 같습니다
\atxy{this page X}{alternate page X}{Y}{content}
홀수 페이지에서 호출되는 경우 "이 페이지 X"는 홀수 페이지 콘텐츠의 x 위치이고, "대체 페이지 X"는 짝수 페이지 콘텐츠의 x 위치입니다. 짝수 페이지에서 호출되면 그 반대도 마찬가지입니다.
하나는 매크로로 콘텐츠를 업데이트합니다.\updateText{}
여기 내 MWE가 있습니다. 원하는 경우 페이지 1 이후에 프로세스가 호출될 수 있도록 편집되었습니다(MWE에서는 페이지 1에서 호출된 것으로 표시되지만).
\documentclass{article}
\usepackage{everypage}
\usepackage{lipsum}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\def\localX{0in}
\def\ThisX{0in}
\def\AltX{0in}
% SYNTAX \atxy{This page X}{Alt page X}{y}{content}
\newcommand\atxy[4]{%
\def\XYtext{#4}
\gdef\ThisX{#1}\gdef\AltX{#2}%
\AddEverypageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+\localX\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#3\relax}{\XYtext}}}}
\AddEverypageHook{\ifdim\localX=\ThisX\gdef\localX{\AltX}\else\gdef\localX{\ThisX}\fi}
\newcommand\updateText[1]{\gdef\XYtext{#1}}
\begin{document}
\atxy{7in}{0.2in}{0.5in}{\parbox[t]{1in}{\Huge This is my initial text}}
\lipsum[1-7]
\updateText{\parbox[t]{1in}{\Huge Follow Up text}}
\lipsum[8-35]
\end{document}
답변2
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{pdfpages}
\usepackage{ifoddpage}
\usepackage{background}
\newcommand{\mypdfinclude}[2][]{%
\backgroundsetup{%
placement=top,
angle=0,
nodeanchor=north east,
color=red,
scale=1,
contents={%
\checkoddpage\ifoddpage%
\begin{tikzpicture}[remember picture,overlay]
\node[text width=2in,anchor=north east,align=right,font=\Large] at
([shift={(-1cm,-1cm)}]current page.north east) {#2};
\end{tikzpicture}
\else
\begin{tikzpicture}[remember picture,overlay]
\node[text width=2in,anchor=north west,font=\Large] at ([shift={(1cm,-1cm)}]current
page.north west) {#2};
\end{tikzpicture}
\fi
}
}
\includepdf[#1]{#2}
}
\begin{document}
\mypdfinclude[pages=2-4]{pgfmanual.pdf}
\end{document}
답변3
scrlayer
포함된 PDF에 대한 특별한 페이지 스타일을 정의하기 위해 패키지를 사용하는 또 다른 제안은 다음과 같습니다 .
\documentclass[a4paper]{book}
\usepackage{pdfpages}
\usepackage{xcolor}
\usepackage{scrlayer}
\newcommand{\pdfpagestext}{}
\colorlet{pdfpagescolor}{purple}
% define new layers
\DeclareNewLayer[
foreground,
oddpage,
voffset=1cm,% distance from top
hoffset=1cm,% distance from left
width=\dimexpr\paperwidth-2cm\relax,% width of the layer
height=2cm,% height of the layer
contents={\parbox{\layerwidth}{\raggedleft\textcolor{pdfpagescolor}{\pdfpagestext}}}
]{pdfpages.odd}
\DeclareNewLayer[
clone=pdfpages.odd,
evenpage,
contents={\parbox{\layerwidth}{\raggedright\textcolor{pdfpagescolor}{\pdfpagestext}}}
]{pdfpages.even}
% define new pagestyle
\DeclareNewPageStyleByLayers{pdfpages}{pdfpages.odd,pdfpages.even}
\newcommand*\myincludepdf[2][]{%
\renewcommand\pdfpagestext{#2}%
\includepdf[pagecommand=\thispagestyle{pdfpages},#1]{#2}%
}
\begin{document}
\myincludepdf[pages=1-3]{dummy.pdf}
\end{document}
한쪽 레이아웃을 사용하는 경우에도 작동합니다. 그러면 텍스트가 자동으로 모든 페이지의 오른쪽(=외부) 여백에 표시됩니다.
\documentclass[a4paper,oneside]{book}