Date Редакция Категория comp Теги LaTeX / pdf

В связи с подготовкой отчета о НИР возникла у меня необходимость переставить страницы в готовом документе. Речь шла о рисунках, выполненных на отдельных страницах, и тексте отчета. Настройка параметров вставки рисунков (например, \floatpagefraction) в качестве решения не подходит, так как ведет к переработке всего документа, а нужно было действовать «точечно», переставив местами только избранные страницы. Вот как эта задача была решена.

  • Дано: исходный файл (например, first.tex).
  • Требуется: переставить заданные страницы местами и заново перенумеровать их.

0. Создаем исходный документ

%% first.tex
\documentclass[a4paper,14pt]{extreport}
% page geometry
\usepackage[left=2.5cm, right=1.5cm, top=2.5cm, bottom=2.5cm]{geometry}
% page numbers
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\thepage}
\setlength{\headheight}{17pt}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{
 \fancyhf{}
 \rhead{\thepage}}

\begin{document}
First page.
\newpage
Second page.
\end{document}

first.png

Параметры страницы (опция a4paper и пакет geometry) и стиль ее нумерации (задается fancyhdr) значения не имеют (выбраны как в отчете о НИР).

1. Отключаем нумерацию страниц в исходном документе. Для этого добавляем в преамбулу строчку

\pagenumbering{gobble}

first1.png

2. Создаем новый документ (допустим, second.tex), в котором

2а) Зададим параметры страницы и стиль ее нумерации (стиль колонтитулов) такими же, как в исходном документе.

2б) Включим в документ страницы исходного документа, заданные в нужном порядке (для определенности — поменяем местами первую и вторую страницы):

\includepdf[pages={2,1}, pagecommand={}]{first.pdf}

В преамбуле second.tex нужно подключить пакет pdfpages. Опция pagecommand разрешает нумеровать страницы вставляемых PDF-файлов (иначе будет отображаться first.pdf без изменений, то есть без номеров).

3. Транслируем и получаем в результате

second.png

%% second.tex
\documentclass[a4paper,14pt]{extreport}
% page geometry
\usepackage[left=2.5cm, right=1.5cm, top=2.5cm, bottom=2.5cm]{geometry}
% page numbers
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\thepage}
\setlength{\headheight}{17pt}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{
 \fancyhf{}
 \rhead{\thepage}}
% include pdf
\usepackage{pdfpages}

\begin{document}
  \includepdf[pages={2,1}, pagecommand={}]{first.pdf}
\end{document}

Существенно, что копировать в новый документ нужно только параметры страницы и стиль нумерации, а не все настройки оформления документа. Например, в second.tex можно не подключать русский язык, если, конечно, кириллица не используется при нумерации страниц.



Комментарии

comments powered by Disqus