Включая полные документы LaTeX в других - PullRequest
17 голосов
/ 28 апреля 2009

В настоящее время я заканчиваю свою диссертацию и хотел бы иметь возможность включить некоторые документы в мой документ LaTeX.

Файлы, которые я хотел бы включить, представляют собой еженедельные отчеты, сделанные в LaTeX моему руководителю. Очевидно, что все документы пронумерованы по отдельности. Я бы хотел, чтобы они были включены в итоговый документ.

Я мог бы объединить все окончательные PDF-файлы, используя GhostScript или какой-либо другой инструмент, но я хотел бы иметь последовательную нумерацию по всему документу.

Я пытался включить LaTeX из каждого документа в основной документ, но преамбула и т. Д. Вызывает проблемы, и маленький заголовок, который я имею в каждом отчете, занимает целую страницу ...

Таким образом, я ищу способ включения нескольких самодостаточных файлов LaTeX на 1 или 2 страницы в большой отчет, сохраняя их исходные макеты, но изменяя нумерацию страниц.

Ответы [ 4 ]

9 голосов
/ 29 апреля 2009

Для возможного решения \input -линга оригинальных файлов LaTeX при пропуске их преамбулы может помочь пакет newclude .

В противном случае вы можете использовать pdfpages для вставки уже существующих PDF-файлов в диссертацию. Кажется, я вспоминаю, что он имеет функцию «подавления» оригинальных номеров страниц, покрывая их белыми прямоугольниками.

8 голосов
/ 01 февраля 2011

Предложение от @Will Robertson прекрасно работает. Я просто хотел бы добавить пример для всех ленивых людей:

\usepackage{pdfpages}

...

% Insert _all_ pages from some_pdf.pdf:
\includepdf[pages=-]{some_pdf}   % the .pdf extension may be omitted

Из документации пакета:

  • Чтобы включить определенный диапазон страниц, вы можете сделать pages={4-9}. Если start не указан, по умолчанию используется первая страница, если end не указан, по умолчанию используется последняя страница.
  • Чтобы включить его в ландшафтном режиме, выполните landscape=true
5 голосов
/ 27 мая 2010

Взгляните на пакет Объединить , который, кажется, именно то, что вы ищете. Поскольку он объединяет документы на уровне источника, я думаю, что номера страниц будут правильными.

4 голосов
/ 28 апреля 2009

Сохранение исходного форматирования для каждого документа будет затруднено, если они используют разные форматы. Например, объединение различных классов документов будет практически невозможно.

Я бы посоветовал вам воспользоваться решением GhostScript с легким поворотом. Латекс позволяет вам установить номер начальной страницы, используя, например, \ setcounter {page} {13}. Если вы можете найти приложение, которое может сосчитать страницы документа PDF (например, pdfinfo в пакете Ubuntu pdfjam), вы можете сделать следующее:

  • Скомпилируйте следующий документ в PDF
  • Объединить последний PDF с текущим полным PDF
  • Найти количество страниц полного PDF
  • Используйте sed, чтобы вставить команду \ setcounter {page} {N} в следующий латексный файл
  • Вернуться к началу

Если вам нужно выполнить какую-либо другую обработку, снова используйте sed. Вы должны (при условии, что вы исправили бесконечный цикл в вышеприведенном алгоритме ;-)) в конечном итоге получить окончательный PDF-документ со всеми объединенными PDF-файлами и номерами непрерывных линий.

...