Discourse 数学

||||\n-|-|-|\n:discourse2: | 摘要 | Discourse Math 使用 MathJax(默认)或 KaTeX 来渲染您的 Discourse 论坛中的数学公式。\n:open_book: | 安装指南 | 此插件已与 Discourse 核心捆绑。无需单独安装插件。\n\n\n[quote]\n\n:discourse2: 由于这是由 Discourse 团队维护的 official 插件,#support、#bug、UXFeature 请求可以在 Meta 上的相应版块中提出,并使用适当的插件标签进行标记。点击下面的链接即可开始。:+1:\n\n\u003ckbd\u003e [:question:\u0026nbsp;支持](Discourse Meta "询问有关配置和使用 Discourse Math 的支持") \u003c/kbd\u003e \u003ckbd\u003e [:bug:\u0026nbsp;Bug](Discourse Meta " Bug 报告意味着某些东西坏了,阻止了插件的正常/典型使用") \u003c/kbd\u003e \u003ckbd\u003e [:eyes:\u0026nbsp;用户体验](Discourse Meta "关于 Discourse Math 的用户界面,以及功能如何呈现(包括语言和 UI 元素)的讨论") \u003c/kbd\u003e \u003ckbd\u003e [:bulb:\u0026nbsp;功能](Discourse Meta "讨论如何改进或增强现有的 Discourse Math 功能,以及提议的新功能如何运作")\u003c/kbd\u003e\n\n[/quote]\n\n### 启用数学公式\n\n可以通过其设置启用 Math 插件,这些设置可在您的 admin/plugins 页面访问:\n\nMath settings\n\n\n### 功能\n\n启用后,您可以通过用单个 $ 包裹来渲染行内数学公式,如下所示:$E=mc^2$。\n\nYou can render blocks of math by wrapping with $$\n\n\n$$\n\\sqrt{(-1)} \\; 2^3 \\; \\sum \\; \\pi\n$$\n\n\n

\n\nDiscourse Math 使用启发式方法来确保诸如:“我花了 20$ 还有另外 100$” 这样的句子不会被转换。\n\n#### LaTeX 分隔符\n\n当通过站点设置启用时,您还可以使用标准的 LaTeX 分隔符:\n\n- 行内: \\(...\\) - 示例:\\(E=mc^2\\)\n- 块级: \\[...\\] - 示例:\n \n \\[\n \\frac{1}{2}\n \\]\n \n\n#### AsciiMath (仅限 MathJax)\n\n使用 MathJax 时,您可以启用 asciimath 处理,它使用 % 作为分隔符:%E=mc^2%\n\n### 编辑器集成\n\n编辑器工具栏中包含一个 插入数学公式 按钮,快捷键为 \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eM\u003c/kbd\u003e。这会打开一个模态框,您可以在其中进行以下操作:\n\n- 在行内和块级模式之间切换\n- 编写您的 LaTeX 表达式\n- 预览并插入到您的帖子中\n\n在富文本编辑器中,数学表达式显示为带有编辑按钮的可编辑节点,用于修改表达式。\n\n### 聊天支持\n\n数学表达式也会在 Discourse Chat 消息中渲染,使用相同的设置和渲染引擎。\n\n### 渲染引擎\n\n#### MathJax (默认)\n\n- 版本: 4.1\n- 输出格式: HTML(默认)或 SVG\n- 功能:\n - 上下文菜单(右键单击数学公式)\n - 屏幕阅读器的辅助功能增强\n - Alt 键单击时缩放(175% 缩放)\n - AsciiMath 支持\n\n#### KaTeX (替代方案)\n\n- 功能:\n - 快速渲染\n - 用于化学方程式的 Mhchem 扩展\n - CopyTex 扩展 - 点击数学公式可将 LaTeX 源代码复制到剪贴板\n - 支持使用 \\label\\ref\\eqref 宏的交叉引用\n\n### 站点设置\n\n在您的管理设置中搜索“math”,即可查看所有相关的站点设置。\n\n| 名称 | 描述 |\n|-|-|\n| discourse math enabled | 启用 Discourse Math 插件(对 $ 和 $$ 块添加特殊处理) |\n| discourse math provider | 数学渲染提供商:mathjax(默认)或 katex |\n| discourse math enable latex delimiters | 启用 LaTeX 风格的分隔符:行内数学公式使用 \\(...\\),块级数学公式使用 \\[...\\] |\n| discourse math mathjax output | MathJax 输出格式:html(默认)或 svg(仅限 MathJax) |\n| discourse math enable menu | 为数学表达式启用上下文菜单(仅限 MathJax) |\n| discourse math enable accessibility | 启用辅助功能,例如文本增强(仅限带菜单的 MathJax) |\n| discourse math zoom on click | Alt 键单击交互时缩放 175%(仅限带菜单的 MathJax) |\n| discourse math enable asciimath | 使用 % 分隔符启用 asciimath 处理(仅限 MathJax) |\n\n\n\u003e :discourse2: 由我们托管?我们所有的托管套餐都提供此插件 Math | Discourse - Civilized Discussion

69 个赞

2 个帖子已拆分到新主题:添加对 MathJax 电子邮件格式的支持

2 个帖子被拆分到新主题:Can Mathjax be upgraded to Version 3?

6 个帖子被拆分到新主题:为数学公式的 LaTeX 风格块和内联添加支持

一篇帖子被拆分到新主题:块中公式无法正确渲染

一个帖子被拆分到了新主题:预览中数学公式无法渲染

15 个帖子已拆分到新主题:数学和人工智能的变通方法

26 个帖子已拆分到新主题:将 Mathjax 升级到 4.0 版本

在 Discourse Math 中迁移到较新的 MathJax (v4.1) 集成后,我有一个快速的(积极的)现实世界的反馈。

我注意到的一项生活质量改进是,当输入无效或宏未定义时,MathJax 现在会提供非常具体、局部的反馈

  • 它仍然正确地渲染周围有效的结构(例如 \frac{...}{...}、括号等)
  • 但它会字面意义上将未识别的命令显示为可见(例如,将 \sinc 显示为文本),而不是使整个表达式失败或产生令人困惑的部分错误。

在实践中,这使得需要修复的内容一目了然,而不会掩盖已经正确的部分——这在教学环境和迭代包含大量数学内容的帖子时尤其有帮助。

例如,与其依赖定义了 \sinc,不如采用稳健的方法将其明确编写为运算符:

\frac{\Delta}{T}\operatorname{sinc}\! \left(\frac{\omega_r\Delta}{2}\right)

其中:

\operatorname{sinc}(x)=\frac{\sin x}{x}

总的来说,与旧的/不那么透明的失败模式相比,这种“渲染你能渲染的,清晰地显示其余部分”的行为感觉是可用性上的一个巨大胜利。感谢所有参与 MathJax 升级工作的人员。

1 个赞