如何在GitHub中创建多线方程块?

问题描述 投票:0回答:1

GitHub 支持在 README 中插入类似 LaTeX 的代码。我想添加一些跨越多行的方程:

Like in this image

到目前为止我已经尝试过:

1.

$$eqtn1 \\ eqtn2 \\ eqtn3$$

  1. $$eqtn1 \\ eqtn2 \\ eqtn3$$
    
    
  2. $$\begin{matrix}eqtn1 \\ eqtn2 \\ eqtn3 \end{matrix}$$
    
    
  3. $$\begin{gather*}eqtn1 \\ eqtn2 \\ eqtn3 \end{gather*}$$
    
    
最后:

$$eqtn1, $$ $$eqtn2, $$ $$eqtn3$$
但是,前三个块不会渲染,并且在最后三个块中,除非我在它们之间添加文本,否则所有三个块都会合并为一行。有人知道如何在方程块中获得多行吗?

我希望渲染我的代码

eqtn1 eqtn2 eqtn3
使用 1 则不渲染任何内容。看来 mathjax 不喜欢换行符。 2 不渲染,我认为 mathjax 不喜欢 

\\

。 3 和 4 也不渲染任何东西。我认为是因为 Mathjax 不支持 Gather 和 Matrix 关键字。通过最后一个代码块,方程被渲染:

eqtn1, eqtn2, eqtn3


感谢任何和所有指导!

github mathjax github-flavored-markdown
1个回答
0
投票
GitHub 上的 MathJax 实现非常不稳定。由于 Markdown 表示法和 LaTeX 表示法不能很好地交互(例如,它们都使用

\

_
 作为特殊字符,但含义却截然不同),GitHub 试图保护 LaTeX 中的特殊字符,但其算法检测它们严重损坏。特别是,GitHub 仅在 
\\
 位于行尾时正确保护它,因此您不能像示例 2、3 和 4 那样在行中间使用它。

为了克服这个问题,他们为内联数学添加了新的分隔符

$`

`$

``` math (your math here) ```
用于显示数学,这将避免大多数 Markdown/LaTeX 交互。所以你应该尽可能使用它们。特别是,您可以通过这种方式在线条中间使用 

\\

。所以

``` math \begin{matrix}eqtn1 \\ eqtn2 \\ eqtn3 \end{matrix} ```

``` math \begin{gather*}eqtn1 \\ eqtn2 \\ eqtn3 \end{gather*} ```
两者都可以。也会这样

``` math \displaylines{eqtn1 \\ eqtn2 \\ eqtn3} ```
您的第一个和第二个示例将不起作用,因为 GitHub 使用 MathJax v3,它不支持 

\\

 换行(仅适用于数组行终止符和 
\displaylines
 内)。

顺便说一句,我提到

\\

 仅当它出现在行尾时才得到适当的保护,所以你可以这样做

$$ \begin{matrix} eqtn1 \\ eqtn2 \\ eqtn3 \end{matrix} $$
它会起作用,但你仍然会面临与 Markdown 和 LaTeX 的其他潜在交互。最好使用 

``` math

 来完全避免它们。

© www.soinside.com 2019 - 2024. All rights reserved.