跳轉至內容

LaTeX/盒子

來自 Wikibooks,開放世界中的開放書籍

LaTeX

入門
  1. 介紹
  2. 安裝
  3. 安裝額外包
  4. 基礎
  5. 如何獲取幫助

常用元素

  1. 文件結構
  2. 文字格式化
  3. 段落格式化
  4. 顏色
  5. 字型
  6. 列表結構
  7. 特殊字元
  8. 國際化
  9. 旋轉
  10. 表格
  11. 標題建立
  12. 頁面佈局
  13. 自定義頁面頁首和頁尾‎
  14. 匯入圖形
  15. 浮動體、圖形和標題
  16. 腳註和邊注
  17. 超連結
  18. 標籤和交叉引用
  19. 首字母

機制

  1. 錯誤和警告
  2. 長度
  3. 計數器
  4. 盒子
  5. 規則和撐杆

技術文字

  1. 數學
  2. 高階數學
  3. 定理
  4. 化學圖形
  5. 演算法
  6. 原始碼列表
  7. 語言學

特殊頁面

  1. 索引
  2. 詞彙表
  3. 參考文獻管理
  4. 更多參考文獻

特殊文件

  1. 科學報告(本科報告、碩士論文、博士論文)
  2. 信件
  3. 簡報
  4. 教師專欄
  5. 簡歷
  6. 學術期刊(MLA、APA 等)

建立圖形

  1. 介紹程式化圖形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 建立 3D 圖形

程式設計

  1. Plain TeX
  2. 建立包
  3. 建立包文件
  4. 主題

其他

  1. 模組化文件
  2. LaTeX 文件的協作編寫
  3. 匯出到其他格式

幫助和建議

  1. 常見問題
  2. 提示和技巧

附錄

  1. 作者
  2. 連結
  3. 包參考
  4. LaTeX 文件示例
  5. 索引
  6. 命令詞彙表

編輯此框編輯目錄

TeX 盒子和膠水概述

[編輯 | 編輯原始碼]

盒子是 TeX 中用於表示一個不可見容器的術語,它可以容納可見元素、空內容或其他盒子。膠水是 TeX 中用於表示連線盒子的不可見聯結器的術語,它決定了連線盒子的相對位置。TeX 文件中包含的每個單獨的可見元素都包含在一個盒子裡。可見元素可以是字母、影像、幾何形狀等。TeX 透過根據預設的 TeX 規則、預設的 LaTeX 規則或文件命令將盒子粘合在一起構建頁面。在一個典型的文件中,字母盒子粘合到其他字母盒子上形成單詞,然後這些單詞彈性地粘合到其他單詞上形成句子。句子被分成行並放置在段落盒子裡。彈性膠水被擠壓或拉伸以使段落盒子內的行完全對齊。段落盒子粘合到圖表盒子,依此類推。

雖然盒子可以容納其他盒子,但並非所有可以生成盒子的命令都可以在所有其他可以生成盒子的命令中使用。對於這些限制,通常有解決方法。

盒子的尺寸通常與其內容的尺寸和位置相關,但並非必須如此。許多盒子命令都接受自定義寬度和/或高度,並且還有其他命令會影響盒子的形狀和位置。盒子相對於其他盒子放置,而可見元素相對於包含它們的盒子放置。

關於盒子和膠水的更完整描述可以在 Donald E. Knuth 的《TeXbook》的第 11 章和第 12 章中找到。可以在 http://www.personal.ceu.hu/tex/spacebox.htm 找到基本的 LaTeX 盒子和膠水命令列表。

字元盒子

[編輯 | 編輯原始碼]

TeX 字元盒子具有三個維度屬性

  • 高度是基線到盒子頂部的長度。
  • 深度是基線到盒子底部的長度。
  • 寬度是盒子的寬度。

字元盒子在基線處粘合在一起。

parbox、minipage 和 pbox

[編輯 | 編輯原始碼]

\parbox 是一個以段落模式格式化的特定寬度盒子。在段落模式下,文字被分成行,行被分成頁面。

\parbox[pos][height][contentpos]{width}{text}

width 定義段落盒子的寬度。文字將被分成行,以使其適合此寬度。除了固定長度,您還可以提供使用者定義的長度宏或 TeX/LaTeX 定義的長度宏和基元,例如 \width\height\depth\totalheight。(有關深度和高度的解釋,請參見上面的字元盒子。)

height 定義 \parbox 的高度。

pos 選擇要連線的哪個基線。它可以是 top(頂部)、bottom(底部)或 center(中心)。此引數對於新手來說通常令人困惑!請參見下面的特殊說明。

contentpos 在盒子內定位盒子的內容。它可以是 center(中心)、top(頂部)、bottom(底部)或 spread(分散)。請注意,如果盒子的大小不超過其包含的文字,則 contentpos 無效。

\pbox 可在 pbox 包中使用。\pbox 具有與 \parbox 相同的引數,但如果使用者提供的寬度引數大於 pbox 的實際內容,則 pbox 會縮小以適應內容。這僅在內容包含手動換行符並且您希望適應結果材料時才有用。

\pbox[pos][height]{width}{text}

minipage 環境採用與 \parbox 相同的引數,並且其行為與 \parbox 幾乎相同。minipage\parbox 之間的區別在於,\parbox 只能包含單個段落,並且您不能在其中使用所有命令和環境,而 minipage 可以包含多個段落,實際上,幾乎可以包含任何內容。

