TeX Alchemist Online

TeX を使って化学のお仕事をしています。

MacTeX 2018 のインストール&日本語環境構築法【Mojave対応更新版】

f:id:doraTeX:20030806235338j:plain

(MacTeX 付属の mactex.jpg より)

本記事は昨年の記事の Mojave 対応改訂版となります。

doratex.hatenablog.jp

世間では TeX Live 2019 の pretest が始まっている中,今さらとなりますが,昨年の MacTeX 2018 インストール+ヒラギノ埋め込み設定法の記事を macOS 10.14 対応にアップデートしておきます(10.13以下にも対応)。

TeX Live 2018 の新機能・仕様変更の詳細は,次の2つの記事に網羅的にまとまっていますので,そちらをご参照ください。

acetaminophen.hatenablog.com

acetaminophen.hatenablog.com

Mac 用の代表的な TeX Live ディストリビューションが,MacTeX になります。

個人的には MacTeX は使っていないのですが,日本にも MacTeX のユーザは多いようですので,MacTeX のインストール&ヒラギノ埋め込み設定手順を解説しておきます。最新の Mojave を含む各OSに対応しています。初心者でも分かるよう,丁寧に手順を解説しておきます。

1. MacTeX 2018 をダウンロード&インストール

※MacTeX 2018 をインストールするには,OS X 10.10 Yosemite 以上のOSが必要です。

※ 旧バージョンの MacTeX 2017 以前がインストールされている場合であっても,(ディスク容量の無駄を気にしなければ)旧バージョンを事前に削除しておく必要はありません。

MacTeX 2018 はファイルサイズが大きい(3.42GB)ため,ダウンロードする際は,公式サイトよりも,近くのミラーサイトからダウンロードした方がよいでしょう。

お近くのミラーサイトから,最新の MacTeX の pkg ファイルをダウンロードします。

f:id:doraTeX:20180501115653p:plain

↑ミラーサイトからダウンロード

f:id:doraTeX:20180501115724p:plain

↑ダウンロードされるこのファイルをダブルクリック

f:id:doraTeX:20180501115858p:plain

↑「続ける」を押してインストールを実行


このように,MacTeX のインストール自体は簡単ですが,デフォルトではヒラギノフォント埋め込み設定,TeXShopの和文文書編集用設定がなされていません。 そこで,以下では,(u)pLaTeX + dvipdfmx + TeXShop でヒラギノ埋め込み和文文書作成をするための設定手順を解説します。

一部の設定には,ターミナルでコマンドを打ち込む必要があります。ターミナルは

/Applications/Utilities/Terminal.app

にあります。Finderで Command + Shift + U を押して「ユーティリティ」フォルダを開き,「ターミナル」アプリをダブルクリックするのが簡単でしょう。

f:id:doraTeX:20160607234014p:plain

2. Xcode Command Line Tools のインストール

Xcode Command Line Tools がインストールされていない環境では,tlmgr を実行すると,Xcode Command Line Tools のインストールを求めるダイアログが表示されます。

f:id:doraTeX:20180501121518p:plain

実は,このダイアログは「今はしない」を押して無視しても問題ありません。ですが,TeX Live を使っていると tlmgr コマンドを実行する機会が多く,そのたびにこのダイアログが表示されると面倒です。Xcode Command Line Tools はあって困るものではありませんので,ついでにインストールしておきましょう。Xcode Command Line Tools を明示的にインストールするには,

xcode-select --install

とすれば上記のダイアログを表示できます。既にインストール済みの場合はその旨表示されます。

【別解】

bash の場合,

CC=: tlmgr ...

のように tlmgr を起動すれば,このダイアログが表示されるのを抑止できます。sudo で tlmgr を起動する際には,

sudo bash -c "export CC=:; tlmgr ..."

のようにすれば抑止できます。が,毎回このように tlmgr を起動するのも面倒なので,さっさと Xcode Command Line Tools をインストールしてしまいましょう。

3. tlmgr で最新版にアップデート

まずは,TeX Live レポジトリの内容を最新版に更新するため,次のコマンドを打ち込んで実行してください(管理者ユーザで実行していることを前提としています)。

sudo tlmgr update --self --all

