Friday, June 19, 2015

LaTeX: как поместить все изображения в конец файла

При создании документа в LaTeX есть несколько способов поместить в конец файла все фигуры, обозначенные
\begin{figure}...\end{figure} .
Первый - вручную. Это довольно трудоемко.
Второй - использовать пакет endfloat. Об этом я сейчас расскажу.

Включаем пакет endfloat в преамбуле документа, например, так:
\usepackage[nomarkers,figuresonly]{endfloat}
При компиляции получаем множество ошибок при обработке кириллицы. Чтобы заработало, нужно учесть пару тонкостей:

1. С русским языком пакет по умолчанию не дружит. Чтобы это исправить, нужно отредактировать файл endfloat.sty:
заменить строку 
\expandafter\immediate\expandafter\write\csname efloat@post#1\endcsname
на 
\expandafter\immediate\expandafter\protected@write\csname efloat@post#1\endcsname{}
Автору пакета об этом сообщили лет 8 назад, но он так и не внес изменения.

2. В TeX-файле команда \end{figure} должна быть одна на строке, без пробелов до и после нее. Иначе пакет ее не поймет и утащит с собой весть текст до того места, где это уловие будет выполнено.

Подведем итоги:  
1. Ставим пакет endfloat и подключаем его в преамбуле документа.
2. Редактируем файл endfloat.sty.
3. Убеждаемся, что в TeX-файле команды \end{figure} всегда занимают строку целиком.
4. Компилируем... Профит! Фигуры (изображения) находятся в конце PDF файла.

No comments:

Post a Comment