PDFs ausschießen (pdfpages)

Das Paket pdfpages (von Andreas Matthias) fügt Seiten aus einer *vorhandenen* PDF-Datei direkt in das Dokument ein, das du gerade setzt. Eine Titelseite oder ein unterschriebenes Formular voranstellen, mehrere PDFs zu einer Abschlussarbeit verbinden, Folien 2×2 als Handout anordnen — all das ohne die Randprobleme eines bloßen \includegraphics. Im Mittelpunkt steht ein einziger Befehl: \includepdf[⟨options⟩]{file.pdf}.

Grundlegende Verwendung

Lade \usepackage{pdfpages} in der Präambel und rufe dann \includepdf im Dokumentkörper auf. Das kleinste Beispiel steht unten; es fügt alle Seiten von cover.pdf ein, jeweils so skaliert, dass sie das Blatt ohne umgebenden Rand füllen. Der Dateiname im Argument darf keine Leerzeichen enthalten.

document.tex
\documentclass{article}
\usepackage{pdfpages}
\begin{document}

% 本文…
\includepdf[pages=-]{cover.pdf}
% …続きの本文

\end{document}

Intern ruft \includepdf \includegraphics aus dem Paket graphicx auf. Alle Optionen, die pdfpages nicht selbst auswertet (trim, clip, scale und Ähnliches, siehe unten), werden daher direkt an \includegraphics weitergereicht. Standardmäßig wird jede Seite automatisch skaliert, damit sie auf das Blatt passt.

Das offizielle Handbuch (v0.6g) nennt als unterstützte Engines pdfTeX, VTeX, XeTeX, LuaTeX und pTeX; damit funktioniert es mit pdfLaTeX, LuaLaTeX, XeLaTeX und (up)pLaTeX. Es setzt allerdings eine Engine voraus, die PDF direkt ausgibt: Auf einem DVI-Ausgabeweg kann das PDF nicht importiert werden, und pdfpages fügt stattdessen leere Seiten ein. Die im Japanischen verbreitete Kombination pLaTeX + dvipdfmx braucht daher eine korrekt eingerichtete dvipdfmx-Treiberwahl (nächster Abschnitt).

Auswählen, welche Seiten eingefügt werden (pages)

Die wichtigste Option ist pages. Sie erhält eine kommagetrennte Liste der einzufügenden Seiten und ihrer Reihenfolge. Der Standard ist pages=1 (nur die erste Seite), daher musst du sie setzen, sobald du mehr einfügen möchtest.

SchreibweiseWirkungEingefügte Seiten
pages=-Alle Seiten der Reihe nachAlle Seiten der eingefügten PDF
pages={1,3,5}Nur die aufgelisteten SeitenSeiten 1, 3 und 5
pages={2-8}Ein BereichSeiten 2 bis 8
pages={3,{},15}Eine Leerseite mit {}Seite 3, eine Leerseite, dann Seite 15
pages=last-1Umgekehrte ReihenfolgeVon der letzten Seite bis zur ersten (last = letzte Seite)
pages={1-3,5,{},7}KombinierenBereich, Einzelseiten und Leerseite gemischt

Ein Bereich wird als ⟨m⟩-⟨n⟩ geschrieben. Lässt du m weg, ist die erste Seite gemeint; lässt du n weg, die letzte. pages=- bedeutet also „von der ersten bis zur letzten Seite“, also alle Seiten. Die letzte Seite kann auch mit dem Schlüsselwort last bezeichnet werden (nur innerhalb eines Bereichs). Eine Leerseite ist einfach ein leeres {} — praktisch, wenn zwischen Titelblatt und Hauptteil ein weißes Blatt liegen soll.

latex
% 表紙の次に白ページ、そのあと本文 1–20 ページ
\includepdf[pages={1,{},2-21}]{thesis-cover.pdf}

% 全ページを逆順で
\includepdf[pages=last-1]{scan.pdf}

Die wichtigsten Optionen

Alle Optionen haben die Form ⟨key⟩=⟨value⟩ und werden in den eckigen Klammern von \includepdf durch Kommas getrennt aufgelistet. Bei booleschen Optionen (etwa frame) bedeutet ein weggelassener Wert „wahr“. Die wichtigsten sind:

OptionWirkung (Standard)Wofür verwenden
nupMehrere Seiten auf einem Blatt platzieren (n-up). nup=2x2 = 2 nebeneinander × 2 untereinander. Standard 1x1Handouts, verkleinertes Drucken
frameEinen Rahmen um jede Seite zeichnen (Standard false)Seitenkanten sichtbar machen
deltaAbstand zwischen gekachelten Seiten. delta=⟨x⟩ ⟨y⟩ (Standard 0 0)Abstand zwischen n-up-Seiten
landscapeDas Blatt um 90° ins Querformat drehen (Standard false)Breite PDFs, Broschüren
scaleSkalierungsfaktor; wird an graphicx weitergereicht (mit noautoscale verwenden)Größe selbst festlegen
fitpaperAusgabepapier an die Größe der eingefügten PDF anpassen (Standard false)Ursprüngliches Seitenformat beibehalten
offsetSeitenposition verschieben. offset=⟨x⟩ ⟨y⟩ (Standard 0 0)Bindekorrektur
pagecommandCode, der auf jeder eingefügten Seite ausgeführt wird (Standard \thispagestyle{empty})Seitenzahlen / Kopfzeilen hinzufügen
link / linknameEingefügte Seiten zu Hyperlink-Zielen machen / den Namen ändern (Standard false)Seiten anklickbar machen

