解读上一篇文章(2)LaTeX论文排版——总体框架中的排版样例
注释
- 不会被编译
- 不会对排版效果产生任何影响
- 注释是用来方便阅读源代码
用%进行行注释
% 这是一行注释
使用verbatim
包进行块注释,需要注意的是这个方法不能使用在像数学环境等一些复杂的环境中
\usepackage{verbatim}
\begin{comment}
这是第一行注释
这是第一行注释
\end{comment}
用命令\iffalse…\fi
把需要注释的内容包含起来
\iffalse
这是第一行注释
这是第一行注释
\fi
说明
- 说明是用来确定文档属性和编译选项,行也是以%开头,一般放在tex文件开头
常有如下说明
% *- coding: UTF-8 -*- %文档编码为utf8
TeXlive支持Linux/Window/Mac,MacTeX专项支持mac,MiKTeX专项支持Windows,etc
% !TEX builder = TeXlive %编译器为TeXlive
XeTeX是一种使用Unicode的TeX排版引擎,原生支持Unicode,并默认其输入文件为utf-8编码,可以在不进行额外配置的情况下直接使用操作系统中安装的字体,从底端就支持各种文字包括中文, 生成的文档更为美观。xelatex 拥有XeTeX 的优点
% !TEX program = xelatex %排版引擎程序调用顺序配置"latex-workshop.latex.recipes"中的第一个为xelatex(编译时默认用第一个)
如要对中文文档进行排版,参考这里进行配置
导言区
- 在
\documentclass[]{}
和\begin{document}
之间的部分称为导言区,一般用于载入宏包,对文档的性质做一些设置或自定义一些命令和调整格式 - 用\ 开始的字母串来表示一个命令,命令后面用花括号{} 包含的内容是该命令的参数(必不可少),用方括号[]包含该命令的可选参数(可选)
这里的\documentclass[]{}
是LATEX 文档的基本命令,用于指明文档类,这里文档类为ctexart,ctexart是ctexarticle的缩写,是支持中文的article类,并设定该ctexart文档类为UTF8编码,纸张为A6大小
\documentclass[UTF8, a6paper]{ctexart},
*文档类常有
article 排版科技期刊、短报告、程序文档、邀请函等
report 排版多章节的长报告、短篇的书籍、博士论文等
book 排版书籍
slides 排版幻灯片,其中使用了较大的 sans serif 字体
使用ctexart文档类,所有中文环境和章节编号等等都已经按照中文习惯设置好了,简单易行。另外,对于book 和report 文档类,也有对应的ctexbook 和ctexrep 中文文档类,其用法类似
文档类的属性常有:
纸张大小(a4paper,a5paper,b4paper,letterpaper,legalpaper,executivepaper):
默认的letterpaper 纸张常见于美国,和国内常用的A4 纸张的大小稍有差别,建议自己指定。
字体大小(10pt,11pt,12pt):默认为10pt。
纸张方向(portrait,landscape):默认为portrait(纵向),在屏幕阅读也许landscape(横向)更方便。
草稿定稿(draft,final):默认为final(定稿);如果是draft(草稿),页面内容有溢出时会显示粗黑条。
单面双面(oneside,twoside):对于article 和report 文档类,默认设置为单面,页码总是在右边;对于book 文档类,默认设置为双面,奇数页页码在右边,偶数页页码在左边,这样双面打印时页码总在外侧。
新章开始(openright,openany):仅对book 文档类有效,默认值为openright,即每章都从奇数页开始;如果设置为openany,则每章仅从新的一页开始,不管奇偶页。*
这里的\usepackage []{}
命令也是LATEX 的基本命令,用于载入LATEX 宏包,LATEX 系统中包含了各种各样的宏包,对LATEX 的基本功能作了各种扩展,LaTeX常用宏包请进传送门
这里的\bibliographystyle{plain}
用来声明参考文献的样式
现在很多文章的公式定理等都需要采用统一编号,而不再是独立编号,如定理1,接下来可能是定理2,等等,这可以用\newtheorem{}
来完成,这里的\newtheorem{thm}{定理}
声明一个thm
环境,标题为定理,比如下面的代码在正文中第一次出现,会编译输出定理1(勾股定理)...定理2(切线长定理)
\begin{thm}[勾股定理]
...
\end{thm}
...
\begin{thm}[切线长定理]
...
\end{thm}
正文区
- 在
\begin{document}
和\end{document}
之间的部分我们称为正文区,一般用于正文内容的撰写 - LaTeX的命令也有不同的类型,形如
\begin{环境名}...\end{环境名}
的命令组合我们称为环境
这里的\maketitle
命令用来控制编译输出标题、作者、日期
这里的\tableofcontents
命令用来控制编译输出目录
\zihao{}
命令设置字号,\kaiti
命令设置字体
\bibliography{math}
将从同文件夹下的math.bib
中获取参考文献信息
LaTeX语法参考Latex排版全解、LaTeX学习笔记 1 | 一个中文排版例子、《LaTeX入门》v8ts
换行与空格
- 用一个空行或者
\par
命令可以开始新的段落,同时会有默认的首行缩进,用\newline
或\\可以强制换到下一行且不会有缩进,表格里用只能\\换行 - LaTeX会忽略单个回车、段前的空格和汉字后面的空格,而其他符号后面的空格则会保留
- 为了使源代码更容易阅读,编写时可在合适的位置敲一下回车,不要让一行代码太长;在汉字与其他符号之间加一个空格,使得代码更清晰
命令与环境
- 命令的格式为:以反斜线\开头,后接一串字母表示命令名,参数用花括号括起来,可选参数用方括号
- 环境的格式为:
\begin{环境名}...\end{环境名}
,源代码中的document,abstract,myquote,figure,thm,equation,table,tabular
都是环境名,其中myquote
是自定义的环境名 - 自定义环境:源代码中的
\newenvironment{myquote} {\begin{quote}\kaishu\zihao{-5}} {\end{quote}}
用来自定义环境,为什么这样写,移步到这里学习 - 自定义命令:源代码中的\newcommand{\degree}{^\circ}用来自定义命令,新命令\degree的效用等价于^\circ,为什么这样写,移步到这里学习,如果是短命令\newcommand**{\新命令名}[参数个数]{命令内容},则命令内容中不能出现段落,即不能有
\par
列表
- 列表环境有三种,分别是无序列表(itemize)、有序列表(enumerate)和描述列表(description)
无序列表(itemize)
\documentclass{ctexart}
\begin{document}
\begin{itemize}
\item javascript
\item html
\item css
\end{itemize}
\end{document}
有序列表(enumerate)
\documentclass{ctexart}
\begin{document}
\begin{enumerate}
\item javascript
\item html
\item css
\end{enumerate}
\end{document}
描述列表(description)
\documentclass{ctexart}
\begin{document}
\begin{description}
\item[javascript] javascript
\item[html] html
\item[css] css
\end{description}
\end{document}
补充:,\LaTeX{}默认的列表环境会在条目之间插入过多的行距,若需要正文行距的列表环境,可以使用compactitem环境
\begin{compactitem}
\item[javascript] javascript
\item[html] html
\item[css] css
\end{compactitem}
标题摘要
这里的\title{}\author{}\date{}
顾名思义,声明了标题、作者和写作日期,\heiti
设置标题字体为黑体,\kaishu
设置作者字体为楷书,\today
当然是自动生成今日的日期,如果\date{}
命令的参数为空,则不显示日期信息,如果不出现\date
命令,则默认显示当前的日期,这只是声明,还需要下面的\maketitle
命令用来控制编译输出标题、作者、日期
% -*- coding: UTF-8 -*-
% !TEX builder = TeXlive
% !TEX program = xelatex
% test.tex
% 测试
\documentclass{ctexart}
\begin{document}
\title{LaTeX论文排版}
\author{5john家安}
\date{\today}
\maketitle
\begin{abstract}
LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:
/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系
统,由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利
用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥
由TEX所提供的强大功能。对于生成复杂表格和数学公式,这一点
表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学
类文档。这个系统同样适用于生成从简单的邮件到完整书籍的所有
其他种类的文档。
\end{abstract}
\end{document}
章节目录
- 在book 和report 文档类中,可以使用
\part、\chapter、\section 、\subsection、\subsubsection、\paragraph、\subparagraph
这些章节命令,在article 文档类中,除了\chapter
不能用,其它的都可以用 - 用
\tableofcontents
命令可以自动从各章节标题生成目录 - 在导言区中用命令
\usepackage{hyperref}
载入hyperref 宏包就可以让生成的文章目录有链接,点击时会自动跳转到该章节,而且也会使得生成的pdf 文件带有目录书签 - 要调整章节标题在目录页中的格式,可以用titletoc 宏包,该宏包的基本命令参数为
\titlecontents{标题层次}[左间距]{整体格式}{标题序号}{标题内容}{指引线和页码}[下间距]
详情参考这里
\documentclass[UTF8, a6paper]{ctexart}
\begin{document}
\tableofcontents
\part{绪论}
\section{课题研究背景} 这一节我们介绍课题研究背景
\section{课题研究意义} 这一节我们介绍课题研究意义
\subsection{强化学习网络模拟训练} 这一小节我们介绍国内外强化学习网络模拟训练现状
\subsubsection{AirSim} 这一子节我们介绍国内外微软开发AirSim进行强化学习网络模拟训练
\paragraph{段标题}
\subparagraph{小段标题}
\subsubsection{CARLA} 这一子节我们介绍国内外某一团队开发CARLA进行强化学习网络模拟训练
\end{document}
参考文献
- 引用文献的基本环境是
thebibliography
,使用方法如下,其中\begin{thebibliography}{}
的大括号内填入的数字表示最大标号值,\bibitem
表示一条文献记录,其中[显示符号]
表示在参考文献区域显示的标号,可不填,默认使用数字1,2,3进行编号,引用标签则是在正文中引用的标签,参考文献的引用和其他的引用有点不同,需要用\cite{引用标签}
来引用。
\begin{thebibliography}{}
\bibitem[显示符号]{引用标签} Book Title, Author
\end{thebibliography}
- 默认
thebibliography
会自动添加标题Reference,所以无需重复添加 - 默认参考文献的行间距为一行,这有时候显得太大了。可以在
\begin{thebibliography}{}
后添加\addtolength{\itemsep}{-1.5ex}
来缩小行间距,-1.5ex
表示每行缩小1.5ex
,其实细心观察可以发现,thebibliography
其实是一个枚举环境,因此对于itemize
和enumerate
,可以用同样的方法缩小行间距 -
thebibliography
是十分繁琐的,因为你还需要把作者等信息一个个地填上去,有没有什么更好的方法呢?答案是:有的,那就是bibtex!bibtex是一个引用数据库,一般以bib后缀结尾,各大论文网站都会提供bibtex格式的文献引用,这里不做详解,可去谷歌学术或百度学术搜索一下,推荐用bibtex
\documentclass[UTF8, a6paper]{ctexart}
\begin{document}
\tableofcontents
\part{绪论}
\section{课题研究背景} 这一节我们介绍课题研究背景
\section{课题研究意义} 这一节我们介绍课题研究意义
\subsection{强化学习网络模拟训练} 这一小节我们介绍国内外强化学习网络模拟训练现状
\subsubsection{AirSim} 这一子节我们介绍国内外微软开发AirSim\cite{AirSim}进行强化学习网络模拟训练
\paragraph{段标题}
\subparagraph{小段标题}
\subsubsection{CARLA} 这一子节我们介绍国内外某一团队开发CARLA进行强化学习网络模拟训练
\begin{thebibliography}{88}
\bibitem {AirSim}Shah S, Dey D, Lovett C, et al. AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles[J]. 2018.
\end{thebibliography}
\end{document}
公式表格图片
公式
- 数学公式分为两种,一个是正文公式,一个是显示公式
正文公式:把公式用一对美元符号括起来即$公式$,主要用于较短的夹在行文中的公式,如
这是行内公式$a=b+c$\par
显示公式:使用equation环境,主要用于较长的比较重要的需要引用的公式,如
\begin{equation}
a(b+c) = ab + ac
\end{equation}
- 输入特殊字符
输入 | \# |
\$ |
\% |
\& |
\{ |
\} |
\_ |
\^{} |
\~{} |
\textless |
\textgreater |
\textbar |
\textbackslash |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
输出 | # |
$ |
% |
& |
{ |
} |
_ |
^ |
~ |
< |
> |
| |
\\ |
插入表格
- 构造表格的基本环境是
\tabular
,参数|l|c|r| 指明了各列的对齐方式,l、c 和r 分别表示左对齐、居中对齐和右对齐,中间的竖线| 指明各列之间有竖线分隔,如果在某些地方不需要竖线,去掉相应位置的| 即可 - 表格各行的元素之间用
&
号分隔,两行内容用\\
分隔 -
\hline
表示两行之间的横线,可以用连续两个\hline
得到双横线,或者去掉\hline
以不显示该横线 - 表格一般直接通过代码构造,而不是在外面先做好,下面构造一个小表格插入在行内
表格一般直接通过代码构造,而不是在外面先做好,下面构造一个小表格
\begin{tabular}{|r|r|r|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline\hline
\end{tabular}
插入在行内
- 如果需要在某个单元格中填写多行内容,不能直接用
\\
或\newline
命令,而应该将它们放在一个盒子里面(比如\parbox
盒子) - 复杂的表格经常需要跨行和跨列,在
\tabular
环境中,我们可以用命令\multicolumn
得到跨列表格,而跨行表格需要使用makecell
的multirowcell
命令 - 表格是在
tabular
环境对应的位置排版出来的,如果表格高度大于当前页剩余高度,表格就会被放置到下一页中,造成这一页下部留出很大空白,大部分时候我们并不需要严格限定表格出现的位置,而只要求表格在该段正文的附近出现即可。此时,我们可以用table
这个可以变动相对位置的浮动体环境来达到自动调整位置的效果 -
table
环境的可选参数里,h(here,当前位置)、t(top,页面顶部)、b(bottom,页面底部)、p(page,单独一页)表明允许将表格放置在哪些位置,而! 表示不管某些浮动的限制,用table
浮动环境,还可以用\caption
命令指明表格的名称,并得到表格的自动编号,下面构造一个大表格
\begin{table}[ht]
\centering
\begin{tabular}{|r|r|r|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\cline{1-1} \cline{3-3}
3 & 4 & \parbox[t]{3em}{不跨行\par 写第二行}\\
\hline
5 & 12 & 13\\
\hline
\multicolumn{2}{|c|}{跨两列} & 666\\
\hline
6 & \multirowcell{2}{跨两行\\写第二行} & 6\\
\cline{1-1}\cline{3-3}
7 & & 7 \\
\cline{1-1}\cline{3-3}
\cline{2-3}
\end{tabular}
\caption{勾股定理示例}
\label{tab:gouguexample}
\end{table}
-
\table
环境内用\tabular
构造的表格可以与其它元素并排,下面是表格与公式并排,其中\end{tabular}%
中的%
可去除换行转变为一个空格的影响,\qquad
为2em
宽度的空白
\begin{table}[H]
\centering
\begin{tabular}{rrr}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline
3 & 4 & 5\\
5 & 12 & 13\\
\hline
\end{tabular}%
\qquad
($a^2 + b^2 = c^2$)
\end{table}
- 有时需要表格在
table
环境对应的位置排版出来的,如果表格高度大于当前页剩余高度,表格就会被放置到下一页中,而这一页下部就算留出很大空白也没关系,因为需要严格限定表格出现的位置,这时可使用float
宏包的H
参数来进行固定,即\begin{table}[H]
插入图片
- 与表格不同,一般情况下不会用代码构造图片,而是直接插入外部现有图形,需要使用
graphicx
宏包,使用\includegraphics{}
命令插入图片,参数是与tex文件同级的图片名 - 图文混排
图片一般先在外面做好再引进,下面直接把已经做好的很小的标志图\includegraphics{artsign32_32.jpg}插在行内\par
- 浮动图片
同表格的插入情形类似,自动调整图片的位置。用figure
浮动环境来达到这个效果
下面把大图放到一个可以变动相对位置的浮动体环境中,相当于一块没有缩进的段落,如图\ref{fig:arisign}所示
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{artsign.pdf}
\caption{这是吴家安的艺术签名}
\label{fig:arisign}
\end{figure}
全部练习文件
代码
\documentclass[UTF8]{ctexart}
\title{\heiti LaTeX入门}
\author{\kaishu 5john}
\date{\today}
\bibliographystyle{plain}
\usepackage{graphicx}
%使用插图表宏包
\usepackage{float}
%为table环境加上了一个[H]位置选项,生成不浮动的表格
\usepackage{amsmath}
%专门用于公式的引用,定义了\eqref,能产生括号,普通的\ref没括号,前缀是american mathematical society美国数学学会的缩写
\usepackage{geometry}
%配置页面尺寸
\geometry{a4paper,centering,scale=0.8}
%A4纸,版心居中,c放宽占页面0.8倍
\usepackage[format=hang,font=small,textfont=it]{caption}
\captionsetup[figure]{format=hang,font=small,textfont=it}
%改变图表标题格式
%\usepackage{multirow}
%跨行表格的使用\multirow命令
\usepackage{makecell}
%跨行表格且能写第二行,使用 \multirowcell 命令
\newtheorem{thm}{这是定理序号前的标题}
\newenvironment{myquote}
{\begin{quote}\zihao{-5}\kaishu}
{\end{quote}}
\newcommand{\degree}{^\circ}
\begin{document}
\maketitle
\begin{abstract}
这是摘要
\end{abstract}
\tableofcontents%添加目录
\section{命令与环境}
\textbackslash par是保持缩进开始新一段符号
脚注\footnote{这是脚注内容}\par
强调\emph{这是强调内容}\par
\begin{quote}
\zihao{-5} \kaishu 这是quote内容,小五号字体,楷书
\end{quote}
\begin{thm}[这是定理名称]
这是定理内容
\end{thm}
--这是与字母n等宽的短线
\section{数学公式}
这是行内公式$a=b+c$\par
下面\eqref{eq:distributivelaw}是显示公式
\begin{equation}
a(b+c) = ab + ac
\label{eq:distributivelaw}
\end{equation}
这是$\angle$和$\pi$两数学符号的使用$\angle ACB = \pi / 2$\par
公式上标$a^1$\par
公式下标$b_1$\par
公式上下标多参数$a^{1,2},b_{1,2}$\par
用函数复合的二元运算符$\circ$的上标形式表示度,如$90^\circ$
\section{使用图表}
\subsection{插图}
图片一般先在外面做好再引进,下面直接把已经做好的很小的标志图\includegraphics{artsign32_32.jpg}插在行内\par
下面把大图放到一个可以变动相对位置的浮动体环境中,相当于一块没有缩进的段落,如图\ref{fig:arisign}所示
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{artsign.jpg}
\caption{这是吴家安的艺术签名}
\label{fig:arisign}
\end{figure}
\subsection{表格}
表格一般直接通过代码构造,而不是在外面先做好,下面tabular环境构造一个小表格
\begin{tabular}{|r|r|r|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline\hline
\end{tabular}
插入在行内
table是一个可以变动相对位置的浮动体环境,可将tabular环境放置在其中,通过table环境的可选参数h(here,当前位置)、t(top,页面顶部)、b(bottom,页面底部)、p(page,单独一页)表明允许将表格放置在哪些位置,也可使用float环境的H参数,将其当作段落一样处理,固定在其出现的位置,下面构造一个大表格,如表\ref{tab:gouguexample}所示\par
\begin{table}[ht]
\centering
\begin{tabular}{|r|r|r|}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\cline{1-1} \cline{3-3}
3 & 4 & \parbox[t]{3em}{不跨行\par 写第二行}\\
\hline
5 & 12 & 13\\
\hline
\multicolumn{2}{|c|}{跨两列} & 666\\
\hline
6 & \multirowcell{2}{跨两行\\写第二行} & 6\\
\cline{1-1}\cline{3-3}
7 & & 7 \\
\cline{1-1}\cline{3-3}
\cline{2-3}
\end{tabular}
\caption{勾股定理示例}
\label{tab:gouguexample}
\end{table}
\textbackslash qquad是两个M宽的空白
下面是无标题表格与公式并排,使用float包的[H]位置选项,固定它的位置,真正当作段来处理。
\begin{table}[H]
\centering
\begin{tabular}{rrr}
\hline
直角边 $a$ & 直角边 $b$ & 斜边 $c$ \\
\hline
3 & 4 & 5\\
5 & 12 & 13\\
\hline
\end{tabular}%
\qquad
($a^2 + b^2 = c^2$)
\end{table}
\section{两种引用参考文献的形式}
\subsection{bib文件}
引用同级文件math.bib中的quanjing\cite{quanjing}
列出没引用的Shiye\nocite{Shiye}
\bibliography{math}
\subsection{直接编码参考文献}
引用直接编码的参考文献AirSim\cite{AirSim}
\begin{thebibliography}{88}
\bibitem {AirSim}Shah S, Dey D, Lovett C, et al. AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles[J]. 2018.
\end{thebibliography}
\section{设计文章格式}
使用amsmath宏包\par
使用geometry宏包\par
在使用caption宏包时控制标题样式\par
使用captionsetup设置caption样式\par
\begin{myquote}
这是我自定义的myquote内容,小五号字体,楷书
\end{myquote}
使用\textbackslash newcommand定义度的命令如$90\degree$
\end{document}
artsign32_32.jpg
artsign.jpg
math.bib
@BOOK{Kline,
title={古今数学思想},
publisher={上海科学技术出版社},
year={2002},
author={克莱因}
}
@ARTICLE{quanjing,
author={曲安京},
title={商高、赵爽与刘徽关于勾股定理的证明},
journal={数学传播},
year={1998},
volume={20},
number={3}
}
@BOOK{Shiye,
title={几何的有名定理},
publisher={上海科学技术出版社},
year={1986},
author={矢野健太郎}
}