読者です 読者をやめる 読者になる 読者になる

Acetaminophen’s diary

化学に関すること,TeXに関すること,ゆきだるまに関すること。

TeX/LaTeX の心構え:入門者から上級者まで

今回は、TeX/LaTeX に関わる方すべてに読んでほしい記事です。まだ触れたことがなくてこれから TeX/LaTeX を始める方にとっては必読だと思いますし、そもそも TeX/LaTeX を知らない・使うつもりはないという方にも「これだけは知っておいてもらいたい」ことをまとめておきます。

 

TeX/LaTeX に関する誤解(1):Microsoft Word とは別物!

よく「文書作成ツール」として TeX/LaTeXMicrosoft Word が引き合いに出されます。オープンアクセスの Journal にまで、LaTeX と Word の比較研究が掲載されるほどです。

しかし、そもそも LaTeX と Word は根本的に思想の異なるツールです。Word は「最終的に出力すべき見た目を、画面で見ながらそのまま編集する」ツールです*1が、LaTeX は「見た目ではなく、その部分に文書全体でどういう意味を持たせるかを重視する」ツールです*2。Word に限らず Writer や一太郎といった文書作成ツールを使ったことがある方がほとんどでしょうから、今さらそのようなツールを解説する必要はないと思いますし、LaTeX について誤解されていることが多い点に重点を置いて説明します。

f:id:acetaminophen:20150426065547p:plain

例えば、いままで Word などでメニューのアイコンから「ここは見出しにするのでフォントを変えて文字を大きく」「ここは目立たせたいので太字にして色を変えよう」のように編集してきたかもしれません。この場合「見出しのフォントは、やっぱり変えるのをやめよう」「太字で目立たせようとしていたけれど、斜体にしたほうが目立つだろうか」といった場合に、一度に文書全体を変更するのが難しいですよね*3。これに対し LaTeX では、ユーザはすべて目的にあわせた「制御綴(コントロールシーケンス)」を使って LaTeX に命令を伝えます。例えば、太字にしたいところは \textbf{...} のように囲みます。こうすると、LaTeX は「ここは太字にしたいんだな」と解釈してフォントを変更します。また、見出しは \section{...} のように囲むことで、LaTeX があらかじめ決められたとおりにスタイルを適用してくれます。こうした LaTeX の解釈内容はクラスファイルやスタイルファイルによって決められていますので、TeX/LaTeX に詳しくなればそれを変更することでカスタマイズできますし、標準でも十分に出版に耐える品質の文書を作成できるように LaTeX のスタイルは研究されています。

f:id:acetaminophen:20150426065936p:plain

Word の場合もある程度スタイルをカスタマイズできる機能は整っていますが、実のところそれらの機能を使いこなしている人はあまり多くないのではないでしょうか*4。スタイル指定で見出しを付けているのか、それともユーザが見た目だけでフォントを変えて“見出しっぽく”しているのかは、最終的な印刷形態で区別がつかないことが多いのは事実です。これは、見た目しか気にしないように仕向けてしまうという「見たままツール」の弊害です。見分けがつかないからといって手作業で見出しフォントを地道に変えればよいというのは間違いとされるべきで、本来はスタイルを指定するのが王道です。これに対し、LaTeX の場合は強調などの操作にコントロールシーケンスを使用するため、必然的に意識は見た目ではなく目的に向かいます。こうすれば、後から変更する場合にコントロールシーケンスの定義内容を変更するか、あるいはコントロールシーケンスの文字列置換(例えば太字 \textbf から斜体 \textit へ)という一発で最終的な出力の変更が完了します。

要するに、ユーザは最終的な「見た目」を気にすることなく、「どうしたいか」という目的さえ考えていれば、あとは LaTeX が解釈してうまくやってくれるということです。つまり、マークアップ言語である HTML の考え方に似ていて、ユーザは体裁を気にせずにただ文章を書くことに専念できる、というわけです。

ここまで理解すれば、Word と LaTeX による文書作成速度の比較という議論はナンセンスであることが分かります。それでもやはり Word と LaTeX のどちらが良いかということを考える必要が生じる要因として、実際に論文誌の投稿規定に「Word で投稿する場合」「(La)TeX で投稿する場合」というインストラクションがあり、いずれか一方しか認められていない場合もあることも一つ挙げられると思います。これには出版側の都合もあるわけで、出版社の編集の手間を軽減するために体裁を統一したいという意図があるのは理解できますが、このように並列されている以上実務的な利害が投稿側にも生じ、どちらを使おうかという議論も必然的に生じてしまいます。そういうときに、単に入力速度だけを比較して効率がよいかどうかを議論した調査結果を鵜呑みにするのではなく、文書の目的に合ったツールを選べるように正しい判断材料を持っておくことが重要です。例えば

  • 短いレポートを書くときは Word(入力の手間が少なく、かつ A4 一枚に効率よく配置を微調整するなどの可能性を考慮)、ただし数式を多用する場合は LaTeX(複雑な数式は LaTeX の方が得意)
  • 規模の大きなレポートを書くときは LaTeX(章立てなどのスタイル管理しやすい)

