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

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

  • Latex语法格式
  • 中文版的“hello world”
  • 注释
  • 换行、分段、分页
  • 文字的粗体、斜体、颜色、大小
  • 下划线、双下划线、波浪线、删除线、斜删除线
  • Latex文档层次结构
    • Latex层次
    • Latex封面
    • Latex目录
    • Latex摘要
    • Latex关键字
    • Latex引用
    • Latex脚注
    • Latex数学公式
    • Latex数学图形
    • Latex插入图片
    • Latex插入表格
    • Latex插入代码
    • Latex文字加边框
    • Latex段落文字加边框
    • latex分栏
    • Latex段落
    • Latex空白字符
    • Latex页面配置
    • Latex页眉页脚
    • Latex手写参考文献
    • Latex使用BibTeX生成参考文献列表
  • 小结
  • 参考资料


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

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

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

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

不过在开始本文前,需要各位同学配好自己的环境,我的环境配置,请参考我的另一篇文章《ubuntu20.04下vim+vimtex编写latex的利器》,本文的所有演示用例,都是基于该环境实现的。

数学用的平面几何图形绘制,请参考我的另外文章

  • 《Latex-TiKZ绘制数学平面几何图教程》
  • 《Latex-pgfplots绘制3维曲线图》

Latex语法格式

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

\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 文档,录入如下代码

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}

hello 中国

\end{document}

编好后,在vim的命令行模式下,按 “\ll” 进行编译并预览,每次更改代码并重新保存后,都会实时更新预览界面。如下图:
中文版Latex常用语法大全教程_第1张图片
是不是很简单啊,让我们期待在本文的帮助下,畅游Latex文档编写的世界吧。


注释

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

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

示例

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{verbatim}
\begin{document}

%单行注释
hello 中国

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

\end{document}

换行、分段、分页

换行

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

分段

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

分页

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

示例

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{verbatim}
\begin{document}
%换行
三更\\灯火五更鸡,


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

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

效果图如下
中文版Latex常用语法大全教程_第2张图片


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

粗体

  • \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} 中国,注意命令跟文字之间有空格

示例

%! 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}

效果图如下
中文版Latex常用语法大全教程_第3张图片
注意,单行注释也算是空行,所以不要以为这里的分段是需要 1个空行的,所有的分段都需要2个空行。


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

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

\usepackage{ulem}

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

示例

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\setlength{\parindent}{0pt} %配置整篇不缩进
\usepackage{ulem}
\begin{document}
劝学诗

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

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

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

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

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

效果图如下
中文版Latex常用语法大全教程_第4张图片
至此,有关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的最基本类别,本文中的示例都是基于这一文档类来演示的。

示例:

%! 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常用语法大全教程_第5张图片


Latex封面

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

%! 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常用语法大全教程_第6张图片


Latex目录

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

示例(具体代码请参考《 Latex层次》章节)
中文版Latex常用语法大全教程_第7张图片


Latex摘要

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

\begin{abstract}
%摘要内容
\end{abstract}

示例及效果图
中文版Latex常用语法大全教程_第8张图片


Latex关键字

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

\begin{IEEEkeywords}
keyword1, keyword2. 
\end{IEEEkeywords} 

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

% Keywords command
\providecommand{\keywords}[1]
{
  \small	
  \textbf{\textit{Keywords---}} #1
}
……
\begin{document}
……
\keywords{one, two, three, four}

效果如下
中文版Latex常用语法大全教程_第9张图片


Latex引用

通过 “quote” 关键字实现,示例及效果图如下:
中文版Latex常用语法大全教程_第10张图片
注意: 其中 “kaishu” 是指定字体的关键字。


Latex脚注

在需要添加脚注的文字后添加\footnote{脚注内容},示例及效果图如下:
中文版Latex常用语法大全教程_第11张图片


Latex数学公式

Latex有两种公式模式

  • 行间(inline)模式:即在正文中插入数学内容。行间公式用 $ … $
  • 独立(display)模式:独立成行,可以有或没有编号。无编号用\ [ … \ ]

示例

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
数学公式,$lim_{x\to0}x^2$


质能方程即描述质量与能量之间的当量关系的方程, \[E = mc^2\]

\end{document}

效果图
中文版Latex常用语法大全教程_第12张图片
从上面示例,可以看出,行间模式和独立模式之间的区别


Latex数学图形

