Документы Sphinx: удалить пустые страницы из сгенерированных PDF-файлов?

По умолчанию документация Sphinx выводит PDF-файл, отформатированный для двусторонней печати. Таким образом, между титульной страницей и оглавлением, оглавлением и введением, введением и первым разделом и т. Д. Есть пустая страница.

Мои пользователи всегда будут просматривать PDF-файл в Интернете. Итак, я хотел бы удалить эти пустые страницы.

Похоже, в Sphinx это неприятная проблема. См. эту цепочку писем.

Этот пользователь предлагает два решения, но ни одно из них не работает для меня. Любопытно, что первое решение:

latex_elements = {
     'classoptions': ',oneside',
}

дает мне ! Package babel Error: You haven't specified a language option.

Второй вариант:

latex_font_size = '10pt,oneside'

выполняется, но создает PDF-файл, содержащий только нечетные страницы моего документа. Увы.

Кто-нибудь знает, как создать PDF без этих пустых страниц?


person AP257    schedule 24.03.2011    source источник
comment
Поскольку ваши пользователи собираются читать это исключительно в Интернете, не было бы более удобным иметь вывод Sphinx, скажем, в формате HTML, и избавить их от мучений при просмотре PDF-файлов в Интернете?   -  person Brent.Longborough    schedule 28.02.2012
comment
@ Brent.Longborough, это просто нереально. HTML не был создан для макета страницы, но сегодня почти все пытаются использовать его для ... макета страницы, даже в Интернете. С так себе результатами. Я предпочитаю красивый PDF-файл, даже онлайн, большому количеству HTML. Особенно то, что выходит из Sphinx, если вы не настраиваете его с помощью собственного CSS. Я считаю HTML (в основном) работающим приемом. Поищите как-нибудь Display Postscript, если вы не знакомы с ним, представьте себе сеть с этим, это было бы потрясающе.   -  person Prof. Falken    schedule 08.02.2013
comment
latex_font_size у меня тоже не сработало   -  person Csaba Toth    schedule 26.11.2019


Ответы (1)


Поместите это в свой source/conf.py файл конфигурации в разделе «Параметры вывода LaTeX»:

latex_elements = {
  'extraclassoptions': 'openany,oneside'
}
person Noah Heldman    schedule 21.04.2011
comment
Еще лучше с параметром openany, он удаляет даже пустую страницу после оглавления. Пример: latex_elements = { 'classoptions': ',openany,oneside', 'babel' : '\\usepackage[polish]{babel}' } - person flegmatyk; 22.05.2011
comment
Отличный, отличный отзыв! Я все еще не готов перейти на полировку ...;) - person Noah Heldman; 27.05.2011
comment
@davidjb У меня нет пустых страниц в конце с openany. Я пошел дальше и добавил его к ответу, потому что он такой классный. - person Daniel Darabos; 24.08.2016
comment
latex_elements уже определен в кратком руководстве Sphinx conf.py, поэтому для всех, кто использует этот пример, обязательно объедините или удалите старое определение, чтобы избежать автоматически сгенерированного кода, маскирующего новый код. - person Bryce Guinta; 05.02.2017
comment
элемент 'babel' в ответе @flegmatyk не требуется в текущих версиях Sphinx. - person nsg; 17.05.2017
comment
'extraclassoptions' для этого лучше, чем 'classoptions': последний предназначен для внутреннего использования Sphinx. См. sphinx-doc.org/en/stable/config.html # confval-latex_elements (по какой-то причине 'extraclassoptions' был задокументирован только в 1.6, но был доступен с 1.2) - person ; 20.05.2017