Этот вопрос, по-видимому, относится главным образом к использованию MathJax.
Путем некоторых экспериментов я обнаружил, что он понимает \smash
и что его использование обеспечивает надежное размещение меток.Но, возможно, есть некоторые настройки MathJax, которые не позволят использовать этот \smash
.Кроме того, \smash
прекрасно работает только для двух или трех "случаев".
Я перенес подход \smash
во вторую часть, где также объясняются и его недостатки.Действительно, с тех пор я нашел полудовольный подход CSS.
Во всяком случае, не используйте eqnarray
там.
Подход на основе CSS
Создайте файл_static/custom.css
в вашем исходном реперториуме с этим содержимым.
.MathJax_Display {
transform: translate(0%,-50%) translate(0%,8px);
}
div.math {
transform: translate(0%,50%);
}
Добавьте это в конце conf.py:
if html_theme != 'alabaster':
def setup(app):
app.add_stylesheet('custom.css')
Например, я получаю это с 'classic'
theme:
Это также работает с темами 'agogo'
и 'alabaster'
, но может потребоваться некоторая тонкая настройка для уравнений с позицией, состоящей только из одной строки, напримерthe label.
В случае RTD-темы она вообще не работает.
Поддержка может зависеть от браузера.
\smash
подход
Text before.
.. math::
:label: eq1
\smash{\begin{cases}
a_{11}x_{1} + \dots + a_{1m}x_{m} &= b_1\\
a_{21}x_{1} + \dots + a_{2m}x_{m} &= b_2
\end{cases}}
Text after.
Я получаю от make html
(с классической темой)
conf.py
содержит
extensions = ['sphinx.ext.mathjax',
]
html_theme = 'classic'
Кстати, ваша eqnarray
не очень хорошая наценка.Если вы используете его, вы должны использовать опцию :nowrap:
.См. Sphinx doc .
Примечание Конечно, использование cases
здесь сомнительно, потому что ваш пример - одно из уравнений.Я добавил &
, но интервал является подходящим для cases
, что, безусловно, не соответствует ожидаемому.Так что удалите их.
Вот разметка, которая не нарушает окружение cases
:
Text before.
.. math::
:label: eq1
\smash{\left\{\begin{aligned}
a_{11}x_{1} + \dots + a_{1m}x_{m} &= b_1\\
a_{21}x_{1} + \dots + a_{2m}x_{m} &= b_2
\end{aligned}\right.}
Text after.
CAVEAT Трюк с ударом работает только с двумя (возможно, с тремя)) уравнения, даже в MathJax.