MathJax 渲染行内公式时,后跟弯引号(U+2019)会失败,但后跟直引号(U+0027)则可以正常工作

我在 Discourse 中使用内联 MathJax 时遇到了渲染问题,当数学表达式后面紧跟着一个花括号撇号(U+2019)时,该表达式在某些浏览器或编辑器中通常会被智能引号替换。


:white_check_mark: 此处渲染正确:

$\\mathbb{R}^2$'s basis

这里使用的是直角 ASCII 撇号(U+0027)。

\\mathbb{R}^2's basis


:cross_mark: 此处渲染失败:

$\\mathbb{R}^2$’s basis

$\mathbb{R}^2$’s basis

这里使用的是花括号右单引号(U+2019),有时会被移动键盘、富文本编辑器或从格式化来源复制粘贴自动插入。


预期行为:

两个版本都应该能正确渲染数学公式。紧跟在内联数学块后面的字符不应该影响 MathJax 的解析。

为什么这很重要:

  • 除非你比较 Unicode,否则很难检测到这个问题。
  • 在大多数字体中,花括号撇号在视觉上与直角撇号无法区分。
  • 像这样的细微格式差异不应该默默地破坏渲染。
  • 不一致的行为会削弱数学密集帖子的创作体验。

我不会期望 TeX 将普通引号和弯引号视为相同。这似乎是预期行为,尽管很烦人。

这似乎是问题的根源,但那可能只是因为我老了。 :wink:

1 个赞

哦,所以 MathJax 引擎能看到 \...\\$ 或 \begin{matrix}\\\$ \\\\\\vdots\\\\\\$\\$ \\end{matrix} 之外的内容吗?

\\mathbb{R}^2 的基

\\mathbb{R}^2 的基

\\mathbb{R}^2 的基

1 个赞