Linux中國

LaTex 排版 (2):表格

LaTeX 提供了許多工具來創建和定製表格,在本系列中,我們將使用 tabulartabularx 環境來創建和定製表。

基礎表格

要創建表,只需指定環境 begin{tabular}{列選項}

begin{tabular}{c|c}
    Release &Codename \ hline
    Fedora Core 1 &Yarrow \ 
    Fedora Core 2 &Tettnang \ 
    Fedora Core 3 &Heidelberg \ 
    Fedora Core 4 &Stentz \ 
end{tabular}

Basic Table

在上面的示例中,花括弧中的 」{c|c}」 表示文本在列中的位置。下表總結了位置參數及其說明。

參數 位置
c 將文本置於中間
l 將文本左對齊
r 將文本右對齊
p{寬度} 文本對齊單元格頂部
m{寬度} 文本對齊單元格中間
b{寬度} 文本對齊單元格底部

m{寬度}b{寬度} 都要求在最前面指定數組包。

使用上面的例子,讓我們來詳細講解使用的要點,並描述你將在本系列中看到的更多選項:

選項 意義
& 定義每個單元格,這個符號僅用於第二列
\ 這將終止該行並開始一個新行
| 指定表格中的垂直線(可選)
hline 指定表格中的水平線(可選)
*{數量}{格式} 當你有許多列時,可以使用這個,並且是限制重複的有效方法
|| 指定表格中垂直雙線

定製表格

學會了這些選項,讓我們使用這些選項創建一個表。

begin{tabular}{*{3}{|l|}}
hline
    textbf{Version} &textbf{Code name} &textbf{Year released} \
hline
    Fedora 6 &Zod &2006 \ hline
    Fedora 7 &Moonshine &2007 \ hline
    Fedora 8 &Werewolf &2007 \
hline
end{tabular}

Customise Table

管理長文本

如果列中有很多文本,那麼它的格式就不好處理,看起來也不好看。

下面的示例顯示了文本的格式長度,我們將在導言區中使用 blindtext,以便生成示例文本。

begin{tabular}{|l|l|}hline
    Summary &Description \ hline
    Test &blindtext \
end{tabular}

Default Formatting

正如你所看到的,文本超出了頁面寬度;但是,有幾個選項可以克服這個問題。

  • 指定列寬,例如 m{5cm}
  • 利用 tablarx 環境,這需要在導言區中引用 tablarx 宏包。

使用列寬管理長文本

通過指定列寬,文本將被折行為如下示例所示的寬度。

begin{tabular}{|l|m{14cm}|} hline
    Summary &Description \ hline
    Test &blindtext \ hline
end{tabular}vspace{3mm}

Column Width

使用 tabularx 管理長文本

在我們利用表格之前,我們需要在導言區中加上它。tabularx 方法見以下示例:begin{tabularx}{寬度}{列選項}

begin{tabularx}{textwidth}{|l|X|} hline
Summary & Tabularx Description\ hline
Text &blindtext \ hline
end{tabularx}

Tabularx

請注意,我們需要處理長文本的列在花括弧中指定了大寫 X

合併行合併列

有時需要合併行或列。本節描述了如何完成。要使用 multirowmulticolumn,請將 multirow 添加到導言區。

合併行

multirow 採用以下參數 multirow{行的數量}{寬度}{文本},讓我們看看下面的示例。

begin{tabular}{|l|l|}hline
    Release &Codename \ hline
    Fedora Core 4 &Stentz \ hline
    multirow{2}{*}{MultiRow} &Fedora 8 \ 
    &Werewolf \ hline
end{tabular}

MultiRow

在上面的示例中,指定了兩行,* 告訴 LaTeX 自動管理單元格的大小。

合併列

multicolumn 參數是 {multicolumn{列的數量}{單元格選項}{位置}{文本},下面的示例演示合併列。

begin{tabular}{|l|l|l|}hline
    Release &Codename &Date \ hline
    Fedora Core 4 &Stentz &2005 \ hline
    multicolumn{3}{|c|}{Mulit-Column} \ hline
end{tabular}

Multi-Column

使用顏色

可以為文本、單個單元格或整行指定顏色。此外,我們可以為每一行配置交替的顏色。

在給表添加顏色之前,我們需要在導言區引用 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{起始行顏色}{偶數行顏色}{奇數行顏色}

rowcolors{2}{darkgray}{gray!20}
begin{tabular}{c|c}
    Release &Codename \ hline
    Fedora  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

讓我們講解一下為解決合併行替換顏色問題而實施的更改。

  • 第一行從合併行上方開始
  • 行數從 2 更改為 -2,這意味著從上面的行開始讀取
  • rowcolor 是為每一行指定的,更重要的是,多行必須具有相同的顏色,這樣才能獲得所需的結果。

關於顏色的最後一個注意事項是,要更改列的顏色,需要創建新的列類型並定義顏色。下面的示例說明了如何定義新的列顏色。

newcolumntype{g}{>{columncolor{darkblue}}l} 

我們把它分解一下:

  • newcolumntype{g}:將字母 g 定義為新列
  • {>{columncolor{darkblue}}l}:在這裡我們選擇我們想要的顏色,並且 l 告訴列左對齊,這可以用 cr 代替。
begin{tabular}{g|l} 
    textsc{Release}  &textsc{Codename} \ hline
    Fedora Core 4 &Stentz \ 
    &Fedora 8 \ 
    multirow{-2}{*}{Multi-Row} &Werewolf \ 
end{tabular}

Column Colour

橫向表

有時,你的表可能有許多列,縱向排列會很不好看。在導言區加入 rotating 包,你將能夠創建一個橫向表。下面的例子說明了這一點。

對於橫向表,我們將使用 sidewaystable 環境並在其中添加表格環境,我們還指定了其他選項。

  • 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|} hline
    Fedora Version &Editions \ hline
    Fedora 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}|}hline
        Fedora Version &Editions \ hline
    Fedora 32 &begin{itemize}[noitemsep]
        item CoreOS
        item Silverblue
        item IoT
    end{itemize} \ hline
end{tabular}

List in tabular

總結

LaTeX 提供了許多使用 tablartablarx 自定義表的方法,你還可以在表環境 (begintable) 中添加 tablartablarx 來添加表的名稱和定位表。

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

額外的知識

這是一堂關於表的小課,有關表和 LaTex 的更多高級信息,請訪問 LaTex Wiki

via: https://fedoramagazine.org/latex-typesetting-part-2-tables/

作者:Earl Ramirez 選題:lujun9972 譯者:Chao-zhi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國