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

时间:2015-02-05 20:11:07

标签: ipython-notebook mathjax

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

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

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文件的情况下将此设置设置为所有笔记本的默认设置,那将是完美的。

3 个答案:

答案 0 :(得分:6)

使用\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

找到对齐方程的其他示例

答案 1 :(得分:1)

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

答案 2 :(得分:1)

在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}
$$

居中