问题
Discourse-math 在浏览器中渲染效果极佳,但在无法运行 JavaScript 的环境中,数学公式会回退为原始 LaTeX 源代码。两个影响重大的场景:
- 打印视图(
/print或浏览器打印为 PDF): 数学公式显示为$...$而不是渲染后的符号。 - 电子邮件(摘要、通知、订阅): 数学公式以原始形式发送,收件人除非复制粘贴到 LaTeX 编辑器中,否则无法阅读。
这破坏了依赖 Discourse 处理技术内容的社区的重要工作流程。
重要性
- STEM(科学、技术、工程、数学)领域的教育者和研究人员经常需要打印主题或转发电子邮件。如果数学公式无法辨认,这些导出将无法使用。
- 打印/电子邮件中的其他缺失功能(隐藏内容、oneboxes、图片)已得到修复——数学公式是一个明显的遗漏。
- 在非 JS 环境中支持已渲染的数学公式将使 Discourse 成为技术社区的一流平台。
解决方案建议
- 轻量级步骤(打印):
- 确保
/print视图包含已渲染的数学公式 HTML。 - 在打印前触发 MathJax 排版。
- 确保
- 重量级步骤(电子邮件):
- 探索服务器端 MathJax 渲染,如 Sam 建议的那样。
- 将数学公式渲染为 SVG 或预渲染的 HTML,以便收件人可以直接在电子邮件客户端中看到清晰的方程式。
- 可选站点设置:
- “在打印视图/电子邮件中使用已渲染的数学公式”→ 允许管理员在原始源代码和渲染后的数学公式之间进行选择。
相关问题/先前工作
[details]面板内的数学公式已修复(PR #111,2025 年 6 月)。
打印视图已对隐藏内容/oneboxes 进行修复 → 包含已渲染元素的先例。
电子邮件:Sam 的评论(#214)将服务器端渲染确定为长期解决方案。
摘要/TL;DR
目前,打印视图和电子邮件中的数学公式会回退为原始 LaTeX。添加已渲染的数学公式将使 PDF 和摘要可读、专业且与用户在浏览器中看到的内容一致。
在 Discourse 上使用 iOS Safari 复现
即使在 Safari 中启用了请求桌面站点,当打开 /print 时,Discourse 仍然会附加
?mobile_view=1,这强制使用了简化的移动打印视图。
解决方法:手动更改为 ?mobile_view=0 以获得完整的桌面打印布局。
示例
/t/fw-the-email-subject/12345/print?mobile_view=0