美文网首页LaTexLaTeX科研写作
(3)LaTeX论文排版——实例解读

(3)LaTeX论文排版——实例解读

作者: 5john家安 | 来源:发表于2018-11-02 16:39 被阅读10次

    解读上一篇文章(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}
    
    
    image.png

    有序列表(enumerate)

    \documentclass{ctexart}
    
    \begin{document}
    
      \begin{enumerate}
        \item javascript
        \item html
        \item css
      \end{enumerate}
    
    \end{document}
    
    image.png

    描述列表(description)

    \documentclass{ctexart}
    
    \begin{document}
    
      \begin{description}
        \item[javascript] javascript
        \item[html] html
        \item[css] css
      \end{description}
    
    \end{document}
    
    image.png
    标题摘要

    这里的\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}
    
    image.png
    章节目录
    • 在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}
    
    image.png
    参考文献
    • 引用文献的基本环境是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其实是一个枚举环境,因此对于itemizeenumerate,可以用同样的方法缩小行间距
    • 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}
    
    image.png

    公式表格图片

    公式
    • 数学公式分为两种,一个是正文公式,一个是显示公式

    正文公式:把公式用一对美元符号括起来即$公式$,主要用于较短的夹在行文中的公式,如

    这是行内公式$a=b+c$\par
    
    image.png

    显示公式:使用equation环境,主要用于较长的比较重要的需要引用的公式,如

    \begin{equation}
            a(b+c) = ab + ac 
        \end{equation}
    
    image.png
    • 输入特殊字符
    输入 \# \$ \% \& \{ \} \_ \^{} \~{} \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}
        插入在行内
    
    image.png
    • 如果需要在某个单元格中填写多行内容,不能直接用\\\newline命令,而应该将它们放在一个盒子里面(比如\parbox盒子)
    • 复杂的表格经常需要跨行和跨列,在\tabular环境中,我们可以用命令\multicolumn得到跨列表格,而跨行表格需要使用makecellmultirowcell命令
    • 表格是在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}
    
    image.png
    • \table环境内用\tabular构造的表格可以与其它元素并排,下面是表格与公式并排,其中\end{tabular}%中的%可去除换行转变为一个空格的影响,\qquad2em宽度的空白
    \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}
    
    image.png
    • 有时需要表格在table环境对应的位置排版出来的,如果表格高度大于当前页剩余高度,表格就会被放置到下一页中,而这一页下部就算留出很大空白也没关系,因为需要严格限定表格出现的位置,这时可使用float宏包的H参数来进行固定,即\begin{table}[H]
    image.png image.png image.png image.png
    插入图片
    • 与表格不同,一般情况下不会用代码构造图片,而是直接插入外部现有图形,需要使用graphicx宏包,使用\includegraphics{}命令插入图片,参数是与tex文件同级的图片名
    • 图文混排
    图片一般先在外面做好再引进,下面直接把已经做好的很小的标志图\includegraphics{artsign32_32.jpg}插在行内\par
    
    image.png
    • 浮动图片

    同表格的插入情形类似,自动调整图片的位置。用figure浮动环境来达到这个效果

    下面把大图放到一个可以变动相对位置的浮动体环境中,相当于一块没有缩进的段落,如图\ref{fig:arisign}所示
        \begin{figure}[ht]
            \centering
            \includegraphics[scale=0.2]{artsign.pdf}
            \caption{这是吴家安的艺术签名}
            \label{fig:arisign}
        \end{figure}
    
    image.png

    全部练习文件

    代码

    \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


    image.png

    artsign.jpg


    image.png

    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={矢野健太郎}
     }
    

    练习文件编译结果

    image.png image.png image.png

    资料

    LaTeX开源小屋
    LaTeX 编辑部在线API

    相关文章

      网友评论

        本文标题:(3)LaTeX论文排版——实例解读

        本文链接:https://www.haomeiwen.com/subject/omuntqtx.html