绘制数学图形,我这边使用的是 \usepackage{tikz}
示例

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[style=thick]
    \draw [dashed] (0,4) -- (0.8,0.4);
    \draw [fill, color=gray] (0,2) ellipse [x radius=1, y radius=0.23]  ;
    \draw [fill, color=gray] (0,0) ellipse [x radius=2, y radius=0.46]  ;
    \draw (0,2) ellipse [x radius=1, y radius=0.23]  ;
    \draw (0,0) ellipse [x radius=2, y radius=0.46]  ;
    \draw (0,4) -- (-2,0);
    \draw (0,4) -- (2,0);
    \draw (0,4) -- (-0.8,-0.4);
    \draw (0,4)[above right=-1.75pt] node{$(x_0,t_0)$};
    \draw [->] (1.2,2.2) -- (1.8,2.8);
    \draw (1.5,2.8)[above right=-1.75pt] node{$B(x_0,t_0-t)$} ;
\end{tikzpicture}

\end{document}

效果图
中文版Latex常用语法大全教程_第13张图片


Latex插入图片

插入图形使用是 ** “graphicx” ** 包,格式

\usepackage{graphicx}  %插入图片
...
\includegraphics[scale=1]{yanzhenqing.png} %插入图片

具体的示例可以参考上面的《Latex封面》部分,效果如下:
中文版Latex常用语法大全教程_第14张图片


Latex插入表格

格式:

\begin{tabular}
……
\end{tabular}

也可设置表格的属性等情况

  • 对齐格式:l 左 c 居中 r 对齐
  • 线条:| 竖线 \hline横线 || 双竖线 \hline \hline 双横线
  • 设置宽度:p{宽度值},内容超过宽度时,自动换行

示例及效果
中文版Latex常用语法大全教程_第15张图片


Latex插入代码

格式

\usepackage{listings}
...
\begin{lstlisting}
% 代码段
\end{lstlisting}

若需要代码高亮,需要使用 “\usepackage{xcolor}” 包,使用前需要定制一些参数,即代码块的基本配置

\lstset{
 columns=fixed,       
 numbers=left,                                        % 在左侧显示行号
 numberstyle=\tiny\color{gray},                       % 设定行号格式
 frame=none,                                          % 不显示背景边框
 backgroundcolor=\color[RGB]{245,245,244},            % 设定背景颜色
 keywordstyle=\color[RGB]{40,40,255},                 % 设定关键字颜色
 numberstyle=\footnotesize\color{darkgray},           
 commentstyle=\it\color[RGB]{0,96,96},                % 设置代码注释的格式
 stringstyle=\rmfamily\slshape\color[RGB]{128,0,0},   % 设置字符串格式
 showstringspaces=false,                              % 不显示字符串中的空格
 language=c++,                                        % 设置语言
}

示例及效果如下
中文版Latex常用语法大全教程_第16张图片


Latex文字加边框

使用 “fbox” 命令即可,示例及效果如下
中文版Latex常用语法大全教程_第17张图片


Latex段落文字加边框

需要使用 “\usepackage{framed}” 包,示例及效果如下
中文版Latex常用语法大全教程_第18张图片


latex分栏

使用包 “\usepackage{multicol}”,格式

\usepackage{multicol}
...
\begin{multicols}{2}  %分2栏
%要分栏的内容
\end{multicols}

示例及效果如下
中文版Latex常用语法大全教程_第19张图片


Latex段落

添加 **空行 **、行间距的实现,使用包 “setspace” ,示例及效果

  • \vskip 1cm %跳过1cm的间距。

\usepackage{setspace}
……
\begin{spacing}{2.0} %2倍行间距
……
\end{spacing}
中文版Latex常用语法大全教程_第20张图片

段间距,格式: \setlength{\parskip}{2em} %设置段落间距
示例及效果
中文版Latex常用语法大全教程_第21张图片

首行缩进,使用包 “ \usepackage{indentfirst} ”,使用命令设置缩进的距离
setlength{\parindent}{2em} ,这里的 2em 表示缩进 2 个字符位置.如果有一个段落你不想首行缩进, 在段落前使用命令 \noindent .示例如下:

\usepackage{indentfirst}
\noindent Thirty-two
\indent\setlength{\parindent}{1em}During

Latex空白字符

使用命令 “\quad” 实现空格效果,例如:

  • a \quad b  -->  a   b    #a和b之间一个m的宽度

Latex页面配置

使用geometry宏包,可以让页边距和页眉页脚的设置变得非常简单,示例

\documentclass[a4paper]{article}
\usepackage{geometry}
\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}

\begin{document}
test
\end{document}

