gpt4 book ai didi

python-sphinx - 如何在python-sphinx中创建方程末尾的数字?

转载 作者:行者123 更新时间:2023-12-01 13:10:16 24 4
gpt4 key购买 nike

使用以下代码,我们可以创建每个最后包含数字的方程。

\documentclass[12pt]{article}
\usepackage{mathtools}
\begin{document}
\begin{align}
100 + x &= y \\
\frac{y}{x} &\ge 1.3 \\
(100+x)-(100+x)z &= y
\end{align}
\end{document}

enter image description here

现在用 python-sphinx 编写它们。
.. math::

\begin{align}
100 + x &= y \\
\frac{y}{x} &\ge 1.3 \\
(100+x)-(100+x)z &= y
\end{align}

make html编译后,我们得到下图:
enter image description here

您可以看到每行末尾没有数字。
如何在python-sphinx中每行末尾创建带有数字的相同方程?

最佳答案

正如@ilke444 所评论的,您可以添加 \tag{1}到每一行的结尾。如果您需要引用某一特定行,您可以在行中添加标签。

 .. 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}

输出:

enter image description here

所以你可以这样引用它:
refer it inline :math:`\ref{a}`

refer it for single line:

.. :math:: \ref{a}

注意:标签必须是唯一的,否则将不会呈现输出。

更新:升级 sphinx 中的 mathjax 现在支持将自动编号行作为 latex 。

打开 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块将自动编号。

相关文档: Automatic Equation Numbering

为什么 python-sphinx这样的行为?

source code for numbering in sphinx
Python-Sphinx整体处理每个数学块并为整个数学块分配编号。生成 html 时,它将忽略数学块内的编号,并将其留给数学渲染库(默认为 MathJax)。

所以确实,问题是为什么 Mathjax 不支持 align 块中的自动编号行,所以你可以引用这个答案

How to number and reference multiline equations?

到目前为止,唯一的方法是在每一行中添加标签 :(,没有自动方式。

顺便提一句

如果您只想要整个数学块的一个标签

据我所知, 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

输出

enter image description here

标签 (2)因为序列号是由于它在整个文档中的位置而生成的。

你可以引用它
refer to it by :eq:`abc`

关于python-sphinx - 如何在python-sphinx中创建方程末尾的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60564806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com