当前位置:   article > 正文

Latex中表格Table环境和Tabular环境_latex tabular

latex tabular

目录

一、Table和Tabular的区别

 二、一个简单的Table环境示例:

三、Latex的“自动换行”功能

四、Latex多行和多列

五、使用tablesgenerator快速将excel表格转换成tex代码

六、设置表格的宽度与页面宽度一致


说明:一至四内容来自Latex中使用Table(表格)和 常用参数解释_\begin{tabular}_iioSnail的博客-程序员秘密 - 程序员秘密

五至六来源于原创。

一、Table和Tabular的区别

代码:

  1. \documentclass{article}
  2. \begin{document}
  3. \begin{table}[h!]
  4. \centering
  5. \begin{tabular}{||c c c c||}
  6. \hline
  7. Col1 & Col2 & Col2 & Col3 \\ [0.5ex]
  8. \hline\hline
  9. 1 & 6 & 87837 & 787 \\
  10. 2 & 7 & 78 & 5415 \\
  11. 3 & 545 & 778 & 7507 \\
  12. 4 & 545 & 18744 & 7560 \\
  13. 5 & 88 & 788 & 6344 \\ [1ex]
  14. \hline
  15. \end{tabular}
  16. \caption{Table to test captions and labels.}
  17. \label{table:1}
  18. \end{table}
  19. \end{document}

注:如果看不懂代码可以借助Chatgpt,让它给解释每行的代码什么意思。具体操作,选中全部代码,点击浏览器chatgpt插件,如Sider,解释即可。

代码结果:

 二、一个简单的Table环境示例:

代码:

  1. \documentclass{article}
  2. \begin{document}
  3. \begin{tabular}{l|c}
  4. Name&Salary\\\hline
  5. Mark&$\$250,000$\\
  6. Carly&$\$80,000$\\
  7. Carter&$\$25,000$\\
  8. Sam&$\$50,000$
  9. \end{tabular}
  10. \end{document}

代码结果:

代码解释:

  • {l|c} :改参数表示列数和其对应的排版。l表示左对齐c表示居中对齐r表示右对齐。| 表示两列之间的分隔符,当不加|时,NameSalary 这两列之间就不会有竖线。
  • & :该符号表示一行中两个单元格之间的分隔符。比如,这个有两列,则每行有一个&符。如果有n列,则每行应该有 n-1 个 & 符
  • \\:换行符,表示该行结束,换下一行
  • hlinehorizontal line,表示在该行下面应该增加一条水平线。比如上图中,第一行下面有横线,后面都没有

三、Latex的“自动换行”功能

Latex并不会自动换行,当文本太大时,它只会一直往后写,甚至会超出页面

两个表格的代码如下:

在输出的两个表中,上面的是没有格式化的,下面的是格式化之后的。

  • p{width} :可以使用 p{width}来指定列宽。例如,第一个表示没有指定列宽(c|lll,即第1列居中,第2-4列左对齐)。第二个表指定了列宽(c|lp{2in}p{1in},即第1列居中,第2列左对齐,第3列2英尺,第4列1英尺)。其中宽度可以使用的单位有cmptinem

这是一个LaTeX代码示例,用于创建两个表格。第一个表格使用了"lll"参数,表示有三列,每列都是左对齐的。第一个表格的第一行是表头,接着是四行数据。第一个表格中的数据包括姓名、薪水、爱好和子女信息。

第二个表格使用了"lp{2in}p{1in}"参数,表示有四列,第一列是左对齐的,第二列是段落对齐的,宽度为2英寸,第三列是段落对齐的,宽度为1英寸。第二个表格的数据与第一个表格相同。

这段代码可以在LaTeX环境中使用,用于生成两个带有不同格式的表格。

四、Latex多行和多列

  1. \documentclass{article}
  2. \usepackage{multirow}
  3. \begin{document}
  4. \begin{table}
  5. \begin{tabular}{c|lp{1.4in}lp{1.1in}}
  6. Name&Salary&Likes&Children&Desires\\\hline
  7. \multirow{3}{*}{Mark}&\multirow{3}{*}{$\$250,000$}&windsurfing&Amy&\multirow{3}{*}{own
  8. a cheese shop}\\
  9. ~&~&jumping on&John&~\\
  10. ~&~&a trampoline&Ray&~\\\hline
  11. \multirow{3}{*}{Carly}&$\multirow{3}{*}{\$80,000}$&heavy metal music&\multirow{3}{*}{Tyra}
  12. &tattoo a president\\
  13. ~&~&Paris&~&\multirow{2}{*}{of the united states}\\
  14. ~&~&dancing in the rain&~&~\\\hline
  15. \multirow{3}{*}{Carter}&$\multirow{3}{*}{\$25,000}$&candy&\multirow{3}{*}{None}&play the
  16. Ukelele\\
  17. ~&~&fast cars that he cannot afford&~&\multirow{2}{*}{ travel the world}\\
  18. ~&~&Ramen&~&~\\\hline
  19. \multirow{3}{*}{Sam}&$\multirow{3}{*}{\$50,000}$&paintingit&Kyle&\multirow{3}{*}{be in the
  20. circus}\\
  21. ~&~&motorcycles&\multirow{2}{*}{Sam Jr.}&~\\
  22. ~&~&Reddit&~&~
  23. \end{tabular}
  24. \end{table}
  25. \end{document}

