Как прокомментировал @ ilke444, вы можете добавить \tag{1}
в конец каждой строки. И если вам нужно обратиться к одной указанной c строке, вы можете добавить метку в строке.
.. math::
\begin{align}
100 + x &= y \label{a} \tag{1} \\
\frac{y}{x} &\ge 1.3 \label{b} \tag{2} \\
(100+x)-(100+x)z &= y \label{c} \tag{3}
\end{align}
вывод:
Таким образом, вы можете ссылаться на это следующим образом:
refer it inline :math:`\ref{a}`
refer it for single line:
.. :math:: \ref{a}
Примечание: метка должна быть уникальной, иначе вывод не будет отображаться.
update: обновление mathjax в sphinx теперь поддерживает автоматическую нумерацию как латекс.
открыть index.html
в каталоге _build
и изменить скрипт mathjax
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
изменить его на:
<script>
window.MathJax = {
tex: {
tags: "ams"
}
};
</script>
<script
type="text/javascript"
id="MathJax-script"
async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
></script>
Теперь все строки в align
блок будет иметь автоматическую нумерацию.
связанный do c: Automati c Нумерация уравнений
Почему поведение python-sphinx
такое?
исходный код для нумерации в sphinx
Python-Sphinx
обрабатывать каждый математический блок целиком и назначать нумерацию для всего математического блока. При генерации html он будет игнорировать нумерацию в математическом блоке и предоставит ее библиотеке математической визуализации (по умолчанию MathJax
).
Так что, действительно, проблема в том, что Mathjax не поддерживает строку автоматической нумерации в блоке выравнивания, так что вы можете обратиться к этому ответу
Как нумеровать и ссылаться на многострочные уравнения?
К настоящему времени единственный способ - добавить тег в каждую строку: (, без автоматов c way.
BTW
Если вам нужен только один ярлык для всего математического блока
Насколько я знаю, python-sphinx
предоставляет возможность генерировать номер для каждого математического блока (используя :label:
.. math::
\begin{align}
100 + x &= y \\
\frac{y}{x} &\ge 1.3 \\
(100+x)-(100+x)z &= y
\end{align}
:label: abc
output
Метка (2)
потому что порядковый номер генерируется из-за его позиции во всем документе.
И вы можете ссылаться на него по
refer to it by :eq:`abc`