📅  最后修改于: 2021-01-06 00:42:30             🧑  作者: Mango
这些表格是学术写作中常用的功能。本主题将说明创建表并在表中执行不同功能的步骤。表格是表示信息的有效方法,通常在大多数文档或文件中使用。在讨论科学论文时,这些表用于显示数据。
与其他相比,在Latex中创建表有些复杂。但是在这里,从基础创建表的步骤和过程将使过程变得更容易。
Latex不是电子表格,但是它是构建表格并将这些表格导出到文档的专用工具。
Latex中的表是结合表格环境和表环境创建的。表格环境包含表的实际内容,而其他环境则包含标题。
用于创建表环境的命令为:
\ begin {table} {其中}
表
\茶几}
用于创建表格环境的命令为:
\ begin {tabular} {lcr}
表
\ end {表格}
在此,该表与\ caption命令一起表示表格环境。其中用于确定表中的位置的命令。例如, \ begin {table} {t}表示该表将出现在页面顶部。
表格环境使用& (&)符号分隔列。
用于将内容左对齐,中对齐和右对齐的字母分别是l , c和r 。传递的用于对齐的命令是\ begin {tabular} {lcr}。
用于绘制分隔表各列的垂直线的命令是\ begin {tabular} {l | c | r},其中( | )作为参数传递。 |符号用于在列之间绘制垂直线。
您也可以使用\ vline命令绘制垂直线。 \ vline命令绘制垂直线以及行的高度。
如果要绘制一条水平线作为行分隔符,则可以使用\ hline命令。
命令\ cline { ij }用于绘制从i到j的部分水平线。
让我们考虑使用上面讨论的命令的几个表示例。
1。
\documentclass{article}
\begin{document}
\begin{center}
TABLE
\end{center}
\begin{tabular}{lcr}
a&b&c\\
d&e&f\\
g&h&i
\end{tabular}
\end{document}
输出:
2。
\documentclass{article}
\begin{document}
\begin{center}
\begin{tabular}{|l|c|r|}
\hline
a&b&c\\ \hline
d&e&f\\ \hline
g&h&i\\ \hline
\end{tabular}
\end{center}
\end{document}
输出:
3。
\documentclass{article}
\begin{document}
\begin{tabular}{|r|l|}
\hline
I, II, III, IV...& uppercase Roman
i, ii, iii... & lowercase roman numerals \\ \cline{2-2}
1, 2, 3.. & Arabic format \\
\hline \hline
1684 & decimal digits \\
\hline
\end{tabular}
\end{document}
输出:
现在,查看下面的代码以创建基本表:
4。
\documentclass{article}
\begin{document}
\begin{table}[h!]
\begin{center}
\caption{ the basic table}
\label{tab:Table1}
\begin{tabular}{|l|c|r|}
\textbf{heading 1} & \textbf{heading 2} & \textbf{heading 3}\\
$\alpha$ & $\beta$ & $\gamma$ \\
\hline
1 & 1.34 & a\\
2 & 18.54 & b\\
3 & 735.765231 & c\\
\end{tabular}
\end{center}
\end{table}
\end{document}
说明:
代替\ begin {center}…\ end {center},可以使用文档\表开头的\ centering命令。
输出:
对于合并的列,使用\ multicolumn { num } { col } { text }命令。 num命令用于将num列与宽度一起组合为单个列。命令col包含符号l,c或r。文本包含该列的内容。
对于合并的行,使用\ raisedbox { lift } { text }命令。它打印文本,该文本比当前基线高出提升量。对于行之间的单个空格,使用[-lex]命令。对于第一行和第二行之间的双倍空格,使用[1ex]命令。
您也可以使用* {num} {str}语法对齐许多相同的列。当表中有许多列时,此功能很有用。该命令将写为:
\ begin {tabular} {1 * {6} {c} r}
让我们考虑一个例子。代码如下:
\documentclass{article}
\begin{document}
\begin{table}[h]
\caption{Marks after exams} % title name of the table
\centering % centering table
\begin{tabular}{l c c rrrrrrr} % creating 10 columns
\hline\hline
Subject &No. of Students &category &\multicolumn{7}{c}{the list of marks}
\\ [0.5ex]
\hline
% Entering 1st row
& &lowest &43 & 34 & 65 & 41 & 33 & 46 & 51 \\[-1ex]
\raisebox{1.5ex}{Science} & \raisebox{1.5ex}{32}&highest
& 88 & 94 & 93 & 89 & 91 & 90 & 88 \\[1ex]
% Entering 2nd row
& &lowest & 41 & 33 & 42 & 35 & 36 & 40 & 31 \\[-1ex]
\raisebox{1ex}{Maths} & \raisebox{1.5ex}{32}& highest
&87 & 89 & 87 & 98 & 96 & 94 & 90 \\[1ex]
% Entering 3rd row
& &lowest & 43 & 41 & 37 & 34 & 39 & 41 & 44 \\[-1ex]
\raisebox{1ex}{English} & \raisebox{1.5ex}{32}& highest
&79 & 87 & 85 & 91 & 84 & 83 & 90 \\[1ex]
% [1ex] adds vertical space
\hline % inserts single-line
\end{tabular}
\end{table}
\end{document}
输出:
您也可以使用\ usepackage {adjustbox}命令将模式更改为横向模式。
此处的表格以\ begin {adjustbox}开头,以\ end {adjustbox}结尾。
让我们考虑一个简单的表示例来理解这一点。
代码如下:
\documentclass{article}
\usepackage{adjustbox}
\begin{document}
\begin{adjustbox}{angle=90}
\begin{tabular}{l|c|r}
\textbf{heading 1} & \textbf{heading 2} & \textbf{heading 3}\\
$\alpha$ & $\beta$ & $\gamma$ \\
\hline
1 & 11.34 & a\\
2 & 10.5 & b\\
3 & 765.5231 & c\\
\end{tabular}
\end{adjustbox}
\end{document}
输出:
例如,如果使用与上述相同的代码将角度设置为150度,则输出将如下图所示:
下面介绍了一些用于创建表的常用命令:
对于列之间的间隔,使用\ setlength {\ tabcolsep} {5pt}命令。默认大小为6pt 。此命令插入到列之间以留出间隔。
对于行之间的间隔,使用\ arraystretch命令。
乳胶算法有一些缺点。如果文本超出页面宽度,则Latex不会自动调整/包装文本。为此,使用特殊命令p(预定义的宽度)来设置宽度。
下面给出示例。
本示例说明了不设置宽度和使用宽度的两个过程。您会注意到这两种方法之间的区别。
代码如下:
\documentclass{article}
\begin{document}
Without specifying the width.
\begin{center}
\begin{tabular}{| l | l | l | l |}
\hline
Name & Type & popular in & Explanation \\ \hline
Orange & Fruit & Vitamin C & It is fruit, which is full of nutrients and low in calories. They can promote clear, healthy skin and also lowers the risk for many diseases. It reduces cholesterol and also helps in building a healthy immune system.\\ \hline
Cauliflower & vegetable & B-Vitamins & It is the vegetable, which is high in fiber and B-Vitamins. It also provides antioxidants, which help in fighting or protect against cancer. It enhances digestion and has many other nutrients.\\ \hline
\end{tabular}
\end{center}
\end{document}
输出:
您会注意到,由于未指定宽度,因此未显示该信息。
\documentclass{article}
\begin{document}
specifying with the width.
\begin{center}
\begin{tabular}{ | l | l | l | p{5cm} |} % you can change the dimension according to the spacing requirements
\hline
Name & Type & popular in & Explanation \\ \hline
Orange & Fruit & Vitamin C & It is fruit, which is full of nutrients and low in calories. They can promote clear, healthy skin and also lowers the risk for many diseases. It reduces cholesterol and also helps in building a healthy immune system.\\ \hline
Cauliflower & vegetable & B-Vitamins & It is the vegetable, which is high in fiber and B-Vitamins. It also provides antioxidants, which help in fighting or protect against cancer. It enhances digestion and has many other nutrients.\\ \hline
\end{tabular}
\end{center}
\end{document}
输出:
它用于格式化包含几行和几列的数据。在这种情况下,使用multirow包将多行拆分为子行。
注意:多行环境中的列换行不适用于所使用的语法。
让我们看一个例子。代码如下:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabular}{c|lp{1.1in}|lp{1in}|l|}
\hline
Name& Occupation & salary & Children & Savings percentage \\\hline
\multirow{3}{*}{Henry}&\multirow{3}{*}{$\$150,000$}&windsurfing&lisa&\multirow{3}{*}{20}\\
~&~&jumping on&John&~\\
~&~&a trampoline & tia &~\\\hline
\multirow{3}{*}{Shefy} & $\multirow{3}{*}{\$70,000} $ &heavy metal music&\multirow{3}{*}{Tyra}
&15\\
~&~&Paris&~&\multirow{2}{*}{12}\\
~&~& dancing with pop music &~&~\\\hline
\multirow{3}{*}{Ben} & $\multirow{3}{*}{\$35,000}$ &chocolate & \multirow{3}{*}{None}&18\\
~&~&fast cars &~&\multirow{2}{*}{ 22}\\
~&~&Ramen&~&~\\\hline
\multirow{3}{*}{Sam} & $\multirow{3}{*}{\$40,000}$ & paintingit&Donal & \multirow{3}{*}{11}\\
~&~&motorcycles&\multirow{2}{*}{Peter}&~\\
~&~&Reddit&~&~ \\ \hline
\end{tabular}
\end{table}
\end{document}
输出:
您可以使用\ hline命令绘制尽可能多的线。考虑与上面类似的图像,其中包含更多行:
booktabs命令用于使文档更加专业,因为\ hline命令没有这样做。使用bookstab软件包提供的命令例如toprule , midrule和bottomrule代替\ hline命令。
下面给出了bookstab软件包的代码:
\documentclass{article}
\usepackage{booktabs} % For prettier tables
\begin{document}
\begin{table}[h!]
\begin{center}
\caption{Table using booktabs.}
\label{tab:table1}
\begin{tabular}{l|c|r}
\toprule % Toprule applied here
\textbf{Heading 1} & \textbf{Heading 2} & \textbf{Heading 3}\\
$\alpha$ & $\beta$ & $\gamma$ \\
\midrule % Midrule applied here
1 & 1.101 & a\\
2 & 103.145 & b\\
3 & 289.1 & c\\
4 & 17.132114 & d\\
\bottomrule % Bottomrule applied here
\end{tabular}
\end{center}
\end{table}
\end{document}
输出:
如果您的表包含多行,则该表将从底部裁剪。命令longtable用于扩展多个页面,必须将其添加到程序包中。
使用longtable命令时,不使用表格或表格命令。它代替了使用表和表格命令,并将两种环境合并为一个环境。因此,相反,将环境longtable用于表。
上述主题的代码如下:
\documentclass[12pt]{article}
\usepackage{longtable}
\begin{document}
\begin{center}
\begin{longtable}{|c|c|c|c|}
\caption{A simple example of longtable}\\
\hline
\textbf{First heading} & \textbf{Second heading} & \textbf{Third heading} &
\textbf{Fourth heading} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{First heading} & \textbf{Second heading} & \textbf{Third heading} &
\textbf{Fourth heading} \\
\hline
\endhead
\hline \multicolumn{4}{r}{\textit{Continued on next page}} \\
\endfoot
\hline
\endlastfoot
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
ab & bc & ac & da \\ ef & fg & gh & he \\ ij & jk & kl & lj \\ mn & no & op & po \\
\end{longtable}
\end{center}
\end{document}
说明:
输出:
以上代码的输出将在两页中列出,如下所示:
这两个页面分为三个图像。
图片如下:
您会注意到,使用longtable列将表分为多个页面,而没有任何数据丢失。
下面讨论的示例将根据表达式和相应的值将其小数点对齐。
代码如下:
\documentclass[12pt]{article}
\begin{document}
\begin{tabular}{c |r @{.} l} % @{.} is used to display the decimal point
expression Pi &
\multicolumn{2}{c}{corresponding Value} \\
\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$ & 36&46 \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}
\end{document}
输出:
表格材料使用两种环境,即制表环境( \ begin {tabbing}…\ end {tabbing} )和表格环境( \ begin {tabular}…\ end {tabular} )。
该表格允许使用用于绘制水平线和垂直线的命令制作精美的环境。但是,表不能分为几页。为此,如上所述,使用table命令将表分为多个页面。
制表环境用于设置制表符,其行为与打字机类似。设置的选项卡然后从一个移动到另一个。由于制表环境中的每一行都是单独处理的,因此在制表符内允许使用分页符。
下面列出了用于制表符的命令:
制表环境的两个示例如下:
1.此示例的代码如下:
\documentclass[12pt]{article}
\begin{document}
\begin{center}
\begin{tabbing}Heading 1 \= Heading a \= Heading b \= Heading c \\ \\
H 1 \> H 2 \> H 3 \> H 4 \\ \\
FIRST \> SECOND \> THIRD \> FOURTH
\end{tabbing}
\end{center}
\end{document}
在这里,我们在两个新行中使用了两个\\。
输出:
2.下面是第二个示例的代码:
\documentclass[12pt]{article}
\begin{document}
\begin{center}
\begin{tabbing}\hspace{2in} \= \hspace{2in} \= \kill % you can change the inch spacing according to
your requirements
First heading \> Second heading \> Third heading \\
\> Second \> Third \\
\hspace{1in} \\ % make a blank line
This Text extends past tab 1 \>\> Third column \\
\> Text spans columns two and three \\xxxxxxxx \= xxxxx \= xxxx \= \kill % set up new tab stops i.e. to set the stops according
to the number of x
H 1 \> H 2 \> H 3 \> H 4 \\
\end{tabbing}
\end{center}
\end{document}
输出: