LoginSignup
2
0

More than 3 years have passed since last update.

昔TeXを使っていた数学教師が,また改めてTeXを導入した話

Last updated at Posted at 2019-07-31

 過去に自分がLaTeXにガッツリ触れていたのがもう何年も前で,その頃は右も左も分からずにとりあえずネットで調べて出てきたものを片っ端から信じて入れていくという,まあまあ残念な方法でやったため,自分のやり方がどうだとかよく分からずに使っていました.
 ようやく今になって入れようと思ったのは,やっぱり他の何を使っていても使いづらさが鼻につくというか,カスタマイズできないイライラが募るからで,ということでじゃあもうもう一度 LaTeX を使ってやろうじゃないの,ということで入れました.
 これから入れようかなーって思っている人なんかの参考程度になればと思って,そういう方々を対象に書きます.正直私も詳しくはないですし,網羅しているわけでもないので,もう既によく知っている人は流儀や流派もあるかとは思いますが,どうぞ優しく見守ってください.

いろいろありすぎるんだぜ!

 ひとくちに LaTeX といっても色々あるんです.そもそも TeX なのか LaTeX なのかっていう話だとか,読み方から「えっ!?テックスじゃないの!?」(→こちら)とか,初めての人には分からないことだらけだと思います.ということで,まずはちょっと色々列挙してみたいと思います.

  • TeX
    • pTeX
    • upTeX
  • LaTeX
    • pLaTeX
    • upLaTeX
  • XeTeX
    • XeLaTeX
  • pdfTeX
    • pdfLaTeX
  • LuaTeX
    • LuaLaTeX

 わあ,もうわかんない.どうしてこんなことになってしまったんでしょうね.私もちょっと整理しようと思ったんですけど,諦めました.ここに書いたのはすべて「処理系」と呼ばれているもので,つまりテキストでバシバシ打ち込んでいったものを,うまい感じに見せる処理をしてくれる人たちということです.皆さんがもしかしたらよく使っている Microsoft Office の Word というアプリケーションは編集しているファイルでそのまま処理が行われていて,基本的には書いたとおりに見えるし,見えているとおりに印刷されます.しかし,TeXのような文書作成のシステムは,編集するファイル,それを元に生成されたファイルというのが別々になります.その「生成」のための処理をするものがたくさんありますよ,ということです.

ちょっと歴史の話

 最初にTeXが作られたのが1978年ということです.この頃のコンピュータ事情はさすがに分かりませんが,少なくとも世界に爆発的に個人用コンピュータが広まったのが Windows 95 というのは私にもわかります.そんな時代,横一列にアルファベットを書くのが関の山だったコンピュータでちっちゃく右上に文字を乗せる(たとえばこんな風に $2^5$ )とか,縦に並べて上下に被らないように文字は少し小さめにして更にその間に横棒を引かせる(たとえばこんな風に $\frac{3}{7}$ )とか,そういう記述を,しかも綺麗に組版するにはどうすればいいかと頭を悩ませたドナルド・クヌースさんが開発したのがこの TeX だったのです.これによって,数理系の文書としては TeX で書くということが標準的になり,論文を書くための,あるいは便利に書くためのさまざまな機能が世界中で開発されていきました.
 最初の TeX こそアルファベットやギリシャ文字程度しか扱えませんでしたが,日本人は日本語が使えるように publishing TeX(pTeX) を開発したり,さらにこれを unicode に対応させた upTeX が開発されたり,コマンドをゴリゴリ使わないと使いづらかった TeX を簡単な機能を詰め込んだ LaTeX が開発されたりして,TeX はその地位を強固なものにしていきました.これは Microsoft 社の Word や,美しい表示を追い求めた Apple 社の Mackintosh, Pages が開発された後もその地位を譲りませんでした.というのは,これらは確かに見た目綺麗な文書作成のハードルは下げましたが,「綺麗に組版する」「求める記述になるようにカスタマイズする」という部分については,いまなお TeX を超えるものではありません(個人の見解です)1

