Ссылки на цифры с номерами в Sphinx и reStructuredText - PullRequest
29 голосов
/ 22 апреля 2010

При записи RST, который будет обработан с помощью Sphinx , я не могу получить вывод Sphinx LaTeX для использования номеров фигур при ссылках на цифры. Например, этот код:

The lemmings are attacking, as can be seen in :ref:`figlem`.

.. _figlem:

.. figure:: _static/lemming_invasion.* 

   They're coming!

Будет преобразовано в:

Лемминги атакуют, как это может быть видели в Они идут!

/ изображение идет сюда /

Рисунок 1.1: Они идут!

Но мне нужен «стандартный» LaTeX-способ ссылки на фигуры, например:

Лемминги атакуют, как это может быть видно на рисунке 1.1

Как мне этого добиться? В настоящее время я использую код, который рекомендует руководство Sphinx, но он не выдает желаемого результата.

Ответы [ 5 ]

22 голосов
/ 03 мая 2016

В последних версиях Sphinx (1.3+) нумерация цифр и ссылки на них из текста стали немного проще, поскольку поддержка теперь встроена.

В своем тексте вы можете сделать что-то вроде:

.. _label:
.. figure:: images/figure.*


At :numref:`label` you can see...

Конечный результат должен выглядеть примерно так: «На рисунке 1.1 вы можете видеть ...». Этот метод работает как с выводом HTML по умолчанию, так и с выводом LaTeX.

В вашем файле conf.py обязательно установите флаг numfig = True. Существуют также параметры конфигурации для текстового формата ссылок (numfig_format и numfig_secnum_depth).

Ссылки:

18 голосов
/ 23 августа 2012

Расширение numfig делает именно это. Я попробовал, и у меня это сработало.

6 голосов
/ 07 января 2015

Чтобы расширить принятый ответ, вы можете быстро настроить его следующим образом.Поместите файл numfig.py в каталог source.Затем откройте conf.py и раскомментируйте строку с надписью

sys.path.insert(0, os.path.abspath('.'))

Затем добавьте 'numfig' в список extensions.

Чтобы использовать в документе rst, сначала пометьтецифра (например, fig-main):

.. _fig-main:

.. figure:: main.png

   This is the figure caption.

Наконец, вы можете ссылаться на номер фигуры с помощью директивы :num:, например:

Refer to the main figure (Figure :num:`fig-main`).
0 голосов
/ 06 сентября 2013

Можно использовать сырой латексный код, встроенный. В приведенном выше примере сначала определяется роль для необработанного латексного кода, а затем используется для ссылки на рисунок с помощью команды \ref{} latex и для установки метки для рисунка с помощью команды \label{} latex.

Должно работать следующее:

.. role:: raw-latex(raw)
     :format: latex

The lemmings are attacking, as can be seen in :ref:`figlem`
on figure :raw-latex:`\ref{pic:lem}`.

.. _figlem:

.. figure:: _static/lemming_invasion.* 

   They're coming! :raw-latex:`\label{pic:lem}`

Обратите внимание, что команда \label{} появится внутри заголовка в текстовом файле, но она по-прежнему приемлема, по крайней мере, на pdflatex. Также обратите внимание, что перед :raw-latex.

должен быть хотя бы один пробел.
0 голосов
/ 22 апреля 2010

Я думаю, что ссылки на рисунки еще не реализованы в reST, но здесь есть обходной путь http://article.gmane.org/gmane.text.docutils.user/5623, который приближает вас.

...