我正在用 Latex 写我的本科项目,有几个表格要写。但是,它们不是简单的对齐表格。以下是一个例子:
我写了一个代码,可以产生类似的效果,但我想知道是否有更结构化的方法。这是代码:
\documentclass[11pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{array}
\usepackage{float}
\usepackage{lmodern}
\usepackage{caption}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\begin{document}
\begin{tabular}{cl}
\begin{tabular}{cl}
$a$&$a$\\
\hline
1\qquad 1 &\hspace{0.3cm} 1\\
2\qquad 2 &\hspace{0.3cm} 2\\
3\qquad 4 &\hspace{0.3cm} 3\\
4\qquad 3 &\hspace{0.3cm} 4\\
5\qquad 3 &\hspace{0.3cm} 5\\
6\qquad 3 &\hspace{0.3cm} 6\\
\end{tabular}
\end{document}
此外,如果我想知道如何在不同列中为两个元素加下划线。例如,在最后一行中,元素 3 和元素 6最后一列?
我很想听听你的意见。谢谢。
答案1
编写此类表格的最简单方法可能是为标题设置单独的列。例如,像问题中的表格,但缺少一些条目,可以排版为:
\begin{tabular}{*5c}% 5 columns, all centered
&a& &a& \\\hline
1& &1& &1\\
2& &2& &2\\
3& &4& &3\\
4& &3& &4\\
5& & & &5\\
6& & & &6\\
\end{tabular}
这将产生下面左侧的表格:
因为右边的表格完全相同,只是我使用了列规范{c*4{@{\space}c}}
以使表格更紧凑(@{\space}
表示列之间的空间是\space
,并且*4
表示列规范@{\space}c
重复四次)。
完整代码如下:
\documentclass{article}
\begin{document}
\begin{tabular}{*5c}% 5 columns, all centered
&a& &a& \\\hline
1& &1& &1\\
2& &2& &2\\
3& &4& &3\\
4& &3& &4\\
5& & & &5\\
6& & & &6\\
\end{tabular}
\qquad
\begin{tabular}{c*4{@{\space}c}}% more compact version
&a& &a& \\\hline
1& &1& &1\\
2& &2& &2\\
3& &4& &3\\
4& &3& &4\\
5& & & &5\\
6& & & &6\\
\end{tabular}
\end{document}
如果你想“全局”更改tabluar
环境中列之间的间距,那么你可以添加命令
\renewcommand{\tabcolsep}{0.5mm}
到你的序言(是\begin{document}
)。上面的两个表格几乎完全相同。
最后,如果表中的条目是“数学”,那么您应该使用array
环境instead of
tabular`——语法相同,只是环境应该包含在数学模式中,并且输出会略有不同,因为表中的条目也将在数学模式下排版。事实上,由于您想给某些条目加下划线,那么这可能就是您想要的。例如,要生成
您可以使用
\documentclass{article}
\begin{document}
\renewcommand{\arraycolsep}{0.5mm}
\[
\begin{array}{*7c}
&a& &a& &b&\\\hline
4& &3& &4& &4\\
5& & & &5& &5\\
6& & & &\underline{6}& &\underline{7}\\
\end{array}
\]
\end{document}
要使下划线跨越多列,您可以像评论中提到的那样使用\cline
:
\documentclass{article}
\begin{document}
\renewcommand{\arraycolsep}{0.5mm}
\[
\begin{array}{*7c}
&a& &a& &b&\\\hline
4& &3& &4& &4\\
5& & & &5& &5\\
6& & & &6& &7\\\cline{5-7}
\end{array}
\]
\end{document}
得出的结果为:
这适用于array
和tabular
环境。请注意,由 生成的行\cline
略低于由 生成的行,\underine{...}
因此,例如,如果您只想为列中的条目加下划线5
以保持一致性,最好使用\cline{5-5}
- 这还可以减少输入量,并为您提供更好的输入表布局!此外,您可以\cline
在一行上使用多个命令:\cline{1-3}\cline{5-7}
将在第 1-3 列和第 5-7 列下添加两行。