Ответ 1
Расширение numfig делает именно это. Я попробовал, и это сработало для меня.
При написании 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, но оно не дает результат, который я хочу.
Расширение numfig делает именно это. Я попробовал, и это сработало для меня.
В последних версиях 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
).
Литература:
Чтобы расширить принятый ответ, вы можете быстро настроить его следующим образом. Поместите файл 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`).
Я думаю, что ссылки на фигуры еще не реализованы в reST, но здесь обходной путь http://article.gmane.org/gmane.text.docutils.user/5623, который приближает вас.
Можно использовать исходный латексный код, встроенный. В приведенном выше примере роль для исходного латексного кода сначала определяется и используется для обозначения фигуры с помощью команды \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
должно быть как минимум одно пространство.