中文版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的值合成我们想要的颜色
- \usepackage{color}
- \textcolor[RGB]{R,G,B}{text}
- % 其中{R,G,B}代表red、green和blue三种颜色的组合,取值范围为[0-255]
- 定义一种颜色,直接调用
- \usepackage{color}
- \definecolor{ColorName}{RGB}{R,G,B} % 这时R/G/B的定义域就在[0-255]
- \textcolor{ColorName}{text}
- 这里为颜色定义了名称ColorName,下面可以直接调用这个颜色方案
大小
- 全局模式
- \documentclass[12pt]{article}
- 局部模式
- 根据既有命令设置
- 命令:\tiny、\scriptsize、\footnotesize、\small、\normalsize、\large、\Large、\LARGE、\huge、\Huge
- 示例,\tiny{Latex},注意命令跟文字之间有空格
- 自定义修改字体大小和尺寸
- \fontsize{字体尺寸}{行距}
- 示例, \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参考文献
小结
本文的部分内容来自于网络搜索,我这里综合整理出来,以供大家学习参考。
在此对于引用到各位大神内容的一并感谢,谢谢各位大神的分享。
参考资料
- https://ctan.org/topic/class