Umi Blog

ウミブログ

Drupalで数式を表示させる方法

2020.04.16
Studio Umi
Drupalで数式を表示させる方法

こんにちは!今回はDrupalサイトで数式を表示させる方法について解説したいと思います。

MathJaxについて

ウェブサイト上で数式を表示させるにはMathJaxと呼ばれるJavaScriptライブラリを使う必要があります。

MathJaxはQiitaやMathOverflow、Wikipediaなどでも使われているメジャーなライブラリです。

MathJaxはLaTeXというマークアップで書かれた数式をブラウザでレンダリングする際に、記号を表示したり書式を整えてくれる機能を持っています。

たとえばこんなLaTeXマークアップがあったとすると、

x = \frac {-b \pm \sqrt {b^2 - 4ac}}{2a}

MathJaxを使うことでブラウザ上ではこう表示させることができます。

MathJax でレンダリングした二次方程式の解の公式

さらにレンダリングされた数式を右クリックするとソースのLatexを簡単にコピペできたりして便利です。

数式を右クリックして LaTeX のソースを取得するメニュー

DrupalでMathJaxを使うには

MathJaxのJSライブラリやエディタのフィルターを追加するモジュールを使うことで、Drupalでも簡単にMathJaxを導入することができます。

MathJaxモジュール

以下、使い方を詳しく説明していきます。

モジュールをインストール

まずはMathJaxモジュールをインストールします。

composer require drupal/mathjax
drush en mathjax
drush cr

JavaScriptが動いているかを確認するには、/admin/config/content/mathjax に移動してMATHJAX TESTという項目を見ます。画像のように数式が表示されていれば成功です。

MathJax の設定画面にある MATHJAX TEST の表示

MathJaxフィルターを追加

ノードなどエディタで作成された文章にMathJaxを適用するには、その文章のフォーマットにMathJaxのフィルターを追加する必要があります。

まず /admin/config/content/formatsに移動し、任意のフォーマットの設定をクリックします。

テキストフォーマットの一覧から設定を開く画面

フォーマットの編集画面にて、有効なフィルターでMathJaxにチェックを入れます。 また、フィルターの処理順序でMathJaxが一番下になるようにしてください。

有効なフィルターで MathJax を最後に並べた設定画面

それが出来たら構成を保存をクリックします。これで設定は完了です。

記事の作成

このフォーマットを使って記事を作成してみましょう。ノードの新規作成画面を開き、本文入力時にさきほどのフォーマットを選択し、

$ x = \frac {-b \pm \sqrt {b^2 - 4ac}}{2a} $

と入力し、保存します。両端の$はLaTeXの範囲を示すための印です。

ノードの本文に LaTeX の数式を入力した編集画面

保存したノードを確認し、数式の部分が以下の画像のように表示されていれば成功です。

MathJax でレンダリングした二次方程式の解の公式

インラインスタイルとディスプレイスタイル

$でLaTeXを囲うとインライン表示になりますが、$$で囲うと数式の部分だけが別の行になり、書式自体も縦幅が大きくゆったりしたものになります(いわゆるディスプレイスタイル)。 たとえば先程のフォーマットで

1からnまでの数字の和は $ \sum\limits_{i = 1}^n i  = \frac{{n\left( {n + 1} \right)}}{2} $ です。

1からnまでの数字の和は $$  \sum\limits_{i = 1}^n i  = \frac{{n\left( {n + 1} \right)}}{2} $$ です。

と入力すると、以下の画像のように表示されます。

行内数式と別行立て数式の表示を並べた例

終わりに

というわけで、DrupalでMathJaxを使う方法の紹介でした。 今回の例ではCKEditorと組み合わて使いましたが、Qiita風にMarkdownと組み合わせて使う事もできます。 これでオンライン学習サイトや研究者向けのSNSなんかもDrupalでさくっと作ることができますね。 案件お待ちしておりマス!(mathなだけに)

\

小さなご意見も、私たちにとっては大きなヒントです!

ぜひ率直なご感想をお寄せください

/

この記事はお役に立ちましたか?

スタジオ・ウミのメンバー

Masters of Drupal Engineering.

人に、技術に、品質に、まっすぐ。

Download
会社案内をダウンロード
Contact
お気軽にお問い合わせください
Recruit
スタジオ・ウミの採用情報