数学建模艺术人生百味MAC + LINUX + VIM + GIT + Latex + Markdown

LaTeX 入门(一)| 重剑无锋,大巧不工

2019-01-11  本文已影响5人  弈笙0427

写在前面的话

关于是否开 LaTeX 教程系列文章,我纠结了很久。相比傍一傍热词的科普性文章,技术类的文章太过枯燥无趣,阅读量寥寥无几。辛苦写出来的东西没人看,实在给作者以打击。

12月22日我特地转发了一篇稍微偏技术一点的文章试试水,打开率不到10%。也许,公众号本就是用来娱乐大众的产物。

最后,我把取舍权交给了交流群里的小伙伴儿们,参与投票人数为42人。大多数同学都投票希望出教程的同时再发学习资料。

我知道其中不乏南郭先生,但希望各位同学对自己投的票负责。当然,我也会尽力把文章写的有趣一点。

2017年我第一次从我的数模教练那听说 LaTeX 排版的强大,转眼间,已经过去快两年了,也算初窥门径,感觉要学精,实在是难登蜀道,其知识体系浩如烟海。

毕业在即,准备用 LaTeX 排毕业论文,但有段时间不用,知识难免遗忘。遂开此系列,也当纪念我的学习生涯吧:

  1. 此系列的每篇文章必会用心耕耘,不追求文章数量,宁缺毋滥;不追求更新速度,欲速则不达。
  2. 在我学习 LaTeX 的途中,走了不少的弯路,欲通过此系列,给初学者指明一条相对明了的学习路径。
  3. 阅读完本系列文章,不可能熟练地掌握 LaTeX ,关键在自己动手实践。道行深浅,修行在个人。
  4. 鄙人才疏学浅,文中谬误之处,敬请海涵。若有高手指点一 二,在下感激不尽。
满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味?——曹雪芹

1. 简介

任何技术的产生与发展都是有血有肉的,忽略这段历史,仅仅学习冰冷的技巧,无疑是悲哀的。千古兴亡多少事?悠悠,不尽长江滚滚流。

关于 LaTeX 的发展史及与所见即所得系统(WYSIWYG),比如微软的 Word 间的较量,我已在链接1,链接2,两篇文章中说的很清楚了,不再赘述。有兴趣的同学可以移步阅读。

此处,关于 TEX 做一个简单小结:

群里有人问我 TeX、LaTeX、CTEX、TeX Live 之间有什么区别?这明显是没看过我前两篇文章呀,怀着万分悲痛的心情,再给大家小结一下哈:

[注]: TEX - pdfTeX - XETeX - LuaTeX 都是排版引擎,按照先进程度递增(LuaTeX 尚未完善)

1.1 LaTeX 极速体验

也许你曾听说过 LaTeX 或者 TEX ,但从未使用过。立即体验一下?

  1. 前往 http://tug.org/texlive/ 下载安装TEX Live。
  2. 打开编辑器 TeXworks,复制下面源代码到窗口内,保存文件至某处。
  3. 选择编译方式 XELaTeX,点击绿色编译按钮,右侧将弹出编译完成的 pdf 文件。
1\documentclass{ctexart}2\begin{document}3    中文测试文档4\end{document}

让我们赶紧开始准备软件吧!

2. 软件的准备

2.1 关于CTEX套装

自2016年3月之后,CTEX 套装一直没有更新;另外 XELATEX 的出现, 让中文使用的很多难题得以解决, 不借助 CTEX 套装也可以很好地处理。

这里我推荐用 TEX Live ,想使用 CTEX 的同学可以自行下载安装。下载地址:http://www.ctex.org/CTeXDownload. CTEX 套装分为Basic 版和 Full 版, 选其中一个下载即可。建议使用 Full 版。安装完成后要立即更新。

2.2 TEX Live 的安装

我是64位的 Windows,下面以Windows为例

  1. http://tug.org/texlive/ 下载自己机器对应的 TEX Live 的镜像或安装包。
  2. 双击 install- tl-windows.exe,开始安装。
  3. 更新. 这一步只是建议, 不是必须的。

TEX Live 的宏包管理器是 tlmgr (TeX Live manager). 在安装路径 C:\texlive\2015\bin\win32 下可以找到 tlmgr-gui.

