Geek的写作方式——LaTeX 入门
有关LaTex的简介
说道LaTex首先要提到TeX (文本排版系统)
TeX是由著名的计算机科学家Donald E. Knuth(高德纳)发明的排版系统,利用TeX可以很容易地生成高质量的dvi文件,打印输出。利用dvips,dvipdfmx,pdfLaTeX等程序生成pdf,ps,文件,LaTeX2html生成html文件。它在学术界十分流行,特别是数学、物理学和计算机科学界。TeX被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。
而LaTeX使用TeX作为它的格式化引擎。
Leslie Lamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。它构筑在Plain TeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TeX的强大功能。使用LaTeX基本上不需要使用者自己设计命令和宏等,因为LaTeX已经替你做好了。因此,即使使用者并不是很了解TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX表现的更为出色。
LaTex的应用
- 使用 (La)TeX进行简单的中英混排;
- 简单的文章组织结构;
- 使用 (La)TeX 进行数学公式的排版;
- 在 (La)TeX 的文档中插入图片/表格;
- 最常见的带有 TeX 的单词的含义;
简单的规则
为了实现强大的排版能力,LaTex背后定义了一些非常严谨的语法和规则。
(1)空格:Latex中空格不起作用。
(2)换行:用控制命令“\”,或“ \newline”.
(3)分段:用控制命令“\par” 或空出一行。
(4)换页:用控制命令“\newpage”或“\clearpage”
(5)特殊控制字符:#,$, %, &, - ,{, }, ^, ~
要想输出这些控制符用下列命令:
\# \$ \% \& \- \{ \} \^{} \~{} 其中 \blackslash 表示“ \”。
在讲具体如何使用LaTex之前,先给大家推荐一下LaTex在线编辑器方便大家做测试。
kityformula:WEB mathematical formulas projects ,同时项目的Github地址在「这里」
尝试第一次中英文排版
\documentclass[UTF8]{article}
%这里是导言区
\begin{document}
Blahblahblah...
你好,世界。etc.
\end{document}
此处的第一行 \documentclass{article} 中包含了一个控制序列(或称命令/标记)。所谓控制序列,是以反斜杠\开头,以第一个空格或非字母 的字符结束的一串文字,他们并不被输出,但是他们会影响输出文档的效果。这里的控制序列是 documentclass,它后面紧跟着的 {article} 代表这个控制序列有一个必要的参数,该参数的值为 article。这个控制序列的作用,是调用名为 “article” 的文档类。
方括号[]包括的可选参数,这里表示采用UTF-8编码。
请注意,(La)TeX 对控制序列的大小写是敏感的。
此处的第二行以 % 开头。在 TeX 风格的文档中,从 “%” 开始,到该行末尾的所有字符,都会被 TeX 系统无视,只作为供人类阅读的注释。除非在 “%” 前加上反斜杠来取消这一特性。
组织你的文章
作者、标题、日期
\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
Hello world!
\end{document}
章节和段落
\documentclass[UTF8]{ctexart}
\title{hello,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
\section{你好,世界}
Welcome to 中国.
\subsection{Hello China}
北京是capital of China.
\subsubsection{Hello BeiJing}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello 广东}
\paragraph{中山大学} is one of the best university in 广东。
\end{document}
在文档类 article/ctexart 中,定义了五个控制序列来调整行文组织结构。他们分别是
- \section{·}
- \subsection{·}
- \subsubsection{·}
- \paragraph{·}
- \subparagraph{·}
插入目录
在上一节的文档中,找到 \maketitle,在它的下面插入控制序列 \tableofcontents
\documentclass[UTF8]{ctexart}
\title{hello,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\section{你好,世界}
Welcome to 中国.
\subsection{Hello China}
北京是capital of China.
\subsubsection{Hello BeiJing}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello 广东}
\paragraph{中山大学} is one of the best university in 广东。
\end{document}
数学公式排版
数学公式排版功能是LaTeX 最为强大的部分。
数学模式
LaTeX 的数学模式有两种:行内模式 (inline) 和行间模式 (display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行,并自动居中。
在行文中,使用 可以插入行内公式,使用 [ … ] 可以插入行间公式,如果需要对行间公式进行编号,则可以使用 equation 环境:
eg:
\begin{equation}
...
\end{equation}
上下标
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Einstein 's $E=mc^2$.
\[ E=mc^2. \]
\begin{equation}
E=mc^2.
\end{equation}
\end{document}
示例如下:
在数学模式中,需要表示上标,可以使用 ^ 来实现(下标则是 _)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {} 括起来。
根式与分式
根式用 \sqrt{·} 来表示,分式用 \frac{·}{·} 来表示(第一个参数为分子,第二个为分母)。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\sqrt{x}$, $\frac{1}{2}$.
\[ \sqrt{x}, \]
\[ \frac{1}{2}. \]
\end{document}
示例如下:
运算符号
一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成。
[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\;
\geq\; \leq\; \neq\; \approx \; \equiv ]
示例如下:
连加、连乘、极限、积分等大型运算符分别用 \sum, \prod, \lim, \int生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits 和 \nolimits 来强制显式地指定是否压缩这些上下标。
\sum_{i=1}^n i
\prod_{i=1}^n
\sum\limits {i=1}^n i\quad \prod\limits {i=1}^n
[ \lim_{x\to0}x^2 \quad \int_a^b x^2 dx ]
[ \lim\nolimits _{x\to0}x^2\quad \int\nolimits_a^b x^2 dx ]
示例如下:
多重积分可以使用 \iint, \iiint, \iiiint, \idotsint 等命令输入。
[ \iint\quad \iiint\quad \iiiint\quad \idotsint ]
示例如下:
定界符(括号等)
各种括号用 (), [], {}, \langle\rangle 等命令表示;
注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 \。
[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) ]
示例如下:
省略号
省略号用 \dots, \cdots, \vdots, \ddots 等命令表示。\dots 和 \cdots 的纵向位置不同,前者一般用于有下标的序列。
[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad
\vdots\quad \ddots ]
示例如下:
矩阵
pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix 等环境可以在矩阵两边加上各种分隔符。
\[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad
\begin{bmatrix} a&b\\c&d \end{bmatrix} \quad
\begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad
\begin{vmatrix} a&b\\c&d \end{vmatrix} \quad
\begin{Vmatrix} a&b\\c&d \end{Vmatrix} \]
示例如下:
而使用 smallmatrix 环境,可以生成行内公式的小矩阵。
( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} )
示例如下:
this is a little matrix .
公式组
无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带星花的版本。
\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}
示例如下:
分段函数
分段函数可以用cases次环境来实现,它必须包含在数学环境之内。
\begin{equation} y=\begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases}
\end{equation}
示例如下:
插入图表
在LaTeX文档中插入图片都是通过使用一些latex图形处理宏命令来实现的, 有很多宏命令都支持在在LaTeX文档中插入eps格式的图形文件, 主要有:
(1)用includegraphics宏命令(graphicx包)
(2)用psfig宏命令
(3)用epsfig宏命令
(4)用epsf宏命令
由于插入图片较为麻烦,且不如Markdown语法方便,这里就略过了。有兴趣的朋友可以自行查询下命令的使用方法。
表格
tabular 环境提供了最简单的表格功能。它用 \hline 命令表示横线,在列格式中用 | 表示竖线;用 & 来分列,用 \\ 来换行;每列可以采用居左、居中、居右等横向对齐方式,分别用 l、c、r 来表示。
\begin{tabular}{|l|c|r|}
\hline
OS& Release& Editor\\
\hline
Windows & MikTeX & TexMakerX \\
\hline
Unix/Linux & teTeX & Kile \\
\hline
Mac OS & MacTeX & TeXShop \\
\hline
通用& TeX Live & TeXworks \\
\hline
\end{tabular}
示例如下:
OS | Release | Editor |
---|---|---|
Windows | MikTeX | TexMakerX |
Unix/Linux | teTeX | Kile |
Mac OS | MacTeX | TeXShop |
通用 | TeX LIve | TeXworks |
其他
到目前为止,常用的(La)Tex常用的功能已经介绍的基本差不多了。
当然,除此之外,(La)Tex还有一些版面设置,以及常用字母符号输入等功能。
例如我们常用的希腊字母
\alpha \beta \gamma \theta\omega \mu \pi \dots
示例如下:
到此文章基本结束了,但依旧还有十分多的功能(不常用)没有在此文提及。有兴趣的朋友可以自行查询LaTex相关手册。