本文是我自学Latex的学习心得,给大家分享一下。wudashuo首发于CSDN,转载请注明。
上一期链接 (安装、配置、hello world) https://blog.csdn.net/wudashuo/article/details/104608686
本期是Latex的核心内容,包括如何写标题,作者,摘要,关键词,正文等内容。
本文环境:Windows 10 + Textlive + VS Code
目录
1. 文档开始前
首先回顾一下上一期我们学的最简单的内容:
\documentclass{IEEEtran} %文档模板
\begin{document} %文档开始
Hello, World! %不空行,这里相当于空格
Hello, World! %空了一行,这里相当于换行
Hello, World! %连续多个空格,视为一个空格
\end{document}
1.1 documentclass
我们知道Latex的是以\documentclass 开头的,这是文档的模板,它的完整指令是
\documentclass[option]{class}
其中option是文档属性,class是文档类型。
(1)Class常用参数如下表:
article | for articles in scientific journals, presentations, short reports, program documentation, invitations, ... |
report | for longer reports containing several chapters, small books, thesis, ... |
book | for real books |
letter | for writing letters |
proc | a class for proceedings based on the article class |
更多参数详见 https://ctan.org/topic/class 这个算是最全的了。
计算机相关专业常见的模板就是IEEEtran和IEEEconf。Latex模板可以从你要投稿期刊会议的网站上下载,当然网上也有很多其他模板,甚至很多学校毕业论文的Latex模板都有,有了模板写论文就非常简单了,直接把你的内容填充进去就可以了。
一个latex模板网站https://www.latexstudio.net/ 我也没下载过,看起来还可以。
(2)option 是在你模板的基础上进行另外一些排版设置,下面是option的常用参数:
11pt | 字号,默认10pt |
letterpaper a4paper | 纸张大小,美国常用的就是a4和us letter |
onecolumn twocolumn | 单栏还是双栏 |
多个参数用英文逗号隔开。除上述表格外,UTF8可以支持中文,还有一些关于书籍的参数,比如titlepage和notitlepage是标题页是否独占一页,一般书籍,毕业论文和报告是独占一页的,普通论文都是notitlepage; twoside, oneside单面还是双面打印;landscape文档打印格式是横着等等,这里不再赘述了,一般写论文用不到。
option是额外的参数,一般只要有了class的具体模板,基本不用配置很多。比如IEEE会议论文模板是IEEEtran,属性只需填conference:
\documentclass[conference]{IEEEtran}
1.2 usepackage
导入包,类似编程中的import。包的导入在\documentclass之后,\begin{document}之前。命令如下:
\usepackage[options]{package}
options一般不太常用,只需导入相应的package就行。一些常用的package有:
- amsmath, amsthm,amssymb, amsfonts 数学公式、定理、数学扩展符号和一些数学字符字体包。必引用,除非论文里没有任何公式和数学符号。其中amssymb是包含amsfonts的,引用前者即可。
- graphicx 插入图片,必引用的包。
- xcolor 颜色包,必引用。
- array 表格,必引用。
- cite 参考文献引用,必引用。
- fontenc, textcomp 这两个是字体编码相关的包,有些特殊符号无法正常显示,可以导入这两个包
本来想多写几个的,写太多冗余,有兴趣可以自己搜索各个常用的包的功能,最全的包在这里:https://www.ctan.org/pkg/ 这个太多了看看就行了,不具参考性。
2. 标题页
标题页主要是三个部分,标题,作者和日期(可选)
这三个指令是:
\title{your paper title}
\author{name}
\date{\today}
其中,使用 \thanks 命令生成标题页的脚注,在作者那里用 \and 隔开多个人名,比如:
\title{Test title}
\author{ Troy\thanks{E-mail:wudashuo@qq.com} %第一作者,脚注邮箱
\and Myb\thanks{Corresponding author} %第二作者,脚注通讯作者
\and author_name3}
\date{\today} %日期今天,或者直接写你想要的日期
一般论文是要比上述更加复杂的,再次拿IEEE模板举例,通常作者名字是有表明第几作者的,下方还要有单位和邮箱,而不是在脚注中,有些不需要写日期,有些论文也包含副标题,一切以模板为准。
这些指令只是定义标题、作者和日期,单单输入这些,编译后整个标题页是没有的,只有通过这个指令才能生成标题页:
\maketitle
\maketitle的位置一定不要搞错,因为latex编译是按顺序的,应该在正文、目录和摘要之前,在\begin{document}之后,而之前的标题作者的定义可以在\begin{document}之前或者之后,但一定在\maketitle之前。
3. 摘要与关键字:
摘要的命令很简单,在中间把你的摘要复制进去就完事了:
\begin{abstract}
content of abstract....
\end{abstract}
而关键字在latex中并没有这个指令,但是论文模板中一般是有的,直接套用即可,比如IEEE:
\begin{IEEEkeywords}
keyword 1, keyword 2, keyword 3
\end{IEEEkeywords}
如果模板没有,可以使用宏等方式生成自己的指令,这里不再赘述,可自行搜索。
4. 正文
正文部分就简单了(除了图表等),首先要写的是章节名,latex中有7个等级的章节:
- -1
\part{part}
- 0
\chapter{chapter}
- 1
\section{section}
- 2
\subsection{subsection}
- 3
\subsubsection{subsubsection}
- 4
\paragraph{paragraph}
- 5
\subparagraph{subparagraph}
其中,\part
和 \chapter
是部和章,只有在 report
和book
的格式用的到,我们一般所用的章节标题是123级。比如
\section{Introduction}
...第一章的内容...
\section{Related works}
\subsection{Deep Learning}
第2.1章节的内容...
\subsubsection{CNN}
第2.1.1章节的内容...
而\paragraph 和\subparagraph是四级标题1.1.1.1和五级标题1.1.1.1.1,不太常用,注意看你的论文模板是否可以使用四级和五级标题。
有了这些章节,在前面那里(\maketitle之后,顺序不要乱)可以使用\tableofcontents命令自动生成目录。如果某些章节不想出现在目录中,可以在章节指令的 { 之前加星号,比如
\subsection*{这个标题不会出现在目录中}
关于文字内容就直接在章节命令下面另起一行输入你的正文内容即可。
下面是一些我自己整理的用得到的常识(之后还有):
- 空格键和 Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视为一个空格,想多个空格可在空格前加\。一行开头的空格忽略不计。
- 行末的回车视为一个空格;但连续两个回车,也就是空行,会将文字分段。多个空行被视为一个空行。章节指令、插入图表等指令后无需手动空行分段。
- 在行末使用 \par 命令也可以分段。
- %后注释,不会编译,直到行尾。
- 特殊符号前用\ ,输入"\"符号用\textbackslash指令。
- 双引号 “ 用两个单引号表示 ‘’,编译后就是双引号了。
- 一个 - 用来连接英文的复合词 两个 -- 将数字链接表示范围 三个 --- 作为破折号使用。
- \ldots 和\dots指令都是省略号。
- \underline{underlined content} 下划线内容。
- \emph{content} 命令用来将文字变为斜体以示强调。如果在本身已经用 \emph{content} 命令强调的文字内部嵌套使用 \emph{},内部的则使用正常字体的文字。
- \\ 表示换行不换段 \newline指令也可以。
- 断页\newpage 和 \clearpage,二者的区别是\clearpage总是另起新的一页,而\newpage在双栏排版中是新的一栏。
至此,写出一篇简单的Latex文章应该不是问题了。最后来一个本文所用到的总的Latex代码:
\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage[OT1]{fontenc} % for font error
\usepackage{booktabs} % for tabular
\usepackage{multirow} % for tabular
\usepackage{array} % for m{} in tabular
\usepackage{lscape} % 横向
\title{Latex零基础教程:Latex学习笔记}
\author{Troy \thanks{https://blog.csdn.net/wudashuo/}}
\date{\today}
\begin{document}
\maketitle
\begin{abstract}
Latex零基础教程:Latex学习笔记主要讲了Latex下载安装和写作方法与技巧
\end{abstract}
\begin{IEEEkeywords}
Latex, Troy, wudashuo
\end{IEEEkeywords}
\tablesofcontent
\section{Introduction}
Latex是一种文章排版系统
\section{How to use Latex}
\subsection{Download and install}
具体方法请见https://blog.csdn.net/wudashuo/article/details/104608686
\subsubsection{IDE}
推荐texlive和VSCode
\end{document}
本期讲述的是Latex写作中比较简单的部分,更难的是图、表、公式的插入和其交叉引用,参考文献及其引用,这些内容将在下一期教程里写。
写了整整一天,下期等下次有空的时候再写吧。
如果喜欢这篇文章,学到了知识的话
👇请点个赞收个藏👇。