也可以在 WinEdt 工具栏点击图标 启动 tlmgr-gui. 但是, tlmgr 的图形界面使用 Perl 编写, 容易造成系统假死. 故建议使用下面的方法更新.

  1. 使用 Win + R 组合键打开 “运行” 对话框,然后输入 cmd 回车, 打开命令提示符窗口.
  2. 先更新tlmgr. 执行命令
  3. 再更新TEX Live. 执行命令
1tlmgr update -self2tlmgr update -all

2.3 编辑器的安装

TEX 的编写和编译, 需要借助TEX 编辑器。 当然, 不使用专门的编辑器,仅用记事本和 DOS, 也可以使 TEX 工作。这里不做详细论述,推荐大家使用编辑器进行编写。

TEX Live 使用配搭有多种, 这里只说两个:

  1. TEX Live + TeXworks;
  2. TEX Live + WinEdt + Sumatra PDF.
TEX Live + TeXworks

TEX Live 自带编辑器TeXworks,其界面非常朴素, 默认没有语法高亮,字体也很小,需要对 TeXworks 进行简单的设置。

对 TeXworks 的字体及大小、语法高亮、默认编译方式等进行设置如上图所示,推荐:

  1. 字体选择为 Verdana, 字号 14 磅;
  2. 将默认编译方式设为 XeLaTeX;
  3. 对编译方式可以按自己的喜好排序, 比如图中依次为XeLaTeX, pdfLaTeX, BibTeX等.
TEX Live + WinEdt + Sumatra PDF

很多用户习惯使用 WinEdt, 安装 TEX Live 之后也可以选配WinEdt 以及 Sumatra PDF.

在 WinEdt 的发布网站 http://www.winedt.com/ 下载安装即可. 安装过程中, WinEdt会自动配置连接到 TEX Live.

接着安装 Sumatra PDF, 方便文件的反向查找(鼠标双击pdf 文件中的文字, 可以跳转到源文件中对应的位置).下载网址:http://www.sumatrapdfreader.org/free-pdf-reader.html.

安装 Sumatra PDF 后, 要对 WinEdt 配置, 使用 Sumatra PDF 作为默认的 pdf 阅读器. 在 WinEdt 菜单栏选 Options —> Execution Modes —>PDF Viewer.

WinEdt 默认的字号比较小, 建议修改.点击菜单 Options, 选择 Options Interface,弹出窗口, 左边边框寻找 Font 选项,对右边的文本进行编辑.

至此, 软件的安装已经完成了! 编译下前面例子, 测试安装是否成功了呢?

3. LATEX 的基本知识

建议: 在用中学. 边用边学, 建立了基本的概念以后, 在使用中根据需求去解决问题. LATEX 的功能和宏包有很多, 每个人用到的功能是有限的; 不主张看完一本大部头的书, 才动手上机测试.

3.1 一篇LATEX文档的基本构成

一篇LATEX 文档, 由三个部分组成: 文档类声明, 导言区, 正文.

1\documentclass{article}2\usepackage{hyperref}3\begin{document}4    Hello World!5\end{document}

文档类就是\documentclass{...}, 里面声明你要书写什么样式的文档, 常用的有: article, book,report.

可以自己定义一个新的文档类, 对文章的总体样式和各个细节进行声明, 或者定义自己的命令.

正文, 即\begin{document}\end{document} 之间的部分.

导言区, 夹在\documentclass{...}\begin{document} 之间的部分, 放置需要使用的宏包,或者自己规定一些新的命令.

1\documentclass{ctexart}2\newcommand{\hubei}{中国湖北}3\begin{document}4    我来自\hubei.5\end{document}

上例中, 我们自己定义了一个全新的命令\hubei, 在正文使用该命令时, 得到的就是该命令的内容“中国湖北”. 还可以定义更复杂的结构或内容.

可能你需要定义的东西太多, 这时可以把它们写在一个文档里面, 这种文档就是宏包. 使用时在导言区使用\usepackage{...}, 即可以插入该文档的内容.

例如我们想书写一个数学符号. 该数学符号已经由宏包amssymb定义过了, 这样只需要在导言区写上\usepackage{amssymb}, 加载该宏包即可.

