LaTex 排版 (2):表格
LaTeX 提供了許多工具來創(chuàng)建和定制表格,在本系列中,我們將使用 tabular 和 tabularx 環(huán)境來創(chuàng)建和定制表。
基礎(chǔ)表格
要創(chuàng)建表,只需指定環(huán)境 \begin{tabular}{列選項}:
\begin{tabular}{c|c}Release &Codename \\ \hlineFedora Core 1 &Yarrow \\Fedora Core 2 &Tettnang \\Fedora Core 3 &Heidelberg \\Fedora Core 4 &Stentz \\\end{tabular}
Basic Table
在上面的示例中,花括號中的 ”{c|c}” 表示文本在列中的位置。下表總結(jié)了位置參數(shù)及其說明。
| 參數(shù) | 位置 |
|---|---|
c |
將文本置于中間 |
l |
將文本左對齊 |
r |
將文本右對齊 |
p{寬度} |
文本對齊單元格頂部 |
m{寬度} |
文本對齊單元格中間 |
b{寬度} |
文本對齊單元格底部 |
m{寬度}和b{寬度}都要求在最前面指定數(shù)組包。
使用上面的例子,讓我們來詳細講解使用的要點,并描述你將在本系列中看到的更多選項:
| 選項 | 意義 |
|---|---|
& |
定義每個單元格,這個符號僅用于第二列 |
\\ |
這將終止該行并開始一個新行 |
| |
指定表格中的垂直線(可選) |
\hline |
指定表格中的水平線(可選) |
*{數(shù)量}{格式} |
當(dāng)你有許多列時,可以使用這個,并且是限制重復(fù)的有效方法 |
|| |
指定表格中垂直雙線 |
定制表格
學(xué)會了這些選項,讓我們使用這些選項創(chuàng)建一個表。
\begin{tabular}{*{3}{|l|}}\hline\textbf{Version} &\textbf{Code name} &\textbf{Year released} \\\hlineFedora 6 &Zod &2006 \\ \hlineFedora 7 &Moonshine &2007 \\ \hlineFedora 8 &Werewolf &2007 \\\hline\end{tabular}
Customise Table
管理長文本
如果列中有很多文本,那么它的格式就不好處理,看起來也不好看。
下面的示例顯示了文本的格式長度,我們將在導(dǎo)言區(qū)中使用 blindtext,以便生成示例文本。
\begin{tabular}{|l|l|}\hlineSummary &Description \\ \hlineTest &\blindtext \\\end{tabular}
Default Formatting
正如你所看到的,文本超出了頁面寬度;但是,有幾個選項可以克服這個問題。
- 指定列寬,例如
m{5cm} - 利用
tablarx環(huán)境,這需要在導(dǎo)言區(qū)中引用tablarx宏包。
使用列寬管理長文本
通過指定列寬,文本將被折行為如下示例所示的寬度。
\begin{tabular}{|l|m{14cm}|} \hlineSummary &Description \\ \hlineTest &\blindtext \\ \hline\end{tabular}\vspace{3mm}
Column Width
使用 tabularx 管理長文本
在我們利用表格之前,我們需要在導(dǎo)言區(qū)中加上它。tabularx 方法見以下示例:\begin{tabularx}{寬度}{列選項}。
\begin{tabularx}{\textwidth}{|l|X|} \hlineSummary & Tabularx Description\\ \hlineText &\blindtext \\ \hline\end{tabularx}
Tabularx
請注意,我們需要處理長文本的列在花括號中指定了大寫 X。
合并行合并列
有時需要合并行或列。本節(jié)描述了如何完成。要使用 multirow 和 multicolumn,請將 multirow 添加到導(dǎo)言區(qū)。
合并行
multirow 采用以下參數(shù) \multirow{行的數(shù)量}{寬度}{文本},讓我們看看下面的示例。
\begin{tabular}{|l|l|}\hlineRelease &Codename \\ \hlineFedora Core 4 &Stentz \\ \hline\multirow{2}{*}{MultiRow} &Fedora 8 \\&Werewolf \\ \hline\end{tabular}

