Discourse 数学

:discourse2: 摘要 Discourse Math 使用 MathJax(默认)或 KaTeX 在你的 Discourse 论坛中渲染数学公式。
:open_book: 安装指南 此插件已打包在 Discourse 核心中。无需单独安装该插件。

启用数学公式

可以通过 admin/plugins 页面访问设置来启用数学公式插件:

Math settings

功能

启用后,你可以使用单个 $ 包裹来渲染行内数学公式,例如:$E=mc^2$

你可以使用 $$ 包裹来渲染数学公式块:

$$
\sqrt{(-1)} \; 2^3 \; \sum \; \pi
$$

Discourse Math 使用启发式方法,确保像“我花了 20$ 又花了 100$"这样的句子不会被转换。

LaTeX 分隔符

通过站点设置启用后,你还可以使用标准的 LaTeX 分隔符:

  • 行内: \(...\) - 示例:\(E=mc^2\)
  • 块级: \[...\] - 示例:
    \[
    \frac{1}{2}
    \]
    

AsciiMath(仅限 MathJax)

使用 MathJax 时,你可以启用 asciimath 处理,它使用 % 作为分隔符:%E=mc^2%

编辑器集成

编辑器工具栏中包含一个 插入数学公式 按钮,其键盘快捷键为 Shift+M。点击后会打开一个模态窗口,你可以:

  • 在行内模式和块级模式之间切换
  • 编写 LaTeX 表达式
  • 预览并将表达式插入到你的帖子中

在富文本编辑器中,数学公式显示为可编辑节点,并带有编辑按钮以修改表达式。

聊天支持

数学公式同样会在 Discourse 聊天消息中渲染,使用相同的设置和渲染引擎。

渲染引擎

MathJax(默认)

  • 版本: 4.1
  • 输出格式: HTML(默认)或 SVG
  • 功能:
    • 上下文菜单(右键点击数学公式)
    • 为屏幕阅读器提供可访问性增强
    • 按住 Alt 键点击时缩放(175% 缩放)
    • 支持 AsciiMath

KaTeX(替代方案)

  • 功能:
    • 快速渲染
    • Mhchem 扩展 用于化学方程式
    • CopyTex 扩展 - 点击数学公式即可将 LaTeX 源代码复制到剪贴板
    • 支持使用 \label\ref\eqref 宏进行交叉引用

站点设置

在管理员设置中搜索“math”即可查看所有相关的站点设置。

名称 描述
discourse math enabled 启用 Discourse Math 插件(为 $ 和 $$ 块添加特殊处理)
discourse math provider 数学渲染提供者:mathjax(默认)或 katex
discourse math enable latex delimiters 启用 LaTeX 风格分隔符:\(...\) 用于行内,\[...\] 用于块级数学公式
discourse math mathjax output MathJax 输出格式:html(默认)或 svg(仅限 MathJax)
discourse math enable menu 为数学公式启用上下文菜单(仅限 MathJax)
discourse math enable accessibility 启用可访问性功能,如文本增强(仅限 MathJax 且启用了菜单时)
discourse math zoom on click 按住 Alt 键点击时缩放 175%(仅限 MathJax 且启用了菜单时)
discourse math enable asciimath 启用使用 % 分隔符的 asciimath 处理(仅限 MathJax)

:discourse2: 由我们托管?此插件适用于我们的所有托管层级 Math | Discourse - Civilized Discussion

70 个赞