大家好,我最近开始学LaTeX,这篇文章是我这几天学的内容的笔记。
目前我能够用LaTeX做到的事情是:了解LaTeX的一些基础相关知识,基本的英文文档,结构完整,会插入表格和列表的基本操作。希望你读完之后也能够达到同样或者高于我的水平吧。
另外因为我也是新手,所以如果有错误还请大家在评论区指正。
文章比较长,有图,并且只适合之前对LaTeX完全没有了解的人。
一
什么是LaTeX?
了解LaTeX之前,首先要知道TeX,TEX(TeX)是由著名的计算机科学家Donald E. Knuth(高德纳)发明的排版系统,本质上还是一门宏语言。而LaTeX是基于这门宏语言,经过后人不断的完善形成的一种排版格式。
二
资料
目前网络上关于LaTeX的资料大多比较陈旧,下面推荐我自己看过的不错的一些。
三
下载和安装
LaTeX现在主要使用的有两个,一个是Ctex,一个是Tex live。前者为中国科学院教授维护的Chinese Tex, 后者为TUG(用户组)维护版本。直接打包下载包含winedt,gspreview等。
下载过程中两个版本,full和basic,full文件大,宏包全;basic文件小,使用宏包时软件进行自动下载。可以在两个版本中自行选择。
下载CTeX可以直接在官网Welcome to Chinese TeX:CTEX。
我使用的为CTeX包,basic版本,版本内自带WinEdt编辑器。
关于WinEdt编辑器的使用,可以看这里:ChinaTeX视频教程-1-winedt介绍.flv——这个很关键,我下面讲的内容是默认你已经看过这个视频的!!
四
基本结构及操作
构成一篇文档最基本的三个语句是:
\documentclass{book} %确定文档类型:这里以book为例,也可以是report,article,letter等。 \begin{document}% 文档正文的开始 \end{document}% 正文的结束
基本操作过程:
创建文件--输入代码(也可以点击WinEdt上方提供的按钮)--点击编译为LaTeX(这一步是为了生成dvi文件)--保存文件--看下方是否报错,是否超时--没有则点击dvi-pdf查看。
正常生成dvi会显示:
出现错误会提示:
(小注:dvi为latex自带的文档类型,ctex包中有dvi查看器;ps为很古老的一个类型,现在基本不用,但在某些特殊时候需要通过它转换为pdf。)
五
文档层次结构
以book模板作为实例。%这是一个比较详细的结构,里面的命令是写文章用到的基本命令。
\documentclass{book} %模板类型为book \title{...} %添加标题 \author{...} %添加作者 \date{} %LaTeX会自动生成日期,如果不需要就加这一步将日期去掉 \begin{document} %开始正文 \maketitle %制作封面 \tableofcontents %加入目录,包括页码(非必需) \mainmatter %如果希望页码是从正文部分开始就加上这句命令(非必需) %下面是几个主要的层次结构; \part{...} %第一部分 \chapter{...} %第一章 \section{...} %第一节 \subsection{...} %第一小节 %可以重复排列添加上面的层次结构。
注意一件事情:如果输入
\tableofcontents
但是pdf格式中却什么都没有出现,那么需要再重复几次L与dvi转pdf过程。
六
列表和表格环境
1
列表
LaTeX的列表分为无序列表和自定义列表。
(1). 有序列表
%在WinEdt上方显示为Itemize,点击之后会跳出弹窗要求输入行数,默认为3,确认之后显示的内容为: \begin{itemize} \item * \item * \item * \end{itemize} 下一步,直接在*的位置输入需要写的内容,例如: \begin{itemize} \item This is the first row. \item This is the first row. \item This is the first row. \end{itemize} 编译效果如下图:
(2). 自定义列表
%在WinEdt上显示为Enumerate,点击之后内容为: \begin{enumerate} \item * \item * \item * \end{enumerate} 同样可以在*位置输入所需内容,如果直接重复上面的步骤,你看到的将会是一个有序列表,以1.2.3.标记。
之所以被称为自定义列表是因为我们可以自己选择所需要的项目符号,这一部需要使用宏包。
使用宏包的命令为:
\usepackage{...} %...为宏包名字
简单来说,这个过程就像是Python里面的import和C语言里面的include。
如果需要自定义项目符号,我们需要做下面的过程:
\begin{enumerate}[A.] %这里我们将项目符号自定义为大写字母.,也就是说自定义过程需要将内容加在后面的[]中。 \item hello \item hello,suri \item hello \end{enumerate}
输出的文档格式为:
同样可以把A.换成任何自定义的符号。另外也可以在[]中对项目符号的格式进行修改。比如:
\begin{enumerate}[\beseries A.] %对项目符号加粗 \begin{enumerate}[\sffamily A.] %无衬线字体
2
表格
(1)表格基本操作
%插入表格的命令为编辑器上方的Tabular,点击之后确认行数和列数(这里是三行三列),将会出现: \begin{tabular}{|*|*|*|} %这里的内容是为了确认对齐情况 \hline % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ... * & * & * \\ %将内容输入在*的位置 * & * & * \\ * & * & * \\ \hline \end{tabular}
这里需要说明的几个情况是: 表格内容对齐的方式有三种,分别是居中对齐,靠左对齐,靠右对齐。三种格式反映在表格第一行,代表符号分别为c,l,r(英文首字母). 例如,如果我们需要将这份表格内容全部居中对齐,则输入:
\begin{tabular}{|c|c|c|}
这里的竖线代表了输出之后的表格中会出现竖的表格线,如果不需要可以去掉,即为:
\begin{tabular}{ccc}
输入内容是下面这样(没有添加竖线的情况):
可能大家已经注意到了这里的横线,在latex中,添加横线的命令为:
\hline %添加横线,单独一行
同时latex也支持在某几个单元格下面添加横线,命令为:
\cline{2-3} %表示在是在上一行的第二个第三个单元格下面添加横线。 输入命令: \begin{tabular}{ccc} \hline x & y & z \\ 1 & 123 & 23 \\ \cline{2-3} 34 & 57 & 789 \\ \hline \end{tabular}
结果为:
其他几个命令:
\\ %用在每一行的后面,表示表格中的换行 \multicolumn {number} {...}{...} %合并列,其中number为要合并的列的数量,第一个...为对齐方式,第二个为合并的内容。只对该行有效。 \multirow %合并行,需要导入该宏包。
(2)导入excel表格
导入excel表格方式有两种,一种是利用第三方宏,这种方式容易被计算机屏蔽;第二种如下:
我随便写了一个表格,将表格内容复制,粘贴到记事本中,这时候你会发现是下面这样:
也就是说,实际上表格中不同单元格之间是用Tab键分割开的。而我们在latex中使用的是&符号,所以,我们只需要将这里所有的tab一键替换为&符号。
将替换后的内容复制到winedt中: \begin{tabular}{cccc} eshi&sd&dfefe&sdsd\\ 12&343&423&312\\ 123&32&132&312\\ 23&434&231&23\\ \end{tabular} 只需要修改c的数量,以及后面添加\\
结果:
(3)更美观一些,添加表头
应该都会发现上面的表格其实很丑,我们平时在论文中看到的可都不是这种东西,我们需要对表格进行一些修饰,添加表头。
点击table,出现的是:
\begin{table} \centering \caption{}\label{} \end{table}
这里的caption是标题,label主要在添加超链接时使用,centering表示所有内容居中对齐。
%输入刚才内容 \begin{table} \centering \begin{tabular}{cccc} \hline eshi&sd&dfefe&sdsd\\ \hline 12&343&423&312\\ 123&32&132&312\\ 23&434&231&23\\ \hline \end{tabular} \caption{this is my table} \end{table}
结果:
latex的优势是,表格的编号可以自动更新,会节省很大时间成本。
注:如果表格太长无法在一页的话,需要将table换成longtable,并需要使用宏包。
七
特殊字符
%后面为注释;输入正规的%需要在%前面加\在数学状态下使用,数学公式有行间公式和行内公式两部分组成,行间公式需要在两个之间进行,居中对齐。一个是生成行内公式;正规的
文图/Suri
排版/郑语佳