代码解释:

这是一个LaTeX代码段,用于创建一个表格。代码中使用了`multirow`宏包来合并单元格。

该表格具有5列,分别是Name(姓名),Salary(薪水),Likes(爱好),Children(子女),和Desires(愿望)。每一行表示一个人,每个人的信息分别填写在对应的列中。

`\multirow`命令用于合并行中的单元格。在这个表格中,有多个行都使用了`\multirow`命令。例如,第一行的"Mark"、"$\$250,000$"和"own a cheese shop"都使用了`\multirow`命令来合并三行。

`\hline`命令用于画水平线,将表格分隔为不同的行。在这个表格中,有四个水平线。

该LaTeX代码可以通过编译器生成一个包含表格的PDF文档。表格将以指定的格式和内容出现在生成的文档中。

五、使用tablesgenerator快速将excel表格转换成tex代码

表格的多行和多列,即合并单元格这种需求,我们可以在excel中设计好我们想要的表格样式,将表格复制粘贴到新建标签页 (tablesgenerator.com) 中,然后点击生成tex代码,即可复制粘贴到我们的tex文件中。

或者在上述网站中,上传csv文件,也可以完成上述同样的结果。注意当表格非常长的时候,涉及到复杂的合并单元格时,上传csv文件效果更好。

六、设置表格的宽度与页面宽度一致

接下来,面临的问题是如何对表格的大小进行设置。

具体操作如下:

代码:

  1. \documentclass{article}
  2. \begin{document}
  3. \begin{table}
  4. \begin{tabular}{c|lll}
  5. Name&Salary&Likes&Children\\\hline
  6. Mark&$\$250,000$&windsurfing and jumping on trampolines&Amy, John, and Ray\\
  7. Carly&$\$80,000$&heavy metal music, Paris, and dancing in the rain&Tyra\\
  8. Carter&$\$25,000$&candy, fast cars that he cannot afford and Ramen&None\\
  9. Sam&$\$50,000$&painting, motorcycles, and Reddit&Kyle and Sam Jr.
  10. \end{tabular}
  11. \end{table}
  12. %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  13. \begin{table}
  14. \begin{tabular*}{\hsize}{@{}@{\extracolsep{\fill}}c|lll@{}}
  15. Name&Salary&Likes&Children\\\hline
  16. Mark&$\$250,000$&windsurfing and jumping on trampolines&Amy, John, and Ray\\
  17. Carly&$\$80,000$&heavy metal music, Paris, and dancing in the rain&Tyra\\
  18. Carter&$\$25,000$&candy, fast cars that he cannot afford and Ramen&None\\
  19. Sam&$\$50,000$&painting, motorcycles, and Reddit&Kyle and Sam Jr.
  20. \end{tabular*}
  21. \end{table}
  22. \end{document}

运行结果:

 注:这个例子可能找的不是很好,本质是想让第二章表格和整个页面的宽度是一样的,页面的宽度指的是去掉margin的区域,如果想达到这个目标,只需要在tabular环境后面加上上面那一连串的代码:\begin{tabular*}{\hsize}{@{}@{\extracolsep{\fill}}c|lll@{}} 只需要将c|lll换掉成自己表格需要的列划分和排版即可,比如我有个具有7列的表格,我想让它左对齐,我只需要将c|lll换成7个l,即lllllll即可,整体修改是这样的:\begin{tabular*}{\hsize}{@{}@{\extracolsep{\fill}}lllllll@{}}。

这段代码是用来创建两个表格的。第一个表格使用了tabular环境,其中包含了四列,分别是Name、Salary、Likes和Children。表格中使用了水平线来分隔表头和表格内容,每一行的内容用&符号分隔,每一行的结束用\符号表示。表格的内容包括了四个人的信息,包括姓名、薪水、爱好和子女。

第二个表格使用了tabular*环境,与第一个表格相比,它的宽度是整个页面的宽度,通过\hsize命令来设置。其他的设置和第一个表格相同。

 

参考:

Latex中使用Table(表格)和 常用参数解释_\begin{tabular}_iioSnail的博客-程序员秘密 - 程序员秘密 (cxymm.net)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/124227
推荐阅读
相关标签
  

闽ICP备14008679号