TeXShop は、Richard Koch が作った macOS 専用の無料・オープンソースな TeX 統合環境です。エディタと PDF プレビューが一つの窓に並び、MacTeX に同梱 されて /Applications/TeX/ に入ります。後発の TeXworks が手本にした「原点」でもあります。このページでは、最初につまずきやすい タイプセット設定(どのエンジンで組むか)と、ソースと PDF を行き来する SyncTeX を中心に見ていきます。
TeXShop とは
TeXShop は、オレゴン大学の数学者 Richard Koch が 2000 年前後から開発している macOS 専用アプリで、ライセンスは GPLv2(自由ソフトウェア)です。LaTeX 本体を内蔵しているわけではなく、別途インストールした TeX ディストリビューションのコマンド(pdflatex、lualatex、latexmk など)を裏で起動して動きます。Mac では MacTeX にこの TeX 本体(TeX Live)と TeXShop がまとめて入るため、追加設定なしにそのまま使い始められるのが大きな利点です。
MacTeX-2026 は TeX Live 2026 を収め、TeXShop をはじめ TeX Live Utility・LaTeXiT・BibDesk・hintView といった GUI アプリを /Applications/TeX/ フォルダに置きます(TeX 本体は /usr/local/texlive/2026/ の下)。MacTeX-2026 は macOS 11 Big Sur 以降(Intel・Apple Silicon の両方)に対応し、最新の TeXShop(v5.57、2025 年 10 月)は High Sierra から Tahoe までで動く、長く枯れた定番です。
TeXShop は、後に登場したクロスプラットフォームの TeXworks が直接の手本にしたエディタとしても知られます。両者は「左にソース、右に PDF、上の タイプセット(Typeset) ボタンで一発コンパイル」という素直な操作感を共有しており、TeXShop を覚えれば TeXworks もほぼそのまま使えます。
タイプセット設定
TeXShop の中心は、ウインドウ上部の タイプセット(Typeset) ボタンです。これを押す(または ⌘T)と、現在のエンジンで文書がコンパイルされ、右側に PDF が出ます。中間ファイルを消してから組み直したいときは ⌥⌘T(Trash AUX and Typeset)。どのエンジンで組むかは、Typeset ボタンのすぐ右にあるポップアップメニュー で選びます。
このポップアップに並ぶのが エンジン(engine) です。標準では LaTeX(latex → dvips → ps2pdf の経路で PDF 化)、pdfLaTeX、LuaLaTeX、XeLaTeX などが選べます。中身は実体のあるファイルで、TeXShop は ~/Library/TeXShop/Engines/ フォルダにある .engine ファイルを読み込み、その一つひとつをメニュー項目として表示します。つまり、エンジンの実体は短いシェルスクリプトで、追加・改造も自由です。
とりわけ便利なのが、ビルドツール **latexmk** を呼ぶエンジン群です。pdflatexmk・lualatexmk・xelatexmk は、参考文献・索引・相互参照のために必要な再実行を latexmk が自動で面倒みてくれるため、一度のタイプセットで PDF が完成 します。これに対し latexmk を使わない LuaLaTeX などのエンジンでは、相互参照や目次を確定させるために タイプセットを 2〜3 回 押す必要があることがあります。これらの *latexmk エンジンは TeXShop 内では当初 Engines/Inactive/Latexmk/ に置かれており、使うときは Engines/ 直下へ移して TeXShop を再起動します。
ポップアップで選んだエンジンは、その文書に対する一時的な選択です。常用するエンジンを既定にする には、TeXShop → 環境設定(Preferences)→ タイプセット(Typeset) タブを開き、「デフォルトコマンド(Default Command)」 で使いたいエンジン(たとえば pdfLaTeX や LuaLaTeX)を指定します。以後、新しい文書はそのエンジンで組まれます。
ファイル先頭の指示(% !TEX 行)
エンジンや文字コードを 文書ごと に指定したいときは、ファイルの先頭に置く **% !TEX 行**(マジックコメント)が便利です。LaTeX から見ればただのコメント(% 以降は無視される)ですが、TeXShop はこれを読み取って挙動を変えます。よく使うのは次の三つです。
| 指示行 | 意味 |
|---|---|
% !TEX root | この文書が取り込まれる「親ファイル」を指定。\input/\include で分割した子ファイルから、本体をタイプセットさせる |
% !TEX TS-program | この文書を組むエンジン(プログラム)を指定。% !TEX program とも書ける |
% !TEX encoding | この文書の文字コードを指定。保存時の既定エンコーディングより優先される |
たとえば、この 1 行を文書の冒頭に置くと、ポップアップの選択にかかわらず、その文書だけが LuaLaTeX で組まれます。値にはエンジン名(Engines/ にある .engine 名)をそのまま書きます。
% !TEX TS-program = lualatex
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\begin{document}
Hello, \LaTeX!
\end{document}文字コードについては注意が必要です。現在の TeXShop は工場出荷時の既定エンコーディングが IsoLatin9 になっており、日本語をそのまま保存すると文字化けします。環境設定 → 書類(Source) タブのエンコーディング欄で既定を 「Unicode (UTF-8)」 に変えておくか、上のように各ファイルへ % !TEX encoding = UTF-8 Unicode を書いておくのが安全です。
日本語のためのエンジン設定
日本語では、おもに二つの道があります。一つは LuaLaTeX。Unicode をそのまま扱え、OS のフォントも使えるため、新規に始めるなら素直な選択です。ポップアップで LuaLaTeX(または完結まで自動の lualatexmk)を選ぶだけで組めます。新規文書を常に日本語 LuaLaTeX にしたいなら、前述の「デフォルトコマンド」を LuaLaTeX にしておきます。
もう一つは、日本語で長く定番の upLaTeX + dvipdfmx。TeXShop には、TeX Live 付属の Lua スクリプト **ptex2pdf** を呼ぶエンジン(pTeX 系・upTeX 系)や、latexmk で upLaTeX → dvipdfmx をまとめて回すエンジンが用意されています。.engine の中身はおおむね次のような 1 行で、-synctex=1 を付けておくと後述の SyncTeX も効きます。
#!/bin/sh
ptex2pdf -l -u -ot "-synctex=1 -file-line-error" "$1"ここで ptex2pdf -l -u は「upLaTeX で組み、dvipdfmx で PDF にする」指定、-ot はエンジンへ渡す追加オプションです。-file-line-error を加えておくと、エラーが「ファイル名:行番号」の形で出て、原因箇所へ飛びやすくなります。日本語文書でも文字コードは UTF-8 に統一し、前節のとおり既定エンコーディングを UTF-8 にしておくと安心です。
SyncTeX(前方・後方検索)
SyncTeX は、ソースの行と PDF の表示位置を相互に対応づける仕組みです。これが効くと、ソースの今いる行から PDF の対応箇所へ飛ぶ 前方検索 と、PDF 上の文字からソースの該当行へ戻る 後方検索(逆検索) ができます。校正のときに「この段落はソースのどこか」を探す手間が消えるため、効果は大きいものです。
現代の TeXShop では、標準のエンジンに -synctex=1 が組み込まれており、SyncTeX は 初期状態で有効 です(自作エンジンを使うときだけ、上の例のように -synctex=1 を入れ忘れないようにします)。同期ファイル(.synctex.gz)はタイプセット時に自動で作られます。
操作はとても素直で、どちらの向きも ⌘+クリック です。プレビュー側で文字を ⌘+クリック すると、その箇所を生んだソース行へ戻ります(後方検索)。逆に ソース側で ⌘+クリック すると、その行に対応する PDF の位置へ飛びます(前方検索)。長い原稿や複数ファイル構成でも、見ている場所とソースをすぐに一致させられます。