Latex_note_2
Latex_note_2
Latex的篇章结构
课程代码
1 | % 导言区 |
课程内容细节:
- \\只起到换行的作用,不会形成新的段落,\par(paragraph)会形成新的段落。(但为了源文件的清晰,分段还是建议插入空行来实现)
- 可以使用section、subsection、subsubsection来形成多级的部分。
- 在使用ctexart时的段落排版和引入ctex包是不同的,但可以通过引入ctexset命令更改。(只有ctexart可以使用)
- 可以使用\chapter命令形成带章节的大纲。(需要使用ctexbook)此时subsubsection不起作用。
- 可以使用\tableofcontents形成整个文档的目录。(似乎必须下方有一行空行)
课程代码效果图:
详细解读
分段操作
我们常用的换行操作有两个——\par
和\\
,但二者实际使用时还是有细微的区别,比如分段操作时两者的行为就存在差异。
在article文档类中,会对每个段落的段首进行缩进。那么在使用\par
的情况下,分开的两部分都进行了缩进,也就说明LaTeX将源码中这两个段落看作了两个段。但是,在使用\\
的情况下,后半部分并没有缩进。这说明,LaTeX并没有将后半部分看作独立的一段。
从语言逻辑上讲,一段就是一段,实际上只需要分段来分隔每一段。但由于承载文字的工具的限制,纸的宽度是一定的,一段话如果超过了纸的宽度,就要换行。但是,换行产生的下一行句子和上一行仍然属于同一段。在多数时候,LaTeX自动帮我们做了换行的工作。但是,有时候我们出于各种各样的原因,想在一行的某个单词后强制换行,这时就应该用\\
命令。
行距设置
行间距设置
\fontsize{fontSize}{baseLineSkip}\selectfont
可以同时更改字体大小及行距。事实上,这里的行距是Word中的基准行距。它并不是真正的两个基线之间的距离。它存储在LaTeX的宏\f@baselineskip
中。LaTeX中还有一个宏,是\baselinestretch
, 我们可以通过命令\linespread{lineSpread}\selectfont
来改变它,其中lineSpread填我们想要变成的值。而LaTeX中真正的行距,也就是两个基线之间的距离,是\baselinestretch
乘以\f@baselineskip
的值,它储存在\baselineskip
中。
如果我们什么都不设置,对于不同的文档类,默认字体大小不同,但默认的\f@baselineskip
的值为默认字号的1.2倍,\baselinestretch
在不同的文档类中也不同,article文档类中为1,ctexart文档类为1.3
因此,在我们改变行距时,如果想把行距调整成精确的值,一般用 \fontsize{fontSize}{baseLineSkip}\selectfont
来实现;如果想成比例地调整行距,比如单倍行距,双倍行距,则使用\linespread{lineSpread}\selectfont
来实现。 比如说,双倍行距就是\linespread{2}\selectfont
此外,我们也可以用一个名叫setspace
的宏包,即
1 | \usepackage{setspace} |
然后使用\setstretch{lineSpread}
来设置linespread(不用加\selectfont
). 这个命令的好处在于会同时修改数学公式、浮动体等的间距,使之与正文间距适应。
段间距设置
在不同的段之间,也可以设置段间距(默认为0)。通过\setlength{\parskip}{parSkip}
来实现。比如说,我想设置段间距为2em, 则使用\setlength{\parskip}{2em}
即可。这样,在不同两段之间的距离,为段间距+\baselineskip
的距离。
这里值得注意的是,由于\\
是断行不是分段,所以由\\
引起的下一行与本行之间的距离,只有\baselineskip
, 而不加上\parskip
空行设置
我们如何在LaTeX中插入多个空行呢?编译器中使用\par\par\par
是会报错的,正确做法是:
1 | \vspace*{n\baselineskip} |
其中n为想空的行数。
缩进设置
在article及ctexart中,都默认给每一段的段首进行了缩进。我们可以通过\setlength{\parindent}{parIndent}
来控制缩进距离,比如说,我想控制段首缩进2em,则应写\setlength{\parindent}{2em}
. 这个命令会使该命令之后的所有段的缩进都变成这个值。如果要取消全部段落的段首缩进,则可以写\setlength{\parindent}{0em}
.如果要单独取消某一行的段首缩进,则在该行的段首写\noindent
即可。
章节设置
不同的文档类中的章节不一样。我们常用的article文档类的章节层次有:section, subsection, subsubsection, paragraph, subparagraph. 常用的report文档类的章节层次有:chapter, section, subsection, subsubsection, paragraph, subparagraph. 也就是说,report比article多了一个chapter.
\section{}
这些命令,起到了分隔文章主体的作用。同时,LaTeX强大的一点在于,你只需要写\section{}
,而不需要声明这是第几章,它会自动给你编号。
此外,如果想要改变章节标题的格式,对于英文文档类,需要宏包即
1 | \usepackage{titlesec} |
。对于中文文档类,如ctexart, ctexrep等,我们可以使用\CTEXsetup[]{}
命令,具体方法请参考宏包ctex
的说明文档。一般我们也不太会需要改变章节标题的格式,唯一可能会想改变的,是把中文\section
居左。我们可以在导言区中写
1 | \CTEXsetup[format+={\raggedright}]{section} |
来实现。
目录
在你正文中想要加入目录的地方,写上一行命令:
1 | \tableofcontents |
然后就能得到相应的目录了。
页面设置
之前讲段落的时候我们提过,由于客观条件的限制,原本只需要分段的文字,因为纸的宽度有限,在每段内还要断行。同样地,因为纸的长度有限,因此,一篇文章也要分为好多页。那么一页的大小怎么设置,能容纳多少行,一行能有多宽,页眉、页尾怎么设置,凡此种种,都叫整体页面的设置。
首先,这一切,都需要我们使用宏包geometry
. 因此,首先,我们需要在导言区中写上
1 | \usepackage{geometry} |
页面大小设置
我们常用的页面大小,就是A4纸。要实现这个,可以在导言区中写上
1 | \geometry{a4paper} |
如果我们不是用约定的纸张大小,而是想以数值形式指定纸张大小,比如说长22厘米,宽10厘米,那么,我们可以在导言区中写
1 | \geometry{paperheight=22cm, paperwidth=10cm} |
版心位置、大小设置
除了设置页面的大小以外,我们还可以设置版心的位置和大小。什么是版心呢?我们知道,在一张纸上写字的时候,我们一般不会每行第一个字顶着最左边写,一直写到页面的最右边再断行,我们一般是会留下一些页边距的。那么,除去这些页边距以外,包括整个文字部分的长方形叫做版心。每行的第一个字顶着版心的最左边开始,一直写到版心的最右边开始断行。
版心的位置可以通过设置其左边距、右边距、上边距、下边距来设置。其对应的参数名分别为left
, right
, top
, bottom
. 比如说,我们要设置左边距为2cm,可以在导言区中写
1 | \geometry{left=2cm} |
此外,我们如果需要将版心居中,竖直居中的参数名为vcentering
, 水平居中的参数名为hcentering
, 水平、竖直均居中的参数名为centering
. 使用方法为:如果我们要让版心水平居中,可以在导言区中写
1 | \geometry{hcentering} |
此外,还可以设置版心的大小。版心的长为textheight
, 宽为textwidth
. 我们如果要设置版心长为20cm,可以在导言区中写
1 | \geometry{textheight=20cm} |
总的而言,在geometry
宏包说明中的一张图可以很直观地解释上述参数:
页眉与页脚
对于页眉页脚的设置,我们使用宏包fancyhdr
. 所以,我们首先在导言区中写上
1 | \usepackage{fancyhdr} |
如果我们同时使用了
geometry
和fancyhdr
宏包,那么一定要把\usepackage{fancyhdr}
及相应的页眉、页脚设置写在\usepackage{geometry}
的后面。
具体的设置方法,我们首先来看一张图:
这是宏包fancyhdr
说明文档里的配图。这个宏包将页面的页眉、页脚各分为左、中、右三个部分,其对应的指令名为\lhead{}
, \chead{}
, \rhead{}
, \lfoot{}
, \lhead{}
, \rhead{}
. 我们在括号中填写想在对应地方出现的东西就可以了。
如果想使用页码,可以用\thepage
来实现。 \thepage
指令存储的是当前页面的页码数。比如说,我想在页尾的右侧写上当前页码,则在导言区中写上
1 | \rfoot{\thepage} |
即可。
此外,顺便提一句,如果要在正文中使用\maketitle
,那么那一页的页面格式会自动变回原来的页面格式。需要在\maketitle
后加上一句\thispagestyle{fancy}
。
同时,页眉也被默认设置了含有页眉线。页眉线、页脚线的指令名分别为\headrulewidth
和\footrulewidth
. 其粗细可分别用\renewcommand
来设置。比如说,我想取消页眉线,就可以在导言区中写上
1 | \renewcommand\headrulewidth{0pt} |
Latex中的特殊字符
课程代码
1 | % 导言区 |
课程内容细节:
- 在英文段落中如果需要添加空格可以直接在文章中添加空格,但多个空格在pdf中仍然只有一个空格。而中文中空格将被忽略。
- 空行分段,多个空行等同1个。
- 自动缩进,不能使用空格代替缩进。
- 汉字与其他字符的间距会自动由XeLatex处理。
- 禁止使用中文全角空格。
- # $ % { } ~{} _{} ^{} \ &为常见的latex控制字符,使用时需要在前面加\转义,而反斜杠则使用(\textbackslash)产生(\\本身为换行不能使用)
- \TeX{} ,\LaTeX{} ,\LaTeXe{},\XeLaTeX命令可以生成对应的标志符号,而其中\XeLaTeX命令需要引入xltxtra宏包。
课程代码效果图:
详细解读
特殊文字
有时候,我们也会遇到输入特殊文字的地方。对于LaTeX的控制性字符,比如说\
, &
, ~
, ^
, _
, #
, %
, {
, }
, 除了\
以外,其他都可以在原有字符前面加上\
来实现转义输出,如\&
就会输出&
. 而对于反斜杠,我个人建议用\char92
来实现。 而~
和^
我建议用\~{}
和\^{}
来实现。
Latex中的插图
课程代码
1 | % 导言区 |
课程内容细节:
- 在插图中有多个指定参数时用逗号进行分割。
- 相关细节可以使用 texdoc graphicx命令查看。
课程代码效果图:
详细讲解
插入图片
要在文档中插入图片,需要graphicx
宏包。此外,为了让图片出现在正确的位置,需要float
宏包。因此,在导言区中加上
1 | \usepackage{graphicx} |
接着,如果我们要插入的图片的名字是pic.png, 那么在我们正文中要插入图片的位置加上如下代码:
1 | \begin{figure}[H] |
这里注意一点,如果要将图片插入到文档中,建议将图片拷贝到.tex文件的同一级文件夹中,否则需要在\includegraphics{}
的参数中填写绝对路径。
而\caption{}
指令的作用,是在其对应的位置(位于\includegraphics{}
前就是图片上方,后就是图片下方)产生图注。
可以给\includegraphics{}
加上option列表以调整图片的大小。比如说,我想插入的图片是原图片等比例缩小为原来的0.8,则可以写成
1 | \includegraphics[scale=0.8]{pic.png} |
如果我是想专门调整长宽,则可以把scale=0.8
换成height=xxx, width=xxx
这样来实现。
此外,关于\caption{}
,我们可以对其字体、文字进行相关设置。这里需要我们使用caption
宏包。我们首先在导言区中写上
1 | \usepackage{caption} |
然后在导言区中使用\captionsetup{}
进行相关设置。
由于我们这里需要设置的是figure
浮动体的caption,因此,我们需要特别注明captionsetup[figure]{}
. **如果我们需要改变标题中的“图x”,让它变成“Picture x”或者其他文字,在大括号中可以写name=Picture
来实现。**如果我们要改变这个caption整体的字号、字体,比如说全都变成Large
字号,意大利斜体,则可以在大括号中写font={Large, it}
. 值得注意的是这里的字号只能设置成LaTeX内置的那几个字号(可以参见之前的文章),而不能自己设置字号。其他参数均可以看caption
宏包的说明。
并排图片
将两个图片并排在一起,需要一定的技巧。假设我们有两张图片pic1.png和pic2.png, 我们要将它们并排,则可以在正文中使用如下语句:
1 | \begin{figure}[H] |
如果我们要并排三张图,则将0.48\textwidth
变成0.32\textwidth
,以此类推。
过宽的图片
有时候我们会遇到过宽的图片,这时,我们需要使用一个叫adjustbox
的宏包。在导言区加上一句
1 | \usepackage[export]{adjustbox} |
然后在正文中使用
1 | \begin{figure}[H] |
即可。也就是说,在\includegraphics[]{}
的中括号中,加上一句center
就能实现图片居中了。
文字环绕图片
要使用文字环绕图片,需要在导言区使用宏包wrapfig
。即在导言区中加上一句
1 | \usepackage{wrapfig} |
然后在正文中要加入图片的地方使用语句
1 | \begin{wrapfigure}{position}{width} |
其中position可以有r
或者l
两种选项,分别对应在文字右侧和在文字左侧。width
是这个浮动体的宽度(不是这个图片的宽度),比图片宽度略大一些。因此,比如说我要一个在文字右边的,宽度为0.5\textwidth
的浮动体,可以写成
1 | \begin{wrapfigure}{r}{0.5\textwidth} |
- Title: Latex_note_2
- Author: Charles
- Created at : 2023-02-01 20:56:51
- Updated at : 2023-08-17 09:44:45
- Link: https://charles2530.github.io/2023/02/01/latex-note-2/
- License: This work is licensed under CC BY-NC-SA 4.0.