Latex_note_3

Latex_note_3

Charles Lv7

Latex_note_3

Latex中的表格

课程代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
% 导言区
\documentclass{ctexart}%book,report,letter


% 正文区(文稿区)
\begin{document}
\begin{tabular}{|l|| c| c| c| p{1.5cm}|}
\hline
姓名 & 语文 & 数学 & 外语 & 备注 \\
\hline\hline
张三 & 87 & 100 & 93 & 优秀 \\
\hline
李四 & 75 & 64 & 52 & 补考另行通知 \\
\hline
王二 & 80 & 82 & 78 & \\
\hline
\end{tabular}

\end{document}

课程内容细节:

  1. 使用tabular环境来实现表格
  2. tabular环境需要一个列排版的必选参数,其中l代表左对齐,r代表右对齐,c代表居中对齐。
  3. 不同内容用&分割。
  4. 可以在列排版的必选参数间用|形成表格竖线(各参数间的空格不起作用)。用\hline命令产生表格横线。
  5. 可以使用两个\hline命令产生双横线,用||产生双竖线。
  6. 在列排版的必选参数中可以用p{宽度}产生指定宽度的列,此时若内容过长会自动换行。
  7. 可以用taxdoc booktab、taxdoc longtab、taxdoc tabu等命令查看更多细节。

课程代码效果图:

image-20230201224046643

Latex中的浮动体问题

课程代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
% 导言区
\documentclass{ctexart}%book,report,letter

\usepackage{graphicx}
\graphicspath{{figures/}}%图片在当前目录下的figures目录

% 正文区(文稿区)
\begin{document}
Charles's Castle---见图\ref{fig-yang}。
\begin{figure}[htbp]
\centering
\includegraphics[scale=0.3]{favicon}
\caption{Charles's Castle}\label{fig-yang}
\end{figure}

当然,在\ LaTeX{}中也如以使用表格\ref{tab-score}所示的表格。
\begin{table}[htbp]
\centering
\caption{考试成绩单}\label{tab-score}
\begin{tabular}{|l|| c| c| c| p{1.5cm}|}
\hline
姓名 & 语文 & 数学 & 外语 & 备注 \\
\hline\hline
张三 & 87 & 100 & 93 & 优秀 \\
\hline
李四 & 75 & 64 & 52 & 补考另行通知 \\
\hline
王二 & 80 & 82 & 78 & \\
\hline
\end{tabular}
\end{table}

\end{document}

课程内容细节:

  1. 可以将插图放在figure浮动体环境中,将tabular生成的表格放在table浮动体中,从而使插图和表格的位置发生浮动。
  2. 可以使用 \centering命令使环境内容居中排版。
  3. 可以设置浮动体的允许位置可选参数(如htbp)来设置浮动体的排版位置,并通过caption命令设置插图标题。
    <允许位置> 参数(默认tbp)
    h,此处(here)-代码所在的上下文位置
    t,页顶(top)-代码所在页面或之后页面的顶部
    b,页底(bottom)-代码所在页面或之后页面的底部
    p,独立一页(page)-浮动页面
  4. 可以使用label命令为浮动体设置标签。并利用ref命令引用标签,从而实现交叉引用。
  5. 利用浮动体可以实现灵活分页,避免无法分割的内容产生的页面留白,并实现给图表添加标题及交叉引用等功能。
  6. 标题控制可以使用caption和bicaption等宏包,并排与子图表可以使用subcaption、subfig、floatrow等宏包。绕排可以使用picinpar、wrapfig等宏包。

课程代码效果图:

image-20230201230814366

详细解读

列表

LaTeX中常见的列表有两种:有序列表和无序列表。有序列表即以1, 2, 3…这类的序号编号每一条条目,无序列表即每一条条目都被一个·所引起。

有序列表的使用方法为:

1
2
3
4
\begin{enumerate}
\item anItem
\item anotherItem
\end{enumerate}

无序列表的使用方法为:

1
2
3
4
\begin{itemize}
\item anItem
\item anotherItem
\end{itemize}

每一个\item代表一个条目。

在列表中换行可以使用\\.但是,我们会发现,在列表中不分段落,没有缩进。除此之外,我们还可以实现我们可以实现列表的嵌套。

此外,我们也可以自己定制列表环境。使用宏包enumitem. 具体方法请参见宏包的说明文档。

1
2
3
\usepackage{enumitem}
\newlist{question}{enumerate}{1}
\setlist[question,1]{itemsep = 0pt, parsep = 0pt, align=left, leftmargin=*, label = {\bfseries 问题\chinese*}}

列表编号问题

对于enumerate列表,即有序列表来说,第一级列表编号默认为1. 2. 3. … 如果我们要修改这个列表编号怎么办呢?对于每一个有序列表,都有一个enumi来存储当前的计数。比如说现在第一级列表到了第三个,那么enumi就是3(这里是第一级列表,如果列表内再嵌套列表,也就是第二级有序列表,则就是enumii, 第三级就是enumiii以此类推)。 而命令\theenumi控制的是enumi的表现形式,比如说,如果我们在导言区中写

1
\renewcommand{\theenumi}{\chinese{enumi}}

那么第一级编号时出现的就不是1 2 3而是一二三。

而命令\labelenumi 控制的是在列表中的编号格式。比如说,我们如果在导言区中写

1
\renewcommand{\labelenumi}{(\theenumi)}

那么在列表中出现的就是(一) (二) (三)这种。

对于itemize列表,即无序列表来说,就没有了那个计数器。所以,我们只需要在导言区中写

1
\renewcommand{\labelitemi}{sth.} 

其中sth.是你想将无序列表变成的模样。比如说,空心圆圈$\circ$等等。

表格

过长表格

有的表格可能有数十行,一页肯定放不下。但是,用上述的方法产生的表格只能在一页。因此,我们需要使用宏包longtable. 即在导言区中加入

1
\usepackage{longtable} 

接着,我们在要插入长表格的地方加入语句

1
2
3
4
\begin{longtable}{|c|c|c|}
\caption{Title of long table}\\\hline
content of table
\end{longtable}

其中,content of table就是原来写在tabular环境中的东西。

过宽表格

对于过宽的表格,我们可以类似于过宽图片使用adjustbox宏包,但方法略微繁琐,可以用texdoc看该宏包的使用说明。我常用的方法则是另一种:

1
2
3
4
5
6
7
8
\begin{table}[H]
\caption{Title of too wide table}
\makebox[\textwidth][c]{
\begin{tabular}{cccccccccccccccccccc}
Content of table
\end{tabular}
}
\end{table}

即将tabular整个放入makebox的参数之中。

  • Title: Latex_note_3
  • Author: Charles
  • Created at : 2023-02-01 22:23:23
  • Updated at : 2023-08-17 09:44:48
  • Link: https://charles2530.github.io/2023/02/01/latex-note-3/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments