人工知能技術 デジタルトランスフォーメーション 機械学習技術 論文/報告書の書き方 life tips & 雑記 本ブログのナビ
論文作成の世界標準ツールであるTex/Latexとウェブ数式表示ツールのMathjax
以前、”人工無脳が語る禅とブッダぼっど“でも参照した復刻されたコンピューターサイエンス雑誌bitの中(1997年04月338号)で、”座談会 クヌース先生に聞く”と題した記事が載っている。
登場するドナルド・E・クヌースは当時スタンフォード大学の名誉教授で、アルゴリズムの解析、プログラミング言語の設計、情報処理技術の開発など、初期のコンピューターサイエンスを牽引してきた人物で、彼が出版した書物の一つとして「The Art of Computer Programming」という、邦訳でも一冊のページが1300ページある分厚い書物が四巻(まだ計画されている刊行はあるらしい)がある。vol1, vol4B, vol4A, vol3
これは、様々なアルゴリズムについて、その背景や歴史まで踏み込んだ徹底的な解説を行っているコンピュータプログラミングに関する書物となる。
クヌース教授のすごいところは、コンピューターサイエンスに関係する膨大な知識もさることながら、この本を書く上で本の仕上がりに納得せず、自らTEXと呼ばれる組版システムを構築し、それを使って書き上げたところにある。
このTEXは、技術と同時に芸術をも意味する言葉である、(テクネ)から採られたもので、オープンソースであり、出力結果がOSに依存せず、自動処理や、論文に必須の複雑な数式の表現を可能としたものとなっている。例えばこの数式の表示は以下のように記述すると
-b\pm \sqrt{b^2 -4ac} \over 2a
以下のように表示されるものとなる。
このTEXをさらに拡張させたものとしてLaTexがある。このLaTexは、レスリー・ランポートによって開発された、TEXにマクロパッケージを組み込むこんで構築したもので、単体のTEXに比べて、より手軽に組版を行うことができるようになっている電子組版ソフトウェアとなる。
これらは、数式の表現に強く、更にその当時としては使いやすい簡易な電子組版ソフトウェアであったことから、論文作成のツールとして利用され、現在でも論文の作成ツールとして利用され続けている。
このTEXおよびLaTexを使った文書作成(データ変換)の流れは以下に示す図のようになる。
上記のフローは基本的には、.texや.latexといった拡張子が着く文字ファイル(ソースコード)をtext editorで作成し、DVIやPDFのような閲覧ファイルにコンパルすることにより作成するものとなる。
Latexはさまざまな環境で利用することができる。例えば”Sublimetextの概要とインストール“で述べたsublimetextでは”LatexTools”というプラグインが存在し、それをインストールしておくと、text editorで書いたものをLatexにビルドできる。
手順としては以下の通り
- SublimeTextを公式HPからダウンロード
- トップメニューの”Tools”で”Command Pallet”を選択(あるいはCtrl+p)
- テキスト入力ボックスに”Package install”等の検索キーワードを入れると、”Package Control: Install Package”が選択肢の中に現れるので、選択するとインストール画面となる。
- テキスト入力ボックスに”Latex”と入力するとLatexに関係するプラグインが表示される。その中で”LatexTools”を選択すると、ダウンロードが始まる。
- 無事にダウンロードが完了すると、”Tools”→”Build System”の中にLatexが表示される。
- (オプション)Sublimeのメニュー→”Preference”→”Package Settings”→”LatexTools”→”Setting User”を選択し設定ファイルを作成する。(以下に設定例を提示)
- (オプション)”Build engin settingsのbuild_setting”の項を修正(以下に例を提示)
- sublime上で拡張肢として”.tex”をつけたファイルを作成し、”tools”→”Build System”→Latex(もしくはctrl+b)でビルドをする。
- ビルドされたファイルをpdf化する。
<windowsでの設定ファイル例>
"windows": {
// Path used when invoking tex & friends; "" is fine for MiKTeX
// For TeXlive 2011 (or other years) use
// "texpath" : "C:\\texlive\\2011\\bin\\win32;$PATH",
"texpath" : "",
// TeX distro: "miktex" or "texlive"
"distro" : "miktex",
// Command to invoke Sumatra. If blank, "SumatraPDF.exe" is used (it has to be on your PATH)
"sumatra": "${SumatraPDF_path}\\SumatraPDFPortable.exe",
// Command to invoke Sublime Text. Used if the keep_focus toggle is true.
// If blank, "subl.exe" or "sublime_text.exe" will be used.
"sublime_executable": "",
// how long (in seconds) to wait after the jump_to_pdf command completes
// before switching focus back to Sublime Text. This may need to be
// adjusted depending on your machine and configuration.
"keep_focus_delay": 0.5
},
<windowsでのsetting file例>
"builder_settings" : {
// General settings:
// See README or third-party documentation
"command" : ["latexmk", "-cd",
"-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
"-e", "$bibtex = 'upbibtex %O %B'",
"-e", "$makeindex = 'makeindex %O -o %D %S'",
"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
"-f", "-norc", "-gg", "-pdfdvi"],
// (built-ins): true shows the log of each command in the output panel
"display_log" : false,
// Platform-specific settings:
"osx" : {
// See README or third-party documentation
},
"windows" : {
// See README or third-party documentation
},
"linux" : {
// See README or third-party documentation
}
},
もう少し簡単に扱いたい場合は、Cloud Latexを利用することもできる。これはAcaric社が提供している無料のWebブラウザ経由のツールで、初期登録を行えば
プレビューを確認しながら作成することができるツールとなる。
Cloud LaTexを使った文書作成に関しては、以下の「Latex超入門 ゼロから始める理系の文書作成術」にて詳しく述べられているので、興味のある方は参照のこと。
またLatexの書式等の利用方法については”LaTeX入門 – TeX Wiki“や”Tex/Latex入門“に記載されている(まったくのビギナーは後者からの方が入りやすい)。また、特殊文字の辞書的な資料としては”Latexの特殊文字・特殊記号“を参照のこと。
ちなみに、Hello.texは以下のようになる。
% File name: test1.tex
\documentclass{article}
\begin{document}
Hello, \TeX \\
Hello, \LaTeX \\
\end{document}
TEXの場合は文の始まりが\bのように簡略化されていたものが\begin{documnet}とより分かりやすいものとなっている。
このLatexの書式を用いてweb上での数式表示ツールとしたものがMathjaxとなる。
MathJaxはApache LicenseのもとでオープンソースソフトウェアとしてリリースされているMathML、LaTeX、ASCIIMathMLで記述された数式をウェブブラウザ上で表示するクロスブラウザのJavaScriptライブラリとなる。
また対応するブラウザはInternet Explorer 6、Firefox 3、Google Chrome 0.3、Safari 2.0、Opera 9.5、iPhone/iPad Safari、Androidブラウザを含む代表的なブラウザで数式をレンダリングでき、MediaWiki、Drupal、WordPress、Joomla!を含む多くのポピュラーなウェブプラットフォームでブラグインが準備されているものとなる。
MathJaxの辞書としては”Easy Copy MathJax“がシンプルなユーザーインターフェースで使いやすいものとなる。
コメント
[…] SATの参考図書としては”論文作成の世界標準ツールであるTex/Latexとウェブ数式表示ツールのMathjax“でも述べたドナルド・E・クヌースによるThe Art of Computer Programmingのシリーズであ […]