1\documentclass{ctexart}2\usepackage{amssymb}3\begin{document}4    $\unrhd$5\end{document}

3.2 文档的编译方法

3.2.1 编译方式的选择

几种常见的编译方式: XeLaTeX, pdfLaTeX, LaTeX. 推荐使用XeLaTeX, pdfLaTeX 编译, 直接得到pdf 文档.

不同的编译方法, 对应的源文件一般略有不同. 比如第一页的例子,使用pdfLATEX 编译得到的pdf 文件, 其中文是乱码. 需要增加UTF8 选项:

1\documentclass[UTF8]{ctexart}2\begin{document}3    中文文档测试.4\end{document}

不同的编译方式, 得到不同的效果. 下图可见XeLaTeX 处理得更好, 这也是推荐使用XeLaTeX 的一个重要原因.

1\documentclass[UTF8]{ctexart}2\begin{document}3    方程$x^3=1$有3个复根. \\4    方程$x^3=1$ 有3 个复根. \\5    方程~$x^3=1$ 有~3 个复根.6\end{document}
左侧是pdfLaTeX 编译的结果, 右侧是XeLaTeX 编译的结果.

如果文档加入了交叉引用、目录、导航书签等, 需要编译至少两遍, 才能使相关部分正确显示.文档编码的类型, 可以在编辑器下方的状态栏看到.

3.2.2 中文文档的处理

中文的实现, 推荐使用CTEX 宏集.

下面是article类中文文档的例子.

 1\documentclass{ctexart} 2\begin{document} 3\title{中文\LaTeX{} 测试} 4\author{姓名} 5\maketitle 6\tableofcontents 7\section{测试} 8中文测试. 9\section{再测试}10中文测试.11\end{document}

下面是book类中文文档的例子.

 1\documentclass{ctexbook} 2\begin{document} 3\title{中文\LaTeX{} 测试} 4\author{姓名} 5\maketitle 6\tableofcontents 7\chapter{测试} 8中文测试. 9\chapter{再测试}10中文测试.11\end{document}

以下是使用beamer文档类编写幻灯片的一个示例.

 1\documentclass{beamer} 2\usepackage[UTF8]{ctex} 3\usetheme{Warsaw} 4\begin{document} 5\begin{frame}{中文演示文档} 6\begin{itemize}[<+->] 7\item 这是一个幻灯片; 8\item 你可以使用XeLaTeX 编译; 9\item 也可以使用pdfLaTeX 编译;10\item 推荐使用XeLaTeX 编译.11\end{itemize}12\end{frame}13\end{document}

4. 编辑器的基本知识

LATEX 的入门都看过了, 但你是否感觉无从下手? 因为你需要面对的是TeXworks, WinEdt等编辑器, 下面我们简要介绍一下.

4.1 TeXworks 的基本用法

  1. 注释功能

Ctrl+Shift+]: 对选定区域进行注释, 该段不参与编译;
Ctrl+Shift+[: 取消注释.

  1. 自动补全

使用方法是在输入若干字母后按Ctrl+Tab 或者Shift+Tab. 比如, 输入\i 之后按Shift+Tab 就会得到\item, 输入xg 之后按Shift+Tab 会得到\gamma, 输入\bth 之后按Shift+Tab 会得到

1\begin{theorem}23\end{theorem}

如果有几种可能的补全方式, 多按几次就会在这几种方式之间循环.具体可以参考TeXworks 的帮助文档, 里面还介绍了很多快捷键命令.

4.2 WinEdt 的基本用法

最新版本为WinEdt 10.3, 这里以WinEdt 9.1 为例,两个版本没有大的区别.

  1. 环境的自动补全

输入一个环境名, 比如\begin{definiton}, 紧接着输入一个右括号}, 即输入

1\begin{definiton}}

窗口会自动出现与之配对的\end{definiton}, 即得到

1\begin{definiton}2*3\end{definiton}
  1. 工具栏的介绍
  1. 状态栏的介绍
  1. 右键菜单介绍
  1. 查找与替换
1%比如要把文中所有形如2\url{user@website.com}3%的文字换成形如4\href{mailto:user@website.com}{user@website.com},5%搜索6\\url\{\(0*\)\}7%替换为8\\href\{mailto:\0\}\{\0\}9%即可