MultiRow
在上面的示例中,指定了兩行,* 告訴 LaTeX 自動管理單元格的大小。
合并列
multicolumn 參數(shù)是 {multicolumn{列的數(shù)量}{單元格選項}{位置}{文本},下面的示例演示合并列。
\begin{tabular}{|l|l|l|}\hlineRelease &Codename &Date \\ \hlineFedora Core 4 &Stentz &2005 \\ \hline\multicolumn{3}{|c|}{Mulit-Column} \\ \hline\end{tabular}
Multi-Column
使用顏色
可以為文本、單個單元格或整行指定顏色。此外,我們可以為每一行配置交替的顏色。
在給表添加顏色之前,我們需要在導(dǎo)言區(qū)引用 \usepackage[table]{xcolor}。我們還可以使用以下顏色參考 LaTeX Color 或在顏色前綴后面添加感嘆號(從 0 到 100 的陰影)來定義顏色。例如,gray!30。
\definecolor{darkblue}{rgb}{0.0, 0.0, 0.55}\definecolor{darkgray}{rgb}{0.66, 0.66, 0.66}
下面的示例演示了一個具有各種顏色的表,\rowcolors 采用以下選項 \rowcolors{起始行顏色}{偶數(shù)行顏色}{奇數(shù)行顏色}。
\rowcolors{2}{darkgray}{gray!20}\begin{tabular}{c|c}Release &Codename \\ \hlineFedora Core 1 &Yarrow \\Fedora Core 2 &Tettnang \\Fedora Core 3 &Heidelberg \\Fedora Core 4 &Stentz \\\end{tabular}
Alt colour table
除了上面的例子,\rowcolor 可以用來指定每一行的顏色,這個方法在有合并行時效果最好。以下示例顯示將 \rowColors 與合并行一起使用的影響以及如何解決此問題。
Impact on multi-row
你可以看到,在合并行中,只有第一行能顯示顏色。想要解決這個問題,需要這樣做:
\begin{tabular}{|l|l|}\hline\rowcolor{darkblue}\textsc{\color{white}Release} &\textsc{\color{white}Codename} \\ \hline\rowcolor{gray!10}Fedora Core 4 &Stentz \\ \hline\rowcolor{gray!40}&Fedora 8 \\\rowcolor{gray!40}\multirow{-2}{*}{Multi-Row} &Werewolf \\ \hline\end{tabular}
Multi-row
讓我們講解一下為解決合并行替換顏色問題而實施的更改。
- 第一行從合并行上方開始
- 行數(shù)從
2更改為-2,這意味著從上面的行開始讀取 \rowcolor是為每一行指定的,更重要的是,多行必須具有相同的顏色,這樣才能獲得所需的結(jié)果。
關(guān)于顏色的最后一個注意事項是,要更改列的顏色,需要創(chuàng)建新的列類型并定義顏色。下面的示例說明了如何定義新的列顏色。
\newcolumntype{g}{>{\columncolor{darkblue}}l}
我們把它分解一下:
\newcolumntype{g}:將字母g定義為新列{>{\columncolor{darkblue}}l}:在這里我們選擇我們想要的顏色,并且l告訴列左對齊,這可以用c或r代替。
\begin{tabular}{g|l}\textsc{Release} &\textsc{Codename} \\ \hlineFedora Core 4 &Stentz \\&Fedora 8 \\\multirow{-2}{*}{Multi-Row} &Werewolf \\\end{tabular}\
Column Colour
橫向表
有時,你的表可能有許多列,縱向排列會很不好看。在導(dǎo)言區(qū)加入 rotating 包,你將能夠創(chuàng)建一個橫向表。下面的例子說明了這一點。
對于橫向表,我們將使用 sidewaystable 環(huán)境并在其中添加表格環(huán)境,我們還指定了其他選項。
\centering可以將表格放置在頁面中心\caption{}為表命名\label{}這使我們能夠引用文檔中的表
\begin{sidewaystable}\centering\caption{Sideways Table}\label{sidetable}\begin{tabular}{ll}\rowcolor{darkblue}\textsc{\color{white}Release} &\textsc{\color{white}Codename} \\\rowcolor{gray!10}Fedora Core 4 &Stentz \\\rowcolor{gray!40} &Fedora 8 \\\rowcolor{gray!40}\multirow{-2}{*}{Multi-Row} &Werewolf \\\end{tabular}\vspace{3mm}\end{sidewaystable}
Sideways Table
列表和表格
要將列表包含到表中,可以使用 tabularx,并將列表包含在指定的列中。另一個辦法是使用表格格式,但必須指定列寬。
用 tabularx 處理列表
\begin{tabularx}{\textwidth}{|l|X|} \hlineFedora Version &Editions \\ \hlineFedora 32 &\begin{itemize}[noitemsep]\item CoreOS\item Silverblue\item IoT\end{itemize} \\ \hline\end{tabularx}\vspace{3mm}
List in tabularx
用 tabular 處理列表
\begin{tabular}{|l|m{6cm}|}\hlineFedora Version &Editions \\\ \hlineFedora 32 &\begin{itemize}[noitemsep]\item CoreOS\item Silverblue\item IoT\end{itemize} \\\ \hline\end{tabular}
List in tabular
總結(jié)
LaTeX 提供了許多使用 tablar 和 tablarx 自定義表的方法,你還可以在表環(huán)境 (\begin\table) 中添加 tablar 和 tablarx 來添加表的名稱和定位表。
LaTeX 宏包
所需的宏包有如下這些:
\usepackage{fullpage}\usepackage{blindtext} % add demo text\usepackage{array} % used for column positions\usepackage{tabularx} % adds tabularx which is used for text wrapping\usepackage{multirow} % multi-row and multi-colour support\usepackage[table]{xcolor} % add colour to the columns\usepackage{rotating} % for landscape/sideways tables
額外的知識
這是一堂關(guān)于表的小課,有關(guān)表和 LaTex 的更多高級信息,請訪問 LaTex Wiki






































