中文版Latex常用语法大全教程


中文版Latex常用语法大全教程

  • Latex语法格式
  • 中文版的“hello world”
  • 注释
  • 换行、分段、分页、首行缩进
  • 文字的粗体、斜体、颜色、大小
  • 下划线、双下划线、波浪线、删除线、斜删除线
  • Latex文档层次结构
    • Latex层次
    • Latex封面
    • Latex目录
    • Latex摘要
    • Latex关键字
    • Latex引用
    • Latex脚注
    • Latex段落
    • Latex数学公式
    • Latex数学图形
    • Latex插入图片
    • Latex插入表格
    • Latex插入代码
    • Latex文档点缀
    • Latex页面配置
    • Latex页眉与页脚
    • Latex参考文献
  • 小结
  • 参考资料

Latex是一个基于Tex的文章,期刊,书籍的排版系统,可让使用者在极短的时间内写出很高排版质量的文档。

对于没有接触过Latex的同学来说,这种以代码形式进行文档书写的方式,会让人一头雾水,摸不到南北。

下面我以本人的视角来梳理《中文版Latex常用语法大全教程》,请大家一定要先浏览本文目录,目录一般呈现的都是文章大纲,对理解文章很有帮助。

不建议大家一开始就从头看到尾,而是在写作的过程中用到了那个知识点就去看那一点,这样更有助于学习。若是零基础的同学,我会再出一版《Latex快速入门》,请持续关注哦。


Latex语法格式

在开始本文之前,请先熟悉下,Latex的行文结构,这也是最基本的,作为一个程序员来说,每开始一个新的编程语言学习时,都要先了解该程序语言的结构,那样才能快速编程。

1
2
3
4
\documentclass[options]{class}
\begin{document}
% 录入正文内容
\end{document}

参数

  • options ? 定制文档类的属性,不同的选项之间须用逗号隔开。
  • clsss ? 指定文档类型,如:book、report、article、letter等。

注意: 本文所有的教程都是基于 中文环境 的Latex文档编写。
Latex的中文环境配置请参考我的另一篇文章《ubuntu20.04下vim+vimtex编写latex的利器》。


中文版的“hello world”

让我们来创建第一个文档,中文版的“hello world”,使用 vim 编写 test.tex 文档,录入如下代码

1
2
3
4
5
6
7
8
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}

hello 中国

\end{document}

编好后,在vim的命令行模式下,按 “\ll” 进行编译并预览,每次更改代码并重新保存后,都会实时更新预览界面。如下图:
在这里插入图片描述
是不是很简单啊,让我们期待在本文的帮助下,畅游Latex文档编写的世界吧。


注释