といった基準を自分なりに決めておいてもよいでしょう。それぞれの特長を知って活かせることが大切だと思います。

 

TeX/LaTeX に関する誤解(2):用語の混同

この記事では TeX/LaTeX という用語を使っていますが、よく TeX = LaTeX と誤解されています。ここで正しい用語の区別を説明します。

TeX はフリーの「組版システム」兼「組版向けマークアップ言語」です。すなわち、活版印刷のような「文字や図版などの要素を紙面に配置する」という作業をコンピュータで行います。昔は植字工が一字一字、文字を手作業で配置して組版していたわけですが、D. E. Knuth は世界中の組版技術を研究し、コンピュータによってこれを自動化したのです。その過程で KnuthTeX 言語を開発し、それを使って TeX という組版システムを確立しました。

LaTeX は「TeX の上に構築されたフリーの文書処理システム」です。TeX は「組版のために開発された関数型言語*5」でもあるため、そのままでは一般ユーザにとって使いにくいものでした。LaTeX では一般的な文書作成に便利な機能拡張がなされていて、一般の誰もが TeX 言語を学ぶことなく、出版に耐える文書を作成できるインターフェースを提供してくれているのです。

LaTeXTeX 言語を利用して記述されたマクロパッケージの一つにすぎず、そういうわけで、TeXLaTeX は別物です。ただし、広い意味で TeX システムの一部として LaTeX があるという見方はできます。実際に TeX システム関連ツールを使っている大半の人は LaTeX を使っていますのでよく混同されますが、注意しましょう。「私は TeX 使えます」と言うと、それは TeX プログラミングができますと言っていることになりかねないので、不用意に TeX というのは避けた方が良いかもしれません*6

 

TeX/LaTeX を使う者として気にかけるべきこと

ここまで TeX/LaTeX に重点を置いて説明してきましたが、誤解されたくないのは「私は TeX/LaTeX 至上主義ではない」ということです。このブログでも時々 TeX/LaTeX 関連記事を投稿していますが、あくまで私は LaTeXツールの一つとして利用してきましたし、これからもそうするつもりです。

本記事を執筆した意図は、一つは「TeX/LaTeX にあまり詳しくない人にとって、こうした情報にアクセスできる経路があまり充実していない」と判断したからです。もう一つは「実際に LaTeX を利用していても、そのツールとしての特性に気づいていない場合が多いのではないか」と思ったからです。こうした状況はあまり好ましいとは言えません。そこで、少しでもこのギャップを埋めるべく、以下で考察したいと思います。

ツールに対する意識:TeX の特異性

TeXLaTeX を学ぶ」ということを考えたとき、TeX/LaTeX には Word などといったほかの文書作成ツールにはない“ある特徴”があります。それは、TeX組版システムであると同時にプログラミング言語でもあるという特性に関係しています。以前ツイートしましたが、他のプログラミング言語の場合は、皆「開発者」になることを目的として言語を学ぼうとしているのに対し、TeX の場合は「LaTeX を使って文書を作りたいだけの人間」と「TeX 言語を極めたい人間」が共存する特異なコミュニティであるといえます。

多くのユーザにとって TeX 言語は学ぶ必要のないものであり、そうなるように LaTeX が開発されたわけですが、LaTeX を学ぼうとすると必然的に「言語としての TeX」の側面を見せつけられてしまうという事態が、遅かれ早かれ訪れるのが現状です。こうした事態は、そもそも開発目的でプログラミング言語を学ぶ場合や“見たまま文書作成ツール”を使う場合には起こりえず、特異なものです。ただ文書を作りたくて、そのために LaTeX を使う必要が生じたにすぎないユーザにとっては、この特異性が問題になります。

  • 何かうまくいかないことがあって調べると開発者コミュニティのようなものにたどりつき、TeX プログラミングを見せつけられる
  • LaTeX 原稿を書いていると、まるでプログラミングをしているかのような錯覚に陥る

