В связи с подготовкой отчета о НИР возникла у меня необходимость переставить страницы в готовом документе. Речь шла о рисунках, выполненных на отдельных страницах, и тексте отчета. Настройка параметров вставки рисунков (например, \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}
Параметры страницы (опция a4paper
и пакет geometry
) и стиль ее нумерации (задается fancyhdr
) значения не имеют (выбраны как в отчете о НИР).
1. Отключаем нумерацию страниц в исходном документе. Для этого добавляем в преамбулу строчку
\pagenumbering{gobble}
2. Создаем новый документ (допустим, second.tex
), в котором
2а) Зададим параметры страницы и стиль ее нумерации (стиль колонтитулов) такими же, как в исходном документе.
2б) Включим в документ страницы исходного документа, заданные в нужном порядке (для определенности — поменяем местами первую и вторую страницы):
\includepdf[pages={2,1}, pagecommand={}]{first.pdf}
В преамбуле second.tex
нужно подключить пакет pdfpages
. Опция pagecommand
разрешает нумеровать страницы вставляемых PDF-файлов (иначе будет отображаться first.pdf
без изменений, то есть без номеров).
3. Транслируем и получаем в результате
%% 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