LaTeX新人教程,30分钟从完全陌生到基本入门[转载]

2017-02-05 分类:TeX讲义 阅读(32514) 评论(0) 

这是一篇老文了,前几天看微博的时候看到的,文中的很多表达比较过激,思路还是比较清晰的,求同存异,百家争鸣,也还是不错的。


对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看。

本教程面向对LaTeX完全无认知无基础的新人。旨在让新人能够用最简单快捷的方式,轻松入门,能够迅速使用LaTeX完成基本的文本编辑。这个教材最终能够达到的水平是能够使用LaTeX写一篇正常的proposal。如果希望有更大需求的提高,那么推荐在熟悉了这一篇文章的内容之后,再自行google或查阅其他稍厚的教材。尤其旨在破除部分新人对LaTeX在传闻中难以学习的恐惧感。在入门之后,面对各种进阶应用、特殊要求与异常状况,可以自行咨询google解决。

先用三句话来介绍什么是LaTeX,以下三点基于我个人的主观经验的总结。

  1. LaTeX是一类用于编辑和排版的软件,用于生成PDF文档。
  2. LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次批量处理。
  3. LaTeX在使用体验方面,最不易被Word替代的有四个方面:方便美观的数学公式编辑、不会乱动的退格对齐、非所见即所得因此可以在编辑的时候用退格和换行整理思路但生成PDF出来不影响美观、部分导师和刊物不接受Word排版的文章。

我要严厉警告和强烈声讨那些自以为是advanced LaTeX user的人。请你们不要为了自己那一点可怜可悲的虚荣心,去刻意渲染LaTeX有多么高端多么不容易学习,这和孔乙己炫耀茴香豆的茴字有四种写法有什么区别么?混账!LaTeX到底有多“难”你们自己清楚好么?同理的还有很大一部分的VI user,还有Linux user,还有Fallout player。卧槽,一个软件而已,有什么好显摆的。别人想学LaTeX,好,你随手给人家丢一个几百页的英文Manual,显得自己很高端吗?你自己看过了吗?你推荐给别人的时候真的有希望别人看完吗?只是装逼的话就是混账!

我写这一篇教程的动机,正是因为网络上能够找到的简要速成的LaTeX教程完全没有。我能找得到的最简短或是说在我看来最具有指导意义的,就是那篇《一份不太简短的LaTeX介绍》。然而对于希望迅速对LaTeX有所了解的人,那一篇“不太简短的介绍”也仍旧稍嫌略长,我当初在入门时也研究了整晚。在LaTeX社区群里聊得久了,大家都是朋友,既然缺了这一块我又有闲情,那么就补上了。因此我写了这一篇教程,完全是以教会新人上手为目的,把华而不实的内容统统略去,确保能够在三十分钟内跟着这个教程走完全步骤就可以基本算是“玩转LaTeX”了。这个三十分钟的时长,是我帮助我身边的朋友开始接触LaTeX入门的常规时间,是经验积累的结果。至于其他LaTeX教程攻略,我个人推荐是在看完这一篇之后,再随意当字典或百科全书来查阅。


下面是教程正文。(正文最后应大家要求增添了附录)

1. LaTeX软件的安装和使用

方法A(自助):在MikTeX的官网下载免费的MikTeX编译包并安装。下载WinEdt(收费)或TexMaker(免费)等编辑界面软件并安装。
方法B(打包):在ctex.org下载ctex套装(含MikTeX及WinEdt)(这里矫正:推荐使用TeXLive套装,然后选择winedt,TeXstudio等等编辑器。)
哈哈这一部分当然不包含在标题的30分钟里。

2.第一个文档

打开WinEdt,建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8。

 
1
2
3
4
\documentclass{article}
\begin{document}
hello, world
\end{document}

然后在WinEdt的工具栏中找到编译按钮(在垃圾桶和字母B中间),在下拉菜单中选择XeLaTeX,并点击编译。
如果顺利的话,我们就可以顺利生成出第一个pdf文件,点击工具栏中的放大镜按钮就可以快速打开生成的pdf文件。

3.标题、作者和注释

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
1
2
3
4
5
6
7
\documentclass{article}
\author{My Name}
\title{The Title}
\begin{document}
\maketitle
hello, world % This is comment
\end{document}

4.章节和段落

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
1
2
3
4
5
6
7
8
9
10
11
12
\documentclass{article}
\title{Hello World}
\begin{document}
\maketitle
\section{Hello China} China is in East Asia.
\subsection{Hello Beijing} Beijing is the capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Tian'anmen Square}is in the center of Beijing
\subparagraph{Chairman Mao} is in the center of Tian'anmen Square
\subsection{Hello Guangzhou}
\paragraph{Sun Yat-sen University} is the best university in Guangzhou.
\end{document}

退格只是我个人偏好,看起来层次清晰美观。实际操作上未必要如此,每一行之前的空格不影响编译生成PDF的排版结果。

