> 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/zh-tw/shen-ru-wen-zhang/04-a-visual-guide-to-latex-s-page-layout-parameters.md).

# LaTeX 頁面版面參數的視覺指南

## 更新：2021 年 9 月

距離最初發表約 4 年後，這篇文章經過編修、重新命名並再次發表，以縮減篇幅並重新聚焦所涵蓋的主題範圍。原文曾包含一個以 LuaTeX 為基礎的 LaTeX 範本，該範本依賴舊版 Overleaf V1 的功能。那個範本現在已經過時，且不再提供。

**注意**：如果你不需要，或不想，了解 LaTeX 頁面版面配置的更細節，那麼 Overleaf 文章 [頁面大小與邊界](/latex/zh-tw/ge-shi-hua/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` 以下參數的值 `\hoffset` 以及 `\voffset` 參數是 *相對的* 是以該（1 英吋，1 英吋）位置為基準。pdfTeX 的參數略有不同，因為它們是相對於左上角，也就是（0mm，0mm）的位置。因此，例如，如果你設定 `\pdfhorigin=30mm` 這相當於設定 `\hoffset` 到 `30–25.4`=`4.6mm` 因為 `\hoffset` 是相對於一個已經位於 `25.4mm` 距離頁面左側 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 文件的「紙張尺寸」：

* `\pdfpagewidth`
* `\pdfpageheight`

既然知道這些指令代表紙張尺寸，我們現在就可以畫出一張圖來說明我們想達成的目標：

![{{{alt}}}](/files/0c6b3aed21d1e86e876786b9433b671e7036baf4)

請注意，Δ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`的全新 primitive。可透過以下方式達成向後相容： `\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，我們喜歡嘗試新想法，因此在本文中，我們提供了一系列資源，希望能對你有幫助：

* **兩組** [**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：檢視或下載（PDF 格式）的 Google 簡報

最後一張投影片（如下所示）總結了簡報中建立的方程式。

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

為了方便讀者，我們提供三種方式來檢視投影片：

1. 投影片 [含動畫](#google-slides-with-animations);
2. 投影片 [不含動畫](#google-slides-without-animations);
3. 投影片的 [PDF 格式](https://www.filepicker.io/api/file/7Okr2kx6QAWPo3w7mt6K) ，可供離線檢視或列印。

#### 步驟 2（選用）：下載並研讀頁面版面圖示

如果你想更詳細地探索頁面版面圖示， [本文末尾有連結](#download-page-layout-diagrams) 可下載一個 PDF 檔，其中包含所收錄圖示的對開頁（左右對頁）版本，來自 [Google 簡報](#google-slides-with-animations).

### 關於頁面版面參數與方程式的說明

如果你查看 [Google 簡報](#google-slides-with-animations) 中所呈現的方程式，你可能會發現其中包含許多變數；因此，依據你想計算哪些 LaTeX 參數值，以及哪些想自行設定，這些方程式有多種使用方式。讓我們來看看 [Google 簡報](#google-slides-with-animations):

![{{{alt}}}](/files/1646e8bfecbdf5ea8e8f24b8e76ab10d1d20aef7)

很明顯，你需要決定要計算哪些 LaTeX 參數值，以及哪些要作為起始值由你提供。可依下列方式進行：

1. 設定 `\hoffset` 以及 `\voffset` 到 `0mm` （配合 `\pdfhorigin=1in` 以及 `\pdfvorigin=1in`，如有需要）
2. 使用下列會影響書頁的 LaTeX 參數值 *寬度*:

* `\marginparsep`
* `\marginparwidth`

4. 設定下列會影響書頁的 LaTeX 參數的偏好值 *高度*:

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

6. 設定你偏好的紙張尺寸，以及書頁所需的寬度與高度，再加上你想使用的四個書頁邊界值。
7. 計算下列 LaTeX 值，以實作你的書籍版面（置中於你所選的紙張尺寸）：

* `\evensidemargin`, `\oddsidemargin`, `\textwidth`, `\textheight`以及 `\topmargin`

## 文章資源

這些資源 [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>" %}

### Google 簡報：轉換為 PDF

如果你偏好將投影片以 PDF 文件檢視，或想列印出來，你可以下載投影片的 [PDF 格式](https://www.filepicker.io/api/file/7Okr2kx6QAWPo3w7mt6K).

### 下載頁面版面圖示

如果你想更詳細地研究頁面版面圖示，這裡有一份對開頁（也就是左右對頁）的 [PDF 格式](https://www.filepicker.io/api/file/X2O1aJM1Rca68mmYm4PT).

## 總結

我們希望這篇文章對你有幫助，並提供了探索如何使用 LaTeX 進行頁面版面配置的一些有用背景資訊。一如往常，我們很樂意收到讀者的回饋，所以請務必 [聯絡我們](https://www.overleaf.com/contact) 提出你的意見與回饋。

祝你愉快地（La）TeXing！


---

# 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/zh-tw/shen-ru-wen-zhang/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.
