課程 八

其他導言區內容

由於課程沒有涵蓋所有可用的導言區標記,這裡用示例解釋了其他一些標記。你可能想重新檢視課程開始時的表格,以了解可用內容的概覽。那裡提供的簡短描述應該足以讓你在理解了lcrp之後理解不同的列類型mbwW的作用。如果不明白,你可以嘗試做些實驗。還缺少的是其他有用的導言區標記><@!|

設定列的樣式

由於><可以用來在列的單元格內容前後新增內容,你可以使用它們來新增影響列外觀的命令。例如,如果你想要將第一列設為斜體並在其後新增冒號,可以這樣做:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{>{\itshape}l<{:} *{2}{l}}
\toprule
& & \\
\midrule
& & \\
& & \\
& & \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

\itshape使所有後續文字變為斜體,但其效果被”限制”在表格單元格內。我們將在幾節課後學習手動字型格式設定。

你可能不希望第一個單元格受到影響,因為它是表頭。這裡可以使用\multicolumn。記住它可以用來改變單個單元格的對齊方式,如下所示。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{>{\itshape}l<{:} *{2}{l}}
\toprule
\multicolumn{1}{l}{} & & \\
\midrule
& & \\
& & \\
& & \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

操作列間距

通常 LaTeX 會在每列兩側新增一些空白以使其看起來平衡並分隔它們。這個空白的大小由長度\tabcolsep定義。由於每列兩側都有填充,你在表格兩端各得到一個\tabcolsep,在兩列之間得到2\tabcolsep — 每列各貢獻一個。你可以使用\setlength調整這個空白到任何長度:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\setlength\tabcolsep{1cm}
\begin{document}
\begin{tabular}{lll}
& & \\
& & \\
& & \\
& & \\
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

你可以使用@將這個空白改為任意內容。這將移除兩列之間或表格兩端的填充,並在你指定為參數的列之間放置任何內容:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\begin{document}
\begin{tabular}{l@{ : }l@{\hspace{2cm}}l}
& & \\
& & \\
& & \\
& & \\
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(我們很快就會再次看到\hspace;你可能猜到它新增了一個水平空白。)

!導言區標記做的事情很相似。不同的是,它將其參數 新增 到兩列之間空白的中心。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\begin{document}
\begin{tabular}{l!{:}ll}
& & \\
& & \\
& & \\
& & \\
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

豎線

有時你不得不使用豎線。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\begin{document}
\begin{tabular}{l|ll}
& & \\[2pt]
& & \\
& & \\
& & \\
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

你可能注意到|的行為很像!{decl};它在保持填充不變的情況下在兩列之間新增豎線。但這有一個很大的缺點:豎線與booktabs提供的水平線不相容。你可以使用 LaTeX 提供的水平線;這些是\hline(對應於\toprule\midrule\bottomrule)和\cline(其行為類似於\cmidrule)。如上所示,豎線會跨越\\可選參數中指定的任何空白。

自定義booktabs

所有booktabs線和\addlinespace都支援一個可選參數,用於指定線的粗細。此外,\cmidrule提供的修剪可以通過在rl後的花括號中指定長度來自定義。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{@{} lll@{}} \toprule[2pt]
& & \\ \midrule[1pt]
& & \\
\cmidrule[0.5pt](r{1pt}l{1cm}){1-2}
& & \\
& & \\ \bottomrule[2pt]
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

列中的數字對齊

表格中數字的對齊可以通過siunitx宏包提供的列類型S來處理。

一個帶有兩個對齊數字列的簡單示例是:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{SS}
\toprule
{} & {} \\
\midrule
1 & 2.3456 \\
1.2 & 34.2345 \\
-2.3 & 90.473 \\
40 & 5642.5 \\
5.3 & 1.2e3 \\
0.2 & 1e4 \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

注意任何非數字的單元格必須用花括號”保護”。

siunitx宏包提供了許多用於以不同方式格式化數字的可能性;請參見宏包文件

指定表格總寬度

tabular環境的寬度是根據表格內容自動確定的。有兩種常用的機制來指定不同的總寬度。

注意,幾乎總是最好按照下面的方式將表格格式化為指定寬度(如果需要,可能使用\small等字型大小),而不是使用\resizebox等命令來縮放表格,因為後者會產生不一致的字型大小和線寬。

tabular*

tabular*環境需要一個額外的 寬度 參數,用於指定表格的總寬度。必須使用\extracolsep命令向表格新增可伸縮空白。這個空白會從該點開始新增到所有列之間。它幾乎總是與\fill一起使用,這是一個特殊的空白,會伸縮到所需的大小。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\begin{document}
\begin{center}
\begin{tabular}{cc}
\hline
A & B\\
C & D\\
\hline
\end{tabular}
\end{center}
\begin{center}
\begin{tabular*}{.5\textwidth}{@{\extracolsep{\fill}}cc@{}}
\hline
A & B\\
C & D\\
\hline
\end{tabular*}
\end{center}
\begin{center}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}cc@{}}
\hline
A & B\\
C & D\\
\hline
\end{tabular*}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

tabularx