このとき,パスワードが問われます。このとき,セキュリティ上の理由により,打ち込んだパスワードは画面に一切表示されません。 パスワード文字数が見えてしまうのを防ぐため, * * * * のようなマスク文字も表示されません。 そのため,まるでキーボードが効いていないかのように見えますが,入力はされていますので,気にせずにパスワードを最後まで打ち込んで,return キーを押してください。

なお,sudo は管理者権限を用いて実行するためのコマンドです。一度実行すると,それからしばらくの間はパスワードなしで sudo を連続実行できます。

4. ヒラギノフォントの埋め込み設定

TeX Live のデフォルトでは,和文フォントとして IPAex フォントが埋め込まれる設定になっています。macOS に標準で用意されている美しい多書体のヒラギノフォントを TeX で使用するためには,munepi さんによる次のパッチを適用します。 (名前は bibunsho7-patch となっており,『[改訂第7版]LaTeX2e 美文書作成入門』の付属DVD用のパッチという位置づけなのですが,実は MacTeX にも対応していますので,『美文書作成入門』の有無とは無関係に使えます。)

github.com

上記リンクで,最新のパッチの dmg ファイルをダウンロードします。

f:id:doraTeX:20190327011139p:plain

ダウンロードされた dmg ファイルをダブルクリックします。

f:id:doraTeX:20190327011325p:plain:w150

マウントされて出てくる☃︎︎風のアイコンの Patch.app をダブルクリックします。

f:id:doraTeX:20190327011406p:plain:w150

警告ダイアログが表示されたら「開く」をクリックします。

f:id:doraTeX:20190327011431p:plain:w300

権限昇格ダイアログが表示されたら管理者ユーザのパスワードを入力します。

f:id:doraTeX:20190327015138p:plain:w300

「完了」というダイアログが表示されたら完了です。

以上で,(u)pLaTeX + dvipdfmx によって,美しいヒラギノフォントを埋め込んだ和文PDFを作成できるようになりました。

5. TeXShop の日本語設定

MacTeX をインストールすると,Mac 定番の TeX 統合環境である TeXShop が標準で付属してきます。日本語環境で TeXShop を使用するための設定手順を示します。 TeXShopは

/Applications/TeX/TeXShop.app

にインストールされています。

5.1 TeXShop の更新

MacTeX 2018 には,リリース時点での最新版 TeXShop が収録されています。TeXShop は更新頻度が激しいので,入手時点ではより新しい TeXShop がリリースされている可能性が高いです。最新版にアップデートしておくのがよいでしょう。 TeXShop を起動して,メニューから

TeXShop → アップデートを確認...

を選び,最新版へ更新しておいてください。

もしも自動アップデートに失敗する場合は,TeXShopの公式サイト から最新版のTeXShopをダウンロードして,/Applications/TeX/TeXShop.app を手動で置き換えてください。

5.2 TeXShop の日本語設定

TeXShop を起動して,メニューから

TeXShop → 環境設定...

を開いてください。設定画面が現れますので左下の 設定プロファイル ボタンをクリックします。 Unicodeを活用できる upLaTeX を使用する場合は upTeX (ptex2pdf) を,従来の pLaTeX を使用する場合は pTeX (ptex2pdf) というプロファイルを選択してください。(個人的には,これから LaTeX を始める人には,「この漢字はJIS第何水準漢字」とかを気にしなくていい upLaTeX の方がお勧めです。)

また,フォントは初期状態では Helvetica - 12 になっていますが,和文等幅フォントを使用したい場合は Osaka - 等幅 に変更しておくと見やすいでしょう。

f:id:doraTeX:20180501120607p:plain

今時だと,Adobe製のプログラミング用等幅フォント Source Han Code JP がいいかもしれませんね。

ics.media

設定変更を終えたら,OKボタンを押して環境設定を確定させ,一度 Command + Q で TeXShop を終了させましょう。*1

5.3 その他の推奨設定

TeXShop を終了させた後,ターミナルで次のコマンドを実行しておきましょう。

defaults write TeXShop FixLineNumberScroll NO
defaults write TeXShop SourceScrollElasticity NO
defaults write TeXShop FixPreviewBlur YES

そして,改めて TeXShop を起動します。

補足:これらの設定の意味

