TeXworks(テックワークス)は、TeX Live と MiKTeX に同梱されている、軽量でクロスプラットフォームな LaTeX エディタです。Mac の定番 TeXShop を手本に「TeX を始めるときの敷居を下げる」ことを目的に作られ、最初の一本として最適。このページでは、タイプセットの設定、複数ファイルを束ねるルートファイル、そして PDF プレビューと連動する SyncTeX を順に見ていきます。
TeXworks とは
TeXworks は ジョナサン・キュー(XeTeX の作者でもあります)が開発したエディタです。当時の Windows 向け統合環境が初学者には大げさで近寄りがたいと感じた彼は、Mac で評価の高かった リチャード・コッホの TeXShop を意図的に手本にし、その簡潔な使い勝手を Windows・Linux にも持ち込みました。狙いははっきりしていて、「TeX を始めるときの敷居を下げる」 こと。多機能を競うのではなく、迷う場所を減らすことを優先した設計です。
最大の利点は 入手の手間がいらない ことです。TeX Live と MiKTeX のどちらにも標準で同梱 されているため、ディストリビューションを入れればそのまま使えます。中身は Qt という GUI ツールキットで作られていて、Windows・macOS・Linux で同じように動きます。エディタ部分は Unicode(標準は UTF-8) に対応し、命令の補完や入力支援、スペルチェックといった最低限の道具立ては備えています。
その簡潔さの裏返しとして、多段の凝ったビルドや高度なプロジェクト管理は得意ではありません。そうした処理は初学者には複雑すぎるとして、あえて前面に出していないのです。本格的に込み入った構成へ進む段階になったら、TeXstudio や VS Code(LaTeX Workshop) などへ乗り換えるとよいでしょう。それでも「まず一本コンパイルできるようになる」までの道のりは、TeXworks がいちばん短いはずです。
タイプセットの設定
TeXworks の中心は、ツールバー左側にある タイプセット用のドロップダウン です。ここで使うエンジン(pdfLaTeX・LuaLaTeX・XeLaTeX・ConTeXt など)を選び、隣の緑の三角ボタン(あるいは Ctrl/Cmd-T)で実行すると、現在の文書がコンパイルされて PDF プレビューが開きます。pdfLaTeX・XeLaTeX・ConTeXt(MkII)に加え、BibTeX・MakeIndex といった補助ツールが あらかじめ登録 されています。
このドロップダウンの中身は自分で増やせます。Edit → Preferences(設定)→ Typesetting(タイプセット) タブを開くと、下部の Processing tools(処理ツール) にツールの一覧があり、+ で新規追加、- で削除、Edit... で編集できます。各ツールには Name(名前。ドロップダウンに出る表示名)、Program(実行するコマンド名)、Arguments(引数。1 行に 1 つずつ)、そして View PDF after running(実行後に PDF を表示) のチェックがあります。引数には変数が使え、$fullname は処理対象ファイル、$synctexoption は SyncTeX 用のオプション(後述)に展開されます。
一例として、ビルドを latexmk に任せる pdfLaTeX 用ツールは次のように登録します。latexmk は相互参照や文献処理に必要な回数を自分で判断して繰り返してくれるので、TeXworks 側の設定が一段すっきりします。Program に latexmk、Arguments を 1 行ずつ次のように入れ、View PDF after running にチェックを入れます。
-e
$pdflatex=q/pdflatex $synctexoption %O %S/
-pdf
$fullname日本語では、upLaTeX で組んで dvipdfmx で PDF にする のが定番です。TeX Live 同梱の TeXworks には日本語用のツールが最初から入っていますが、自分で登録する場合は、両処理をまとめた ptex2pdf を使うのが簡単です。Program を ptex2pdf、Arguments を次のようにします(-u は upLaTeX、-l は LaTeX 系、-ot は TeX への追加オプションの指定)。
-l
-u
-ot
-kanji=utf8 -no-guess-input-enc $synctexoption
$fullnameよく使うものを Preferences の上部にあるデフォルトのタイプセットエンジン に指定しておけば、新しく開いた文書はそのエンジンで処理されます。文書ごとに切り替えたいときは、次節のマジックコメントで上書きできます。
ルートファイルとマジックコメント
文書が大きくなると、章ごとにファイルを分け、\input や \include で親ファイルから読み込む構成がよく使われます。このとき困るのが、子ファイル(chapter1.tex など)を開いたままタイプセットしてしまうこと。子ファイルには \documentclass も \begin{document} もないので、そのままではコンパイルできません。
これを解決するのが マジックコメント です。TeX からはただのコメント(% 以降)に見えますが、TeXworks はファイル冒頭にある特定の行を読み取って動作を変えます。子ファイルの先頭に **% !TeX root = ... で親ファイルを指しておけば、子ファイルを編集中にタイプセットしても、TeXworks は 代わりに親(ルート)ファイルをコンパイル** します。パスは子ファイルから見た相対パスで書けます。
% !TeX root = main.tex
\chapter{はじめに}
本文をここに書きます。マジックコメントは他にもあります。**% !TeX program = ... は、その文書を処理するエンジンを指定します(値は実行ファイル名ではなく、Preferences に登録した ツールの名前)。日本語文書の先頭に書いておけば、ドロップダウンを切り替え忘れても正しいエンジンで処理されます。% !TeX encoding = ... はファイルの文字コードを指定します。TeXworks の標準は UTF-8** なので、UTF-8 で書いていれば通常は不要です。(% !TeX program は、古い表記の % !TeX TS-program でも同じ意味になります。)
% !TeX program = upLaTeX (ptex2pdf)
% !TeX encoding = UTF-8
\documentclass{ujarticle}
\begin{document}
\input{chapter1}
\end{document}SyncTeX(前方・後方検索)
TeXworks には Qt(Poppler)製の PDF プレビューが内蔵 されています。Acrobat などの外部ビューアに切り替える必要がなく、編集と確認を同じウィンドウで行き来できます。そして SyncTeX によって、ソースとプレビューの位置が双方向に対応づけられます。これは XeTeX の作者でもあるジェローム・ローランスらが整備した仕組みです。
使い方は直感的です。ソース上の場所から PDF の対応箇所へ飛ぶ(前方検索) には、ソースで Ctrl/Cmd-クリック します。逆に PDF の場所からソースの該当行へ戻る(後方・逆検索) には、プレビュー上で Ctrl/Cmd-クリック します。「いま直したい段落が、PDF のどこか」「この行はソースのどこか」をすぐ往復できるので、推敲が一気に楽になります。
うれしいことに、これは 設定なしで最初から動きます。SyncTeX の対応づけはコンパイル時に .synctex.gz という対応表を作ることで実現しますが、TeXworks は標準ツールでこれを有効にする **--synctex=1** 相当のオプション(前節の $synctexoption)を自動的に渡しているからです。自作ツールでも、引数に $synctexoption を含めておけば同じように同期が効きます。