fgg blog

test rendering of equations of latex in Hugo

式子能正常渲染,但需要在两个地方的下标处添加额外转义字符 \, 也就是:\mathbb{E}\_{xxx}p\_{model},其他地方却不需要 \hat{p}_{data}

$$ \mathbb{E}_{x \sim \hat{p}_{data}} {\text{log}\ p_{model} {(x^i; \theta})} $$

是因为 \mathbb{} 导致的吗?看起来不是: $$ E_{x \sim \hat{p}_{data}} {\text{log}\ p_{model} {(x^i; \theta})} $$

是因为 \text{} 导致的吗?看起来不是 (\text{log} -> \log): $$ \mathbb{E}_{x \sim \hat{p}_{data}}{\log p_{model} {(x^i; \theta})} $$

如果 \mathbb{}_ 渲染不出来,那它渲染失败是怎么样的 (下式\mathbb{}_中的_不见了):

$$ \mathbb{E}{x \sim \hat{p}{data}}{\text{log}\ p_{model} {(x^i; \theta})} $$

为什么 p_{model} 也渲染不出来, 而非要添加转意字符 p\_{model} 呢?

$$ \mathbb{E}_{x \sim \hat{p}{data}}{\text{log}\ p{model} {(x^i; \theta})} $$

$$ E_{x \sim \hat{p}{data}}{\text{log}\ p{model} {(x^i; \theta})} $$

$$ \mathbb{E}{x \sim \hat{p}_{data}}{\text{log}\ p{model} {(x^i; \theta})} $$

或许是嵌套下标这儿出的问题 (\hat{p}_{data} -> \hat{p}\_{data} )?: $$ E_{x \sim \hat{p}_{data}}{\text{log}\ p_{model} {(x^i; \theta})} $$

Bingo?? No bingo:

只在嵌套下标的地方添加转义字符:

$$ \tag{5.59} \theta_{ML} = \underset{\theta}{\operatorname{argmax}} \mathbb{E}{x \sim \hat{p}_{data}}{\log p{model} {(x^i; \theta})} $$

只在p_{model}下标的地方添加转义字符:

$$ \tag{5.59} \theta_{ML} = \underset{\theta}{\operatorname{argmax}} \mathbb{E}{x \sim \hat{p}{data}}{\log p_{model} {(x^i; \theta})} $$

只在\mathbb{}下标的地方添加转义字符:

$$ \tag{5.59} \theta_{ML} = \underset{\theta}{\operatorname{argmax}} \mathbb{E}_{x \sim \hat{p}{data}}{\log p{model} {(x^i; \theta})} $$

简而言之,找不到明确的语法规则来解释这个问题。可能是hugo在使用mathjax解析时出了问题,也有可能是mathjax自己的问题。

Hugo的markdown文档里的数学公式块,如果不确定,就在下标那里前置一个`\`。
同样的问题也出现在多行公式组里进行转行时,使用 `\\\\\`,而不是通常的 `\\\`

惹出这么许多不明所以的问题, 最初就是下面这个公式 (就是我所认知的、通常表达下标的普通方式, 讽刺的是:不把它们放在 $$ 数学公式块里,我还必须添加转义字符,否则渲染不出这个效果😂):

\tag{5.59} \theta_{ML} = \underset{\theta}{\operatorname{argmax}} \mathbb{E}_{x \sim \hat{p}_{data}}{\log p_{model} {(x^i; \theta})}

数学公式块里表达下标的语法,无端端要添加一个前置转义字符,这就是我所没有料到的。想必应该是Hugo没有做好关于转义字符的上下文解析问题,且先将就着吧。