Как не разрывать страницу после \ включить в LaTeX - PullRequest
103 голосов
/ 31 июля 2009

Мой LaTeX заставляет меня разрывать страницы после каждого подраздела, потому что мои подразделы находятся в отдельных файлах. Я использую команду \include{file}, которая добавляет разрыв страницы после ее использования.

Хотелось бы, чтобы разрыв страницы не был вызван использованием \include{file}.

Как можно без разрыва страницы после использования include -команды?

Ответы [ 4 ]

146 голосов
/ 31 июля 2009

\include всегда использует \clearpage, что не совсем разумно по умолчанию. Он предназначен для целых глав, а не для подразделов (в любом случае, зачем вам подразделы в отдельных файлах?).

Вы можете исправить это, используя \input{filename} или загрузив пакет newclude и написав \include*{filename}.

27 голосов
/ 09 апреля 2012

Вы можете остановить разрывы страниц, вызванные \include, поместив \let\clearpage\relax перед ним. Таким образом,

\let\clearpage\relax
\include{file1}
\include{file2}
\include{file3}

поместит содержимое трех файлов (и любые последующие включенные файлы) вместе без разрыва страницы между ними. Если вы хотите прекратить расслаблять команду \clearpage, оберните файлы, которые нужно включить, без разрывов страниц в такой группе:

\begingroup
\let\clearpage\relax
\include{file1}
\include{file2}
\endgroup
\include{file3}

Это остановит разрыв страницы между file1 и file2, но вставит нормальный разрыв страницы после file2. (Примечание: я не знаю, мешает ли это ссылкам и нумерации страниц, хотя я думаю, что все должно быть в порядке.)

4 голосов
/ 24 февраля 2016

Пакет newclude, предложенный Уиллом Робертсоном, довольно полезен, чтобы избежать открытой страницы. Похоже, что для работы \includeonly необходимо вызвать пакет сразу после \documentclass{...}. В сложной обстановке моей диссертации я также столкнулся с проблемами с неработающими ссылками.

Хороший обходной путь, когда includeonly не нужен для окончательной версии, должен использовать include только в черновике:

\newif\ifdraft\drafttrue

или

\newif\ifdraft\draftfalse

\ifdraft
  \include{...}
\fi

\ifdraft
  \include{file}
\else
  \input{file}
\fi

Первая строка может быть легко добавлена ​​с помощью make-файла, чтобы сделать черновой или рабочий вариант производственной цели.

\includeonly{file1,file2,...} позволяет указать список исходных файлов с именем \include{file1} (где file1 - пример), который будет отображаться в результирующем документе. Другие не будут отображаться, но учитываются для счетчиков, меток, оглавлений, когда включены соответствующие вспомогательные файлы.

Другими словами, используя include и includeonly, можно сократить время компиляции в черновике, имея правильные ссылки. Дальнейшее чтение по Wikibooks .

@ Уилл Робертсон

\include настолько полезен, потому что позволяет через \includeonly{...} строить только необходимые разделы. Работая над более длинным текстом, во время компиляции может иметь значение различие, включающее только часть длинной главы. Это также неоценимо полезно, поскольку не нужно пролистывать длинный черновик, работая в одной точке. Наконец, меньшие файлы исходного кода легче обрабатывать в управлении версиями, например мерзавец.

1 голос
/ 31 июля 2009

Спасибо, Кембридж !

используйте \ include вместо \ input и используйте команду \ includeonly для выбора разделов для обработки

...