如何更改 IPython Notebook 中显示的方程式的对齐方式?

How to change alignment of displayed equations in IPython Notebook?

我希望我的 MathJax 在 IPython Notebook 中显示的方程式左对齐而不是居中。这由 MathJax 中的核心配置选项 displayAlign 控制,如 here.

所述

我试图通过将此添加到我的 config.js 文件

在 IPython 笔记本中设置此选项
MathJax.Hub.Config({ 
    displayAlign: "left"
});

但是没有任何效果。

如何在 IPython Notebook 中设置 MathJax 核心配置选项?

[更新] 我找到了一种可行的方法:将上述配置行添加到 config.js 而不是 mathjaxutils.js 。在我的例子中 (Windows 8) 这个文件可以在这里找到:C:\Anaconda\Lib\site-packages\IPython\html\static\notebook\js\mathjaxutils‌​.js。这不是一个很好的解决方案,因为它涉及修改一个文件,该文件可能会在我下次更新时被覆盖 IPython.

[更新] @Ian 在评论中建议的技术确实有效,但一次只能使用一个笔记本。总而言之,我创建了一个文件my_css.css,其内容是

<script>
    MathJax.Hub.Config({
        displayAlign: 'left'
    });
</script>

在笔记本中,如果我运行这个单元格

from IPython.core.display import HTML
css_file = 'my_css.css'
HTML(open(css_file, "r").read())

显示的方程式会根据需要左对齐。

但是,我希望这是我所有笔记本的默认设置。我尝试将此添加到我的 custom.js

MathJax.Hub.Config({
    displayAlign: 'left'
});

并且为了好的措施将此添加到我的 custom.css

<script>
    MathJax.Hub.Config({
        displayAlign: 'left'
    });
</script>

但两者都没有任何作用。如果有办法在不修改核心 IPython 文件的情况下使此设置成为所有笔记本的默认设置,那就完美了。

您可以尝试包含一个 css 文件。例如,this set of notebooks pulls in this css file(请参阅笔记本中的最后一个单元格)确实明确设置了 displayAlign 标记,尽管它将其设置为 center.

使用 \begin{align}\end{align}。这并不能完全回答问题,但它具有预期的效果。例如尝试:

$
\begin{align}
\frac{1}{2} \times \frac{3}{2} = \frac{3}{4}
\end{align}
$

上面的渲染完全一样,

$$
\frac{1}{2} \times \frac{3}{2} = \frac{3}{4}
$$

除了它是左对齐的。

这种方法的额外优势是可以添加其他比对,如:

$
\begin{align}
\dot{x} & = \sigma(y-x) \
\dot{y} & = \rho x - y - xz \
\dot{z} & = -\beta z + xy
\end{align}
$

最后一个代码块来自 Jupyter Notebook 文档中的 Motivating Examples

可以在此处找到对齐方程的其他示例 Aligning several equations

在 Jupyter 实验室中,我发现使用单个 $ 左对齐,而双 $ 使方程居中

$
\begin{align}
c & = (0,\mu)+(a,b)\
& =(a, b+\mu)
\end{align}
$

左对齐而

$$
\begin{align}
c & = (0,\mu)+(a,b)\
& =(a, b+\mu)
\end{align}
$$

居中