4.3 不用编辑器亦可

没有WinEdt 之类的编辑器也行?事实上, 不借助编辑器, 仅用记事本和DOS, 也可以使TEX工作.

  1. 书写文档. 打开记事本(假定文件保存在D 盘. 在D 盘点击右键, 选择“新建文本文档”),在记事本窗口写一小段完整的TEX 文档.
1\documentclass{ctexart}2\begin{document}3中文文档测试.4\end{document}
  1. 保存文档. 在记事本窗口点击“另存为”, 记文件名为mytest.tex, 文件保存在D 盘.注意选择保存类型为所有文件, 否则上述操作只会得到一个名为mytest.tex.txt 的文本文档.
  2. 编译文档. 打开DOS窗口(win 键+ R, 输入“cmd”, 回车), 在DOS窗口下进入D 盘(输入“d:” 回车), 键入“pdflatex mytest” 并回车, 使文件得以编译.
  3. 预览文档. 打开D 盘, 可以看到mytest.pdf 文件.另外, 若想使用XeLaTeX编译, 保存文件时, 编码要选为UTF-8. 执行命令“xelatex mytest”, 即得到mytest.pdf 文件.

显然, 专业的编辑器更方便, 更擅长于TEX文档的编辑和编译.

5. 初学LaTeX 容易忽视的细节

有一些初学者容易忽视的小问题, 不能说是错误, 但这些是不规范、不专业的,我觉得有必要在学习之前就指出来加以规避.

5.1 括号

image

5.2 函数名

1\DeclareMathOperator{\arccot}{arccot}23%再使用$\arccot x$ 就可以得到arccot x.

5.3 标点符号

6. 遇到问题怎么办

6.1 查看错误信息

编译过程中跳出的窗口内有编译信息. 若出错, 编译过程会暂停,并提示出错原因. 此时不要急于关闭编译窗口或按回车忽略, 而应查看窗口中的出错信息, 可迅速找到错误.

最常见的出错信息:

这些出错信息一般浅显易懂, 并且显示错误所在行号.编译信息会保存为log 文件. 比如编译的源文件为mytest.tex, 编译完后, 在同一文件夹下会出现mytest.log 文件.

有些复杂的问题, 可以直接copy 出错信息, 网络搜索查找解决方案.

6.2 寻找解决方案

7. LATEX 究竟强在哪里

7.1 数学公式精美

TEX 的创立就是为了解决数学公式的排版, 这个是TEX 天生的强项. 大量资料有详尽阐述, 这里不再赘述. 数学公式排版的经典文档:

7.2 编号自动生成

所有的编号都不用操心. 对公式、图表、章节、参考文献等的编号, 都是LATEX 自动完成的.

请复制测试下例. 先编译两遍; 然后去掉例子中的注释符号%, 再编译两遍, 看编号有何变化.

 1\documentclass[UTF8]{ctexart} 2\begin{document} 3\title{文档测试} 4\author{Superman} 5\maketitle 6\tableofcontents 7\section{测试一节} 8公式: 9\begin{equation}101+1=2.11\end{equation}12%\section{插入一节}13% 新公式:14%\begin{equation}15%1+1.5=2.5.16%\end{equation}17\section{再来一节}18又一个公式:19\begin{equation}201+2=3.21\end{equation}22\end{document}

比较编译的结果可以看到, 所有的编号都是自动调整的.

7.3 交叉引用便捷

对需要引用的公式、图、表、参考文献, 给它取一个名字, 可以很方便地进行引用. 这正是LATEX的一个特色.

下面是一个对公式引用的例子. 请试试编译该例子:

  1. 先编译一遍, 看结果; 编译第二遍, 注意有什么不同.
  2. 去掉例子中的注释符号%, 再编译两遍, 看编号及引用有何变化.
 1\documentclass{ctexart} 2\begin{document} 3\section{A test section} 4\begin{equation}\label{eq-1} 51+1=2. 6\end{equation} 7等式\ref{eq-1} 是众所周知的. 8%\section{A new section} 9%\begin{equation}\label{eq-1.5}10%1+1.5=2.5.11%\end{equation}12% 等式\ref{eq-1.5} 也不难理解.13\section{Another section}14\begin{equation}\label{eq-2}151+2=3.16\end{equation}17等式\ref{eq-2} 是简单的.18\end{document}