也可以配置页面大小,如:

  • \geometry{a4paper} %写在导言区
  • \geometry{paperheight=22cm, paperwidth=10cm} %自定义页面大小

其他常用的长度选项还有 head, headsep, foot,见下图
中文版Latex常用语法大全教程_第22张图片

Latex页眉页脚

通常用fancyhdr宏包来设置页眉和页脚,常用命令有:\pagestyle{type},\thispagestyle{type},setcounter{page}{number},\pagenumbering{style}。

  • \pagestyle{type}和\thispagestyle{type}命令用于设置页面样式(页眉和页脚)。\pagestyle{type}和\thispagestyle{type}的主要区别在于\pagestyle{type}对后续所有页面都有效,而\thispagestyle{type}仅仅对当前页面有效。在LaTeX中,默认提供了以下五种页面样式:
    1. empty - 没有页眉和页脚
    2. plain - 没有页眉,页脚包含一个居中的页码
    3. headings - 没有页脚,页眉包含章/节或者字节的名字和页码
    4. myheadings - 没有页脚,页眉包含有页码
  • 默认情况下,页码从第一页开始(通常是包含标题页的)并且以阿拉伯数字形式显示(例如:1,2,3 …)。页码的编号也可以通过\setcounter{page}{number}命令手动设置,需要注意的是,手动设置可能会导致重复的页码出现。
  • \pagenumbering{style}命令则用于改变页码的显示风格。LaTeX中页码风格包含以下五类:
    1. arabic - 阿拉伯数字
    2. roman - 小写的罗马数字
    3. Roman - 大写的罗马数字
    4. alph - 小写的字符形式
    5. Alph -大写的字符形式

示例

\begin{document}

\thispagestyle{empty} % 当前页不显示页码
\newpage %分页

\pagestyle{headings}
\setcounter{page}{1}
\pagenumbering{Roman}

\end{document}

Latex手写参考文献

可以手动书写参考文献,格式

\begin{thebibliography}{widest label}
	\bibitem[item number]{citation} 
\end{thebibliography}

其中widest label 用来设置参考文献序号的宽度,item number自定义参考文献的序号一般是省略的,该命令会按照顺序自动生成参考文献序号,citation为区分参考文献的标签(类似变量名),使用\cite{citation}命令引用参考文献时填入其中。示例如下:

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}

\begin{document}

黑发不知勤学早,白首方悔读书迟~\cite{quanxue}。


山有木兮木有枝,心悦君兮君不知\cite{yuerenge}。

\begin{thebibliography}{}
\bibitem{quanxue}
 《劝学》,唐,颜真卿
\bibitem{yuerenge}
  《越人歌》,先秦,作者未知
\end{thebibliography}
\end{document}

中文版Latex常用语法大全教程_第23张图片
注意!!!:在article文档类的节标题默认为 “Reference”,在 report / book 文档类的节标题默认为 “Bibliography”。若要修改默认节标题可以用以下命令。

\renewcommand{\refname}{\centerline{section-name}}

其中section-name可自行设置,若不填该参数,则取消显示节标题;若section-name不为空,则节标题即为所填的值。

Latex使用BibTeX生成参考文献列表

说是自动,其实跟手动差不多,不过是需要名字进行连接,废话不多说,直接上代码。
1、创建一个Latex文件,命名随意,如 test.tex

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
黑发不知勤学早,白首方悔读书迟~\cite{quanxue}。
\bibliography{bibFormat}{}
\bibliographystyle{plain}
\end{document}

注意,在要注释的语句后写上 “~\cite{name}” ,这里的 name 用于在 bib 文件中检索。

2、创建一个BibTeX参考文献库文件,文件的命名跟上述语句保持一致 \bibliography{bibFormat}{} ,也就是创建名为 “bibFormat” 的bib文件,即 bibFormat.bib。录入如下内容,每一个参考文献,写一个 “@misc{ …… }”

@misc{ quanxue,
        author = "颜真卿",
        title = "劝学",
        year = "唐"}

3、使用命令 “\ll” 编译后的效果如下
中文版Latex常用语法大全教程_第24张图片


小结

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

其实整理文档不容易,内容繁多,各种资料查找,网络搜索,再加工,期间一度不想做了,但还是坚持了下来,在完结的那一刻感觉心情无比轻松……


参考资料

  1. https://ctan.org/topic/class
  2. https://blog.csdn.net/qq_37556330/article/details/106265576
  3. https://blog.csdn.net/yzy_1996/article/details/89452063

你可能感兴趣的:(Latex教程,python,latex,人工智能,编程语言,design,pattern)