tabularx環境(由同名宏包提供)的語法與tabular*類似,但不是調整列間空白,而是調整由新列類型X指定的列的寬度。這相當於為自動確定的寬度指定p{...}

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{tabularx}
\begin{document}
\begin{center}
\begin{tabular}{lp{2cm}}
\hline
A & B B B B B B B B B B B B B B B B B B B B B B B B\\
C & D D D D D D D\\
\hline
\end{tabular}
\end{center}
\begin{center}
\begin{tabularx}{.5\textwidth}{lX}
\hline
A & B B B B B B B B B B B B B B B B B B B B B B B B\\
C & D D D D D D D\\
\hline
\end{tabularx}
\end{center}
\begin{center}
\begin{tabularx}{\textwidth}{lX}
\hline
A & B B B B B B B B B B B B B B B B B B B B B B B B\\
C & D D D D D D D\\
\hline
\end{tabularx}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

與這些課程中討論的其他形式不同,tabularx需要多次排版表格來確定最終的設定。這意味著在使用該環境時有一些限制;請參見宏包文件

多頁表格

tabular形成一個不可分割的盒子,因此它必須足夠小以適合一頁,而且通常放在浮動的table環境中。

有幾個宏包提供了類似語法的可以分頁的變體。這裡我們展示longtable宏包:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage[paperheight=8cm,paperwidth=8cm]{geometry}
\usepackage{array}
\usepackage{longtable}
\begin{document}
\begin{longtable}{cc}
\multicolumn{2}{c}{}\\
& \\
\hline
\endhead
\hline
\endfoot
aa & bb\\
& b\\
a & b\\
a & b\\
a & b\\
a & b\\
a & bbb\\
a & b\\
a & b\\
a & b\\
a & b\\
a & b\\
a & b\\
a & b b b b b b\\
a & b b b b b\\
a & b b\\
& b\\
\end{longtable}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

longtable的顯著特點是它在所有頁面上保持列寬一致;然而,為了實現這一點,它可能需要執行 LaTeX 多次,這樣後面遇到的寬條目就可以影響前面頁面上的列寬。

表格註釋

在表格中需要腳註樣的標記來引用表格下方的註釋是很常見的。threeparttable宏包簡化了這種表格的標記,它會將註釋設定在與表格相同寬度的塊中。有關完整細節,請參見宏包文件,但這裡我們給出一個簡單的示例。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{threeparttable}
\begin{document}
\begin{table}
\begin{threeparttable}
\caption{}
\begin{tabular}{ll}
\hline
& 42\tnote{1}\\
& 24\tnote{2}\\
\hline
\end{tabular}
\begin{tablenotes}
\item [1]
\item [2]
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

在窄列中排版

預設的斷行設定假設相對較長的行,以在選擇斷行位置時提供一些靈活性。以下示例展示了一些可能的方法。第一個表格顯示了詞間距被拉伸,TeX 警告Underfull 行。使用\raggedright通常可以避免這個問題,但可能會讓一些行”太參差不齊”。ragged2e宏包中的\RaggedRight命令是一個折衷方案;它允許一些行長的參差不齊,但也會在必要時進行連字,如第三個表格所示。

注意這裡使用了\arraybackslash,它重置了\\的定義,使其結束表格行。

另一種技術,如第四個表格所示,是使用較小的字型,這樣列相對於文字大小就不那麼窄了。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{ragged2e}
\begin{document}
\begin{table}
\begin{tabular}[t]{lp{3cm}}
& \\
&
\end{tabular}%
\begin{tabular}[t]{l>{\raggedright\arraybackslash}p{3cm}}
& \\
&
\end{tabular}%
\begin{tabular}[t]{l>{\RaggedRight}p{3cm}}
& \\
&
\end{tabular}
\footnotesize
\begin{tabular}[t]{lp{3cm}}
& \\
&
\end{tabular}
\end{table}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

定義新的列類型

主課程中所示,array宏包允許像>{\bfseries}c這樣的結構來表示粗體居中列。定義一個新的列類型來封裝這種用法通常很方便,例如

\newcolumntype{B}{>{\bfseries}c}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

這樣就可以在表格導言區中使用B來指定一個粗體居中列。

垂直技巧

通常,與其讓一個單元格跨越多行,不如在一個單元格中使用巢狀的tabular環境來垂直分割一些單元格。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcc}
\toprule
& \begin{tabular}{@{}c@{}}A\\a\end{tabular} & \begin{tabular}{@{}c@{}}B\\b\end{tabular} \\
\midrule
& & \\
& & \\
& & \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

注意你可以通過tabular的可選參數控制垂直對齊;它支援使用tcb分別表示頂部、居中或底部對齊,使用方式如下:

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcc}
\toprule
& \begin{tabular}[b]{@{}c@{}}A\\a\end{tabular} & \begin{tabular}[t]{@{}c@{}}B\\b\end{tabular} \\
\midrule
& & \\
& & \\
& & \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

表格中的行間距

在主課程中我們演示了\addlinespacebooktabs宏包,它對於在特定行之間新增額外空間很有用。

有兩個一般參數控制行間距,\arraystretch\extrarowheight(後者來自array宏包)。

\renewcommand\arraystretch{1.5}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

將增加基線間距50%。

通常,尤其是在使用\hline時,最好只是增加行的高度,而不增加它們在基線以下的深度。以下示例演示了\extrarowheight參數。

% !TEX program=lualatex
\documentclass{ctexart}
\usepackage{array}
\begin{document}
\begin{center}
\begin{tabular}{cc}
\hline
Square& $x^2$\\
\hline
Cube& $x^3$\\
\hline
\end{tabular}
\end{center}
\begin{center}
\setlength\extrarowheight{2pt}
\begin{tabular}{cc}
\hline
Square& $x^2$\\
\hline
Cube& $x^3$\\
\hline
\end{tabular}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX