我正在使用 MathJax在几个项目中,它通常很有魅力。
然而,今天,我在使用以下对齐环境翻译现有 LaTeX 文档的一部分时遇到了问题:
\begin{align}
& (\lambda x.(\lambda y.(\lambda z.xyz)))abc \\
= & \text{\{ impliciete toepassing expliciet maken \}} \\
& (((\lambda x.(\lambda y.(\lambda z.xyz)))a)b)c \\
= & \text{\{ \ensuremath{\beta}-reductie, substitutie van \ensuremath{x}door \ensuremath{a}\}} \\
& ((\lambda y.(\lambda z.ayz))b)c \\
= & \{\text{\ensuremath{\beta}-reductie, \ensuremath{y\,:=b}}\} \\
& (\lambda z.abz)c \\
= & \text{\{ \ensuremath{\beta}-reductie, \ensuremath{z\,:=c}} \\
& abc \\ \boxed{} \end{align}
用 LaTeX 渲染的结果是这样的(抱歉荷兰语文本;-):
对齐环境本质上是一个数学
上下文,因此如果您想要文本,则需要用\text{...}将该文本括起来
。但是,当您在该文本中再次需要数学符号时,可以通过用 \ensuremath{...}
括住数学来转义 text
上下文。
MathJax 将其呈现为:
Mathjax 集中一切并不重要,这是我可以用 CSS 处理的事情。但是\ensuremath
的渲染是有问题的。显然 MathJax doesn't support \ensuremath
,但我想不出可以在 text
上下文中使用数学符号的可行解决方法。
理想情况下,我希望有一个使用替代 LaTeX 结构的解决方案(因此交叉列表)
有什么想法吗?
最佳答案
您应该使用 $...$
或 \(...\)
代替 \ensuremath{...}
。即使在 LaTeX 本身中,这对我来说似乎也更自然(因为 \ensuremath
确实是为在文本和数学模式中使用的宏而设计的)。
所以你可以这样做
\begin{align}
& (\lambda x.(\lambda y.(\lambda z.xyz)))abc \\
= & \{\text{ impliciete toepassing expliciet maken }\} \\
& (((\lambda x.(\lambda y.(\lambda z.xyz)))a)b)c \\
= & \{\text{ $\beta$-reductie, substitutie van $x$door $a$ }\} \\
& ((\lambda y.(\lambda z.ayz))b)c \\
= & \{\text{ $\beta$-reductie, $y:=b$ }\} \\
& (\lambda z.abz)c \\
= & \{\text{ $\beta$-reductie, $z:=c$ }\} \\
& abc \\ \boxed{} \end{align}
我还将 \{
和 \}
放在 \text{}
外部,但如果您愿意,也可以将它们放在内部。
居中可能是由于页面上的 CSS 造成的,因为 MathJax 默认情况下将它们左对齐。
关于latex - 使用 MathJax 我需要一个解决方案\ensuremath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682021/