Texmaker があるのは、作者がもう一つの LaTeX エディタから手を引いたからです。パスカル・ブラシェは KDE デスクトップ向けの LaTeX 環境 Kile を立ち上げた人物で、2003 年にその保守を別の開発者へ譲りました。そして同じ 2003 年 5 月 29 日、Texmaker の最初の版が公開されます。今度は特定のデスクトップに縛られない、Qt だけで書かれたクロスプラットフォームの統合環境でした。このページでは、複数ファイルの原稿を束ねる マスター文書 の仕組み、F1 の背後にある クイックビルド の連鎖、書きながら育つ 構造ビュー、そして Texmaker 自身のフォークである TeXstudio との違い を順に見ていきます。
Texmaker を作った人は Kile も立ち上げていた
この因縁は Kile 側の記録に残っています。Kile の AUTHORS ファイルの筆頭は Pascal Brachet、kile(1) の man ページも「Kile was written by Pascal Brachet and Jeroen Wijnhout」と書いています。ウェインハウト自身が 2003 年 10 月のインタビューで、Kile に機能を足したくてブラシェに連絡したところ「彼は Kile の開発をやめたがっていた。想定以上のものを引き受けることになり、プロジェクトは私の手に渡った」と語りました。ブラシェが手放したのは KDE に密着したエディタで、代わりに書いたのが、KDE のライブラリを必要とせず Qt だけで動く Texmaker です。同じ発想を、デスクトップ環境から切り離したわけです。
その結果 Texmaker は、一つの窓のなかに統合環境をひととおり収めた エディタになりました。左に構造ビュー、中央にソース、下にログとメッセージ、右に PDF プレビュー。ライセンスは GPL v2、中身は Qt で、Windows・macOS・Linux 用のビルドが同じ作者から配られています。備えているのは、Unicode と多数の文字コード、\part・\chapter・\section や \begin{...}…\end{...} を畳めるコード折りたたみ、約 370 個の数式記号パレット、連続スクロールの組み込み PDF ビューア、スペルチェック、補完、矩形選択、フォルダ横断検索、正規表現、Asymptote 対応、そして自分で定義するスニペット——つまり TeXworks が意図的に持たなかったものの、ほぼ全部です。
Texmaker と TeXstudio の違い(TeXstudio は Texmaker のフォーク)
二つがそっくりなのは、片方がもう片方のソースから分岐したからです。 2008 年に Texmaker のコードから枝分かれしたプロジェクトは、2009 年 2 月に TexMakerX という名前で最初の版を出しました。名前が紛らわしいと問題になり、2011 年 6 月に TeXstudio へ改名されています。だから画面の配置も設定の考え方も、いまでも兄弟のように似ています。分岐後の追加は主に編集まわり——文法チェック、ミラーカーソル、より強い折りたたみと補完——で、Texmaker は本家らしく設定項目が少なく素直なままです。片方を覚えればもう片方はすぐ使えるので、迷ったら軽いほう(Texmaker)から始めて、足りなくなったら TeXstudio に移る のが実際的です。
マスター文書——複数ファイルの原稿を一つにまとめる
章ごとにファイルを分けたら、まず「オプション」メニューでマスター文書を指定します。 これが Texmaker における多ファイル運用の要です。マスターモードに入ると、どのファイルを開いていようとビルドの起点は常にマスターになり、chapter3.tex を編集中に F1 を押しても、コンパイルされるのは main.tex です。抜けるときも同じ「オプション」メニューからで、モードの出入りが一か所にまとまっているぶん、いま自分がどちらの状態にいるかを見失いにくくなっています。
マスターモードがあると、コマンドの引数に書く記号の意味が変わります。Texmaker の設定欄で最もよく使う % は「拡張子を除いたファイル名」ですが、マスターモードではマスター文書の名前 に展開されます。だからこそ、それとは別に「マスターモードであっても、いま開いているファイルの名前」を指す # が用意されているのです。この二つの違いを知らないと、章ごとに何かを走らせたいときに必ずつまずきます。行番号を渡す @ と、現在のディレクトリを渡す ! も同じ欄で使えます。
| 記号 | 展開されるもの |
|---|---|
% | 拡張子を除いたファイル名。マスターモードではマスター文書の名前 |
# | いま開いているファイルの、拡張子を除いた名前(マスターモードでも変わらない) |
@ | カーソルのある行番号。前方検索を外部ビューアへ渡すときに使う |
! | 現在のディレクトリ |
%% ## @@ !! | 記号そのものを一文字書きたいときの書きかた(二重にすると一つに戻る) |
クイックビルド——F1 で何が走るかを決める
Texmaker のビルドは、「オプション」→「Configure Texmaker」(macOS では「Preferences」)にある二つのセクションで決まります。Commands が「各コマンドの実体」——pdflatex や dvipdfmx を実際にどんな引数で起動するか——を持ち、Quick Build が「それらをどの順で走らせるか」を持ちます。この分担がはっきりしているので、日本語対応のように「同じ順番のまま中身だけ差し替える」変更が一か所で済みます。走らせるのはツールバーのボタン、またはキー F1 です。
Quick Build のセクションには定番の組み合わせがラジオボタンで並んでいて、そこから一つを選びます。自分で組みたいときは一番下の User 欄に、コマンドを | でつないで書きます。
- PdfLaTeX + View Pdf — pdfLaTeX で直接 PDF にして表示する。出荷時の既定で、欧文中心ならこれで足ります。
- LaTeX + dvips + View Ps — DVI を経由し、dvips で PostScript にして表示します。
- LaTeX + dvipdfm + View Pdf — DVI を経由し、dvipdfm(x) で PDF にして表示します。日本語の定番経路です。
- User — 上の欄に好きなコマンドを
|でつないで、独自の流れを組みます。
Commands セクションの PdfLaTeX 欄は、既定でおおよそ次のようになっています。-interaction=nonstopmode はエラーが出ても対話プロンプトで止まらせない指定、-synctex=1 は後述の SyncTeX 用の情報を出させる指定です。この二つは、どの経路を選ぶ場合でも入れておく価値があります。
pdflatex -synctex=1 -interaction=nonstopmode %.tex参考文献・索引・再実行回数まで自動で面倒をみてほしいなら、Quick Build の User 欄に latexmk を一本だけ書く手があります。latexmk が依存関係を解いて必要な回数だけ処理するので、こちらでコマンドを並べる必要がなくなります。latexmk 側の細かい設定は別ページの主題です。
latexmk -pdf -synctex=1 -interaction=nonstopmode %.tex日本語のビルド設定(upLaTeX と LuaLaTeX)
日本語で長く定番なのは upLaTeX + dvipdfmx で、Texmaker では二か所を直すだけで済みます。 Commands セクションの LaTeX 欄 を uplatex に、Dvipdfm 欄 を dvipdfmx に書き換え、Quick Build で 「LaTeX + dvipdfm + View Pdf」 を選びます。これで F1 を押すと upLaTeX → dvipdfmx の順に処理され、PDF が開きます。-kanji=utf8 で入力の文字コードを UTF-8 に固定し、-no-guess-input-enc で文字コードの自動推定を切ります。ここで -synctex=1 を忘れると、後方検索だけが動かないという分かりにくい症状になります。
uplatex -no-guess-input-enc -kanji=utf8 -synctex=1 -interaction=nonstopmode %.texdvipdfmx %.dviもう一つの道が LuaLaTeX です。これから新しく日本語で書き始めるなら手数が少なく、DVI を経由せず一発で PDF まで進みます。Commands の LuaLaTeX 欄が整っていることを確かめ、Quick Build の User 欄に lualatex -synctex=1 -interaction=nonstopmode %.tex と書けば済みます(日本語の組版そのものは luatexja パッケージや ltjsarticle クラスが受け持ちます)。設定を一か所にまとめたい場合は、upLaTeX や LuaLaTeX の流れを .latexmkrc に書き、Texmaker からは latexmk を呼ぶだけにする手もあります。
構造ビューと補完、そしてウィザード
左端の 構造ビュー(Structure view) は、打っている端から自動更新される文書の地図です。\section などの 見出し、\label の ラベル、\input/\include で取り込んだ ファイル が階層に並び、項目をクリックすればその場所へ跳べます。マスター文書を指定したプロジェクトでは、章ファイルの中身もこの一本の木に並ぶので、長い原稿でも全体像を見失わずに移動できます。TeXworks が持たなかった「全体を見る面」がこれで、Texmaker を統合環境たらしめている中心の一つです。
補完は打鍵を減らします。\ に続けて文字を打つと候補の命令が一覧に出て、字を足すほど絞られ、引数を持つ命令ではプレースホルダが示されるので { } の中を順に埋められます。効くのは命令名だけではありません。\ref{...} や \pageref{...} を書けば文書中の ラベル が候補に並び、\cite{...} では文献データベースの キー が出ます——名前をうろ覚えのまま手が止まる場面が消えます。加えて ウィザード があり、\documentclass と用紙サイズ・文字コードをまとめて決める Quick Start、表組みの Tabular、桁揃えの Tabbing、array/matrix/pmatrix を選ばせる Array が、覚えにくい骨組みを代わりに書いてくれます。
F1 が通らないときに見る順番
Quick Build の並びを書き換える前に、質問を二つに分けます——ログは何と言っているか、そもそも外部コマンドは起動できたのか。 この二つは原因も対処もまったく違うのに、画面上ではどちらも「F1 を押したのに PDF が出ない」に見えます。とくに Could not start the command は LaTeX のエラーではなく、Texmaker が実行ファイルを見つけられなかったという意味なので、ログを何度読んでも書いてありません。長い論文でも短いレポートでも順番は同じです。
- まず Messages / Log file パネルで最初のエラーを見ます。行番号がクリックできるなら、そのままソースの原因箇所へ跳べます。
Could not start the commandなら端末でpdflatex --versionやuplatex --versionを叩き、PATH の側を直します。Texmaker の設定は無関係です。- PDF が更新されないだけなら、組み込みビューアが古いファイルを掴んでいないか、選んだ Quick Build に View Pdf が含まれているかを見ます。
- 日本語だけ落ちるなら、LaTeX 欄と Dvipdfm 欄が upLaTeX + dvipdfmx の組み合わせとして揃っているかを確かめます。
SyncTeX を効かせる二つの条件
必要なのは二つだけです。コンパイルコマンドに -synctex=1 が入っていること、そして PDF を組み込みビューアで開いていること。 一つ目は同期用のファイル(.synctex.gz)を出させるための指定で、上のコマンド例のとおりに書いてあれば足ります。二つ目は Commands セクションの Pdf Viewer で built-in viewer を選ぶことで、本体の窓に貼り付けたいなら Embed も有効にします。外部ビューアで開くと、相互ジャンプはどちらの向きにも効きません。
操作は素直です。マニュアルの記述どおり、コンパイルコマンドに -synctex=1 があれば、組み込みビューアは現在の行に対応する PDF の位置へ自分で移動 します——これが前方検索で、押すボタンはありません。逆に 後方検索 は、組み込みビューアの語の上で 右クリック し、コンテキストメニューから選ぶと、エディタが該当行へ跳びます。同期そのものの仕組みは別ページで扱います。