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

gau*_*256 12 mathjax ipython-notebook

我希望我的MathJax在IPython Notebook中显示的方程在左边对齐而不是居中.这是通过一个核心配置选项控制displayAlign在MathJax如所描述的在这里.

我试图在IPython Notebook中设置此选项,方法是将其添加到我的config.js文件中

MathJax.Hub.Config({ 
    displayAlign: "left"
});
Run Code Online (Sandbox Code Playgroud)

但它没有任何影响.

如何在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>
Run Code Online (Sandbox Code Playgroud)

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

from IPython.core.display import HTML
css_file = 'my_css.css'
HTML(open(css_file, "r").read())
Run Code Online (Sandbox Code Playgroud)

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

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

MathJax.Hub.Config({
    displayAlign: 'left'
});
Run Code Online (Sandbox Code Playgroud)

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

<script>
    MathJax.Hub.Config({
        displayAlign: 'left'
    });
</script>
Run Code Online (Sandbox Code Playgroud)

但都没有任何影响.如果有一种方法可以在不修改核心IPython文件的情况下将此设置设置为所有笔记本的默认设置,那将是完美的.

Bru*_*der 15

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

$
\begin{align}
c & = (0,\mu)+(a,b)\\
& =(a, b+\mu)
\end{align}
$
Run Code Online (Sandbox Code Playgroud)

左对齐而

$$
\begin{align}
c & = (0,\mu)+(a,b)\\
& =(a, b+\mu)
\end{align}
$$
Run Code Online (Sandbox Code Playgroud)

居中


Dus*_*ell 10

使用\begin{align}\end{align}。这不能完全回答问题,但是可以达到预期的效果。例如,尝试:

$
\begin{align}
\frac{1}{2} \times \frac{3}{2} = \frac{3}{4}
\end{align}
$
Run Code Online (Sandbox Code Playgroud)

上面的渲染与

$$
\frac{1}{2} \times \frac{3}{2} = \frac{3}{4}
$$
Run Code Online (Sandbox Code Playgroud)

除了左对齐。

这种方法的另一个优点是可以添加其他对齐方式,如下所示:

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

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

对齐方程的其他示例可以在此处找到对齐多个方程

  • 这有很多意想不到的副作用,而且是一个有点危险的答案。“$”的目的是表示 LaTex 的解释,而“$$”则表示“LaTex Math Environment”的开始。除了对齐之外,两者之间还有很多差异。在接受这个答案之前可能值得阅读一下。 (2认同)