書くために必要なものと「快適に書くため」に必要なもの

 書くだけなら正直大元の TeX で十分です.何故ならそれで昔は書いていたんだから!でも今はもうそういう時代ではないのです.様々な機能が追加され,しかもそれらがあっちとこっちでどっちつかずにならない(競合しない)ようによく整理されており,それでいて少ないコマンドで,簡単綺麗が実現できるようになっているのです.考えてもみてください.たとえばあなたがサッカーチームの監督で,試合に勝とうと思ったときに,すでにルールや戦術を理解している選手に「右サイドから上がって,左サイドに振ってからシュートしろ」という言葉で伝わるのと,ルールブックをその場で読みながら監督の話を聞いている選手(しかも右と左の境目はどこか,とか気にしている)と,どっちに任せたいですか.正直今現代からして元祖 TeX というのは後者の選手のようなレベルです.こういう選手は知らない言葉や戦術には見向きもしてくれないし,「そんなの分かりませんよ!」とキレて動かなくなる感じです.絶対に一緒にやりたくないじゃないですか.私は願い下げです.
 そもそも何でこんなに色んなものがあってそれぞれについてあーだこーだとみんなが話しているのか,が伝わっていない気がします.ので,ここに書いておきます.upLaTeX までは .tex ファイル$\to$ .dvi ファイル $\to$ .pdf ファイルと2段階で処理をする必要があり,しかもこの処理をするためのものも dvips なのか dvipdfm なのか dvipdfmx なのか,選ばなければいけない.一方で,XeTeX 系,pdfLaTeX 系,LuaTeX 系は,.tex ファイルをそのまま .pdf ファイルに変換してくれます.でも変換させる中身が違います.TeX と一口に言っても,細かいローカルルールがそれぞれ違うし,しかも選んだものごとに通じる言葉もキレポイントも変わってくるので,もし万が一ひとつのプロジェクトを複数人で進めるとしたときに使っているものが違うと阿鼻叫喚の地獄絵図が待っています.これは相当ヤバいです.というか,私がそれを学生時代に体験したので「ヤバかった」が正しいです.
 じゃあ何がいいの?ってなると,ベストを挙げるのは私もできません.何故ならつい先日「どうやらこれがいいらしいぞ」と選んだものを組み入れた(インストールした)ばかりだから比較したわけではありません.それでもどれかと言われたら,

  • XeLaTeX
  • pdfLaTeX
  • LuaLaTeX

の3つが処理系としては良いだろうという感じがします.あるいは,もう自分のパソコンの中にはインストールせずにオンラインで使うというなら

  • Overleaf

が良さそうです.もし複数人で共有するプロジェクトを進めるのであれば逆に,こうしたオンラインのもので共有のアカウントを作ってしまったりする方が,開発環境の変化がないため安全かもしれません.
 この辺りの探し方は,かなり色んな記事を読み漁るほかないのですが,それでも「記事の新しさ」や「書き手の TeX に関する知識の深さ」,「書き手の更新頻度」などに気を付けながら情報の質を見極めていきます.また,調べながら出てきた新しい単語もどんどん調べていき,未知の分野の体系の理解に努めることも大事だと思います.

で,結局何を選んだのか

 先に結論を言っておくと,

  • TeXLive
  • LuaLaTeX
  • TeXstudio

 はい,また見たことないのが出てきましたね.ごめんなさいね.今まで処理系の話しかしてませんでしたからね.
 LuaLaTeX という処理系を使うにあたり,その膨大な量の追加機能(パッケージと呼ばれます)を管理するにはもう手作業であれとこれと,なんてやってらんないんですよ.その管理をするためのものが TeXlive というのが,私の認識です.なんというか,コンピュータと TeX の間を仲介してくれている感じです.合ってますか?合ってるといいな.
 そして,.tex ファイルを編集すること,さらにそれを LuaLaTeX を使って .pdf ファイルに変換すること,これら実際の「文書作成」に役立ってくれる,つまり人間と TeX の間を取り持ってくれるような感じです.こうした彼らの力を借りることで,我々は膨大なファイルや裏側のことを少ししか見ずに,やりたい「文書作成」に集中することができるんですよ,ということですね.

 本当はここからどうやって導入したのかとかっていう話も書こうと思っていたのですが,今日はとりあえず店じまいします.続きはまた近いうちにアップ出来たらと思います.では.


  1. Macの事情は分かりかねますが,最近は簡単なものであれば Microsoft Word は遜色ないように見えます 

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0