nup (n-up-Imposition) kachelt mehrere logische Seiten auf ein Blatt. Die Syntax lautet nup=⟨across⟩x⟨down⟩. Standardmäßig werden Seiten zeilenweise gefüllt; mit column erfolgt die Reihenfolge spaltenweise, und columnstrict hält diese Ordnung sogar auf dem letzten Blatt strikt ein. Verwende dazu delta für Abstände zwischen den Seiten und frame für Rahmen. Beachte: landscape dreht nur das Blatt (um die Seiten selbst zu drehen, verwende angle=90).

pagecommand benennt LaTeX-Code, der auf jeder eingefügten Seite ausgeführt wird. Der Standard ist pagecommand={\thispagestyle{empty}} (keine Seitenzahlen o. Ä.). Stellst du auf pagecommand={\thispagestyle{plain}} um, erscheinen die Seitenzahlen deines Dokuments auch auf der importierten PDF. Es ist außerdem der Einstiegspunkt für überlagerte Kopfzeilen, Fußzeilen oder Wasserzeichen.

Du kannst auch trim und clip aus \includegraphics verwenden (jede Option, die pdfpages nicht kennt, wird dorthin weitergereicht) — praktisch, um Kopf- und Fußbereiche der importierten Seiten abzuschneiden. Beispiel: \includepdf[pages=-, trim=0 2cm 0 2cm, clip]{paper.pdf}.

Ausgearbeitete Beispiele

Ein Handout erstellen — ein Folien-PDF vierfach (2×2) pro Blatt anordnen, jede Seite rahmen und Abstand dazwischen lassen.

latex
\includepdf[pages=-, nup=2x2, frame, delta=5mm 5mm]{slides.pdf}

Mehrere PDFs verbinden — Um getrennte Dateien zu einem Dokument zusammenzusetzen, verwendest du \includepdfmerge. Das Argument ist eine Liste aus „filename, page-spec, filename, page-spec, …“. Die page-spec nutzt dieselbe Syntax wie pages; lässt du sie weg, wird nur die erste Seite dieser Datei eingefügt.

latex
% a.pdf の 1–2 ページと b.pdf の 3 ページ目をこの順に
\includepdfmerge{a.pdf, 1-2, b.pdf, 3}

% 学位論文を別々の章 PDF から組み立てる
\includepdfmerge{frontmatter.pdf, -, chap1.pdf, -, chap2.pdf, -}

\includepdfmerge akzeptiert dieselben Optionen wie \includepdf (verwendet aber die obige page-spec anstelle von pages). Wenn du dieselben Optionen nicht jedes Mal wiederholen willst, setze sie einmal mit \includepdfset{⟨options⟩} als Standard; Optionen an einem einzelnen \includepdf haben Vorrang.

Ein Booklet ausschießen — Eine rückstichgeheftete Broschüre braucht Seiten in Falzreihenfolge. pdfpages hat dafür die Option signature: Übergib ein Vielfaches von 4, und die Seiten werden zu Signaturen umsortiert und automatisch mit nup=2x1 platziert. Ein schnelles pages=-, nup=1x2, landscape setzt zwei Seiten nebeneinander, sortiert sie aber *nicht* für die Faltung um. Für vollständige Booklet-Imposition kannst du auch das Paket booklet verwenden.

latex
% 縦長の文書を 8 ページ折丁の冊子に
\includepdf[pages=-, signature=8, landscape]{booklet-doc.pdf}

Hinweise zu Japanisch und Treibern

Unterstützung für die pTeX-Familie (pLaTeX / upLaTeX) gibt es seit pdfpages v0.5a. Diese Engines schreiben DVI und wandeln es mit dvipdfmx in PDF um; das Importieren der PDF ist also Aufgabe von dvipdfmx. Solange der Grafiktreiber korrekt gewählt ist, funktioniert \includepdf unverändert. Wenn leere Seiten entstehen, überprüfe die Treibereinstellung (etwa dvipdfmx als Klassen-/globale Option übergeben oder \usepackage[dvipdfmx]{graphicx} ausdrücklich angeben).

Ein Verhalten solltest du dir merken: Kopiert wird nur der Inhalt (das Erscheinungsbild) jeder Seite; Links und Anmerkungen im Quell-PDF gehen verloren. Um Links zu erhalten, brauchst du ein Hilfspaket wie pax. Wenn du außerdem mit \pagecolor einen Seitenhintergrund setzt, muss das erste \pagecolor vor \usepackage{pdfpages} stehen.