使用 MathJax 我需要 \ensuremath 的解决方案

Using MathJax I need a solution for \ensuremath

我在几个项目中使用 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 渲染的结果是这样的(抱歉是荷兰文 ;-):

align-environment 本质上是一个 math 上下文,所以如果你想要 text,你需要用 \text{...} 将文本括起来。但是当你再次需要数学符号 within 时,你可以通过用 \ensuremath{...}.

括起数学来逃避 text 上下文

MathJax 将其呈现为:

Mathjax 居中一切并不重要,这是我可以用 CSS 处理的事情。但是\ensuremath的渲染是有问题的。显然 MathJax doesn't support \ensuremath,但我想不出一个可行的解决方法,我可以在 text-context.

中使用数学符号

理想情况下,我希望有一个使用替代 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 默认左对齐。