5.加入目录

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
1
2
3
4
5
6
7
8
9
\documentclass{article}
\begin{document}
\tableofcontents
\section{Hello China} China is in East Asia.
\subsection{Hello Beijing} Beijing is the capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Hello Tian'anmen Square}is in the center of Beijing
\subparagraph{Hello Chairman Mao} is in the center of Tian'anmen Square
\end{document}

6.换行

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\documentclass{article}
\begin{document}
Beijing is
the capital
of China.
 
New York is
 
the capital
 
of America.
 
Amsterdam is \\ the capital \\
of Netherlands.
\end{document}

7.数学公式

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
The Newton's second law is F=ma.
 
The Newton's second law is $F=ma$.
 
The Newton's second law is
$$F=ma$$
 
The Newton's second law is
\[F=ma\]
 
Greek Letters $\eta$ and $\mu$
 
Fraction $\frac{a}{b}$
 
Power $a^b$
 
Subscript $a_b$
 
Derivate $\frac{\partial y}{\partial t} $
 
Vector $\vec{n}$
 
Bold $\mathbf{n}$
 
To time differential $\dot{F}$
 
Matrix (lcr here means left, center or right for each column)
\[
\left[
\begin{array}{lcr}
a1 & b22 & c333 \\
d444 & e555555 & f6
\end{array}
\right]
\]
 
Equations(here \& is the symbol for aligning different rows)
\begin{align}
a+b&=c\\
d&=e+f+g
\end{align}
 
\[
\left\{
\begin{aligned}
&a+b=c\\
&d=e+f+g
\end{aligned}
\right.
\]
 
\end{document}

具体细节可以自行搜索LaTeX的数学符号表或别人给的例子。

8.插入图片

先搜索到一个将图片转成eps文件的软件,很容易找的,然后将图片保存为一个名字如figure1.eps。
建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,放在和图片文件同一个文件夹里,编译并观察现象。

 
1
2
3
4
5
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=4.00in,height=3.00in]{figure1.eps}
\end{document}

9.简单表格

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\documentclass{article}
\begin{document}
\begin{tabular}{|c|c|}
a & b \\
c & d\\
\end{tabular}
 
\begin{tabular}{|c|c|}
\hline
a & b \\
\hline
c & d\\
\hline
\end{tabular}
 
\begin{center}
\begin{tabular}{|c|c|}
\hline
a & b \\ \hline
c & d\\
\hline
\end{tabular}
\end{center}
\end{document}

10.结尾

到目前为止,你已经可以用LaTeX自带的article模板来书写一篇基本的论文框架了,至少你已经能够用得起来LaTeX了。

在论文从框架到完整的过程中,必然还存在许多的细节问题,比如字体字号,比如图片拼合,比如复杂的表格等等。

那些问题,就请咨询google吧。通常来说我们作为初学者会提出的问题,早就已经有许多的先辈们在网络上提过同样的问题了,看看别人的回答就可以。

LaTeX在国内的普及率并不高,因此许多时候如果搜英文关键词,会获得更好的效果。

===============================
附录,有关我认为不是新手急需,但是的确比较有用的信息

1.中文支持

曾经的LaTeX的中文支持是比较麻烦的一件事,但是现在使用MikTeX+WinEdt的中文支持非常容易。只需要把开头的 \documentclass{atricle} 换成 \documentclass{ctexart} 就可以了。
如果是第一次使用ctexart的话,会自动下载和安装宏包和模板,之后就不会再下载了。

例子参考如下:

打开WinEdt,建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8。

 
1
2
3
4
\documentclass{ctexart}
\begin{document}
你好,世界
\end{document}

2.宏包

\package{  } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。

每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版(如字号字形),或用来实现一些功能(如插入图片或制作复杂表格)。

通常在 \documentclass 之后,在 \begin{document} 之前,将文章所需要涉及的宏包都罗列上。

对于新人而言比较常用的宏包有

  • 编辑数学公式的宏包: \usepackage{amsmath} 和 \usepackage{amssymb}
  • 编辑数学定理和证明过程的宏包: \usepackage{amsthm}
  • 插入图片的宏包: \usepackage{graphicx}
  • 复杂表格的宏包: \usepackage{multirow}

差不多了,对于新人来说,这五个宏包已经基本够用了。如果有其他的特殊需求,就通过google去寻找吧。

补充说明一下,现在 ctexart 模板里集成了中文支持,所以CJK宏包并不是必需品。

3.模板

模板就是在 \documentclass{  } 后面的大括号里的内容。
在这一份教程中,我们使用的是LaTeX默认自带的模板article,以及中文模板ctexart。
模板就是实现我之前所介绍的LaTeX的经验总结的第二点的实现方式。
一篇文章,我们定义了 section ,定义了 paragraph ,就是没有定义字体字号,因为字体字号这一部分通常来说是在模板中实现的。
一个模板可以规定, section 这个层级都用什么字体什么字号怎么对齐, subsection 这个层级用什么字体什么字号怎么对齐, paragraph 又用什么字体什么字号怎么对齐。
当然模板里还可以包含一些自定义的口令,以及页眉页脚页边距一类的页面设置。
由于模板的使用,在我的使用经验里来看,绝对不可能算是基本入门级的内容,所以在正文里当然不会提及。
如果有人实在想学,如果LaTeX已经接触到这个程度上了,那么再去翻其他厚一些的教材,也不亏了。

