LaTeX学习-day06
教程链接:B站
使用环境:
- 系统:Windows 10
- TeX 系统:TeX Live (官网下载)(清华源)
- IDE:Tex Studio
表格
- 代码:
% 导言区
\documentclass[UTF8]{ctexart}
%表格
% \begin{tabular}[<垂直对齐方式>]{<列格式说明 >}
% <表项> & <表项> & ... & <表项> \\
% ......
%\end{tabular}
% 用\\表示换行
% 用&表示不同的列
% l-本列左对齐
% c-本列居中对齐
% r-本列右对齐
% p{<宽>}-本列宽度固定,能够自动换行
% 详情:texdoc booktab (longtab,tabu)
\usepackage{booktabs} %需要加载宏包{booktabs}
\usepackage{multirow}
\usepackage{diagbox} % 加载宏包
%正文区(文稿区)
\begin{document}
\begin{tabular}{|l||c|p{1.5cm}|c|r|}
% |表示垂直边框 \hline表示水平边框
%||(\hline \hline)表示双边框
%p{1.5cm}指定宽度1.5cm,内容超过指定宽度自动换行
\hline
姓名 & 语文 & 数学 & 外语 & 备注 \\
\hline \hline
张三 & 87 & 100 & 93 & 优秀 \\
\hline
李四 & 75 & 64 & 52 & 补考另行通知 \\
\hline
王五 & 80 & 82 & 78 & \\
\hline
\end{tabular}
添加网络资源 \\
1.基本格式 \\
\begin{tabular}{cc}%一个c表示有一列,格式为居中显示(center)
(1,1)&(1,2)\\%第一行第一列和第二列 中间用&连接
(2,1)&(2,2)\\%第二行第一列和第二列 中间用&连接
\end{tabular}
2.添加竖线和横线 \\
\begin{tabular}{|c|c|}% 通过添加 | 来表示是否需要绘制竖线
\hline % 在表格最上方绘制横线
(1,1)&(1,2)\\
\hline %在第一行和第二行之间绘制横线
(2,1)&(2,2)\\
\hline % 在表格最下方绘制横线
\end{tabular}
3.设置每一列的单元格格式 \\
\begin{tabular}{|l|c|r|} %l(left)居左显示 r(right)居右显示 c居中显示
\hline
Name&Steve&Bill\\
\hline
Matlab&Mathmatica&Maple\\
\hline
\end{tabular}
4.常见的三线表 \\
\begin{tabular}{ccc}
\hline
姓名& 学号& 性别\\
\hline
Steve Jobs& 001& Male\\
Bill Gates& 002& Female\\
\hline
\end{tabular}
通常来说,我们会希望表格的第一根线和最后一根线比表格中的横线更粗一些。 \\
%\usepackage{booktabs} %需要加载宏包{booktabs}
\begin{tabular}{ccc}
\toprule %添加表格头部粗线
姓名& 学号& 性别\\
\midrule %添加表格中横线
Steve Jobs& 001& Male\\
Bill Gates& 002& Female\\
\bottomrule %添加表格底部粗线
\end{tabular}
5.table环境 \\
\begin{table}[!htbp]
\centering
\caption{这是一张三线表}\label{tab:aStrangeTable}%添加标题 设置标签
\begin{tabular}{ccc}
\toprule
姓名& 学号& 性别\\
\midrule
Steve Jobs& 001& Male\\
Bill Gates& 002& Female\\
\bottomrule
\end{tabular}
%\caption{这是一张三线表}\label{tab:aStrangeTable} 标题放在这里也是可以的
\end{table}
{table}有若干可选参数 [!htbp]
h代表here,将表格排在当前文字位置
t 表示将表格放在下一页的 top (页首)
b 表示将表格放在当前页的 bottom (底部)
!表示忽略美观因素,尽可能按照参数指定的方式来处理表格浮动位置。
表格将会按照所给参数,依次尝试按照每个参数进行排版,当无法排版时,将会按照下一个参数
6.单元格合并 \\
\begin{table}[!htbp]
\centering
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{|c|}{学生信息}\\ % 用\multicolumn{3}表示横向合并三列
% |c|表示居中并且单元格两侧添加竖线 最后是文本
\hline
姓名&学号&性别\\
\hline
Jack& 001& Male\\
\hline
Angela& 002& Female\\
\hline
\end{tabular}
\caption{这是一张三线表}
\end{table}
% \usepackage{multirow}
\begin{table}[!htbp]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|} %表格7列 全部居中显示
\hline
\multicolumn{7}{|c|}{事件}\\ %横向合并7列单元格 两侧添加竖线
\hline
\multirow{4}*{策略}&50&0&100&200&300&300\\ %纵向合并4行单元格
\cline{2-7} %为第二列到第七列添加横线
&100&100&0&100&200&200\\
\cline{2-7}
&150&200&100&0&100&200\\
\cline{2-7}
&200&300&200&100&0&300\\
\hline
\end{tabular}
\end{table}
横向合并和纵向合并可以嵌套 \\
\begin{table}[!htbp]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{ \multirow{2}*{$S_i$} }& \multicolumn{4}{c|}{事件} &\multirow{2}*{max}\\
\cline{3-6}
\multicolumn{2}{|c|}{}&50&100&150&200&\\
\hline
\multirow{4}*{策略}&50&0&100&200&300&300\\
\cline{2-7}
&100&100&0&100&200&200\\
\cline{2-7}
&150&200&100&0&100&200\\
\cline{2-7}
&200&300&200&100&0&300\\
\hline
\end{tabular}
\end{table}
7.斜线表头 \\
%需要使用{diagbox}宏包
\begin{table}[!htbp]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
\diagbox{甲}{$\alpha_{i,j}$}{乙}&$\beta_1$&$\beta_2$&$\beta_3$\\ %添加斜线表头
\hline
$\alpha_1$&-4&0&-8\\
\hline
$\alpha_2$&3&2&4\\
\hline
$\alpha_3$&16&1&-9\\
\hline
$\alpha_4$&-1&1&7\\
\hline
\end{tabular}
\end{table}
8.其他(2018.11.23) \\
%对于多行多列嵌套斜线表头的情况,不加参数会出现斜线不处于对角线位置的情况
\begin{table}[!htbp]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\multirow{2}*{\diagbox[innerwidth=2cm]{$S_i$}{$\lambda_i$}}}& \multicolumn{4}{c|}{事件} &\multirow{2}*{max}\\
\cline{3-6}
\multicolumn{2}{|c|}{}&50&100&150&200&\\
\hline
\multirow{4}*{策略}&50&0&100&200&300&300\\
\cline{2-7}
&100&100&0&100&200&200\\
\cline{2-7}
&150&200&100&0&100&200\\
\cline{2-7}
&200&300&200&100&0&300\\
\hline
\end{tabular}
\end{table}
from CSDN:Latex基本表格绘制
\end{document}
- 结果