LaTeX从零开始快速入门
2016-01-29 16:29
197 查看
本文的长期更新版本在我的新博客:Liucheng Xu’s github blog
对于理工科的学生来说,尤其是从研究生阶段开始,LaTeX应该会是日常中必不可少的科研工具。目前我并不是一个LaTeX高手,但至少应该算是已经入门LaTeX。所谓入门的要求至少应该是能够完成一些日常写作的要求,比如写个report什么的,遇到一些常见的问题能够Google并解决。
此篇为写给一些想快速入门LaTeX的朋友,本人学识与能力有限,以下内容如有纰漏或错误,欢迎来信。
LaTeX, 是一种基于TEX的排版系统,由美国电脑学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
简单点说:LaTeX基于TeX,目的主要是为了方便排版。在学术界的论文,尤其是数学、计算机等学科论文都是由LaTeX编写。
我的一点理解:
在稍微了解一点LaTeX后,你会发现LaTeX的工作方式类似web page,都是由源文件(.tex or .html)经由引擎(TeX or browser)渲染产生最终效果(得到PDF文件 或者 生成页面)。两者极其神似,包括语法规则与工作方式。所以呢,与HTML一样,LaTeX其实很简单。
一般的规范写法中都是在HTML文件中写入web page的结构内容,再由css控制页面生成的样式。当然你也可以选择在HTML直接写入样式内容,不过这并不提倡。同样,在LaTeX有着同样的情况,你可以在tex源文件中同时写入主题内容和样式,也可以内容与样式分离,以网络上流传广泛的清华大学LaTeX模板为例,以.cls(class)结尾的thuthesis.cls便可看作是与css起到同样作用的样式文件。
我第一次修改清华大学模板就是直接修改的thuthesis.cls与thuthesis.cfg文件。直接从ins和dtx文件开始做的话要花费很多学习如何编写宏包的成本,我的本科毕业论文时间并不多,只能在cls文件上直接修改,虽然会很ugly。
LaTeX中还有宏包的概念,这大致可以理解为bootstrap之于web这样的一个工具,利用bootstrap能够帮助我们快速的搭建一个漂亮的网页。利用宏包,我们可以使用很多现成的好用的样式。所谓宏包只是将一些常用的不错的东西打包以便使用而已。当然了,如果要编写一个自己的个性化的宏包也是可以的,不过需要学习成本而已。 初期的话,我们可以选择一个LaTeX模板进行改造。不过第一次见到一些模板的话,可能会对很多文件的作用一头雾水,下面是简单的介绍,详细内容可见在LaTeX中进行文学编程,当然更多介绍的话可以自行搜索。
class与style好像内容很像的感觉,在功能上的确很相似,但是也有区别。这里是关于.cls与.sty文件的区别
根据平台选择安装TeX,建议选择最全功能最多的版本。
TeXLive for three platforms
TeXLive
Windows
CTeX套装
Mac
MacTeX
选择一个合适的LaTeX编辑器。
在安装好LaTeX环境以后,通常都会有一个自带的编辑器,比如CTex的WinEdt, Mac下的TeXShop, 不过功能并不强大,就好比Windows记事本,只有一些基本的文本编辑功能。在这里推荐一个我目前觉得还不错的LaTeX编辑器:TeXstudio。
点击
至此,一个极简易的LaTeX文档已经完成。以后的内容不过是多用多查,熟能生巧。
记得找本LaTeX的书籍看一下,一来对于更为精细的知识做一个了解,二来可以作为工具书有问题的时候查询。
数学公式的练习始于markdown,因为很多markdown编辑器是支持LaTeX数学公式的,比如haroopad。那么不仅可以写出漂亮的公式,还能方便做笔记。
以下内容直接在支持数学公式的markdown编辑器中即可操作,而且是即时显示效果,对新手很有帮助。如果使用haroopad编辑器,请在偏好设置中启用数学表达式。
学会书写LaTeX数学公式,只需要了解4个概念:
数学公式环境。
LaTeX 的数学模式有两种:行内模式(inline)和行间模式(display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行。
在行文中,使用
行内公式也可以使用
如果在markdown中使用LaTeX数学公式,我习惯用下面两种方式:
行间公式
行内公式
凡是键盘不方便或者不能够表示的符号皆有命令,类似转义,叫做控制序列(control sequence)。比如求和符号∑\sum对应的命令为
上下标。
分组。很简单,就是用
有了这几个概念以后,再动手写几个就大概懂了。无论多么复杂的公式都是有一个个简单的东西构成。
Windows
Windows平台比较简单,引入CJK宏包并应用CJK环境即可。LaTeX将
Mac
Mac稍微多几个操作,引入xeCJK宏包。
关于设置字体名称,spotlight输入zitice打开mac的字体册,从字体中选择一个,将名称填入。如果没有显示字体名称,请
通过手写识别LaTeX符号,识别率很高。
尤其是当看到一个符号却不知道其LaTeX命令的时候它很有用。只要画出记忆中符号的样子,就会自动出现各种可能想要的表示方法。
LaTeX公式编辑器
对于书写LaTeX公式提供一点便利。
在线LaTeX编辑器shareLaTeX
好处就是不用本地搭建环境,直接在线操作。还有很多LaTeX模板可供选择。
对于理工科的学生来说,尤其是从研究生阶段开始,LaTeX应该会是日常中必不可少的科研工具。目前我并不是一个LaTeX高手,但至少应该算是已经入门LaTeX。所谓入门的要求至少应该是能够完成一些日常写作的要求,比如写个report什么的,遇到一些常见的问题能够Google并解决。
此篇为写给一些想快速入门LaTeX的朋友,本人学识与能力有限,以下内容如有纰漏或错误,欢迎来信。
LaTeX概览
摘自维基百科:LaTeX, 是一种基于TEX的排版系统,由美国电脑学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
简单点说:LaTeX基于TeX,目的主要是为了方便排版。在学术界的论文,尤其是数学、计算机等学科论文都是由LaTeX编写。
我的一点理解:
在稍微了解一点LaTeX后,你会发现LaTeX的工作方式类似web page,都是由源文件(.tex or .html)经由引擎(TeX or browser)渲染产生最终效果(得到PDF文件 或者 生成页面)。两者极其神似,包括语法规则与工作方式。所以呢,与HTML一样,LaTeX其实很简单。
一般的规范写法中都是在HTML文件中写入web page的结构内容,再由css控制页面生成的样式。当然你也可以选择在HTML直接写入样式内容,不过这并不提倡。同样,在LaTeX有着同样的情况,你可以在tex源文件中同时写入主题内容和样式,也可以内容与样式分离,以网络上流传广泛的清华大学LaTeX模板为例,以.cls(class)结尾的thuthesis.cls便可看作是与css起到同样作用的样式文件。
我第一次修改清华大学模板就是直接修改的thuthesis.cls与thuthesis.cfg文件。直接从ins和dtx文件开始做的话要花费很多学习如何编写宏包的成本,我的本科毕业论文时间并不多,只能在cls文件上直接修改,虽然会很ugly。
LaTeX中还有宏包的概念,这大致可以理解为bootstrap之于web这样的一个工具,利用bootstrap能够帮助我们快速的搭建一个漂亮的网页。利用宏包,我们可以使用很多现成的好用的样式。所谓宏包只是将一些常用的不错的东西打包以便使用而已。当然了,如果要编写一个自己的个性化的宏包也是可以的,不过需要学习成本而已。 初期的话,我们可以选择一个LaTeX模板进行改造。不过第一次见到一些模板的话,可能会对很多文件的作用一头雾水,下面是简单的介绍,详细内容可见在LaTeX中进行文学编程,当然更多介绍的话可以自行搜索。
LaTeX模板常见文件类型 | 功能简要介绍 |
---|---|
.dtx | D**ocumented La**T**e**X sources,宏包重要部分 |
.ins | installation,控制 TeX 从 .dtx 文件里释放宏包文件 |
.sty | style files,使用\usepackage{...}命令进行加载 |
.cls | classes files,使用\documentclass{...}命令进行加载 |
.aux | auxiliary, 辅助文件 |
.cfg | config, 配置文件 |
.bst | BibTeX style file |
安装配置LaTeX
LaTeX配置环境很简单,只需2步即可:根据平台选择安装TeX,建议选择最全功能最多的版本。
TeXLive for three platforms
TeXLive
Windows
CTeX套装
Mac
MacTeX
选择一个合适的LaTeX编辑器。
在安装好LaTeX环境以后,通常都会有一个自带的编辑器,比如CTex的WinEdt, Mac下的TeXShop, 不过功能并不强大,就好比Windows记事本,只有一些基本的文本编辑功能。在这里推荐一个我目前觉得还不错的LaTeX编辑器:TeXstudio。
开始第一个LaTeX文档
打开TeXstudio,新建一个TeX文件,写入以下内容:\documentclass{article} \begin{document} Here comes \LaTeX! \end{document}
点击
F5(默认快捷键)compile and view,即可看到效果。
至此,一个极简易的LaTeX文档已经完成。以后的内容不过是多用多查,熟能生巧。
记得找本LaTeX的书籍看一下,一来对于更为精细的知识做一个了解,二来可以作为工具书有问题的时候查询。
LaTeX数学公式
学习LaTeX的一大初衷其实是为了书写数学公式。数学公式的练习始于markdown,因为很多markdown编辑器是支持LaTeX数学公式的,比如haroopad。那么不仅可以写出漂亮的公式,还能方便做笔记。
以下内容直接在支持数学公式的markdown编辑器中即可操作,而且是即时显示效果,对新手很有帮助。如果使用haroopad编辑器,请在偏好设置中启用数学表达式。
学会书写LaTeX数学公式,只需要了解4个概念:
数学公式环境。
LaTeX 的数学模式有两种:行内模式(inline)和行间模式(display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行。
在行文中,使用
$ ... $可以插入行内公式,使用
\[ ...\]可以插入行间公式,如果需要对行间公式进行编号,可以使用equation环境:
\begin{equation} … \end{equation}
行内公式也可以使用
\(...\)来插入,略嫌麻烦。无编号的行间公式也可以使用
$$ ... $$来插入,但是这样做会改变行文的默认行间距,不推荐。
如果在markdown中使用LaTeX数学公式,我习惯用下面两种方式:
行间公式
$$ 行间公式 $$
行内公式
$ 行内公式 $
凡是键盘不方便或者不能够表示的符号皆有命令,类似转义,叫做控制序列(control sequence)。比如求和符号∑\sum对应的命令为
\sum.
上下标。
_{...}表示下标,
^{...}表示上标。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号{}括起来, 也就是下面分组的概念。
分组。很简单,就是用
{...}将内容包含起来视作整体,比如上下标很长的时候。遇到什么时候得到的效果不是预期,那么很可能你需要加个分组,也就是添个大括号
{...}. 借程序语言里面的概念就是改变作用域而已。
有了这几个概念以后,再动手写几个就大概懂了。无论多么复杂的公式都是有一个个简单的东西构成。
LaTeX中文支持
不同环境具体操作有所不同,下面介绍Windows与Mac平台。Windows
Windows平台比较简单,引入CJK宏包并应用CJK环境即可。LaTeX将
\begin{...}content\end{...}称为环境。
Mac
Mac稍微多几个操作,引入xeCJK宏包。
关于设置字体名称,spotlight输入zitice打开mac的字体册,从字体中选择一个,将名称填入。如果没有显示字体名称,请
command+I或在显示–>显示字体信息即可。
几个LaTeX推荐网站
Detexify LaTeX handwritten symbol recognition.通过手写识别LaTeX符号,识别率很高。
尤其是当看到一个符号却不知道其LaTeX命令的时候它很有用。只要画出记忆中符号的样子,就会自动出现各种可能想要的表示方法。
LaTeX公式编辑器
对于书写LaTeX公式提供一点便利。
在线LaTeX编辑器shareLaTeX
好处就是不用本地搭建环境,直接在线操作。还有很多LaTeX模板可供选择。
相关文章推荐
- mysql要实现定时执行sql语句就要用到Event
- lua解析赋值类型代码的过程
- web.py服务端,jquery ajax简单例子
- Java程序的运行机制
- mark
- APP API如何维护多个版本的一些想法?
- 大型网站的灵魂——性能
- Linux下postgresql安装
- 纯JSP实现简单微信开发后台
- java 静态代码块 非静态代码块 构造方法
- hdu 2304 Electrical Outlets
- iOS中动画的使用
- UIScrollView的属性总结
- linux命令-tac
- 解决oracle sqlplus 不能修改,退格问题
- python中的Tkinter
- 智能称体脂称实现(datasheet篇)
- [转]Oracle分页之三:利用PagerView来实现无刷新GridView
- 微信的 JSSDK
- 怎样分析java线程堆栈日志