EdmondFrank's 时光足迹

この先は暗い夜道だけかもしれない それでも信じて進むんだ。星がその道を少しでも照らしてくれるのを。
或许前路永夜,即便如此我也要前进,因为星光即使微弱也会我为照亮前途。
——《四月は君の嘘》

Geek的写作方式——LaTeX 入门

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的应用

  1. 使用 (La)TeX进行简单的中英混排;
  2. 简单的文章组织结构;
  3. 使用 (La)TeX 进行数学公式的排版;
  4. 在 (La)TeX 的文档中插入图片/表格;
  5. 最常见的带有 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相关手册