\begin{minipage}[pos][height][contentpos]{width} text \end{minipage}

您可以使用 minipage\parbox\pbox 將段落嵌入到非段落盒子中。例如

\fbox{%
  \parbox{\textwidth}{
    Some very long text\\
    that would not be allowed\\
    in an fbox.
  }%
}

關於 pos 引數的特殊說明

[編輯 | 編輯原始碼]

contentpos 缺失或等於 pos,以及任何時候 pos= center 時,對齊引數 pos 並不指代 \parbox 的邊界。在任何這些情況下,對齊引數都會選擇 \parbox 內部的哪一行文字用於對齊段落框。 \parbox 會被放置,使得所選文字行的基線\parbox 貼上到的框的基線對齊。因此,如果 pos 設定為 top,則 \parbox 中第一行的基線將與 \parbox 外部的基線對齊。在只有一個文字行的特殊情況下,該行文字同時是頂部、底部和中心行,並且更改 pos 似乎不會有任何作用,除非添加了其他文字。

如果 contentpos 存在且等於 pos,並且 pos 不是 center,則 \parbox 將在其邊界處對齊。

makebox 和 mbox

[編輯 | 編輯原始碼]

Makebox 建立一個單行框,可以選擇固定寬度,否則足夠容納其內容。請注意,寬度不必大於內容:例如,將寬度設定為 0 會排版內容而不更改當前位置。(例如,這允許覆蓋。)Makebox 通常用於防止連字元(參見 連字元)或僅用於防止屬於一起的文字被放置在不同的行上。您不能在 Makebox 內放置換行符 (\\)。mbox 是 Makebox 的簡寫無選項版本。

\mbox{text}
\makebox[width][pos]{text}

pos 引數採用一個字母的值:center、flushleft、flushright 或將文字spread 以填充框。

\makebox[0pt]{Some text} over this text

\makebox[15ex][s]{Censored text}\hspace{-15ex}\makebox[15ex][s]{X X X X X}

Text \makebox[2\width][r]{running away}

framebox 和 fbox

[編輯 | 編輯原始碼]

命令 \framebox 的行為與 \makebox 完全相同,只是它還會在內容周圍繪製一個框。

\fbox{text}
\framebox[width][pos]{text}

以下示例顯示了您可以使用 \makebox\framebox 命令執行的一些操作。

\makebox[\textwidth]{c e n t r a l} \par
\makebox[\textwidth][s]{s p r e a d} \par
\framebox[1.1\width]{Guess I'm framed now!} \par
\framebox[0.8\width][r]{Bummer, I am too wide} \par
\framebox[1cm][l]{never mind, so am I}
Can you read this?

您可以調整以下框架長度。

  • \fboxsep:框架和內容之間的距離。
  • \fboxrule:規則的粗細。

這將列印一個較粗且距離較遠的框架。

\setlength{\fboxsep}{10pt}
\setlength{\fboxrule}{5pt}
\fbox{A frame.}

這顯示了字母的方框框架。

\setlength{\fboxsep}{0pt}
\fbox{A}

提供了 framed 包,它添加了 framed 環境,提供了一種在文件中輕鬆設定段落框架的方法。

\usepackage{framed}
% ...

\begin{framed}
This is an easy way to box text within a document!
\end{framed}

savebox/usebox/newsavebox

[編輯 | 編輯原始碼]

savebox 是一個未渲染的框,儲存用於以後透過 usebox 命令重複渲染。

\newsavebox{\boxname}
\savebox{\boxname}{some content}
\usebox{\boxname}

命令 \newsavebox 建立一個用於儲存內容的佔位符;命令 \savebox 將指定的內容儲存在佔位符中,而不會在文件中渲染它;並且 \usebox 將佔位符的內容渲染到文件中。

colorbox 和 fcolorbox

[編輯 | 編輯原始碼]

參見 顏色\fcolorbox 也可以使用 \fboxsep\fboxrule 進行調整。


fancybox 包提供了其他框。

  • \doublebox
  • \ovalbox
  • \shadowbox

框修飾符

[編輯 | 編輯原始碼]

現在我們控制了水平方向,接下來的明顯步驟是控制垂直方向。對於 LaTeX 來說這不成問題。

\raisebox{lift}[height][depth]{text}

命令允許您定義框的垂直屬性。您可以在前三個引數中使用 \width\height\depth\totalheight,以作用於文字引數內框的大小。兩個可選引數分別設定 raisebox 的高度和深度。例如,您可以觀察嵌入 framebox 時它們的區別。

\raisebox{0pt}[0pt][0pt]{\Large%
  \textbf{Aaaa\raisebox{-0.3ex}{a}%
    \raisebox{-0.7ex}{aa}%
    \raisebox{-1.2ex}{r}%
    \raisebox{-2.2ex}{g}%
    \raisebox{-4.5ex}{h}
  }
}
he shouted but not even the next
one in line noticed that something
terrible had happened to him.


rotatebox

[編輯 | 編輯原始碼]

參見 旋轉

resizebox 和 scalebox

[編輯 | 編輯原始碼]

graphicx 包提供了其他框。

\resizebox{10ex}{2\baselineskip}{Dunhill style}
\scalebox{10}{Giant}


上一頁:計數器 索引 下一頁:規則和撐杆
華夏公益教科書