4.参考文献和制作幻灯片

做参考文献的时候,文章也已经快写到尾声了,而幻灯片更不是进阶一些的需求。对这两个功能有需求的LaTeX user,使用LaTeX也已经相当熟练了,自己去google一下或查阅其他厚教程是很理所当然的,一点也不冤枉。
在此我就只提供两个搜索关键词,参考文献可以搜bibtex,制作幻灯片可以搜beamer。

https://www.codecogs.com/latex/eqneditor.php?lang=zh-cn   在线编辑

LaTeX新人教程,30分钟从完全陌生到基本入门[转载]的更多相关文章

  1. LaTeX新人教程,30分钟从完全陌生到基本入门

    by Nan 对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看. 本教程面向对LaTeX完全无认知无基础的新人.旨在让新人能够用最简单快捷的方式,轻松入门,能够迅速使用LaTeX完成基本的文本 ...

  2. LaTeX新人教程,30分钟从全然陌生到基本入门

    1.LaTeX软件的安装和使用  方法A(自助):在MikTeX的官网下载免费的MikTeX编译包并安装.下载WinEdt(收费)或TexMaker(免费)等编辑界面软件并安装.  方法B(打包):在 ...

  3. LaTeX新人30分钟从完全陌生到基本入门

    From:http://www.360doc.com/content/13/0117/11/2886802_260681908.shtml 对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看. ...

  4. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  5. Latex新人教程

    1.LaTeX软件的安装和使用 方法A(自助):在MikTeX的官网下载免费的MikTeX编译包并安装.下载WinEdt(收费)或TexMaker(免费)等编辑界面软件并安装. 方法B(打包):在ct ...

  6. 30分钟ES6从陌生到熟悉

    前言 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的 ...

  7. LaTeX新人使用教程[转载]

    LaTeX新人教程,30分钟从完全陌生到基本入门 by Nan 对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看. 本教程面向对LaTeX完全无认知无基础的新人.旨在让新人能够用最简单快捷的方 ...

  8. Objective-C 30分钟入门教程

    Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念. ...

  9. HTML 30分钟入门教程

    作者:deerchao 转载请注明来源 本文目标 30分钟内让你明白HTML是什么,并对它有一些基本的了解.一旦入门后,你可以从网上找到更多更详细的资料来继续学习. 什么是HTML HTML是英文Hy ...

随机推荐

  1. 本号讯 | 微软被 Forrester 评为销售服务自动化解决方案领导者

    2017年第二季度独立研究机构 Forrester Research 在最新发布的 The Forrester Wave™: 销售服务自动化(Sales Force Automation Soluti ...

  2. Python+selenium之fixtures

    fixtures即可以表示测试用例的开始和结束,也可以表示测试类和测试模块的开始和结束. import unittest def setUpModule(): print("test mod ...

  3. javaSe数据类型

    在学完了java程序的结构以及注释后呢按照一般的教程我们应该学点什么呢?   没错就是变量和数据类型[其实我的内心是拒绝的,又是无聊的一大堆,不仅无聊,还得掌握] 好了首先介绍什么是变量: 变量:变量 ...

  4. 融云SDK触达用户数破20亿 王者风范双倍展现

    11月1日,融云SDK触达用户数突破20亿,业务增长速度及用户覆盖量再创即时通讯云领域新高.自去年11月10日公布SDK触达用户数破10亿以来,融云仅用了一年时间,便取得了触达用户数翻倍的成绩,迅猛的 ...

  5. codeforce Gym 100342J Triatrip (bitset)

    傻逼题,但是为什么别人的O(n^3)不会T?只是因为用了bitset优化... 附上一张bitset基本操作的表 #include<bits/stdc++.h> using namespa ...

  6. vue2使用animate css

    先上几个链接 vue插件大集合:awesome-vue vue2插件: vue2-animate:vue2-animate vue2插件vue2-animateDEMO: vue2-animatede ...

  7. JS实现2,8,10,16进制的相互转换

    // 10进制转为16进制 var a=1234567890; console.log(a.toString(16)) //499602d2 // 16进制转为10进制 var num=parseIn ...

  8. Windows环境下使用Apache+mod

    1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...

  9. C 语言设计坦克大战(未完成)

    //坦克大战 //0.提示界面 //1.边框 //2.指定位置显示自己的坦克 //3.己方坦克随着方向键动起来 //getasynkeustae //Sleep(毫秒) //减少闪烁 //不闪烁Set ...

  10. 01_9_Struts用ModelDriven接收参数

    01_9_Struts用ModelDriven接收参数 1. 配置struts.xml文件 <package name="user" namespace="/use ...