Discourse Math

:discourse2: 概要 Discourse Math は、MathJax(デフォルト)または KaTeX を使用して、Discourse フォーラム内の数式をレンダリングします。
:open_book: インストールガイド このプラグインは Discourse コアにバンドルされています。別途プラグインをインストールする必要はありません。

数式の有効化

Math プラグインは、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%

コンポーザー統合

コンポーザーには、ツールバーに 数式を挿入 ボタンがあり、キーボードショートカットは \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eM\u003c/kbd\u003e です。これによりモーダルが開き、以下の操作が可能です。

  • インラインモードとブロックモードの切り替え
  • LaTeX 式の記述
  • プレビューして投稿に挿入

リッチテキストエディターでは、数式は編集可能なノードとして表示され、式を修正するための編集ボタンがあります。

チャットサポート

数式は、同じ設定とレンダリングエンジンを使用して Discourse チャットメッセージでもレンダリングされます。

レンダリングエンジン

MathJax(デフォルト)

  • バージョン: 4.1
  • 出力形式: HTML(デフォルト)または SVG
  • 機能:
    • コンテキストメニュー(数式を右クリック)
    • スクリーンリーダー向けのアクセシビリティ強化
    • Alt キー押下時のズーム(175% ズーム)
    • AsciiMath サポート

KaTeX(代替)

  • 機能:
    • 高速レンダリング
    • 化学反応式用の Mhchem 拡張機能
    • LaTeX ソースをクリップボードにコピーするための CopyTex 拡張機能 - 数式をクリックしてコピー
    • \\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

2件の投稿が新しいトピックに分割されました: メールでのMathJax書式のサポートを追加

2件の投稿が新しいトピックに分割されました: Mathjaxをバージョン3にアップグレードできますか?

6件の投稿が新しいトピックに分割されました: LaTeXスタイルのブロックとインラインでの数式サポートの追加

投稿が新しいトピックに分割されました: ブロック内で数式が正しくレンダリングされない

投稿が新しいトピックに分割されました: プレビューで数式がレンダリングされない

15件の投稿が新しいトピック「Math and AI workarounds」に分割されました

26件の投稿が新しいトピックに分割されました: Mathjaxをバージョン4にアップグレードする

Discourse Math の新しい MathJax (v4.1) 統合に移行した後の、実世界での簡単な(肯定的な)所感です。

気づいた品質向上の 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 のアップグレード作業に関わったすべての方に感謝します。

「いいね!」 3

Google経由でこちらにアクセスされた方に一言。このプラグインは、無料ホスティングプランでは利用できません。 :expressionless_face:

こんにちは、お困りの状況はお察しします。そのようなご感想を持たれたことをお詫び申し上げます。今後のケースについては、こちらhttps://discourse.org/pluginsのプラン別プラグインディレクトリをご覧ください。

数学プラグインは、このページにプロ/ビジネス/エンタープライズ用プラグインとして掲載されています。そのため、無料プランでも利用可能だと誤解されることがあるかもしれません。無料で提供するよう提案しているわけではありません。ただ、もう少し明確にすべきだと考えます。

「いいね!」 1

はい。Discourse pricing | Discourse - Civilized Discussion のページには、プラグインを含め、すべてのプランとその制限がリストされており、どのプラグインが利用可能かすぐに確認できます。

「いいね!」 1