Imposición de PDF (pdfpages)

El paquete pdfpages (de Andreas Matthias) inserta páginas de un PDF *existente* directamente en el documento que estás componiendo. Puedes anteponer una portada o un formulario firmado, unir varios PDF en una sola tesis, o colocar diapositivas en 2×2 para un folleto, todo sin los desbordes de margen que aparecen con un \includegraphics sin más. Todo gira en torno a un único comando: \includepdf[⟨options⟩]{file.pdf}.

Uso básico

Carga \usepackage{pdfpages} en el preámbulo y luego llama a \includepdf en el cuerpo. El ejemplo mínimo aparece abajo: inserta todas las páginas de cover.pdf, escaladas para llenar la hoja sin margen alrededor. El nombre de archivo del argumento no debe contener espacios.

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

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

\end{document}

Internamente, \includepdf llama a \includegraphics del paquete graphicx, así que cualquier opción que pdfpages no interprete por sí mismo (trim, clip, scale y similares; véase más abajo) se pasa directamente a \includegraphics. De forma predeterminada, cada página se escala automáticamente para ajustarse a la hoja.

El manual oficial (v0.6g) enumera como motores compatibles pdfTeX, VTeX, XeTeX, LuaTeX y pTeX, así que funciona con pdfLaTeX, LuaLaTeX, XeLaTeX y (up)pLaTeX. Aun así, presupone un motor que escribe PDF directamente: en una ruta que produce DVI no se puede importar el PDF, y pdfpages inserta páginas en blanco en su lugar. Por eso, la configuración pLaTeX + dvipdfmx habitual en trabajos japoneses necesita tener conectado correctamente el controlador dvipdfmx (siguiente sección).

Elegir qué páginas insertar (pages)

La opción más importante es pages. Recibe una lista separada por comas con las páginas que se van a insertar y su orden. El valor predeterminado es pages=1 (solo la primera página), así que debes indicarla siempre que quieras más que eso.

EscribesEfectoPáginas insertadas
pages=-Todas las páginas, en ordenTodas las páginas del PDF insertado
pages={1,3,5}Solo las páginas listadasPáginas 1, 3 y 5
pages={2-8}Un intervaloPáginas 2 a 8
pages={3,{},15}Una página en blanco con {}Página 3, una página en blanco y luego página 15
pages=last-1Orden inversoDe la última página a la primera (last = página final)
pages={1-3,5,{},7}CombinarUn intervalo, páginas sueltas y una página en blanco

Un intervalo se escribe ⟨m⟩-⟨n⟩. Si omites m, significa la primera página; si omites n, la última. Por eso pages=- se lee como “de la primera a la última”, es decir, todas. La página final también puede nombrarse con la palabra clave last (solo dentro de un intervalo). Una página en blanco es simplemente un {} vacío, útil para colocar una hoja blanca entre la portada y el cuerpo.

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

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

Las opciones principales

Todas las opciones usan la forma ⟨key⟩=⟨value⟩, separadas por comas dentro de los corchetes de \includepdf. En las opciones booleanas (como frame), omitir el valor significa “verdadero”. Las más habituales son:

OpciónQué hace (predeterminado)Uso típico
nupPoner varias páginas en una hoja (n-up). nup=2x2 = 2 a lo ancho × 2 hacia abajo. Predeterminado 1x1Folletos, impresión reducida
frameDibujar un marco alrededor de cada página (predeterminado false)Mostrar el borde de cada página
deltaSeparación entre páginas colocadas. delta=⟨x⟩ ⟨y⟩ (predeterminado 0 0)Espacio entre páginas n-up
landscapeGirar la hoja 90° a horizontal (predeterminado false)PDF anchos, cuadernillos
scaleFactor de escala; se pasa a graphicx (usar con noautoscale)Definir el tamaño manualmente
fitpaperHacer que el papel de salida coincida con el tamaño del PDF insertado (predeterminado false)Conservar el tamaño de página original
offsetDesplazar la posición de la página. offset=⟨x⟩ ⟨y⟩ (predeterminado 0 0)Ajustar para encuadernación
pagecommandCódigo ejecutado en cada página insertada (predeterminado \thispagestyle{empty})Añadir números de página / encabezados
link / linknameConvertir las páginas insertadas en destino de hipervínculo / cambiar su nombre (predeterminado false)Hacer que las páginas sean clicables

nup (imposición n-up) coloca varias páginas lógicas en una sola hoja. La sintaxis es nup=⟨across⟩x⟨down⟩. De forma predeterminada, las páginas se rellenan por filas; añade column para un orden por columnas y columnstrict para mantenerlo estrictamente incluso en la última hoja. Combínalo con delta para dejar separación entre páginas y con frame para enmarcarlas. Ten en cuenta que landscape gira solo la hoja (para girar las páginas en sí, usa angle=90).

pagecommand indica el código LaTeX que se ejecuta en cada página insertada. El valor predeterminado es pagecommand={\thispagestyle{empty}} (sin números de página ni similares). Si lo cambias a pagecommand={\thispagestyle{plain}}, los números de página del documento también aparecen en el PDF importado. También es el punto de entrada para superponer encabezados, pies de página o una marca de agua.

También puedes usar trim y clip de \includegraphics (cualquier opción que pdfpages no reconozca se reenvía allí). Es útil para recortar el encabezado y el pie de las páginas que importas. Por ejemplo: \includepdf[pages=-, trim=0 2cm 0 2cm, clip]{paper.pdf}.

Ejemplos prácticos

Crear un folleto — colocar un PDF de diapositivas a cuatro páginas por hoja (2×2), enmarcar cada página y dejar separación entre ellas.

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

Unir varios PDF — para ensamblar archivos separados en un único documento, usa \includepdfmerge. Su argumento es una lista “filename, page-spec, filename, page-spec, …”. La page-spec usa la misma sintaxis que pages; si se omite, solo se inserta la primera página de ese archivo.

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 acepta las mismas opciones que \includepdf (usando la page-spec anterior en lugar de pages). Para no repetir las mismas opciones, define valores predeterminados una vez con \includepdfset{⟨options⟩}; las opciones escritas en un \includepdf individual tienen prioridad.

Imponer un cuadernillo — un cuadernillo grapado al lomo necesita que las páginas se reordenen según la secuencia de plegado. pdfpages tiene una opción signature: dale un múltiplo de 4 y reorganiza las páginas en pliegos (signatures), colocándolas automáticamente con nup=2x1. Un pages=-, nup=1x2, landscape rápido pondrá dos páginas lado a lado, pero *no* las reordena para el plegado. Para una imposición completa de cuadernillos también puedes usar el paquete booklet.

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

Notas sobre japonés y controladores

La compatibilidad con la familia pTeX (pLaTeX / upLaTeX) llegó en pdfpages v0.5a. Estos motores escriben DVI y lo convierten en PDF mediante dvipdfmx, así que importar el PDF es tarea de dvipdfmx. Mientras el controlador gráfico esté bien elegido, \includepdf funciona tal cual. Si las páginas salen en blanco, revisa la configuración del controlador (pasar dvipdfmx como opción de clase/global, o declarar explícitamente \usepackage[dvipdfmx]{graphicx}).

Hay un comportamiento que conviene recordar: solo se copia el contenido (la apariencia) de cada página; los enlaces y anotaciones del PDF original se pierden. Para conservar enlaces necesitas una ayuda como el paquete pax. Además, si defines un fondo de página con \pagecolor, el primer \pagecolor debe ir antes de \usepackage{pdfpages}.