1行目の FixLineNumberScroll NO は,(10.7 Lionなど)古いOSにおいて存在した,行番号がスクロールしないOS側のバグに対処するための対症療法を停止させる措置です。最近の macOS ではこのバグが修正されていますので,この対症療法は不要となりました。対症療法が残っていると,スクロール速度が遅くなる原因となります。

2行目の SourceScrollElasticity NO は,スクロール時に上下端で大きく跳ね返るバウンスエフェクトを停止させる措置です。OS X 10.10 Yosemite 以降では,このバウンスがかなり大げさになり,以前のOSと比べてうっとうしさが目立つようになりました。ですからこのエフェクトは停止させておくのがよいでしょう。

3行目の FixPreviewBlur YES は,OS X 10.10 Yosemite 以降において,プレビューウィンドウのPDFが(一部の環境で)ぼやけて見えてしまうのを防止する措置です。

5.4 バックスラッシュ \ と円マーク ¥ をめぐる問題

環境によっては,TeXShop のウィンドウ上でJISキーボードの円マーク ¥ キーを押すと,TeXShop のウィンドウ上に円マーク ¥ あるいは \yen という命令が入力されてしまうケースがあります。これについては,日本語入力の設定,またはOSの入力設定をカスタマイズすることで,¥ キーをバックスラッシュ \ として入力するように設定しましょう。

また,TeXShop側の設定で,円マーク ¥ が入力されたら自動的にバックスラッシュ \ と入力されるように設定しておくと便利でしょう。


これで準備は完了しました。Happy TeXing!

6. 実験

和文 LaTeX 文書を作成してみましょう。TeXShop で次の文書を作成してください。

\documentclass[dvipdfmx,autodetect-engine]{jsarticle}% autodetect-engine で pLaTeX / upLaTeX を自動判定

\begin{document}

吾輩は猫である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所で
ニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。

\end{document}

なお,ソースウィンドウ上のスペルチェックが鬱陶しいという場合は,

環境設定... → 書類 → エディタ → スペルチェック

および

編集 → 入力中にスペルチェック

のチェックを外してください。

この文書に適当なファイル名を付けて保存し,Command + T を押してコンパイル(タイプセット)します。生成されたPDFが表示されれば成功です!

7. さらに使いこなすために

LaTeX のより進んだ使い方は,TeX Wiki や奥村晴彦・黒木裕介著『LaTeX2e 美文書作成入門』などを参照してください。

また,TeXShop には,コマンド補完機能をはじめ,TeX 文書作成を補助する多彩な機能が用意されています。メニューや環境設定を探ってみると,便利な機能の数々が見つかることでしょう。トラブルシューティングや Tips は,TeX WikiTeXShop FAQ に多数集められていますので,疑問が生じた場合はまずはこちらを参照してみてください。

*1:TeXShop の設定の一部には,「次回起動時から反映」という性質ものもがあります。ですから,環境設定パネルで何かの設定を変更した場合は,一度 TeXShop を終了させるようにしておくのが確実です。

TeX で乱数を使う (4) ~ 2次元シャッフル

前々回の記事 TeX で乱数を使う (2) では,「インプットした問題ストックからランダムな順序で出題する」というお題を扱いました。前回の記事 TeX で乱数を使う (3) では,「語順整序問題における語順をランダムに並べ替え,逆置換を用いてその正解も自動表示する」というお題を扱いました。今回は,その2つを合体して,「語順がランダムに並べ替えられた語順整序問題を,ランダムな順序で出題する」という複合版を実現してみましょう。

これはすなわち,「問題の順序」と「各問題における語順」という2方向のシャッフルが絡み合うことになります。

f:id:doraTeX:20190118130045p:plain
2方向のシャッフルの共存

2方向のシャッフルが同時に共存するので,名前空間の分離を意識するなど,しっかり設計しておかないと双方のシャッフルが干渉してしまいます。randomshuffle パッケージの name オプションに問題番号を含めることで,「シャッフルのシャッフル」が干渉せぬよう実現できます。randomshuffle パッケージ自体も,2方向のシャッフルの共存にしっかり耐えるよう改修しておきました。

続きを読む

TeX で乱数を使う (3) ~ 逆置換の活用

前回の記事で作成した randomshuffle パッケージは,n次対称群 $\mathfrak{S}_n$ の元 $\sigma$ をランダムに生成したとき,同時にその逆置換 $\sigma^{-1}$ も生成する仕様になっていました。逆置換はどういう場面で役立つのでしょうか。

