Welcome to math2.work!
【只今】math2.workへようこそ!数学をわかりやすくお伝えしていきます!【サイト大改造中!】

【2018版まとめ】mathjaxの使い方:LaTeXをサイト上で上手に使いこなすコツ

数学エディタ
スポンサーリンク

追記:記事を別にしてきましたが、面倒なのでまとめます。

長くなるので個別ページもしばらく置いておきます。

Google的にはコピーコンテンツとして判定されるかもしれませんが、

ユーザーの便宜を図り、とりあえず置いておきます。

mathjaxの使い方

mathjaxはwordpressと相性がよいソフトです。

wordpress以外のソフトであっても、HTMLのheadタグ内に

特定のコードを記述するだけで、mathjaxのプログラムが使用できるようになります

特に、何かのソフトをダウンロードしたりしなくても良いのです。

特定のコード

<script type=“text/javascript” async src=“https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML”> </script>

が、そのコードです。英語ですが、MathJaxの使い方についてのページ(http://docs.mathjax.org/en/latest/start.html)より引用しています。

HTML? headタグ?という方へ

htmlとは、HyperText Markup Languageすなわち、ハイパーテキストを記述するためのマークアップ言語です。

ハイパーテキストというのは、複数のテキストを関連付ける仕組みをいいます。

例えば、関連付けの種類が、結びつけ(リンク)であれば、ハイパーリンクとよんでいます。ちなみに、

Hyperとは、「すごい」とか「興奮した」という意味もありますが、この場合、ハイパーテキストとは、本来、静的なただの文書であったテキストへの対比語であって、

「活動的な・動的な」テキスト、あるいはそうさせる仕組みを指すと考えてよいでしょう。

HTMLには、リンク以外にも、見出し、段落、フォントなど、ただの文書では表現できなかった機能を多くとりそろえています。

ちなみに、マークアップ言語というのは、markup(校正・文書修正)言語ということで、見出し、フォント、ハイパーリンクといった文書構造を記述するための形式言語を指します。

headタグ?

タグとは、語源は、「ふだ」であって、

インターネットでは、「本文を服」として、そこに、この服の名前、値段、製造年月日、ブランド、色、サイズ、などといった「ふだ」を貼っていきます。

上記のHTMLという形式言語では、記述の始点と終点を

<html>と</html>でくくります。

肝心の本文は、<body>と</body>でくくります。

<body>と</body>は、もちろんHTMLの一部なので、

<html>と</html>の間になければなりません。

さてここで、「ふだ」を貼る必要があります。

「ふだ」には、様々種類がありますが、本HPの内容とかなりズレてくるので、

詳細は省きます。簡単に言えば、「タイトル」とか、「サイトのアイコン」などを指定します。この「ふだ」を貼るのが、

<head>と</head>の間、すなわち、headタグ内になります。

なお、このタイトルも、<title></title>のようにタイトルタグと呼ばれているので、

タグの中にタグがある、という構造になっています。

JavaScript?

ブラウザ上で動作するプログラム言語であって、

たしかにHTMLで記述されたページは、テキストを活動的にしているが、

例えば、キー「Y」を押した瞬間や、マウスカーソルを合わせた瞬間に

何か反応をする、という機能はありません。

そういったことも可能にするのが、JavaScriptなので、動的な言語といえます。

https://enable-javascript.com/ja/にもあるように、

ブラウザごとに、JavaScriptを有効・無効にすることが可能です。

ホームページ制作者も、「大半の方はJavaScriptが有効であるだろう」と考えて、JavaScript対応ページを作成していると思われますが、JavaScriptを使わないポリシーの方もおられるかもしれません。

ちなみに、JavaScriptはJavaとは異なりますが、Javaの進化系のようなものであって、Javaもプログラミング言語です。

Javaはサン・マイクロシステムズが1995年に開発したといわれており、その名前の由来は所説あります。

なお、Scriptというのは、ラテン語のscribere(書く)を語源とした言葉で、「書かれたもの」の意味です。

MathJaxは無料であって、自由に使えるという話

上記のページには、そもそもMathJaxが何なのか、ということを説明しています。

MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems, including those on mobile devices. It requires no setup on the part of the user (no plugins to download or software to install), so the page author can write web documents that include mathematics and be confident that users will be able to view it naturally and easily. One simply includes MathJax and some mathematics in a web page, and MathJax does the rest.

まとめると、

・MathJaxはJavaScriptのオープンソース(誰でも自由に改変できる)であって、

・TeX, LaTeX, MathML, そしてAsciiMathのためのソフトであって、

・ほぼ現行すべてのブラウザで稼働して、

・スマホ含めて、技術の進歩を「より良い数学的記述」によって支えることを目的として作られ、

・一般にプラグイン不要で(wordpressは、プラグインを使うと便利ですが、別に使わなくてもJavaScriptで記述可能です)、ソフトのダウンロードも不要で、

・ライターもユーザーも便利に使えるのがMathJaxです。

などと書いてあります(意訳)。

さて、他にもこのページには、

・MathJaxできれいに数式が表示されるが、これは画像的なものではなく、テキスト的なものなので(ただし古いブラウザなどは画像的になる場合あり)、検索エンジンにおいても、数式が認識される

・TeXという表記法をMathMLに変換できて便利で、

・MathJaxは良いアプリケーションプログラミングインターフェース(プログラム一部を、MathJaxが我々の代わりに勝手にやってくれる(意訳))をもっているので、数学のWebページに互換性があり、動的なものになります。

などと書かれています。

TeX, LaTeX, MathML, そしてAsciiMath、プリミティブ、マクロの話

マニアックな話ですが、

TeX言語は、HTMLと同じくマークアップ言語の一種で、かつプログラミング言語でもあります。本来、プリミティブ(初歩的な)な命令しかできません。

しかし、プリミティブを組み合わせた命令を作り出すことは一応可能で、その命令をマクロとよびます。

マクロは、エクセルなどでも頻出する言葉ですが、ソフトにもともと入っている簡単な命令を組み合わせて、大きな複雑な命令を作り出して、その命令をマクロとよぶのだと解釈して頂ければと思います。

LaTeXは、いちいちTeXのマクロを大量に作るのが大変なので、マクロ体系をあらかじめ作っておいたのがLaTeXです。

MathMLは、Mathematical Markup Languageのことで、数式に特化された、マークアップ言語の一種です。

しかし、これはXML(Extensible Markup Language: 拡張可能なマークアップ言語のこと。なお、対比語は、拡張が難しいマークアップ言語であるSGML: Standard Generalized Markup Language)用の言語ですので、

XHTMLという、XML用のHTMLに埋め込まないと使用不可能です。

そういうこともあって、十分普及しているとはいえないかもしれませんが、

今後、MathMLを読み込めるブラウザはどんどん増えていくと思われます。

さて、AsciiMathは、やはりマークアップ言語の一種で、MathJax(JavaScript display engineです)を用いるか、あるいはAsciiMath JavaScript fileを読み込んで、headタグ(実はbodyタグ内でも良い)内に

<script src=”ASCIIMathML.js”></script>と記載すれば良いです。

詳細はこちらにあります。