> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ja/sononotopikku/08-choosing-a-latex-compiler.md).

# LaTeXコンパイラの選び方

LaTeX 文書のスタイル、内容、レイアウトは、によって定義されます *タグ* または *コマンド* プレーンな .tex ファイルでは、このファイルを使って文書のいくつかの種類の「人間が読める」版を生成できます。この最終出力を生成する最も簡単な方法は、を使うことです [Overleaf](http://www.overleaf.com)。Overleaf にはすぐに使える LaTeX ディストリビューションがあり、最終文書は「Recompile」ボタンをクリックするだけで生成できます。これがあなたのケースなら、この記事は飛ばしてかまいません。そうでなければ、コンピュータ上で文書をコンパイルする方法を学ぶ必要がある場合、この記事では LaTeX ファイルから PS、DVI、PDF の出力を生成する方法を説明します。

## はじめに

LaTeX 文書は .tex 拡張子を持つプレーンな文書です（例については [LaTeXで文書を作成する](/latex/ja/latexno/01-learn-latex-in-30-minutes.md) 記事を参照）、このプレーンテキストファイルには文書を整形するためのマークアップコマンドがいくつか含まれていますが、実際に最終出力をどのように生成するのでしょうか？ それは、生成したい文書の種類によります。

文書を保存してファイル名を「mydocument.tex」にしたとします。 .PDF ファイルを作成するには、システム端末で次のコマンドを実行するだけです。

`pdflatex mydocument.tex`

すると、「mydocument.pdf」という名前のファイルが表示されます。

## TeX ディストリビューション

TeX および LaTeX 文書をコンパイルできるようにするプログラム群は、TeX 組版システムまたは TeX ディストリビューションと呼ばれます。さまざまなオペレーティングシステム向けに多くの TeX ディストリビューションが利用できます。

* **MiKTeX** Windows 向け
* **TeX Live** Linux およびその他の UNIX 系システム向け
* **MacTeX** macOS 向けの TeX Live の再配布版
* **teTeX** Linux およびその他の UNIX 系システム向け; 現在はもはや積極的に保守されていません
* **proTeXt** MiKTeX ベースです

もちろん、TeX ディストリビューションをインストールする手順を踏みたくない場合は、次のようなオンラインですぐ使える विकल्पを利用できます [Overleaf](http://www.overleaf.com).

## LaTeX エディタ

主要なオペレーティングシステム向けに、LaTeX に特化した高度なテキストエディタが数多くあります。そのうちいくつかは無料でダウンロードできますが、ほかは商用ソフトウェアです。

* オープンソース: AUCTEX、GNU TeXmacs、Gummi、Kile、LaTeXila、MeWa、TeXShop、TeXnicCenter、Texmaker、TeXstudio、TeXworks
* フリーウェア: LEd、WinShell
* プロプライエタリ/シェアウェア: Inlage、Scientific WorkPlace、WinEdt

プラグインによって LaTeX 向けの機能を追加した汎用エディタもあります。たとえば、有名な emacs と vim には LaTeX 拡張があり、Atom、VS Code、Sublime Text にも同様のものがあります。

言及しておく価値があるのは [Overleaf](http://overleaf.com) のエディタは emacs や vim の動作をエミュレートするようにカスタマイズできることです。また、 *テーマを変更可能で*、前述のエディタのいくつかと同じシンタックスハイライトを選べます。これらの設定は、Overleaf プロジェクトのファイル一覧パネルの上にある Overleaf メニューアイコンをクリックすると見つかります。

## 出力形式

すべての TeX ディストリビューションには 3 つの出力形式があります。特定の出力を生成するには、でコマンドを実行して文書をコンパイルする必要があります *ターミナル* （Linux および macOS）または *コマンドプロンプト* （Windows）を使います。

たとえば、「mydocument.tex」という名前のファイルをコンパイルしたい場合、次のコマンドのいずれかを使えます。

**latex mydocument.tex**

これにより「mydocument.dvi」という DVI 文書が作成されます

**pdflatex mydocument.tex**

これにより「mydocument.pdf」という PDF 文書が生成されます

形式間の変換を可能にする追加コマンドもあり、PS 画像もサポートされています。 [リファレンスガイド](#reference-guide) コマンドと出力形式の概略説明については、を参照してください。

各出力形式の説明を以下に示します。

* **（DVI）** デバイス非依存ファイル形式は、特定の画像形式、表示ハードウェア、プリンタに依存しない方法で、文書の視覚的なレイアウトを記述するバイナリデータで構成されています。
* **（PS）** PostScript ファイル形式は、ページ上のテキストとグラフィックスを記述し、ベクターグラフィックスに基づいています。PostScript は、現在に至るまでデスクトップパブリッシング分野の標準です。
* **（PDF）** Portable Document Format は、PostScript を基にしたファイル形式で、アプリケーションソフトウェア、ハードウェア、オペレーティングシステムに依存せずに文書を表現するために使われます。現在では、印刷用および Web での配布用のファイル形式として広く使われています。

注： *最近のほとんどのエディタには、さまざまな出力形式へコンパイルするためのクイックアクセスアイコンが含まれているので、実際にシステムプロンプトでコマンドを実行する必要はありません。*

Overleaf では、最終的なコンパイル結果は常に PDF 文書です。Overleaf プロジェクトから DVI ファイルを出力する必要がある場合は、次のことができます。

1. プロジェクト内で .eps および .ps 画像のみを使用していることを確認してください。
2. プロジェクト右上の **Overleaf メニュー** アイコンはファイル一覧パネルの上にあり、 *コンパイラ* 設定を「LaTeX」にします。
3. プロジェクトを再コンパイルします。
4. 「Recompile」ボタンの横にある「Logs and output files」ボタンをクリックします。
5. 右下までスクロールして、「Other logs and output files」をクリックします。
6. これで生成された .dvi ファイルをダウンロードできるはずです。

![その他の出力ファイルのダウンロード](/files/b956adffb1dfb5207432811b0c55825e78894ecc)

## その他のコンパイラ

他に可能なコンパイラ設定は、pdfLaTeX（既定）、XeLaTeX、LuaLaTeX です。通常は pdfLaTeX で問題ありませんが、コンパイラの選択は各プロジェクトの要件によります。

* LaTeX は、で使用する画像形式として .eps と .ps のみをサポートします `\includegraphics`。プロジェクト内の画像がすべて .eps ファイルなら、このコンパイラ設定を推奨します。
* pdfLaTeX は .png、.jpg、.pdf の画像形式をサポートします。コンパイル中に .eps 画像をその場で .pdf に変換するため、必要なコンパイル時間が長くなることがあります。（pdfLaTeX は `pstricks` を Overleaf でうまく扱えない場合があります。）
* XeLaTeX と LuaLaTeX はどちらも、Truetype と OpenType に加えて、UTF-8 を標準で堅牢にサポートします。そのため、Overleaf で非ラテン文字のスクリプトを組版する必要がある場合は、 `polyglossia` pacakge *や* と組み合わせて使用することが推奨されます。また、.png、.jpg、.pdf
* XeLaTeX は `pstricks`; しかし LuaLaTeX はそうではありません。
* Lua コードを文書に直接埋め込むことで、LuaLaTeX の機能を拡張できます。

## 相互参照を含む文書のコンパイル

場合によっては、文書に相互参照が含まれていると、ソースを 2 回コンパイルしなければならないことがあります。目次、図一覧、定理への参照番号などに正しい番号を含めるために必要です。

1 回目のコンパイルでは、LaTeX コンパイラがさまざまな番号付けに関する情報を .aux ファイルへ書き込み、2 回目のコンパイルでコンパイラがこれらの情報を読み込んで、目次や参考文献などを正しく生成します。

このプロセスは次のコマンドで自動化できます `latexmk`。たとえば、「mydocument.tex」ファイルから pdf を作成するには、

`latexmk -pdf mydocument.tex`

を 1 回実行するだけです。たとえ文書に参照画像や参考文献があっても同様です。 *-pdf* から *-dvi* を変更して別のファイルタイプを設定できます。

## リファレンスガイド

**LaTeX コンパイルのファイルフロー**

![Latex のファイルフロー](/files/6c5f7e25005c7ef7220ef2284ee7b3d42b97d02e)

## さらに読む

* [LaTeXで文書を作成する](/latex/ja/latexno/01-learn-latex-in-30-minutes.md)
* [Overleaf で文書を作成する](/latex/ja/narejjibsu/031-creating-a-document-in-overleaf.md)
* [コンパイルタイムアウトエラーのデバッグ](/latex/ja/narejjibsu/038-fixing-and-preventing-compile-timeouts.md)
* [複数ファイルの LaTeX プロジェクト](/latex/ja/wen-shu-gou-zao/08-multi-file-latex-projects.md)
* [LaTeX2εへのそれほど短くない入門](http://www.ctan.org/tex-archive/info/lshort/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ja/sononotopikku/08-choosing-a-latex-compiler.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