Latex也如 C语言等编程语言一样,也有单行和多行注释

  • 单行,以%开头的行,是单行注释
  • 多行,(不要忘记添加多行注释用的包, \usepackage{verbatim}
    • \begin{comment}
    • 多行注释内容
    • \end{comment}

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{verbatim}
\begin{document}

%单行注释
hello 中国

\begin{comment}
这是一个注释行
这又是一行注释
hehe
\end{comment}

\end{document}

换行、分段、分页、首行缩进

换行

  • \\ ? 换行
  • \newline ? 与\\相同
  • 注意,这里的换行,都是在段内换行

分段

  • \par ? 添加在段落末尾或另起一行进行分段
  • 在段落后连续两个回车,也可以实现分段效果(推荐的方式)

分页

  • \newpage ? 添加在段落末尾或另起一行进行分页

首行缩进

  • latex默认第一段不首行缩进,如果想让第一段首行缩进,则可以使用 \usepackage{indentfirst}。
  • 如果想让某一段不首行缩进,则可以在该段前加上 \noindent。
  • 如果想让整篇文章都首行不缩进,则:\setlength{\parindent}{0pt}

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{verbatim}
\begin{document}
%换行
三更\\灯火五更鸡,


正是男儿读书时。\par
\noindent 黑发不知勤学早,\newpage

白首方悔读书迟。
\end{document}

效果图如下
在这里插入图片描述


文字的粗体、斜体、颜色、大小

粗体

  • \textbf{文字}

斜体

  • \emph{文字},( 备注,中文文档里面斜体配置没有成功,以后有时间再改进)

颜色,有 3种方式可选

  • 直接使用定义好的颜色
    1. \usepackage{color}
    2. \textcolor{red/blue/green/black/white/cyan/magenta/yellow}{text}
    3. % 其中textcolor{…}中包含的是系统定义好的颜色
  • 组合red、green和blue的值合成我们想要的颜色
  1. \usepackage{color}
  2. \textcolor[RGB]{R,G,B}{text}
  3. % 其中{R,G,B}代表red、green和blue三种颜色的组合,取值范围为[0-255]
  • 定义一种颜色,直接调用
  1. \usepackage{color}
  2. \definecolor{ColorName}{RGB}{R,G,B} % 这时R/G/B的定义域就在[0-255]
  3. \textcolor{ColorName}{text}
  4. 这里为颜色定义了名称ColorName,下面可以直接调用这个颜色方案

大小

  • 全局模式
  1. \documentclass[12pt]{article}
  • 局部模式
    1. 根据既有命令设置
      1. 命令:\tiny、\scriptsize、\footnotesize、\small、\normalsize、\large、\Large、\LARGE、\huge、\Huge
      2. 示例,\tiny{Latex},注意命令跟文字之间有空格
    2. 自定义修改字体大小和尺寸
      1. \fontsize{字体尺寸}{行距}
      2. 示例, \fontsize{20pt}{24pt} 中国,注意命令跟文字之间有空格

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{verbatim}
\usepackage{color}
\setlength{\parindent}{0pt} %配置整篇不缩进
\begin{document}
% 粗体
\textbf{三更灯火五更鸡,}

% 斜体
\emph{正是男儿读书时。}

%颜色
\textcolor{red}{黑发}\\
\textcolor[RGB]{80,200,120}{不知}\\
\definecolor{newColor}{RGB}{200,100,200}
\textcolor{newColor}{勤学早,}

%大小
\large{白首}\\
\footnotesize{方悔}\\
\fontsize{12pt}{24pt}读书迟。

\end{document}

效果图如下
在这里插入图片描述
注意,单行注释也算是空行,所以不要以为这里的分段是需要 1个空行的,所有的分段都需要2个空行。


下划线、双下划线、波浪线、删除线、斜删除线

注意啊,看到形似 \usepackage{ulem} 的语句,要记得要添加该包。

\usepackage{ulem}

\uline{黑发不知勤学早,白首方悔读书迟。} %下划线
\uuline{黑发不知勤学早,白首方悔读书迟。} %双下划线
\uwave{黑发不知勤学早,白首方悔读书迟。} %波浪线
\sout{黑发不知勤学早,白首方悔读书迟。} %删除线
\xout{黑发不知勤学早,白首方悔读书迟。} %斜删除线

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\setlength{\parindent}{0pt} %配置整篇不缩进
\usepackage{ulem}
\begin{document}
劝学诗

%下划线
\uline{唐 颜真卿}

%双下划线
\uuline{三更灯火五更鸡,}

%波浪线
\uwave{正是男儿读书时。}

%删除线
\sout{黑发不知勤学早,}

%斜删除线
\xout{白首方悔读书迟。}
\end{document}

效果图如下
在这里插入图片描述
至此,有关Latex中关于文字处理的部分就写完了,既然是文章,那就应该有标题、段落等组织方式。

接下来就开始讲解文档的组织结构。


Latex文档层次结构

Latex层次

其实篇小字少的文档很好组织,但是一涉及到多篇章长段落多层次的文档,就体现到文档的组织功底了,组织的好,使读者赏心悦目;组织的不好,使人眼花缭乱,头昏脑涨。

Latex对每一个文档类型都有一个可供参考的层次分类,下面对常用 document class 做了简短的说明,各位同学在编排文档时尽量对号入座。如下所述:

  • article ? - for articles in scientific journals, presentations, short reports, program documentation, invitations, …(科学期刊、 演示文档、 短报告、 程序文档、 邀请函等)
  • book ? - for real books(书籍排版)
  • letter ? - for writing letters.(信件书写)
  • *report ? - for longer reports containing several chapters, small books, thesis, …(多章节长报告、 短篇书籍、 博士论文等)
  • proc ? - a class for proceedings based on the article class.(基于 article 的会议文集类)
  • slides ? - for slides. The class uses big sans serif letters.(幻灯片。 该文档类使用大号 sans serif 字体。)
  • minimal ? - is as small as it can get. It only sets a page size and a base font. It is mainly used for debugging purposes.(非常小的文档类。 只设置了页面尺寸和基本字体。 主要用来查错。)
  • beamer ? - for writing presentations.(演示文稿编写)

里面有几个词,需要拿出来说一说,也就是:

  • part ? – ? 篇,实对章节的归类
  • chapter ? – ? 章
  • section ? – ? 一级标题,也就是节
  • subsection ? – ? 二级标题
  • subsubsection ? – ? 三级标题
  • paragraph ? – ? 段,是一段文字的说明
  • subparagraph ? – ? 子段,是以列举的形式对前段文字的说明

其中文档类 article 是Latex的最基本类别,本文中的示例都是基于这一文档类来演示的。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
%! Tex program = xelatex
\documentclass[14pt]{article}
\usepackage[UTF8]{ctex}
\usepackage{graphicx}  %插入图片

%----封面
\title{二十四史:史记}
\author{司马迁}
\date{东汉}

\begin{document}

\begin{titlepage}
\maketitle
\vspace{2cm}
\includegraphics[scale=1]{simaqian.png}
\end{titlepage}

%----简介
\centerline{\Huge{简介}}\vspace{2cm}\par
《史记》全书包括十二本纪(记历代帝王政绩)、三十世家(记诸侯国和汉代诸侯、勋贵兴亡)、七十列传(记重要人物的言行事迹,主要叙人臣,其中最后一篇为自序)、十表(大事年表)、八书(记各种典章制度记礼、乐、音律、历法、天文、封禅、水利、财用)。
\newpage

%----目录
\tableofcontents
\newpage

%----正文
\section{本纪}
\subsection{第一章 五帝本纪}
\paragraph{黄帝者,少典之子,姓公孙,名曰轩辕。生而神灵,弱而能言,幼而徇齐,长而敦敏,成而聪明。轩辕之时,神农氏世衰。诸侯相侵伐,暴虐百姓,而神农氏弗能征。於是轩辕乃习用干戈,以征不享,诸侯咸来宾从……}
\subparagraph{黄帝,是少典部族的子孙,姓公孙名叫轩辕。他一生下来,就很有灵性,在襁褓中就会说话,幼年时聪明机敏,长大后诚实勤奋,成年以后见闻广博,对事物看得透彻。轩辕时代,神农氏的统治逐渐衰弱,诸侯之间互相侵伐,祸害百姓,而神农氏无力征讨。于是轩辕就动用武力去讨伐那些不守纪律,不来朝拜神农氏的人,因而诸侯都对他表示臣服与追随……}

\subsection{第二章 夏本纪}
\subsection{第三章 殷本纪}

\section{表}
\subsection{三代世表第一}
\subsection{十二诸侯年表第二}

\end{document}

效果图如下
在这里插入图片描述


Latex封面

一般情况下,大家都需要在封面上填上,标题,作者,日期等内容。直接上示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{graphicx}  %插入图片

%封面格式
\title{劝学}
\author{颜真卿}
\date{唐代}

\begin{document}

%制作封面
\begin{titlepage}
\maketitle
\includegraphics[scale=1]{yanzhenqing.png} %插入图片
\end{titlepage}

%正文
颜真卿3岁丧父,家道中落,母亲殷氏对他寄予厚望,实行严格的家庭教育,亲自督学。颜真卿也格外勤奋好学,每日苦读。这首诗正是颜真卿为了勉励后人所作。

\end{document}

效果图
在这里插入图片描述


Latex目录

首先使用\section{},subsection{},\part{},\chapter{}等命令在正文中插入了章节之后才能够再使用\tableofcontents命令在这些个命令出现的位置插入目录。

示例(具体代码请参考《 Latex层次》章节)
在这里插入图片描述


Latex摘要

尤其是在写论文时,通常在正文开篇前就应该加上摘要。格式:

1
2
3
\begin{abstract}
%摘要内容
\end{abstract}

示例及效果图
在这里插入图片描述


Latex关键字

有的模板有关键字格式,比如 “IEEE” 文件,格式如下:

1
2
3
\begin{IEEEkeywords}
keyword1, keyword2.
\end{IEEEkeywords}

当然,你也可以自定义关键字格式,如下

1
2
3
4
5
6
7
8
9
10
% Keywords command
\providecommand{\keywords}[1]
{
  \small   
  \textbf{\textit{Keywords---}} #1
}
……
\begin{document}
……
\keywords{one, two, three, four}

效果如下
在这里插入图片描述


Latex引用

通过 “quote” 关键字实现,示例及效果图如下:
在这里插入图片描述
注意: 其中 “kaishu” 是指定字体的关键字。


Latex脚注

在需要添加脚注的文字后添加\footnote{脚注内容},示例及效果图如下:
在这里插入图片描述


Latex段落

持续更新中……敬请期待


Latex数学公式


Latex数学图形


Latex插入图片


Latex插入表格


Latex插入代码


Latex文档点缀


Latex页面配置


Latex页眉与页脚


Latex参考文献


小结

本文的部分内容来自于网络搜索,我这里综合整理出来,以供大家学习参考。

在此对于引用到各位大神内容的一并感谢,谢谢各位大神的分享。


参考资料

  1. https://ctan.org/topic/class