Используйте Сфинкс, чтобы сделать библиографию в латексном документе - PullRequest
0 голосов
/ 16 декабря 2018

В настоящее время я использую Sphinx для создания латексного документа.У меня есть некоторые проблемы с библиографией.Мне бы хотелось, чтобы библиография отображалась в оглавлении без номера главы.

Когда я включаю библиографию в качестве отдельного раздела, например, с использованием следующего текстового файла с измененной структурой:

************
Bibliography
************

.. bibliography:: NullFeaturesInQGIS.bib
   :style: plain

В итоге я получаю пронумерованную главу под названием «Библиография», а затем две страницы настоящей «Библиографии».

Copy of the table of contents from the latex pdf file

Чего я хотел бы достичьзаголовок оглавления "Библиография" и указывает на библиографию без дополнительных пустых страниц.

1 Ответ

0 голосов
/ 29 декабря 2018

Ниже показаны два различных подхода, которые создают раздел библиографии в выводах html и latex из Sphinx.

1.Использование двух отдельных реструктурированных текстовых файлов «index»

Один подход, который создает раздел библиографии в обоих выходных файлах Sphinx html и latex , использует два index реструктурированные текстовые файлы.

Для вывода html файл index.rst должен иметь вид:

===============
Project Heading
===============

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   section_1
   section_2
   section_3
   bibliography

Для вывода latex , index_latex.rstФайл должен иметь вид:

===============
Project Heading
===============

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   section_1
   section_2
   section_3

Файл bibliography.rst должен иметь вид:

************
Bibliography
************

.. bibliography:: bibtex_filename.bib
   :style: plain

В файле конфигурации Sphinx (например, conf.py) необходимо различатьдва разных индексных файла.Например:

# The html index document.
master_doc = 'index'

# The latex index document
latex_doc = 'index_latex'

2.Использование одного файла index.rst и использование директивы .. raw::

То, что следует, было адаптировано из https://github.com/sphinx-doc/sphinx/issues/4775. Этот подход использует один и тот же файл index.rst для обоих html и латекс выходы.Файл index.rst должен быть таким же, как показано для вывода html выше, и должен включать ссылку на файл bibliography.rst.Файл bibliography.rst должен иметь директиву .. raw:: в начале:

.. raw:: latex

   \cleardoublepage
   \begingroup
   \renewcommand\chapter[1]{\endgroup}
   \phantomsection

************
Bibliography
************

.. bibliography:: bibtex_filename.bib
   :style: plain

NOTE

Использование директивы Sphinx .. only:: с однимФайл index.rst, как показано ниже НЕ РАБОТАЕТ .В частности, в документе latex будет отсутствовать содержимое.Возможно, это связано с проблемами с директивой .. only::.

===============
Project Heading
===============

.. only:: html

   .. toctree::
      :maxdepth: 2
      :caption: Contents:

      section_1
      section_2
      section_3
      bibliography

.. only:: latex

   .. toctree::
      :maxdepth: 2
      :caption: Contents:

      section_1
      section_2
      section_3
...