例えば次のような,英語の試験でよくある語順整序問題とその解答を見てみます(問題ネタは2016年センター試験「英語」より)。

f:id:doraTeX:20190117014913p:plain

このような語順整序問題の生成と解答表示では,次のように,置換とその逆置換が両方作用しています。

f:id:doraTeX:20190117022232p:plain

まず,解答選択肢記号 ㋐~㋕ に応じて単語を順に割り当て,それをシャッフルすることで問題の語群を生成します。次に,解答においては,空欄番号 1~6 に当てはまる正解の単語記号 ㋐~㋕ を表示します。このとき,前半の「シャッフルされた語群の生成」と後半の「それを正しい順に並べた単語記号列の生成」では,ちょうど置換と逆置換の関係になっています。

これを利用して,ランダムにシャッフルされた語群を毎回自動生成し,その正解も自動出力するという文書を作ってみましょう。

続きを読む

TeX で乱数を使う (2) ~ ランダムなシャッフル

前回の記事では,TeX で乱数を生成するいろいろな方法を調べ,その使用例としてモンテカルロ・シミュレーションを見ました。本記事では,実際の組版の場面においてより実用的と思われる乱数の活用例を見てみましょう。

教材作成の仕事をしていると,周囲でしばしば「TeX で乱数って作れないんですか?」という質問を耳にします。前回の記事で見たように,TeX で乱数を生成する方法は多々あります。しかし,そのような質問をする教材作成関係者が思い描いている「乱数」というのは,乱数そのものではなく,「ランダムなシャッフル」である場面が多く見られます。要するに,「問題がランダムな順序で出題される試験問題を作りたい」という要望であるわけです。乱数の場合,1, 3, 3, 1, 3, 2,... のように,同じ値が何度も登場しますが,それをそのまま試験の問題番号としてしまうと,同じ問題が何度も出てきてしまって,試験としてふさわしくありません。あくまで,n個の問題を並べ替えた n! 通りの順列の中からランダムに1つの順列を選び出して試験として出題したい,というわけですね。

シャッフリングアルゴリズム

さて,n個のものをランダムな順序にシャッフルするには,どうすればよいでしょうか。これもまた Knuth 先生の The Art of Computer Programming を見てみましょう。The Art of Computer Programming, Vol.2, 3rd ed., §3.4 に,Algorithm P として,次のようなシャッフリングアルゴリズムが掲載されています。

f:id:doraTeX:20190116000732p:plain
出典:Donald E. Kunth, The Art of Computer Programming, Vol.2, 3rd ed., §3.4

このアルゴリズムを TeX 言語で実装してパッケージ化してみました。

続きを読む

TeX で乱数を使う

この記事は TeX & LaTeX Advent Calendar 2018 の19日目の記事です。18日目は keisuke495500 さんでした。 20日目は isaribi_saitoh さんです。

本記事では,TeX で乱数を取り扱う方法,および乱数の活用法を解説します。

  • 線形合同法による擬似乱数生成
  • seed の与え方
    • TeX による時刻取得
  • TeX で擬似乱数を生成する種々の方法
    • lcg パッケージ
      • 毎秒異なる seed を指定したい場合
    • fp パッケージの \FPrandom
    • pgf パッケージの rnd / rand / random
    • 専用プリミティブ
      • 実装
      • 既知の不具合
    • expl3 の \fp_eval:n
    • LuaTeX の math.random
    • LuaTeX でメルセンヌ・ツイスターの Lua 実装ライブラリを呼び出す
  • 乱数を使う:モンテカルロ・シミュレーション

線形合同法による擬似乱数生成

決定的な動きをする計算機で真の乱数を作り出すことは原理的に不可能なので,(熱雑音を利用するハードウェア乱数生成器など外部からの不規則な入力を用いてランダムネスを実現する方法はありますが)通常は見た目上ランダムに見える数列を計算式に従って規則的に作り出した擬似乱数を用います。擬似乱数を作り出す計算式としては,素朴な方法である線形合同法 (Linear Congruential Generator, LCG) が,実装の単純さおよび動作の高速さゆえに,昔から広く用いられています。

続きを読む