LaTeX中各種常用盒子的使用總結

Apocaly-pse 發表於 2020-10-28

前言

最近寫論文需要用到 LaTeX \LaTeX LATEX,一般來說只需要套用模板就夠了,但是做學問怎麼能淺嘗輒止呢?下面說說 LaTeX \LaTeX LATEX中幾種常用的盒子以及用法,本文主要參考了劉海洋老師的經典書籍《 LaTeX \LaTeX LATEX入門》。

什麼是盒子?

下面這段文字引自《 LaTeX \LaTeX LATEX入門》,很好地解釋了 ( L  ⁣ A ) TeX (L^{\!A})\TeX (LA)TEX系統中盒子的由來。

盒子(box)是 TeX \TeX TEX中的基本處理單位,一個字元、一行文字、一個頁面、一張表格在 TeX \TeX TEX 中都是一個盒子。一個活字就表示一個字元,一行活字排好就用鋼條分隔固定成為一行,一整頁排完也固定在金屬框內。 TeX \TeX TEX 也是這樣,組字成行,組行為頁,小盒子用膠粘連成為大盒子,逐步構成完整的篇章。

盒子在 ( L  ⁣ A ) TeX (L^{\!A})\TeX (LA)TEX中有著十分廣泛的應用,尤其在要求精細化的論文封面、簡歷設計中,更加需要盒子這個基本單位來定位文件中的一些特殊元素。此外,在數學模式中也會常用到盒子,不過 ( L  ⁣ A ) TeX (L^{\!A})\TeX (LA)TEX系統能夠自動對複雜的數學結構進行調整,並生成美觀的數學公式。

盒子在 ( L  ⁣ A ) TeX (L^{\!A})\TeX (LA)TEX主要有兩類:水平盒子與垂直盒子,兩種盒子在不同的地方都有著重要的用途。可以這樣理解:水平盒子排成一列形成大的盒子,這個大盒子就構成了整篇文章;垂直盒子主要用在一些比較特殊的文件元素(例如:腳註、邊注、佔位、指定位置的文字框等)中,進行精細化的調整。可以這樣說,盒子變數一般儲存比較複雜(精細)的內容。下面進行詳細介紹。

水平結構中的盒子

水平結構中的盒子,是 ( L  ⁣ A ) TeX (L^{\!A})\TeX (LA)TEX中最簡單的一種盒子,主要的命令有\mbox{<content>}(用於產生水平且不能斷行的盒子)、\makebox[<width>][<alignment>]{<content>}(用於產生水平且不能斷行的盒子,可以定義其位置與寬度)。

  • \mbox{<content>}: 產生一個盒子,內容以左右模式排列。可以用它表示不允許斷行的內容;

  • \makebox[<width>][<alignment>]{<content>}: 其中寬度和位置為可選引數,位置指盒子中內容的對齊方式,有c(center),l(left),r(right),s(scatter)四種方式,預設是居中對齊

垂直結構中的盒子

垂直結構中的盒子,也被稱為子段盒子(parbox),具有水平盒子不具備的可以斷行顯示等特點。

  • \parbox[<baseline position>][<height>][<alignment>]{<width>}{<content>}

  • minipage環境:

    \begin{minipage}[<baseline position>][<height>][<alignment>]{<width>}
    這裡是盒子的內容。
    \end{minipage}
    

與水平盒子的對齊方式類似,<alignment>也有四個可選值,分別是:c(center),t(top),b(bottom),s(scatter),注意其中的t選項是指對齊第一行的基線,而不是盒子的頂端,s選項僅在設定了彈性間距時有效。

<baseline position>有三個選項,分別是c(center),t(top),b(bottom)

特殊的盒子

升降的水平盒子

命令:\raisebox{<distance>}[<height>][<depth>]{<content>}

這個命令可以生成有升降效果的水平盒子,其中距離為正時盒子裡面的內容上升,距離為負時下降。下面的程式碼可以生成與\TeX命令相同的效果,即 TeX \TeX TEX標誌。

\mbox{T\hspace{-0.1667em}\raisebox{-0.5ex}{E}\hspace{-0.125em}X}

標尺盒子

命令:\rule[<elevated distance>]{<width>}{<height>}{<content>},用於一個實心的矩形盒子,\rule[-0.1em]{1em}{1em} 也可以用作證畢符號,實現如下:
\rule[-0.1em]{1em}{1em}

帶邊框的盒子

命令:\fbox{<content>}\framebox[<width>][<alignment>]{<content>},用於產生帶邊框的盒子,用法與水平結構中的\mbox{}\makebox[][]{}類似。下面使用markdown自帶的KaTeX引擎生成一個帶有邊框的盒子:
這是一個帶有邊框的盒子 \fbox{這是一個帶有邊框的盒子}
對於邊框盒子,可以使用下面的命令進行更多的定製:

  • 設定盒子內容與其邊框之間的距離(預設為3pt):

    \setlength{\fboxsep}{<distance>} \fbox{<content>}
    
  • 設定盒子邊框線的粗細(預設為0.4pt):

    \setlength{\fboxrule}{<thickness>} \fbox{<content>}
    

文件中自定義的盒子(變數)

用法:

\newsavebox{\mybox} % 通常在導言區定義

%%下面的命令用於給盒子變數賦值
%%三個命令中的任何一個都可以進行賦值
\sbox{<command>}{<content>}
\savebox{<command>}[<width>][<alignment>]{<content>}
\begin{lrbox}{<command>} <content> \end{lrbox}

%%下面的命令用於在正文中引用盒子,可以多次引用
\usebox{<content>}

在文件中定義以及使用自定義盒子的一個示例

\newsavebox{\mybox} % 通常在導言區定義
\sbox{\mybox}{test text}
\usebox{\mybox} \fbox{\usebox{\mybox}}