LaTeX typesetting part 2 (tables)

栏目: IT技术 · 发布时间: 3年前

内容简介:LaTeX offers a number of tools to create and customise tables, in this series we will be using the tabular and tabularx environment to create and customise tables.To create a table you simply specify the environment \begin{tabular}{columns}

LaTeX offers a number of tools to create and customise tables, in this series we will be using the tabular and tabularx environment to create and customise tables.

Basic table

To create a table you simply specify the environment \begin{tabular}{columns}

\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}

LaTeX typesetting part 2 (tables)

In the above example "{c|c}" in the curly bracket refers to the position of the text in the column. The below table summarises the positional argument together with the description.

Position Argument
c Position text in the centre
l Position text left-justified
r Position text right-justified
p{width} Align the text at the top of the cell
m{width} Align the text in the middle of the cell
b{width} Align the text at the bottom of the cell

>Both m{width} and b{width} requires the array package to be specified in the preamble.

Using the example above, let us breakdown the important points used and describe a few more options that you will see in this series

Option Description
& Defines each cell, the ampersand is only used from the second column
\ This terminates the row and start a new row
| Specifies the vertical line in the table (optional)
\hline Specifies the horizontal line (optional)
*{num}{form} This is handy when you have many columns and is an efficient way of limiting the repetition
|| Specifies the double vertical line

Customising our table

Now that some of the options available let create a table using the options described in the previous section.

\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}

LaTeX typesetting part 2 (tables)

Managing long text

With LaTeX if there are many texts in a column it will not be formatted well and does not look presentable.

The below example shows how long text is formatted, we will use "blindtext" in the preamble so that we can produce sample text.

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

LaTeX typesetting part 2 (tables)

As you can see the text exceed the page width; however, there are a couple of options to overcome this challenge.

  • Specify the column width, for example, m{5cm}
  • Utilise the tabularx environment, this requires tabularx package in the preamble.

Managing long text with column width

By specifying the column width the text will be wrapped into the width as shown in the example below.

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

LaTeX typesetting part 2 (tables)

Managing long text with tabularx

Before we can leverage tabularx we need to add it in the preamble. Tabularx takes the following example

\begin{tabularx}{width}{columns}

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

LaTeX typesetting part 2 (tables)

Notice that the column that we want the long text to be wrapped has a capital "X" specified.

Multirow and multicolumn

There are times when you will need to merge rows and/or column. This section describes how it is accomplished. To use multirow and multicolumn add multirow to the preamble.

Multirow

Multirow takes the following argument \multirow{number_of_rows}{width}{text} , let us look at the below example.

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

LaTeX typesetting part 2 (tables)

In the above example, two rows were specified, the ‘*’ tells LaTeX to automatically manage the size of the cell.

Multicolumn

Multicolumn argument is \multicolumn{number_of_columns}{cell_position}{text} , below example demonstrates 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}

LaTeX typesetting part 2 (tables)

Working with colours

Colours can be assigned to the text, an individual cell or the entire row. Additionally, we can configure alternating colours for each row.

Before we can add colour to our tables we need to include \usepackage[table]{xcolor} into the preamble. We can also define colours using the following colour reference LaTeX Colour or by adding an exclamation after the colour prefixed by the shade from 0 to 100. For example, gray!30

\definecolor{darkblue}{rgb}{0.0, 0.0, 0.55}

Below example demonstrate this a table with alternate colours, \rowcolors take the following options \rowcolors{row_start_colour}{even_row_colour}{odd_row_colour} .

\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}

LaTeX typesetting part 2 (tables)

In addition to the above example, \rowcolor can be used to specify the colour of each row, this method works best when there are multi-rows. The following examples show the impact of using the \rowcolours with multi-row and how to work around it.

LaTeX typesetting part 2 (tables)

As you can see the multi-row is visible in the first row, to fix this we have to do the following.

\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}

LaTeX typesetting part 2 (tables)

Let us discuss the changes that were implemented to resolve the multi-row with the alternate colour issue.

  • The first row started above the multi-row
  • The number of rows was changed from 2 to -2, which means to read from the line above
  • \rowcolor was specified for each row, more importantly, the multi-rows must have the same colour so that you can have the desired results.

One last note on colour, to change the colour of a column you need to create a new column type and define the colour. The example below illustrates how to define the new column colour.

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

Let’s break it down

  • \newcolumntype{g}: defines the letter g as the new column
  • {>{\columncolor{darkblue}}l}: here we select our desired colour, and l tells the column to be left-justified, this can be subsitued with c or r
\begin{tabular}{g|l} 
     \textsc{Release}  &\textsc{Codename} \\ \hline
     Fedora Core 4 &Stentz \\ 
     &Fedora 8 \\ 
     \multirow{-2}{*}{Multi-Row} &Werewolf \\ 
 \end{tabular}\

LaTeX typesetting part 2 (tables)

Landscape table

There may be times when your table has many columns and will not fit elegantly in portrait. With the rotating package in preamble you will be able to create a sideways table. The below example demonstrates this.

For the landscape table, we will use the sidewaystable environment and add the tabular environment within it, we also specified additional options.

  • \centering to position the table in the centre of the page
  • \caption{} to give our table a name
  • \label{} this enables us to reference the table in our document
\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}

LaTeX typesetting part 2 (tables)

List and tables

To include a list into a table you can use tabularx and include the list in the column where the X is specified. Another option will be to use tabular but you must specify the column width.

List in 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}

LaTeX typesetting part 2 (tables)

List in 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}

LaTeX typesetting part 2 (tables)

Conclusion

LaTeX offers many ways to customise your table with tabular and tabularx, you can also add both tabular and tabularx within the table environment (\begin\table) to add the table name and to position the table.

LaTeX packages

The packages used in this series are.

\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

Additional Reading

This was an intermediate lesson on tables; for more advanced information about tables and LaTex in general, you can go to LaTeX Wiki

LaTeX typesetting part 2 (tables)

以上所述就是小编给大家介绍的《LaTeX typesetting part 2 (tables)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

琢石成器

琢石成器

罗云彬 / 电子工业出版社 / 2009-6 / 89.00元

Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用程序的角度,从“Hello,World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的方方面面。 本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程......一起来看看 《琢石成器》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试