Подтвердить что ты не робот

Ссылка на цифры с номерами в Sphinx и reStructuredText

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

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

.. _figlem:

.. figure:: _static/lemming_invasion.* 

   They're coming!

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

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

/image здесь /

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

Но то, что я хочу, является "стандартным" способом LaTeX для ссылок на цифры, например:

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

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

4b9b3361

Ответ 1

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

Ответ 2

В последних версиях 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).

Литература:

Ответ 3

Чтобы расширить принятый ответ, вы можете быстро настроить его следующим образом. Поместите файл 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`).

Ответ 5

Можно использовать исходный латексный код, встроенный. В приведенном выше примере роль для исходного латексного кода сначала определяется и используется для обозначения фигуры с помощью команды \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{} появится внутри заголовка в файле tex, но она по-прежнему приемлема, по крайней мере, на pdflatex. Также обратите внимание, что перед :raw-latex должно быть как минимум одно пространство.