といった例は無数に見受けられる一方で、当の TeX コミュニティ側はこの特異性を意識していないがために、しばしば行き違いが生じます。これこそが TeX/LaTeX のコミュニティの“近寄りがたさ”を生み出している一つの要因ではないでしょうか。

この溝を埋めるためには、双方が正しいツールとしての TeX/LaTeX に対する理解を持つことが重要です。すなわち

  • 熟練者側:「TeX を学ぶ」という表現には、「LaTeX を使って文書を作りたいだけの人間」と「TeX 言語を極めたい人間」が混在している。TeX は本質的にそうした性質を持ち、特異なコミュニティである。
  • 初心者側LaTeX の裏には TeX プログラミングという側面があり、自分が得たい出力が(たとえ意図せずとも)技術的に難しいことがありうることを承知しておく。それを極めるのでなければ、むやみに TeX 言語に立ち入らない。

ということを意識した方が良いのではないかと思います。

TeX/LaTeX に傾きすぎない

少し TeX/LaTeX に慣れてくると、なんでもできるかのような錯覚に陥ることがあるかもしれません。しかし、時と場合によってツールを使い分けることを忘れてはいけないでしょう。

例えば、学術雑誌に論文を投稿する場合、フォーマットは規定されています。そのとき、LaTeX でなければ 受理されない場合や、逆に Word でなければ受理されない場合もしばしば見受けられます。現状では相互変換ツールは万能ではありませんので*7、手作業で変換するとなると書き換えは意外と大変です。よって、最終的な目的を考えて、慎重にツールを選びましょう。私が所属している化学・生物系の研究室の場合は、そもそも周囲に LaTeX を使っている人はまずほとんどいません。論文投稿も Word 形式のみ受け付けている場合がほとんどです。逆に、数学や物理系の研究室では LaTeX でなければレポートや論文を受け付けない場合がほとんどだそうです。そのような場合は「郷に入っては郷に従え」ということでツールを選択すべきです。

また、Word でレポートを書くからといってすべてを Word の機能内で書く必要はないわけです。例えば、数式だけ LaTeX を使って記述し、画像として挿入するという選択肢もあります。これは Word と LaTeX の間に限ったことではなく、LaTeX 数式を PowerPoint スライドに貼りつけるのも良いですし*8LaTeX で作成する文書に挿入する図を Office で作図するのも良いでしょう。それぞれのツールとしての特性を正しく理解すれば、上手に使い分けることができるわけです。したがって

  • LaTeX を使ったことがない方へ:一度は触れてみて、その特徴を理解してはいかがでしょうか。
  • Word や Writer は嫌いだという方へ:機能を十分に知らないだけではないか、もう一度メニューを開いてみてはいかがでしょうか。

ということをお勧めします。

まずは TeX Wiki へ!

最近まで、かなり長きにわたり「TeX Wiki はわかりにくい」「必要な情報が見つからない」という声をよくききました。中には「TeX Wiki検索エンジンで上位にくるが、どうせ見てもわからないので上位に出ても無視」という方々もちらほら見受けられました。これはもちろん、前述の行き違いが一つの要因です。

昔は日本国内に TeX/LaTeX ユーザが少なく、ツールを入手すること自体難しかったという話もありますが、今では大学などで広く LaTeX が使われるようになり、情報も Web 上に多数あふれるようになりました。インストールも Web から簡単にできるようになっています。その一方で、LaTeX の特性に関する基本的な情報が欠けていたり、既に過去のものとなりつつある情報がいまだに Web 上で参照され続けるという問題も生じるようになりました。

実は私自身、LaTeX を使い始めるにあたって参照したのは TeX Wiki でも「美文書」でもなく、Web 上でいくつか拾った入門らしきサイトでした。それらも十分充実していますが、少しずつ使い慣れていくにつれ、必要な情報が TeX Wiki に集約されていることにとうとう気づきました。自分が必要な情報にアクセスするのは難しいのですが、確かに TeX Wiki の中を頑張って探せばどこかに必要な情報が載っていて、それを努力して解読するという繰り返しになりました。情報は有志によって絶えず更新されていて、そこで今まで自分が使っていた方法が今ではどうやら良くないらしいことにも何度も気づきました。そこで、皆さんにまずは TeX Wiki へ行くことをお薦めします

