> 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/xiang-xi-ji-shi/04-a-visual-guide-to-latex-s-page-layout-parameters.md).

# LaTeXのページレイアウトパラメータのビジュアルガイド

## 更新: 2021年9月

初公開から約4年後、この記事はサイズを小さくし、扱うトピックの範囲を再設定するために編集・改題・再公開されました。元の記事には、旧 Overleaf V1 の機能に依存する LuaTeX ベースの LaTeX テンプレートが含まれていましたが、そのテンプレートは現在では廃止され、利用できません。

**注**: LaTeX のページレイアウトの細かな部分を理解する必要がない、または理解したいわけではないなら、Overleaf の記事 [ページサイズと余白](/latex/ja/shu-shi-she-ding/07-page-size-and-margins.md) では、 [`geometry` パッケージ](https://ctan.org/pkg/geometry?lang=en) を解説しており、こちらのほうがより興味深いはずです。

## はじめに

LaTeX で本のレイアウトを設定するのに苦労したことはありませんか。用紙サイズ、本のページサイズ（仕上がりサイズ）、余白の設定です。これは難しいことがありますが、この作業を助ける多くのパッケージがあり、その中には優れた `geometry` パッケージも含まれます。(La)TeX では、左右ページで余白が異なる出版物のページレイアウトを完全に指定するために、およそ十数個の値を使います。

* `\hoffset`, `\voffset`, `\oddsidemargin`, `\topmargin`, `\headheight`, `\headsep`, `\textheight`, `\textwidth`, `\marginparsep`, `\marginparwidth`, `\footskip`

通常、これらのパラメータは、書籍出版社などが配布するパッケージやテンプレートが提供するコマンドを通じて設定します。しかし、時には「舞台裏」で何が起きているのかを理解したくなることもあるでしょう。たとえば、作成したい特定の種類の文書について、より高度な制御が必要な場合です。

この投稿では、LaTeX のページモデルと、印刷・デザインの世界で使われる従来のモデルとの関係を探ります。一組の [Google スライド](#google-slides-with-animations)を使って、詳細なページレイアウト図を示しながら、LaTeX のレイアウトモデルと、書籍デザイナーやプリント・オン・デマンド会社が提示する典型的な仕様とを結びつける、いくつかの非常に簡単な方程式を段階的に導きます。これらの方程式を使えば、望むなら、LaTeX のパラメータ値を直接計算して、好みの書籍レイアウトを実装できます。

### pdfTeX と LuaTeX/LuaHBTeX に関する簡単な注記

なお、上記の `\hoffset` と `\voffset` のほかに、pdfTeX では `\pdfhorigin` と `\pdfvorigin`も使われます。伝統的に、TeX エンジンは `.dvi` ファイルを出力し、それらは PostScript または PDF に変換されていました。その変換ソフトウェアは、ページの原点がページの左から 1 インチ（25.4mm）、ページの上から 1 インチ（25.4mm）の位置にあると仮定していました。 `\hoffset` と `\voffset` パラメータの値は *相対的* にその (1 インチ, 1 インチ) の位置を基準にしています。pdfTeX のパラメータは少し異なり、左上隅、つまり (0mm, 0mm) を基準にしています。したがって、たとえば `\pdfhorigin=30mm` と設定することは、 `\hoffset` を `30–25.4`=`4.6mm` を設定するのと同じです。なぜなら `\hoffset` は、すでに `25.4mm` ページ左端からの位置を基準にしているからです。同様に、 `\hoffset` 値として `0mm` は `\pdfhorigin=25.4mm`と同じです。以下の議論/図では、 `\hoffset` と `\voffset`.

#### LuaTeX/LuaHBTeX

LuaTeX/LuaHBTeX もまた *間接的に* サポートします `\pdfhorigin` と `\pdfvorigin` が、pdfTeX との互換性のため、これらのコマンドは次のように定義する必要があります（ [LuaTeX リファレンスマニュアル](https://www.pragma-ade.com/general/manuals/luatex.pdf)):

```latex
\edef\pdfhorigin{\pdfvariable horigin}
\edef\pdfvorigin{\pdfvariable vorigin}
```

## 私たちの目的は何でしょうか？

この記事のテーマと、提供したリソースの目的は、次の目標に基づいています。

1. たとえば LaTeX を使わない、またはサポートしていない書籍デザイナーや出版社から提供されたレイアウト仕様を実装したいと考えています。あるいは、プリント・オン・デマンド会社から提供された仕様に従う必要があるかもしれません。
2. デザイナーの仕様に含まれる従来の書籍の寸法（用紙サイズ、仕上がりサイズ、ページ余白）を使い、それらを LaTeX が理解して再現できるパラメータと値に変換したいと考えています。
3. 本のページを、選んだ用紙サイズの中で水平方向・垂直方向の両方で中央に配置したい、つまり LaTeX が作成する PDF ページの領域内で中央にしたいということです。また、任意の用紙サイズを選べるようにし、A4、US Letter などの標準的な選択肢に制限されないようにしたいと考えています。

### 簡単な確認: 用紙サイズはどう設定するのでしょうか？

LuaTeX、XeTeX、pdfTeX は、生成する PDF 文書の「用紙サイズ」を制御できる 2 つのコマンドを提供しています。

* `\pdfpagewidth`
* `\pdfpageheight`

これらのコマンドが用紙のサイズを表していることがわかれば、いま達成しようとしていることを示す図を描けます。

![{{{alt}}}](/files/6276d93481e3b1cc92c9b7b1ed0be922b97d466c)

なお、ΔX と ΔY は、書籍ページを用紙領域の中央に配置するために必要な値です。これらは [Google スライド](#google-slides-with-animations)で説明しています。上の図から次のことがわかります。

* ΔX=½(\pdfpagewidth − book-page-width)
* ΔY=½(\pdfpageheight − book-page-height)

上の図は [Google スライド](#google-slides-with-animations) にも含まれており、ページレイアウトの方程式を導く出発点として使われています。

#### 補足: LuaTeX

LuaTeX はもはや *直接* サポートしていません `\pdfpagewidth` または `\pdfpageheight` が、現在は `\pagewidth` と `\pageheight`という 2 つの新しいプリミティブを使います。後方互換性は `\let\pdfpagewidth\pagewidth` と `\let\pdfpageheight\pageheight`で実現できます。詳しく知りたい方は [LaTeX News（第24号、2016年2月）](https://www.latex-project.org/news/latex2e-news/ltnews24.pdf) や、もちろん [LuaTeX 公式ドキュメント](http://www.luatex.org/documentation.html).

## この記事のリソース

Overleaf では新しいアイデアを試すのが好きなので、この投稿では、役立つと考えるさまざまなリソースを用意しました。

* **2種類の** [**Google スライド**](#google-slides-with-animations)スライドセット: これらのスライドセットは同じ内容ですが、ひとつはアニメーション付き、もうひとつはアニメーションなしです（アニメーションのないスライドを好む人もいます）。また、 [PDF 形式](https://www.filepicker.io/api/file/7Okr2kx6QAWPo3w7mt6K)でダウンロードすることもできます。スライドでは、本のページレイアウトの基本を非常に簡潔に紹介し、LaTeX のページモデルと従来の印刷・デザインで使われるモデルとの関係を探ります。最後の数枚では、従来の寸法セット（ページの幅/高さと余白）を対応する LaTeX のパラメータ値に変換して、LaTeX で本のレイアウトを再現するために使える簡単な方程式を導き出す方法を示します。
* **ページレイアウト図**： [Google スライド](#google-slides-with-animations) には、さまざまな LaTeX パラメータを計算するための簡単な方程式を導くのに使われる詳細なページレイアウト図が含まれています。これらの図をさらに詳しく調べたい場合は、 [PDF 版](#download-page-layout-diagrams) をダウンロードできるようにしています。

### この記事のリソースの使い方

この記事の読者は LaTeX の使用経験がさまざまだと思われるため、個人の経験、関心、好みに応じて選べる複数のリソースを用意するほうがよいと考えました。これらのリソースが役立ち、Overleaf の LaTeX コミュニティのニーズと関心に応えられることを願っています。

これらのリソースを使う順序は決まっていませんが、私たちの提案は次のとおりです。

1. を表示する [Google スライド](#google-slides-with-animations);
2. （任意）：ダウンロードして [ページレイアウト図](#download-page-layout-diagrams);

#### ステップ1: Google スライドを表示または（PDF で）ダウンロードする

最後のスライド（下に示す）は、プレゼンテーション中に作成した方程式を要約しています。

![{{{alt}}}](/files/1b1a516187fb2fbc54d6cb2327a8a07ff19fa0d2)

読者の便宜のため、スライドの表示方法として 3 つの選択肢を用意しています。

1. スライド [アニメーション付き](#google-slides-with-animations);
2. スライド [アニメーションなし](#google-slides-without-animations);
3. のスライド [PDF 形式](https://www.filepicker.io/api/file/7Okr2kx6QAWPo3w7mt6K) をオフラインで閲覧または印刷できます。

#### ステップ2（任意）: ページレイアウト図をダウンロードして確認する

ページレイアウト図をさらに詳しく見たい場合は、 [この記事の末尾](#download-page-layout-diagrams) に、 [Google スライド](#google-slides-with-animations).

### に含まれる図の見開き版（向かい合うページ）を含む PDF ファイルをダウンロードするリンクがあります。

で示した方程式を見てみると、 [Google スライド](#google-slides-with-animations) には多くの変数が含まれていることに気づくかもしれません。そのため、どの LaTeX パラメータ値を計算したいか、どれを自分で設定したいかによって、方程式の使い方は複数あります。 [Google スライド](#google-slides-with-animations):

![{{{alt}}}](/files/ed8287535c2a560bf4e5fb8b3a268c041a8a6ab9)

そこに含まれる図のひとつ（および関連する方程式）を見てみましょう。

1. 設定する `\hoffset` と `\voffset` を `0mm` （ `\pdfhorigin=1in` と `\pdfvorigin=1in`必要に応じて）
2. 書籍ページに影響する次の LaTeX パラメータの値を使用する *幅*:

* `\marginparsep`
* `\marginparwidth`

4. 書籍ページに影響する次の LaTeX パラメータに、希望する値を設定する *高さ*:

* `\headheight`
* `\headsep`
* `\footskip`

6. 希望する用紙サイズの値に加え、書籍ページの希望する幅と高さ、さらに使用したい 4 つの書籍余白値を設定します。
7. 選択した用紙サイズを中央に配置した書籍レイアウトを実装するために、次の LaTeX の値を計算します。

* `\evensidemargin`, `\oddsidemargin`, `\textwidth`, `\textheight`と `\topmargin`

## 記事のリソース

ここでは、LaTeX のページレイアウト・パラメータをよりよく理解するのに役立つよう、いくつかのリソースを用意しました。 [Google スライド](#google-slides-with-animations) には、必要に応じて任意の文書の要件に合わせたパラメータ値を直接計算するために使える、簡単な方程式の詳細が記載されています。

### アニメーション付きの Google スライド

{% embed url="<https://docs.google.com/presentation/d/e/2PACX-1vSTZiCWqckmPGdqisRh9wTflZrmWdofwpReQAkSbuW2tTBothzSy86TzwMUtfomKtqSbVwNypifdUgY/embed?start=false&loop=false&delayms=3000>" %}

### アニメーションなしの Google スライド

{% embed url="<https://docs.google.com/presentation/d/e/2PACX-1vQ_gH_Wg0Q0HdhcuyGXPplPsAUkaYbi_at_tnFLKk8q_woe22eFNPjehAF_PLvEgEV_33-qNskIYvlL/embed?start=false&loop=false&delayms=3000>" %}

### PDF に変換した Google スライド

スライドを PDF 文書として表示したい場合や印刷したい場合は、 [PDF 形式](https://www.filepicker.io/api/file/7Okr2kx6QAWPo3w7mt6K).

### ページレイアウト図をダウンロード

ページレイアウト図をより詳しく調べたい場合は、 [PDF 形式](https://www.filepicker.io/api/file/X2O1aJM1Rca68mmYm4PT).

## 結論

この記事が役立ち、LaTeX を使ったページレイアウトを探求するための有用な背景情報を提供できたことを願っています。いつものように、読者の皆さまからのご意見を歓迎しますので、ぜひ [お問い合わせください](https://www.overleaf.com/contact) コメントやフィードバックをお寄せください。

楽しい (La)TeX ライフを！


---

# 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/xiang-xi-ji-shi/04-a-visual-guide-to-latex-s-page-layout-parameters.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.
