%20unterschiedlicher%20Text%20%C3%BCber%20die%20ungeraden%2Fgeraden%20Seiten%20einer%20eingef%C3%BCgten%20PDF-Datei%20gelegt%20werden%3F.png)
Ich habe eine Reihe von PDF-Dateien, die ich zusammenführen möchte. So viel gelingt mir problemlos.
Außerdem muss ich in der oberen „äußeren“ Ecke jeder Seite einen kleinen Text hinzufügen, der im Wesentlichen das Originaldokument identifiziert, aus dem jede Seite stammt. Bisher ist es mir gelungen, den Text in die obere linke Ecke jeder Seite zu setzen – es gibt andere Fragen auf Stack Exchange, die sich damit befassen.
Keiner von ihnen befasst sich jedoch mit der Platzierung des Textes an einer anderen Stelle auf ungeraden und geraden Seiten - also in der oberen linken Ecke der geraden Seiten und in der oberen rechten Ecke der ungeraden Seiten. Wie kann dies erreicht werden?
\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}
Gibt es als zusätzliches Plus eine Möglichkeit, den Dateinamen des eingefügten Dokuments (automatisch) als eingefügten Text zu verwenden?
Antwort1
Dies verwendet das everypage
Paket, um die Aufgabe zu erfüllen. Die Syntax lautet
\atxy{this page X}{alternate page X}{Y}{content}
Beim Aufruf auf einer ungeraden Seite ist „diese Seite X“ die X-Position des Inhalts auf ungeraden Seiten, während „alternative Seite X“ die X-Position des Inhalts auf geraden Seiten ist. Beim Aufruf auf einer geraden Seite ist es umgekehrt.
Man aktualisiert den Inhalt mit dem Makro\updateText{}
Hier ist mein MWE. Es wurde BEARBEITET, damit der Prozess bei Bedarf nach Seite 1 aufgerufen werden kann (obwohl MWE anzeigt, dass er auf Seite 1 aufgerufen wird).
\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}
Antwort2
\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}
Antwort3
Hier ist ein weiterer Vorschlag zur Verwendung des Pakets, scrlayer
um einen speziellen Seitenstil für eingefügte PDFs zu definieren.
\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}
Das funktioniert auch, wenn Sie ein einseitiges Layout verwenden. Dann steht der Text auf jeder Seite automatisch am rechten (=äußeren) Rand.
\documentclass[a4paper,oneside]{book}