誰でも編集でき、それゆえに新しい情報が集まる、これこそが TeX Wiki の良い点だと思っていますが、問題なのが情報の探しづらさでした。この問題については、いま有志の方々が、少しずつですが改訂に協力してくださっています。前述のとおり TeX 界隈は「ユーザ」と「開発者」が共存する特異なコミュニティですので、情報を様々な立場の人にとって利用しやすくするのは非常に難しいわけですが、鋭意努力中だと思ってください。安心して TeX Wiki を参照してください。

  • 分からないことがあったら、まずは TeX Wiki へ。
  • 見つからなければ、Google などで検索。
  • それでもわからなければ、状況を TeX ForumTeX Q&A で詳細に説明して質問。

質問する前に、まず TeX Wiki などで調べてみましょう。多くの人がつまずくポイントについてはどこかにに書かれているはずです。質問するときは「OS は?」「どうやってインストールしたか?」「どんな作業をしたら、どんなエラーが出たか」を最初に説明し、回答によって解決したら「解決しました」とコメントするのがマナーですね。その情報があれば、回答者もスムーズですし、あとから同じ悩みにぶつかった場合にも参照してもらえます。私なりの良い質問・報告のしかたを以下にまとめてあります:

(補足)主に TeX/LaTeX に詳しい方へ

私自身も TeX Forum および TeX Q&A に参加していますし、TeX Wiki の編集にも関わるようになりました。TeX/LaTeX にある程度詳しくなると、初心者の頃にどうやって学んだかということが次第に意識から薄れていくような気がしますが、まだ初心を忘れないうちに貢献できる部分で貢献したいと思います。

実際に書く側になってみると、初心者にわかりやすい記事を書くにはそれなりのスキルが必要なこともわかってきました。また、特異なコミュニティである以上、ことさら難しいのがさまざまな立場の人がアクセスしやすいような整理ですが、少しでもご参加いただけると幸いです。それが長期的に見て TeX コミュニティにとって利益になるのではないかと期待しています。

それから、LaTeX ユーザに極力 TeX プログラミングを見せずに済むよう、初心者でもしばしば必要になりうる便利な機能は、パッケージとしてまとめて提供していただけると助かります。

 

あとがき

私自身の興味の対象は「いかに TeX/LaTeX に対する誤解を解くか」「いかにして広くツールとしての TeX/LaTeX への理解を得るか」という点にあります。これはもう一つ、私が参加しているケムステ (Chem-Station) で「化学コミュニケーション」、すなわち化学を専門としない人にどうやって化学を知ってもらうかという試みとも通じています。

いま「化学といえば有機合成」とでもいわんばかりに有機合成が化学の華であるかのような風潮がありますが、化学はそんな幅の狭いものではなく、分析化学だって理論化学シミュレーションだって化学の重要な分野として知られるべきですが、これらはまだほとんど一般には知られていません。この状況をどうやって打破しようかと、日々模索中です。

長々と個人的な意見を書き連ねてきましたが、何かを考えるきっかけとなれば、あるいは変化のきっかけとしてもらえれば嬉しいです。おまけはこちら

 

参考資料

*1:WYSIWYG: What You See Is What You Get といいます。

*2:いわば WYSIWYM: What You See Is What You Mean なツールです。

*3:もちろん「見出しを付ける」といった機能は Word にもありますので、これらを使いこなしていた方ならばスタイルを一括で変更するなんて何でもないと思うかもしれません。しかし、例えば「いままで文書中でMS明朝とMSゴシックを主に使っていて、一部強調したいところにメイリオを使っていたけれど、やっぱりメイリオの文字だけしっくりこないので、メイリオをやめてHGゴシックにしよう」と考えたとき、文書中のメイリオの場所だけ探すといったら文書が長ければ長いほど大変です→コメント参照。

*4:意外と Word ではフォントの変更と色付け、サイズ変更、太字・斜体・下線機能の外に使ったことはない、という人も多いのでは?

*5:マークアップ言語であり、かつチューリング完全性を備えた関数型言語でもあるという性質を持っています。

*6:TeX 言語を操る人は TeXnician と呼ばれます。日本人 TeXnician は LaTeX ユーザに比べてごく少数ですし、私もただの LaTeX ユーザです。

*7:そもそも思想の異なるツールなので、完全な変換は原理的に不可能です。

*8:これは実用上でも利点があります。Microsoft PowerPoint 2010 (Windows) では、Word 2010 と同様の数式エディタが利用できますが、この数式エディタは Office for Mac 2011 の Word 2011 では有効なのに対し、PowerPoint 2011 には付属していないため「Windows でスライドを作って pptx 形式で保存し、Mac で開くと数式が化ける」といった現象が頻発します。これは、予め数式を画像化しておけば回避できますし、その一つのツールの選択肢として LaTeX の数式画像化は有効です。