标题页
- 声明标题、作者和日期分别用 \title{} , \author{} , \date{} ,内部可以使用\\换行。声明一般放在导言区,之后在文档内可以直接用 \maketitle 生成标题页。
- 如果一个文档有多个作者,之间用\and分隔
- 在article或ctexart文档类中,标题不单独成页;在report,book或ctexrep,ctexbook文档类中,标题单独占用一页。也可以用文档类选项titlepage和notitlepage来设置标题是否单独成页
多文件编译
- \include{文件名} 可用来导入另一个文件的内容作为一个章节,文件名不用带.tex扩展名,该命令会在插入的文件前后另起新页,并将该文件内容贴到include的位置。导入的.tex文件不用\begin{document}和\end{document}
- 可以在导言区使用 \includeonly{文件列表} ,其中文件列表中的文件用英文逗号分隔开,不需要.tex扩展名。只有文档列表中的文件才能被引入主文件。
- 如果不需要另起新页,直接把内容复制在所在位置(如添加一些图片),可以使用 \input{文件名} 指令
基本文档类和ctex文档类
基本文档类选项:
LATEX基本文档类主要分为:article,report,book
类型 | 选项 | 说明 |
---|---|---|
纸张大小 | a4paper | |
a5paper | ||
b5paper | ||
letterpaper | (默认值) | |
单双面 | oneside | 单面(article,report默认值) |
twoside | 双面(book默认值) | |
字号大小 | 10pt | (默认值) |
11pt | ||
12pt | ||
分栏 | onecolumn | 单栏(默认值) |
twocolumn | 双栏 | |
标题格式 | titlepage | 标题单独成页(report,book默认值) |
notitlepage | 标题不单独成页(article默认值) |
ctex文档类选项:
ctex提供了三个文档类:ctexart,ctexrep,ctexbook
下面列举ctex一些特有的选项,基本文档类的选项依旧可以使用
类型 | 选项 | 说明 |
---|---|---|
字号大小 | c5size | 正文五号字(仅文档类,默认值) |
cs4size | 正文四号字(仅文档类) | |
章节标题 | sub3section | 使\paragraph标题单独一行(仅文档类,默认无) |
sub4section | 使\paragraph和\subparagraph标题都单独一行(仅文档类,默认无) |
页面尺寸
geometry宏包:
geometry提供了2种设置页面的方式
\usepackage[a4paper,left=3cm,right=3cm] {geometry}
\usepackage{geometry}
\geometry{a4paper,left=3cm,right=3cm}
- geometry宏包也支持a4paper,landscape这样的参数
- 可以使用centering设置版心居中
- 使用scale=比例设置版心占页面长度比例
- 使用ratio=比例设置版面边距占页面长度比例
- 使用lines=行数设置版心高度在默认字体和行距下能容纳的文本
页面格式
- 页码计数器是page,会随着文档自动计数
- 可以使用 \pagestyle{type} 或 \thispagestyle{type} 来设置页面风格,其中 \thispagestyle{type} 设置的是当前页面
style | 说明 |
---|---|
empty | 没有页眉页脚 |
plain | 没有页眉,页脚是居中页码 |
headings | 没有页脚,页眉是章节名称和页码 |
标准文档类中,book默认headings风格,report和article默认plain风格,中文的几个ctex文档类默认headings风格
分栏控制
- 在文档中加twocolumn选项可以使文档双栏排版
\documentclass[twocolumn] {article}
- 在双栏模式下, \newpage和 \pagebreak只表示分栏,不表示分页,可以使用 \clearpage和 \cleardoublepage完成分页或进入双面奇数页的功能
- multicol宏包提供了一种比较好的分栏功能,但不能使用浮动体和边注,不再使用 \newpage强制分栏,而是用 \columnbreak
%导言区
\usepackage{multicol}
%正文
\begin{multicols}{2}
...
\end{multicols}
摘要
摘要从 \begin{abstract} 开始,到 \end{abstract} 结束
目录
- 使用 \tableofcontents自动生成目录并输出
- 标准文档类默认输出3级目录,aricle是section,subsection,subsubsection,而report和book是chapter,section,subsection
- 在导言区使用宏包tocbibind可以把目录、参考文献等加入目录
- 如果需要手工加入目录项可以在正文中使用 \addcontentskine{文件}{类型}{标题文字}
文件章节目录使用toc,图表目录使用lof和lot。参数指章节或图表命令名,即section,figure等。标题文字为目录项的标题。
划分章节
名称 | 命令 | 说明 |
---|---|---|
部分 | \part{} | 可选最高层 |
章 | \chapter{} | report,book或ctexrep,ctexbook的最高层 |
节 | \section{} | article或ctexart的最高层 |
小节 | \subsection{} | |
小小节 | \subsubsection() | report,book或ctexrep,ctexbook默认不编号,不编目录 |
段 | \paragraph{} | 默认不编号,不编目录 |
小段 | \subparagraph{} | 默认不编号,不编目录 |
- 可以使用* (如\chapter*{})表示不编号、不编目录的章节
- 命令 \appendix 表示附录的开始,后面的所有章或节都改用字母进行编号
空格
任意多个空格与单个空格效果相同,每行最前面的空格会被忽略
换行
- 连续两个换行表示分段,段与段之间会自动得到合适的缩进,任意多个空行与一个空行的效果相同
- 使用\\直接另起一行,上一行保持原来的格式
- 使用 \linebreak另起一行,上一行分散开对齐
- 可以用 \par分段
缩进
- 西方标准文档类,默认不缩进;中文文档类,默认每段缩进两个汉字宽
- 如果在某一段开头临时禁用缩进,在段前使用 \noindent
- 如果在本来没有缩进的地方使用缩进,可以用 \indent命令产生一个长为 \parindent的缩进
- 在西方文档中可以使用宏包indentfirst启动章节首段的缩进
字体
有两种形式的命令用于声明字体:
- \命令{文字部分},称为带参数命令,用于少量字体更换
- {\命令 文字部分},称为声明命令,用于分组或环境中
中文字体命令: songti(宋体),heiti(黑体),fangsong(仿宋),kaishu(楷书),bfseries(粗体),itshape(斜体),带参和声明命令相同
英文字体命令:
字体 | 带参数命令 | 声明命令 |
---|---|---|
意大利 | \textit{文字} | {\itshape 文字} |
倾斜 | \textsl{文字} | {\slshape 文字} |
加宽加粗 | \textbf{文字} | {bfseries 文字} |
使用斜体声明 \itshape和 \slshape时,最后一个倾斜的字母会超出右边界,使得后面文字和它的距离过近,但是使用带参数命令 \textit和 \textsl会自动修正这个距离
统一设置字体的指令:
- \fontencoding{编码}
- \fontfamily{族}
- \fontseries{系列}
- \fontshape{形状}
- \fontsiez{大小}{基本行距}
设置完后,在后面加一个 \selectfont 命令生效
也可以使用 \usefont{编码}{族}{系列}{形状}
脚注
使用 \footnote{脚注内容} 产生脚注,以 \footnotesize 的字号输出,脚注只能使用在正文中。
强调
英文字体强调:
- 强调字体:带参数命令 \emph{文字},声明命令 {\em 文字}
- 粗体:见字体中的加宽加粗
现定义一个粗体的强调环境
\newcommand\Emph{\textbf}%定义粗体的强调环境名为Emph
This is \Emph{emphasized} text.%强调emphasized
- 下划线:使用宏包ulem中的 \uline{文字} 添加下划线,但是宏包ulem将\emph命令也变为了下划线,可以通过在宏包中加入normalem参数解决这个问题
中文字体强调:
使用 \emph{文字} 进行强调
字号
英文字号:
- 简单的声明命令:\tiny,\scriptsize,\footnotesize,\small,\normalsize,\large,\Large,\LARGE,\hugh,\Huge(从小到大)
- 在标准的LATEX文档类中,可以设置文档全局字号10pt,11pt,12pt
中文字号:
- 使用 \zihao{参数} ,参数0表示除号,-0表示小除号,1表示一号,-1表示小一号......6表示六号,-6表示小六号,7表示七号,8表示八号(从大到小)
行间距
- 设置字号时,就设置了基本间距为文字大小的1.2倍
- 可以使用命令 \linespread{因子} 来设置实际行距为基本行距的倍数,该命令在 \selectfont 命令后生效,因为行距是根据字体的大小来变更的
- 使用setspace宏包中 \setstretch{因子} 可以在修改行距的同时保持数学公式、浮动体、脚注间距的值也同样合理
- 也可以使用字体中的 \fontsize直接设置字号和基本间距,注意:需要使用\selectfont后才能生效
- \lineskiplimit 定义一个界限值,当前一个盒子的底部到后一个盒子的顶部距离小于这个界限时,行间距改由 \lineskip 设置,这样可以避免由于两行包含太高的内容(如分式)而距离过紧,如
\setlength\lineskiplimit{2.625bp}
\setlength\lineskip{2.624bp}
盒子
TEX处在不同工作模式下产生不同的盒子,水平模式(如组字成行)下小盒子水平排列组成大盒子,垂直模式(组行成页)下小盒子垂直排列成大盒子
水平盒子:
- 使用 \mbox{内容} 产生一个盒子,盒子内的内容不允许断行
- \makebos 与 \mbox相似,但是可以带两个参数,指定盒子的宽度和对其方式 \makebox[宽度][位置]{内容}
位置对其参数可取c(中),l(左),r(右),s(分散),默认居中
几种盒子的用法:
\makebox[1em] {\textbullet}text \\
\makebox[5cm] [s] {some any more} \\
生成结果:
- 命令 \fbox和 \framebox可以产生带边框的盒子,语法与 \mbox和 \makebox类似
\framebox[5cm] [s] {some any more}
垂直盒子:
垂直盒子中的内容会分行分段,语法格式如下:
\parbox[位置] [高度] [内容位置] {宽度} {盒子内容}
或者
\begin{minipage}[位置] [高度] [内容位置] [宽度]
盒子内容
\end{minipage}
- 位置参数可以使用c(居中),t(顶部),b(底部),默认为居中
- 内容位置参数可以使用c,t,b,s(垂直分散对齐)
段间距
使用\parskip控制段间距,例
\setlength\parskip{0pt}
对齐方式
LATEX默认段落是两端均匀对齐的, \raggedright命令可以设置段落左对齐,在双栏文档中非常实用,raggedleft表示右对齐, \centering表示居中
如果某一小段需要设置居中,可以
\begin{center}
这里居中
\end{center}
引用
引用环境分两种:quote和quotation。quote在段前没有首行的缩进,每段话的左右边距比正文大,通常适用于一小段的内容引用。
交叉引用
先使用 \label{标签名} 为一个地方设置标签,再使用 \ref{标签名} 即可进行引用。公式也可以直接引用,例:
\begin{equation}
a^2 + b^2 =c^2
\label{gougu}
\end{equation}
勾股定理(\ref{gougu})
可以得到:
如果需要设置网页超链接,可以引入hyperref宏包,然后使用 \url{网址}
列表
一共有3种列表环境:标号的enumerate环境,不编号的itemize环境和使用关键字的description环境。在列表环境内部使用\item开始一个列表项。列表可以嵌套使用,最多4层。
\begin{enumerate}
\item 列表1.1
\item 列表1.2
\begin{itemize}
\item 列表2.1
\item 列表2.2
\begin{description}
\item[标签1] 列表3.1
\item[标签2] 列表3.2
\end{description}
\end{itemize}
\end{enumerate}
\itemize和 \enumerate可以手动设置临时编号
\begin{enumerate}
\item 列表1.1
\item[1a.] 列表1.2
\item 列表1.3
\end{enumerate}
列表生成后:
使用enumerate时,里面的计数还可以使用 \arabic(阿拉伯数字), \roman(小写罗马数字), \Roman(大写罗马数字), \alph(小写字母), \Alph(大写字母),但是需要先定义环境的编号,再使用
\renewcommand\theenumi{\roman{enumi}}%设置小写罗马
\renewcommand\labelenumi{(\theenumi)}%设置括号
\begin{enumerate}
\item 列表1.1
\item 列表1.2
\item 列表1.3
\end{enumerate}
定理类环境
定理类环境可以产生一个标题、编号和特定格式的文本
\newtheorem 用了声明一个新的定理环境,一般定义方法: \newtheorem{环境名}{输出的标题名} ,使用方法: \begin{环境名} [小定理名] , \end{环境名}
\newtheorem{thm}{定理}
\begin{document} %开始输出部分
\begin{thm} [勾股定理]
这里是勾股定理
\end{thm}
\begin{thm} [勾股定理2]
这里是勾股定理2
\end{thm}
\end{document}
代码环境
可以使用verbatim环境书写代码环境
\begin{verbatim}
#include
int main()
{
printf("hello");
}
\end{verbatim}
如果需要语法高亮功能,可以使用listings宏包
\usepackage{listings}
\begin{document}
\begin{lstlisting} [language=C]
/* hello.c */
#include
int main()
{
printf("hello");
}
\end{lstlisting}
\end{document}
可以使用一个带框的盒子来书写代码,方法如下:
%下面部分写在导言区
\newsavebox\verbatimbox%定义盒子名字
\begin{lrbox}\verbatimbox
\begin{minipage}{15em}%定义宽度
\begin{verbatim}
/* hello.c */
#include
\end{verbatim}
\end{minipage}
\end{lrbox}
%下面部分写在文档内
\fbox{\usebox\verbatimbox}%使用
输出: