TeXShop > TeXShop FAQ
macOS 用の TeX 統合環境である TeXShop について,よくあるトラブルへの対処法や Tips をまとめます。
TeXShop の文字コード設定が,デフォルトエンコーディングの「欧米 (ISO Latin 9)」のままになっていることが原因でしょう。 TeXShop には文字コード自動判定機能はありませんので,開きたい TeX ソースの文字コードと,TeXShop の文字コード設定が一致している必要があります。
現在,日本語 TeX ソースは UTF-8 で作成するのが標準となっています。(古い時代の TeX ソースには Shift-JIS (CP932) や EUC-JP で書かれたものが残っているかもしれませんが。) ですから,TeXShop の環境設定において,エンコーディングを「Unicode (UTF-8)」に変更しておきましょう。
全ての TeX ソースを UTF-8 で作成し,UTF-8 対応の TeX エンジン(pTeX, upTeX, LuaTeX, XeTeX などは,現在デフォルトで UTF-8 入力に対応しています)でコンパイルするよう統一しておけば,文字化けに悩まされることはなくなるはずです。
なお,文字コード設定を変更した後は,TeXShop を再起動しないと設定が反映されないかもしれません。設定変更した後は TeXShop を再起動しておくのが無難です。
OS X Mavericks 10.9.5 のアップデートにおいて,デジタル署名のバージョンがアップデートされた影響で,それ以前の時代に開発されたアプリを自動アップデートしようとすると,アップデートに失敗することがあります。 TeXShop のメニューからの自動アップデートがうまくいかない場合は,TeXShop の公式サイトから最新版の TeXShop をダウンロードして,既存の TeXShop.app を上書きすることで,手動アップデートを行ってください。
これは TeXShop というより MacTeX の Ghostscript の問題です。
この現象は 非 Retina ディスプレイ搭載 + Yosemite / El Capitan 搭載 の Mac でのみ生じる問題です。 Yosemite 以降のPDF レンダリングエンジンにバグがあるために生じる現象で,OS の PDF レンダリングエンジンを使用している Skim など他の PDF ビューアでも同じ問題が発生しています。 この現象は,OS X Yosemite 10.10, 10.10.1, 10.10.2 で特に顕著に発生します。10.10.3 のアップデートで随分改善されたように見えましたが,10.11 El Capitan でまた再発したようです。
TeXShop では,上記条件に該当してぼやける現象が発生する場合のために,対症療法的処方箋を用意してあります。 ターミナルで次のコマンドを実行して TeXShop を再起動してください。対策が施されます。
defaults write TeXShop FixPreviewBlur YES
ただし,10.11 El Capitan では,上記対処による改善がよく効く場合と,あまり効かない場合とがあるようです。
追加情報:macOS 10.12 Sierra でこの問題は解決したようです。Sierraにアップグレードした後は,パフォーマンスを改善するため,
defaults write TeXShop FixPreviewBlur NO
として対症療法を停止しておくとよいでしょう。
Yosemite からこのエフェクトが強化されて,特に目立つようになったようです。
defaults write TeXShop SourceScrollElasticity NO
とすればバウンスエフェクトを停止できます。
10.7 Lion において,OS のバグが原因で,ソースをスクロールしても行番号が全くスクロールされない問題が生じていました。TeXShop には,それを解決するための対症療法的解決策が仕込んであります。ただし,その対症療法は画面のちらつきや行番号スクロールの遅れの原因となります。 最新の macOS では,この問題は解決されましたので,もはや対症療法は不要になりました。
defaults write TeXShop FixLineNumberScroll NO
とすれば対症療法を停止させ,行番号スクロールを高速化することができます。 (ただし,それでも完全になめらかにというわけにはいきませんが。)
最新の TeXShop では,スペルチェックの機能をユーザが自在にコントロールできるようになっています。 スペルチェック関連の機能を完全に停止させたい場合は,以下の項目のチェックを全て外してください。
前者2つは今後新規に開くウィンドウのデフォルト挙動を規定し,後者2つは現在開いているウィンドウの設定値を規定しています。
なお,cocoAspell を導入すれば,TeXの文法を考慮したスペルチェック(例えば \newcommand のような制御綴をスペルチェック対象から除外するなど)が可能になります。詳細は cocoAspellの利用 の項目をご覧ください。
defaults write TeXShop ResetSourceTextColorEachTime YES
を実行してください。パフォーマンスが若干低下する代わりに,色の問題が解決されます。
macOS の入力システム側で対処するほうが筋ですが,TeXShop にはキーバインドの編集機能がありますので,そちらで円記号 ¥ の代わりに \ が入力されるように設定することができます。
メニューの「ソース>キーバインド>キーバインドファイルの編集」で設定画面が出てきます。
¥ に \ を割りあてて,ON/OFF 切り替えを ON にすれば有効になります。
そのまま「OK」ボタンを押して、編集ウィンドウにコードを挿入してください。 編集ウィンドウには、然るべき記号が入力されます。
編集 → クリップボードで \ を ¥ に変換
のチェックを外してください。
環境設定 → 詳細 → pTeX 拡張機能 → otf パッケージ対応 が意図せずONになっている可能性が高いです。これをOFFにしてください。特に,XeLaTeX など非 pTeX エンジンを使用している際は必ずOFFにする必要があります。詳細は「環境設定 → 詳細 → pTeX 拡張対応 → otf パッケージ対応 とは何?」の項目を参照してください。
これも 環境設定 → 詳細 → pTeX 拡張機能 → otf パッケージ対応 がONになってしまっていることに起因するトラブルです。 これがONであると,ファイル保存時に JIS X 0208 で扱えない文字を \UTF{xxxx}という形式でエクスポートして保存します。ファイルロード時はそれを逆算して元の文字に戻しますので,ユーザからはシームレスにそれらの文字が扱えているように見えます。ただし,\UTF というのは otf パッケージの命令なので,これを用いる場合は otf パッケージのロードが必須になります。また,XeLaTeX など非 pTeX エンジンを使う際にも障害になります。 そして,upTeX ならば Unicode 文字がそのまま扱えるので,\UTF で書き換えてエクスポートする必要はありません。よって,「upTeX でない pTeX で JIS X 0208 外の文字を使いたい場合」以外は「otf パッケージ対応」はOFFにしておくのが推奨です。
さて,コマンド補完のファイルは ソース→コマンド補完→補完用語ファイルの編集 から行います。このとき,プレースホルダ文字 • は,JIS X 0208 外の文字なので,もし「otf パッケージ対応」がONであると,• が \UTF{2022} に書き換えられて保存されてしまいます。 コマンド補完文字列を挿入する際は,\UTF{xxxx} から元の文字への逆算は行われませんので,「補完用語ファイル」編集画面上は • で見えている文字が,\UTF{2022} として補完されてしまうという問題が生じます。つまり「補完用語ファイル」を保存時する瞬間に「otf パッケージ対応」がONであると問題を引き起こすわけです。
そこで,今回の解決策は次の通りとなります。
これで,補完用語ファイルに \UTF{2022} ではない • が保存されるので,以降正しく補完されるようになります。
これは TeXShop というより,macOS 標準の日本語入力システムが持っているバグです。 10.10 Yosemite でそのバグが入り込んできました。 日本語入力中に制御コードが入力されてしまうことがあるようです。
見た目には何も見えませんが,カーソルキーで1文字ずつカーソルを動かしたときに,何もない場所でカーソル移動が空振りする場所があれば,そこに見えない制御コードが入っています。 これが入っていると,不正な UTF-8 文字列と見なされ,コンパイルに失敗します。
これを除去するには,正規表現一括置換で [\x{00}-\x{08}\x{0B}-\x{1F}] を削除するのがよいでしょう。
より一般には,改行や水平タブを除く制御文字全てを一括で取り除くとよいでしょう。 [\u0000-\u0008\u000E-\u001F\u007F-\u0084\u0086-\u009F\u000B\u000C\u0085\u2028\u2029] という正規表現で取り除くのがよさそうです。
「統計情報」は,シェルスクリプト TeXShop.app/Contents/Resources/detexwrap 経由で detex を呼び出します。お使いの TeX ディストリビューションに detex が含まれていないと動作しません。 類似機能である 文字情報 で代用できないか検討してみてください。
最新版の TeXShop では解決されているはずですが,もしもファイルをゴミ箱に捨てた後で「ゴミ箱を空にする...」ことできない場合は,一度 TeXShop を終了させてから,もう一度ゴミ箱を空にしてみて下さい。
それでも解決しない場合は,
$ rm -rf ~/.Trash/*
としてターミナルからゴミ箱を空にするとうまくゆくでしょう。
TeX エンジンおよび設定の如何によって,使える場合と使えない場合があります。 ただし,トラブルの原因になることが多いですので,何かトラブルが生じた際には,まずはファイル名(読み込まれる他の TeX ソースや画像ファイルも含む)を半角英数字のみにしてみてください。
アプリケーションアイコンをゴミ箱に捨てるだけでOKです。 気になるようでしたら、以下のファイルとディレクトリも削除して下さい。
なお,10.9 Mavericks 以降では,plist を手動で削除した後には次のコマンドを実行する必要があります。(理由)
killall -SIGTERM cfprefsd
TeXShop には,補完関係の機能が3種類用意されています。
最新版(3.51 以降)の TeXShop であれば,
ヘルプ → TeXShop の様々な補完機能の解説(英語)
というメニューを選べば,これらの機能解説記事が読めます。 以下,簡単に解説しておきます。
「キーバインド」は,例えば
{ と入力した瞬間に,{} が入力されてカーソルが {} の間に来る
といった,瞬間発動する入力補完機能です。(かつての TeXShop ではこの機能は「オートコンプリート」という名前でした。) これは,メニューの
ソース → キーバインド
から ON/OFF の切り替えや内容編集ができます。
「コマンド補完」は,例えば
\be と入力してESCキーを押すと \begin{ と補完される
といった,現在の入力の続きを補完する機能です。 これは,メニューの
ソース → コマンド補完 → 補完用語ファイルの編集...
から,補完辞書の編集ができます。この辞書は,下から順に補完されます。 補完後のカーソルキーの位置は #INS# で指定します。#RET# は改行コードに置換されます。
また,このコマンド補完のトリガーとなるキーをESCからTABに変更することもできます。
環境設定 → 書類 → コマンド補完キー
「マクロ」は,例えば,
command+option+e を押すと \begin{enumerate} \item \end{enumerate} と入力される
のような,一連のコードスニペットを挿入する機能です。 メニューの「マクロ」から内容やショートカットキーの割り当てを編集できます。
ソース → 現在の環境を閉じるを選択すると,現在開いている一番内側の環境(LaTeXでは \begin{hoge},ConTeXt では \starthoge)を閉じる命令が挿入されます。
例えばコマンド補完機能で
\frac{#INS#}{•}
を登録しておくと,ESCキー(または設定によってはTABキー)による補完によって
\frac{<カーソル位置>}{•}
が入力されます。第1引数を入力した後,Command + Control + F を押せば,カーソルが第2引数の位置に移動します。
TeXShop メニューの
ソース → コマンド補完 → マーク
に,「マーク」関連の次の機能が収録されています。
「マークを挿入 (Command + 8)」は,• (U+2022 BULLET) を入力する機能です。
マークには,その意味を表すためのコメントを付けることができます。 例えば補完内容を
\scalebox{•‹横倍率›}[•‹縦倍率›]{•‹内容›}
としておくと,Command + Control + F/G によるマーク間移動において,「•‹横倍率›」「•‹縦倍率›」「•‹内容›」の部分がそれぞれ一括選択された状態でカーソル移動できます。
"‹" は U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK,"›" は U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK です。
文書中の \label の一覧をリストアップして選択できる機能があります。
まで入力した状態で,ESCキー(10.11 El Capitan まで)/ F5キー(10.12 Sierra 以降)を押すと,文書中の全ての \label{} の一覧がポップアップされ,その中からラベルを選択することができます。
TeXShop の環境設定ウィンドウは,多量の設定項目によってウィンドウが煩雑になることを防ぐため,GUI から設定可能な項目の数はあえて抑えてあります。その代わり,TeXShop には,コマンドラインのみから設定できる隠し設定項目がいくつもあります。
TeXShop Simulator を利用することで,それらの隠し設定を変更するコマンドを生成することができます。
OS X 10.10 Yosemite の雰囲気に合わせるためです。Yosemite では,Apple 標準の iTunes, iBooks, App Store, Photos などのアプリのアイコンが全て丸いアイコンに変更されました。そのデザインに調和させるため,TeXShop のアイコンも丸くなりました。
ファイル冒頭に
%!TEX root = ../parent.tex
などと書いておけばよいです。
pTeX では,JIS X 0208 の範囲の文字しか扱えないため,JIS 第二水準の漢字までしか扱えません。そのため,UTF-8 でソースを作成していても,例えば「森鷗外」と入力してコンパイルすると,「鷗」の部分が抜け落ちてしまいます。 otf パッケージを \usepackage しておくと,
森\UTF{9DD7}外
と入力することで,「森鷗外」を PDF へ出力することができます。
しかし,このような入力方法はあまりに面倒です。そこで,「otf パッケージ対応」のチェックをONにしておくと,
という動きをするようになります。これにより,ユーザ側はあたかも pTeX が JIS X 0208 の範囲を超える文字を扱えているように見えます。
upTeX の場合,Unicode の文字をそのまま処理できますので,「otf パッケージ対応」のチェックは OFF でよいでしょう。むしろ,upTeX で「otf パッケージ対応」を ON にしていると
\edef\hoge{森鷗外}
が通らなくなるといったトラブルの原因になります。
XeLaTeX の場合も otf パッケージが使えませんので,同様に OFF にする必要があります。
いわゆる Unicode 正規化です。 Unicodeでは,1つの文字に対して複数の表現方法が存在する場合があります。例えば,「が」という文字は
という2つの表現方法があります。 よく使われるのは U+304C の,初めから結合された形です。TeX をはじめ,多くの Unix ツール類もこちらを標準的に取り扱うものが多いです。 それに対し,macOS は HFS+ などで内部的に第2の表現方法 (U+304B + U+3099) を使っています。そのため,
といったことを行うと,第2の表現方法の「が」が入り込みます。
両者が混在すると,非常に厄介です。例えば,upTeX で
\def\が{GA} % U+304C \が % U+304B U+3099
などとすると,Undefined control sequence のエラーが発生します。
そこで,「UTF-8-MAC を UTF-8 に自動変換」のチェックを入れておくと,ファイル保存時にいわゆるNFC(に似た)正規化が行われ,U+304B U+3099 が U+304C に正規化されます。
ただし,Unicode に規定された NFC 正規化のルールに基づくと,CJK 互換漢字が CJK 統合漢字に変化してしまうという問題が生じます。そこで,TeXShop では,Unicode の「合成除外」を考慮した非標準的な正規化(通称 Modified NFC)を行っています。
ただし,upTeX の側で同様の対処を施すよう改修(r38704)が行われた結果,upTeX については今後はこの対処は不要になるものと思われます。(Forum 1701)
macOS Sierra 以降を用いている場合,ソースウィンドウとプレビューウィンドウのそれぞれで
ウインドウ→すべてのウインドウを結合
を選ぶと,ソースウィンドウ同士,プレビューウィンドウ同士をタブ化して結合できます。
ソースとプレビューを横に並べたい場合は,統合ウィンドウ機能を利用します。
ウインドウ→ソースとプレビューを統合
を選ぶと,TeXソースとPDFプレビューのウィンドウが統合されて左右見開きになります。
ウインドウ→ソースとプレビューを分離
を選ぶと元に戻ります。 デフォルトはソースが左、プレビューが右ですが、
defaults write TeXShop SwitchSides YES
とすると、左右を逆にすることができます。
なお,以下の点に注意してください。
システム環境設定 → キーボード → ショートカット → キーボードに規定された,OS全体の設定です。これを変更していたり無効化していたりすると,TeXShopでも変更・無効化されます。
長大なソースを編集している場合に,各章のはじめや未完成部分など,特定の行に目印を付けておいて,そこにジャンプしたいときがあります。
文書中に
%:
から始まる行を書くと,それは「タグ行」として取り扱われます。 Command + 2 でタグ行を挿入できます。
ツールバーをカスタマイズして,タグのポップアップボタンを設けておくと,それをクリックすることによりタグ行の一覧がポップアップされ,それを選択することで目的のタグ行にジャンプできます。
あるいは,TeXShop の環境設定で
環境設定 →書類 → エディタ → メニューにタグリストを表示
を ON にしておくと,メニューバーに「タグ」メニューが増設され,そこにタグ行のリストが表示されます。
1文字を選択して 編集→文字情報 または 右クリック→文字情報 を選ぶと,その文字の詳細情報(Unicode のコードポイント,Unicode Name)が表示されます。
2文字以上を選択した場合は,文字数・単語数・行数,および全文字のコードポイント一覧が表示されます。
\newcommand といったTeXのコマンド部分をスペルチェック対象から除外してスペルチェックを行うには,cocoAspell を利用します。cocoAspell は MacTeX にも収録されています。
インストール手順は以下の通り:
1. Xcode Command Line Tools がインストールされていなければ,
$ xcode-select --install
を実行してインストールしておきます。
2. cocoAspell を公式サイトからダウンロードしてインストールします。macOS のバージョンごとに使用するバージョンが異なりますので,適切なバージョンをダウンロードしてインストールしてください。なお,インストール時に「開発元が未確認のため開けません」というエラーメッセージが出る場合は,右クリック(Control+Click)して「開く」を選択すればOKです。
3. システム環境設定の一番下の段に Spelling という項目が追加されます。その中の English [w_accents] にチェックを入れて,右側の「TeX/LaTeX」にチェックを入れます。
4. システム環境設定 → キーボード → ユーザ辞書 → スペルチェック の選択肢で,一番下にある「English [w_accents] (Aspell)」を選びます。
5. TeXShopを起動し,環境設定 → 書類 → エディタ → スペルチェック をONにしてOKを押します。
6. TeXShop の「編集→入力中にスペルチェック」をONにします。
7. この状態で一度TeXShopを終了し,TeXShopを再度起動すると,TeXの文法を考慮したスペルチェック機能がONになっているはずです。
8. デフォルトではTeXのコメント部分はスペルチェックの対象となりませんが,コメント部もスペルチェックの対象としたい場合は,
システム環境設定 → Spelling → Filters → TeX/LaTeX → Check TeX comments
をONにしてください。
9. TeXShop の
編集→スペルと文法を表示
を選び,「文法をチェック」をONにすると,スペルミスではない文法ミスの疑いのある箇所に緑の下線が引かれます。
10. システム環境設定 → キーボード → ユーザ辞書 → スペルチェック の内容を「言語ごとに自動」にしておく場合,TeX文書の冒頭に次のマジックコメントを書いておいてもOKです。その文書を開いたTeXShop内でのみ cocoAspell によるスペルチェックが行われます。
%!TEX spellcheck = English [w_accents] (Aspell)