MacTeX をおすすめできる場合とそうでない場合(私見)

2020-07-07 (updated: 2021-05-04)  #TeX Live  #macOS 

はじめに

タイトルにわざとらしくカッコ書きしたように,本稿で述べる内容はすべて筆者の「個人的見解」です.何らかの組織や集団の見解を代表もしくは代弁するものではありません.

本稿の主な想定読者は,これから macOS に TeX Live を導入しようとしている人です.残念ながら,既に MacTeX を導入してしまっている人が本稿を読んでも特に何かが解決することはありません.

さて macOS に対して TeX Live を導入する方法としては MacTeX というものが有名かつ一般的です.TeX Live として公式に,macOS においては MacTeX の利用が推奨されています1.しかし,結論から言えば MacTeX は万人に対しておすすめできるものではありません.特に,パワーユーザ(上級者,パソコンに詳しい人)であればあるほど,MacTeX のインストールはおすすめできません.ここでパワーユーザと言ったのは「TeX/LaTeX に詳しい人」ではなく「パソコン全般に詳しい人」や「macOS を使いこなしている人」です.例えば次のような人は本稿におけるパワーユーザに該当します:

  • ターミナル(いわゆる「黒い画面」)を日常的に使う人
  • Linux を利用している/利用したことがある人
  • パッケージマネージャ(Homebrew2 や MacPorts など)を使用している人

上記の条件のいずれかの条件に当てはまるパワーユーザの方々,および将来パワーユーザになりたい方々は,MacTeX の代わりに TeX Live の(UNIX 全般向けの)公式インストーラを使用した方が将来的にトラブルに見舞われる可能性が低く無難です.

勘違いして欲しくないのですが,筆者は「MacTeX は全然ダメだ」と批判しているのではありません.多くの非パワーユーザ(初心者,パソコンに詳しくない人)にとっては,MacTeX を利用したインストールは確かに簡単で楽です.そういう簡便な手段を提供しているという点で,MacTeX は素晴らしいと思います.決してなくなってしまっていいと思っているわけではありません.

以下では,なぜ筆者がパワーユーザに対しては MacTeX よりも TeX Live 公式インストーラを勧めるのか,その理由を述べていきます.この内容はやや専門的・技術的になります.ここから述べる内容が「よくわからない」「ちんぷんかんぷんである」という方は,むしろ安心して MacTeX を選んでおいて問題ないと思います.また,ここに述べる内容を理解し MacTeX に “落とし穴” があることを承知の上で,敢えて MacTeX を選ぶというスタンスはあり得ます.筆者は,そうした判断を否定するわけでもありません.

そもそも MacTeX とは何か

MacTeX は「全部入り」フルバージョンの TeX Live3 を基に,さらに macOS 専用にいくつか工夫が加えられたものです.具体的には GhostScript といくつかの macOS 向け GUI アプリケーションが同梱され,またインストール構成も一般の Linux で用いられるものとは少し異なったものになっています.

フルバージョンの TeX Live の代わりに,必要最小限の構成に限定した TeX Live4 に対して,同様に macOS 向けの追加を行った BasicTeX というものもあります.以下,本稿では BasicTeX も区別せず単に MacTeX と呼ぶことにします.

雑に言えば MacTeX は macOS 専用の「TeX Live +α」です.クリックひとつで macOS に特化した TeX 環境が容易に構築できるので,その点においてはとても便利と言えます.ただし,この「+α」の部分について(特にパワーユーザにとっての)“落とし穴”があります.さらに,これも後述するように MacTeX は一度インストールしてしまうと完全にアンインストールすることは困難です.

MacTeX は GhostScript バイナリ等をシステムのディレクトリにばら撒く

先述の通り MacTeX は TeX Live そのものに加えて GhostScript をインストールします.GhostScript は単一のコマンドを提供するものではなく,関連する数多くのプログラムをまとめたものですが,MacTeX はそれらのバイナリ等5を macOS のシステムディレクトリ(/usr/local/bin/usr/local/share)にばら撒きます.これらのバイナリが,何かの拍子に(MacTeX とは無関係の)別の GhostScript がインストールされようとしたときに衝突を起こし,問題となる場合があります.

具体的な状況を挙げると,Homebrew で特定のプログラムのインストールが上記の衝突によりエラーとなり失敗するというものがあります.パッケージマネージャで GhostScript を直接インストールしようとすると問題になることは言わずもがなですが,GhostScript を陽にインストールしようとしなかったとしても,依存関係が解決された結果,副次的に GhostScript のインストールが試行される場合がある点に注意が必要です.

このような問題が発生した場合,(本稿のパワーユーザの定義に当てはまるような人であれば)エラーメッセージを読み解きながら,時間をかけて場当たり的な対処を行うことは可能です.しかし,後述するように MacTeX の完全なアンインストールは困難であるがゆえに,一般に根本的な解決を図ることはできません.また,そうした場当たり的な対処を繰り返していると,気付いたときにはその時点でシステムディレクトリにある GhostScript 関連のファイルが,いつ何に由来して入ったものなのかもわからなくなり,完全に制御不能な状態に陥るということも想像に難くありません6