一个重要的常识: 在LATEX 中, 公式、图、表等的引用, 是通过命令\label{name}\ref{name}的配合使用实现的.

在实际使用中, 我们调用amsmath 宏包, 用命令\eqref{...} 使引用公式的编号是带括号的:

1\documentclass{ctexart}2\usepackage{amsmath}3\begin{document}4\section{A test section}5\begin{equation}\label{eq-1}61+1=2.7\end{equation}8等式\eqref{eq-1} 是众所周知的.9\end{document}

7.4 各种自动生成

LATEX 文档中好些部分都不是“手动” 写出来的, 给一些简单的指令, LATEX 就会帮你完成. 比如:

7.5 模板使用方便

国际知名的学术杂志或出版公司, 一般都提供了自己的LATEX 模板, 比如Elsevier, Springer, IEEE 等等. 学术会议的投稿通常也会指定相应的LATEX 模板.

这些模板就真正实现了, 让作者把注意力集中于文章内容的书写, 而无需理会其排版的外形.

7.6 原文档像草稿

LATEX 源文件会看起来有些凌乱, 但这完全不会影响到结果文档的美观.

8. LATEX入门资料

初学者阅读文档建议:

很难说哪本关于LATEX 的书籍最好. TEX 的内容非常庞杂, 没有一本书能够涵盖全部的内容.

我确信TEX 高手们是依靠TEX 系统自带的各种manual 或者来自于网络的各种文档(甚至是论坛的只言片语), 而不是某本书籍, 来掌握TEX 的.

LATEX 在日新月异, 名著也可能马上过时, 甚至因此产生误导.比如因为阅读了一些早期的资料,很多人有一个误解: 以为LATEX 支持的图片格式最好是eps.

事实上, LATEX 支持的图片格式绝非eps这一种, 无需特意把图片转化为eps 格式. 如果我在参加美赛时知道这一点, 就没有必要大费周章的转换图片格式了.

学习建议:

  1. 熟悉各种环境命令. 环境用\begin{…}\end{…} 来声明. 比如\begin{document}\end{document} 就声明了其内部是正文环境. 常用的环境很多, 要留意熟悉.
  2. 注意各种空格、距离命令: LATEX 提供的是一张白纸, 一张没有边界的白纸, 你要在一张多大的纸上写东西, 边上空多少, 字距、行距是多少, 等等, 都得你告诉LATEX.
  3. 数学公式指令熟悉一下就可以了, 不必死记. WinEdt 窗口上都有快捷键, 有约500 个常用的数学符号命令. 对于初学者, 数学公式稍微复杂一点的时候, 还可以借助MathType.

结语

能看到这里的都是真爱,首先要感谢你们的时间。没有编程基础的同学看到这里可能会感觉一点点烧脑。

为了让大家不觉得那么枯燥,接下来我会从一份专业的美赛 LATEX 模板展开,一点点深入剖析。很多地方不刨根问底对话,可能你看完我下一篇文章,就能熟练运用模板了。尽情的用别人的轮子开自己的车吧!

那么,好奇轮子是怎么造出来的同学们,请继续关注本系列的文章。毕竟,从用模板的人变成写模板的人,还是有一点小帅的哈!

嗯,我是秦迷

至于本系列下一篇文章的更新时间,我也不知道,请大家持续关注啦!这段时间比较忙,学长也要开始准备毕设了。

其实,还是主要看大家的反馈情况啦!反馈良好,动力卓越嘛,激素的正向调节哈哈。

拟用九章来讲述 LATEX,以效仿独孤九剑。如果你身边有朋友对 LATEX 感兴趣,你也可以将本文直接转发给他。另外,听说点右下角好看的朋友,都变好看了哟!

\color{red}{这里稍微提一下啊,我不是打广告哈!(嘻嘻)更多精彩,请关注公众号:剑指数模}

一个有一点情怀的大学生独立新媒体
上一篇下一篇

猜你喜欢

热点阅读