MacTeX の完全なアンインストールは難しい

そうした衝突が発生するのは MacTeX が GhostScript 関連のファイルをシステムディレクトリにばら撒くことが原因なので,MacTeX をアンインストールすれば解決しそうなものです.しかし,実はこれが困難であるという2つ目の落とし穴があります.MacTeX の完全なアンインストールが難しいということは,MacTeX の公式サイトでも明記されています.

Uninstalling Ghostscript

This step is more difficult. One way to proceed is to open the MacTeX-2020 install package and select “Show Files” from the resulting “File” menu of Apple’s installer. This will give a complete list of files installed, and their install locations.
(引用元:https://tug.org/mactex/uninstalling.html

このような事情があるため,一度 MacTeX をインストールしてしまうと,基本的にはそれに起因する問題を根本解決する手段がありません.これが Homebrew 等で GhostScript を導入する場合との大きな違いです.さらには,仮に MacTeX でインストールされたバージョンの GhostScript に深刻な脆弱性が見つかった場合に,それを直ちにアップデート(またはダウングレード)する手段があるのかも怪しいということになります.

一応,よく調べると MacTeX によりばら撒かれる GhostScript 関連のファイルを一覧にする手法を試した人はいるようです.しかし,どのような方法を採るにせよ,公式な方法は存在しないため,本当に網羅的にアンインストールが実行できているかを保証することはできません.また,そこまで苦労してアンインストールするぐらいなら,最初からインストールしない方がいい,という話になります.

ダメ押しになりますが,開発者心情的にはこういう状況は「実害の多寡」以上に「制御できていなくて気持ち悪い」という感覚からなるべく避けたいものです.ここまでが,筆者がパワーユーザに MacTeX をおすすめしない主な理由です.

MacTeX でインストールされる TeX Live は一般的な構成と異なる

最後は正直に言って「おまけ」程度の些細な問題です.というより,私自身が上の2つの理由から MacTeX を利用していないので,実態がよくわかっていません.ほぼ奥村先生のウェブサイトでの記述の受け売りです.

最新のTeX Live 2016を入れたい場合は MacTeX をインストールするのが簡単だが,一般的なUnixのディレクトリ構成と違うので,慣れた人にはかえってややこしいかもしれない。
(引用元:https://oku.edu.mie-u.ac.jp/~okumura/macosx/

具体的にどう違うのかというのが,利用者でない私にはわからないところなのですが,少なくとも異なるとわかるのはパスを通すべきバイナリの位置です.MacTeX では /Library/TeX/texbin/ をパスに追加するようですが,これは一般的な TeX Live のそれとは異なります7

いずれにせよ,macOS 向けに書かれていない UNIX 向けの記事を参考に作業を行う際に,MacTeX の場合はそのままでは通用しない可能性があることは,頭の片隅に入れておく必要があります.

代替ソリューション (1) TeX Live 公式インストーラ (install-tl) を使う

GhostScript 関連で衝突を生じる可能性があること,また完全なアンインストールが困難であるために衝突の根本解決手段が存在しないことから,パワーユーザには MacTeX は推奨できないと説明しました.

では,代わりにどうすればいいのかということですが,実は macOS でも UNIX 一般向けの TeX Live の公式インストーラを普通に利用することができます.この公式インストーラの具体的な使用法については,TeX Live の公式ドキュメント『TeX Live ガイド』の第3節に解説があり,日本語にも翻訳されています.

上記ドキュメントの UNIX 向けの解説が,macOS にもそのまま適用できます8.この前提を把握している限り,本稿でいうパワーユーザに該当するような方にとっては,特に難しいところは何もないと思います9.インターネット経由インストールの場合,時間だけはかかるので安定した通信環境のある場所で辛抱強く待ちましょう10

TeX Live 公式インストーラの実行が正常に終了すれば,TeX Live そのもののインストールはその時点で完了します.なお公式インストーラはバイナリを自動でパスに追加することはしないので,同『TeX Live ガイド』の3.4節に説明がある通りパスを自力で設定するか tlmgr path add を利用して /usr/local/bin 以下にシンボリックリンクを貼るかのいずれかを行う必要がある点には注意してください.また TeX Live 本体に含まれていないプログラムで,使いたいものがある場合は各々独自にインストールする必要があります.代表的なものについてコメントしておきます:

  • GhostScript: PostScript/PDF 関連ユーティリティ.必須ではありませんが,TeX Live に含まれるツールの一部が要求するほか,ユーザ自身が直接使いたい場合(dviout コマンドなど)もあるので,入れておくのが吉です.Homebrew や MacPorts などのパッケージマネージャを利用している場合は,普段通りそれらを利用するといいでしょう.もちろん公式サイトから自力で入手することもできます.
  • TeXShop: macOS 向け TeX 用統合開発環境.公式サイトからダウンロードできます.

代替ソリューション (2) Homebrew Cask を使う

(このセクションはいただいたコメントに基づき 2021-05-04 に追加されました.)

最近(2018年以降)は Homebrew Cask を利用して MacTeX をインストールする場合には MacTeX 同梱の GhostScript は除外され,別途 Homebrew フォーミュラを利用して安全に GhostScript が導入されるようになっているようです.

brew install --cask mactex

この場合,以下のものが Homebrew Cask の管理下においてインストールされます.

  • MacTeX 由来の TeX Live
  • MacTeX 由来の GUI (TeXShop, BibDesk, LaTeXiT, TeX Live Utility)
  • Homebrew 由来の Ghostscript(依存パッケージとして)

パッケージマネージャとして Homebrew を普段から使っているという方にとっては,現在はこの方法を用いるのが最も手軽かもしれません.Homebrew Cask を利用して MacTeX を導入した場合に限っては,以下のコマンドで完全なアンインストールも実現できるようです:

$ brew uninstall --zap mactex

なお MacTeX 由来の GUI アプリケーションが必要ない場合は mactex-no-gui フォーミュラを利用する手もあります.

$ brew install --cask mactex-no-gui

結論

MacTeX はほぼワンクリックで macOS に一通りお膳立てされた TeX 環境を構築してくれる便利なものです.しかし,特に TeX 以外のツールも自力でビルドなりインストールなりをするようなパワーユーザにとっては,将来的にシステムディレクトリでバイナリ等が衝突する危険性を孕んでいます.さらに厄介なことに,MacTeX は一度インストールしてしまうと,原則として元の状態に戻すことも難しくなってしまうという致命的な落とし穴があります.

MacTeX を使用しなくても,公式インストーラを使用することで TeX Live の導入は簡単に行うことができます.パワーユーザという前提の下では,TeX Live 本体のインストールは,公式インストーラを用いても実質的に「ワンクリック」と大差ありません.その後,パスを通したり,必要に応じて追加で GhostScript や GUI をインストールする必要はありますが,やはりパワーユーザと呼べる範疇の方々にとってはまったく支障ない程度のものだと思います.むしろ MacTeX のインストールを行って,万一 GhostScript の衝突が実際に起きてしまうと,その対処にはよほど多くの時間を取られることになる可能性が高いです.

また最近では,Homebrew Cask を利用することで環境を汚さずに MacTeX を導入することができるようになったため,既存 Homebrew ユーザにとってはこちらも有力な選択肢になるでしょう(2021-05-04 追記).

パワーユーザであっても,衝突発生のリスクがあること,アンインストールが困難なことを認識した上で,それでも MacTeX で構わないと思った方が MacTeX を利用することを筆者は否定しません.とにもかくにも MacTeX が絶対悪だと主張したいわけではありません.本稿を公開することで,今後「よくわからないうちに MacTeX をインストールしてしまい,後から取り返しがつかないということを知って後悔する」というようなユーザが,一人でも減ってくれればと願っています.


  1. 日本語版『TeX Live ガイド2020』 (PDF) 3.1.2節「TeX Live インストーラを利用するよりも,MacTeX を利用したインストールをおすすめします」.原文 (PDF) では “We recommend using the native MacTeX installer instead of the TeX Live installer on Mac OS X”. ↩︎

  2. Homebrew Cask を利用して MacTeX をインストールする (brew cask install mactex) ことができますが,Homebrew Cask を利用するということはその時点で「Homebrew ユーザ」です.要するに,個人的見解ではありますが,Homebrew Cask を利用した MacTeX の導入は,いかなる場合にも推奨できないということになります.最近では Homebrew Cask を利用すれば安全に MacTeX を導入できるようです.詳細を代替ソリューション (2) として後述します. ↩︎

  3. これを TeX Live の用語では「full スキーム」と言います. ↩︎

  4. これは TeX Live の「small スキーム」に対応します. ↩︎

  5. 厳密にはバイナリだけでなく,man ページなども各々あちこちにばら撒かれます. ↩︎

  6. 他人事みたいに書きましたが,これは筆者の旧 MBA で実際に起きてしまったことです.つまり経験談です…… ↩︎

  7. さらに専門的な話になりますが,調べた限り TEXMFDIST/TEXMFLOCAL/TEXMFHOME の規定値は,MacTeX 利用でも公式インストーラ利用の場合と違いがなさそうです. ↩︎

  8. macOS だって一応 UNIX です!(「一応」を付けても付けなくても怒られそうなので悩みました) ↩︎

  9. いずれ macOS ユーザ向けの TeX Live 公式インストーラを用いた導入ガイドを,日本語特有の設定についても言及しながら記事にまとめたいとは思っていますが,本稿の範疇を超えるのでそれはまたの機会にします. ↩︎

  10. なおダウンロードに時間がかかるという点は MacTeX を利用する場合も同じだと思います.その点において TeX Live 公式インストーラが MacTeX に対して不利ということは特にないはずです. ↩︎