Latex

Published: by Creative Commons Licence

  • Tags:

简介

TEX(希腊语:/tɛx/[1],音译“泰赫”,文本模式下写作TeX),是一个由美国计算机教授高德纳(Donald Ervin Knuth)编写的功能强大的排版软件。它在学术界十分流行,特别是数学、物理学和计算机科学界。TEX被普遍认为是一个优秀的排版工具,特别是在处理复杂的数学公式时。利用诸如是LATEX等终端软件,TEX就能够排版出精美的文本以帮助人们辨认和查找。

TEX的MIME类型为application/x-tex。TEX是自由软件。[4]

LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/),排版时通常使用LATEX,是一种基于TeX的排版系统,由美国计算机科学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使用户没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,不必一一亲自去设计或校对,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学、物理文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。[5]

安装

打开http://www.tug.org/texlive/acquire-netinstall.html,选择合适自己系统的文件下载即可。

windows

下载install-tl-windows.exe,以管理员权限打开安装文件,选择Simple install(big)并一直点击继续。

之后会弹出安装窗体,选择安装目录后就会开始自动下载安装。

之后打开应用TeXworks editors,就可以开始你的latex之旅了。

5分钟入门[2]

首先打开TeXworks editors。

文件内容如下

\documentclass[8pt,letterpaper]{article}
\begin{document}
\title{A sample Latex article by 5 minutes of Latex}
\maketitle
\end{document}

点击左上角播放按钮进行预览。可以看到显示的pdf文件中包含了标题和时间。

之后我们加入一些小节。

\documentclass[8pt,letterpaper]{article}

\begin{document}
\title{A sample Latex article by 5 minutes of Latex}
\maketitle

\section{Introduction}
This is a sample introduction section.
This is a second line in the introduction.
This is a thrid line.

\section{Motivation}
The motivation behind this tutorial is to share the knowledge for the benefit of everyone who wants to start using latex.

\end{document}

继续预览,可以发现Introduction下的三行实际显示合成了一行。

接下来我们显示换行符:

\documentclass[8pt,letterpaper]{article}

\begin{document}
\title{A sample Latex article by 5 minutes of Latex}
\maketitle

\section{Introduction}
This is a sample introduction section.\\
This is a second line in the introduction.\\
This is a thrid line.

\section{Motivation}
The motivation behind this tutorial is to share the knowledge for the benefit of everyone who wants to start using latex.

\end{document}

是不是有换行符了,\\是latex中的换行符。

接下来演示如何使用包。

\documentclass[8pt,letterpaper]{article}
\usepackage[left=12mm,top=0.5in,bottom=5in]{geometry}

\begin{document}
\title{A sample Latex article by 5 minutes of Latex}
\maketitle

\section{Introduction}
This is a sample introduction section.\\
This is a second line in the introduction.\\
This is a thrid line.

\section{Motivation}
The motivation behind this tutorial is to share the knowledge for the benefit of everyone who wants to start using latex.

\end{document}

93分钟学会LaTeX[3]

第一章 基本知识

1.1 游戏名目

TeX是由Donald E.Knuth编写的计算机程序,用于文章和数学公式的排版。Tex以优异的稳定性、跨平台能力、以及没有错误而著称。TeX的版本号不断趋近于pi。TeX读作Tech。

LaTeX是一个宏包,目的是让作者利用预定义的专业页面设置,来高质量地排版和打印他们的作品。LaTeX最早由Leslie Lamport编写,并使用TeX作为它的排版系统引擎。LaTeX读作Lay-tech。

1.2 LaTeX基础

出版的流程是作者将他们的手稿交给出版公司,之后由图书设计者决定整本书的版面形式。图书设计者将他们的排版说明写入手稿中,一同交给排版者,排版者最终根据这些说明完成书籍的排版工作。但是图书设计者需要根据手稿内容理解作者写作时的意图。

在LaTeX中,LaTeX代替了图书设计者的角色,TeX则是它的排版者。要使用LaTeX,作者必须在他的作品中提供附加的信息,用于描述作品的逻辑结构,这些信息则以“LaTeX命令”的形式写入文章中。

版面设计是一门艺术,缺乏经验的作者经常会犯一些严重的排版格式错误,只因他们认为图书设计仅仅是一个美学问题。但是文档是用于阅读而非展览的,因此它的可读性和可理解性要比好看的外表更重要。使用所见即所得的程序时,作者经常会写出看上去漂亮但是结构混乱的文档,为了避免这些问题,LaTeX要求作者明确说明他的文档的逻辑结构,之后,LaTeX根据文档结构选择最适合的版面格式。

1.3 LaTeX源文件

1.3.1 空白距离

LaTeX源文件的格式是普通的ASCII文件,其中不仅包含你要排版的文本,还包含LaTeX所能识别的命令。

LaTeX将空格和制表符等空白字符视作相同的空白距离,多个连续空白字符等同于一个空白字符。行首的空白字符会被忽略,回车符也被视作一个空格。

LaTeX使用空行来结束段落,两行文本间的空行表示上一个段落的结束和下一个段落的开始。多个空行与一个空行的效果相同。

1.3.2 特殊字符

下面的字符是LaTeX的保留字符。如果你要在文本中直接使用它们,通常会发生奇怪的事情。

# $ % ^ & _ { } ~ \

但是在这些字符前加上反斜线可以对其进行转义,比如\$。但是反斜线不能转义反斜线,\\表示的是断行命令。

1.3.3 LaTeX命令

LaTex命令是大小写敏感的,并有下面两种形式。

  • 以一个反斜线\开始,加上只包含字母字符命令名组成。命令名后的空白、数字等其他非字母字符标志改命令的结束。
  • 由一反斜线和一特殊字符组成

LaTeX会忽略命令后面的空格,如果你希望在命令后面得到空格,可以在命令后面加上{}和一个空格,{}会阻止LaTeX吞噬命令后面的空格。

I read that Knuth divides the people working with \TeX{} into \TeX{}nicians and \TeX perts.\\
Today is \today.

许多命令需要一个参数,并用花括号包围起来放在命令名称的后面。同时有些命令支持一些可选参数,用方括号括起。比如:

You can \textsl{lean} on me!
Please, start a new line right here!\newline
Thank you!

1.3.4 注释

当LaTeX在处理源文件时,如果遇到一个百分号字符%,那么LaTeX会忽略%后的该行文本,分行符以及下一行开始的空白字符。

This is an % stupid
% Better: instructive <----
example: Supercal%
		ifragilist%
	icexpialidocious

如果需要较长的注释,你可以使用verbatim宏集所提供的comment环境。在使用之前,你需要在源文件的导言区加上命令\usepackage{verbatim}

This is another
\begin{comment}
very stupid but helpful
\end{comment}
way to use comment in your document

1.4 源文件的结构

LaTeX需要处理的源文件遵从一定的结构,每个LaTeX文档必须以\documentclass{...}开始。这个命令指定了你所书写的文档类型。之后你可以通过\usepackage{..}命令来导入一些宏集,为LaTeX系统增添一些新的功能。当完成所有设置后,你可以利用\begin{document}命令开始你的文档。

之后你可以输入你希望排版的文本以及一些LaTeX命令。在文档的最后输入\end{document}告诉LaTeX你的文档到此结束,LaTeX会忽略这个命令之后的部分。

1.5 一个典型的命令行过程

创建一个简单的LaTeX源文件,命名为foo.tex。

\documentclass{article}
\begin{document}
Small is beautify.
\end{document}

之后用LaTeX处理你的源文件。你会的到一个后缀为.div的文件。

$ latex foo.tex

预览生成的.div文件。

$ xdvi foo.dvi

你可以生成pdf文件。

$ dvipdfm foo.dvi

1.6 文档布局

1.6.1 文档类

当LaTeX处理源文件时,首先需要知道的是作者所要创建的文档类型。

\documentclass[options]{class}

class的取值如下:

  • article:排版科技期刊、短报告、程序文档、邀请函等
  • report:排版多章节的长报告、短篇的书籍、博士论文等
  • book:排版书籍
  • slides:排版幻灯片

options可以使用下面可选属性:

  • 10pt,11pt,12pt:设置文档所使用的字体大小,缺省为10pt。
  • a4paper,letterpaper,…:定义纸张的大小,缺省为letterpaper
  • fleqn:使数学公式左对齐,默认是中间对齐
  • leqno:将数学公式的编号放在左侧
  • titlepage,notitlepage:指定是否在文档辩题后开始新的一页。article文档缺省不开始新页,而book文档类型缺省开始新页。
  • onecolumn,twocolumn:指定LaTeX以单列或双列的方式排版文档。
  • twoside,oneside:指定LaTeX排版的文档为双面或单面格式。article和report缺省为单面,而book缺省为双面。
  • openright,openany:该选项决定新的章节是仅在奇数页还是下一可用页开始。

1.6.2 宏包

在你排版文档的时候,你会发现基础的LaTeX不能解决你的问题。如果你想插入图形、彩色文本或源代码文件,你需要使用宏来增强LaTeX功能。导入宏包的命令如下:

\usepackage[options]{package}

这里package是宏包的名称,options是用来触发宏包中特殊功能的一组可选参数。

1.7 各类LaTeX文件

后缀名 描述
.tex LaTeX或TeX源文件,可以用latex处理
.sty LaTeX宏包文件,可以使用\usepackage命令导入。
.dtx 文档化的TeX文件,也是LaTeX宏包发布的主要格式
.ins 相应的.dtx文件的安装文件
.dvi 设备无关文件,是LaTeX编译运行的主要结果,可以通过DVI预览器浏览
.log 记录了上次编译运行时的详细信息

1.7.1 页面风格

LaTeX支持三种预定义的页眉、页脚格式,称为页面风格。

\pagestyle{style}

预定义的style如下:

  • plain:页眉为空,页脚由居中页码组成。默认的页面风格。
  • headings:页眉由当前章节标题和页码组成,页脚为空。
  • empty:页眉、页脚均为空

要仅改变当前页面的页面样式:

\thispagestyle{style}

1.8 大型文档

当处理一个大型文档时,最好将源文件分成几个部分。LaTeX有两条命令来处理这种情况。

\include{filename}

在文档的正文中使用这个命令可以将名为filename.tex的内容包含进来。注意LaTeX在处理filename.tex的内容之前会开始新的一页。

第二个命令可以用于在文档的导言区,它允许你知道LaTeX仅读入某些\include文件。

\includeonly{filename,filename,...}

这条命令在导言区被LaTeX读取后,在所有的后续\include命令中,只允许包含\includeonly命令参数中列出的文件,包含其它文件的\include命令不会被执行。

如果你仅希望包含目标文件内容,但是不希望带入新的分页,你可以使用下面的方式。

\input{filename}

使用synonly宏包可以让LaTeX快速检查你的文档,但是不会产生DVI输出,这种模式下,LaTeX运行的非常快。

\usepackage{syntonly}
\syntaxonly

第二章 文档排版

2.1 文档和语言的结构

在LaTeX中,段落是最重要的文档单位。若你要开始新的论述,那么就另起一段,否则则应使用断行。

2.2 断行和分页

2.2.1 段落整理

通常书籍以等长的行来排版。为了优化段落的内容,LaTeX在单词间插入必要的断行点和间隔。如果一行的单词排不下,LaTeX也会进行必要的断字。

\\\newline来进行断行。

在断行后,还禁止分页。可以通过\newpage另起一页。

2.2.2 断字

必要的时候会出现断字。命令\hyphenation{word list}使列于参数中的单词仅在备注有-的点断字。

\mbox{text}命令保证把几个单词排在同一行上。比如

My phone number will change soon. It will be \mbox{0116 291 2319}

2.3 学习字符串排版

2.4 特殊字符和符号

2.4.1 引号

在LaTeX中,两个左引号代表产生一个左引号,两个右引号产生一个右银行。一个左引号和右引号产生一个单引号。比如:

‘‘ Please press the ‘x’ key ’’

2.4.2 破折号和连字号

laTeX中有四种短划标点符号,连续用不同数目的短划,可以得到其中的三种。第四种则是数学中的减号。

daughter-in-law, X-rated\\
pages 13--64\\
yes---or no?\\
$0$, $1$ and $-1$

一个短划表示连字号,两个短划表示短破折号,三个短划表示长破折号。

2.4.3 波浪号(~)

波浪号经常用在网址中。在LaTeX中,可以用\~产生,但是可能效果不是你想要的那个。

http://www.rich.edu/\~{}bush

http://www.clever.edu/$\sim$demo

2.4.4 度的符号

在LaTeX中可以产生度的符号。

It's $-30\,^{\circ}\mathrm{C}$
I will soon start to super-conduct.

2.4.5 省略号

在LaTeX中因为排版问题没法使用三个点表示省略号,利用\ldots来输出省略号。

Not like this ... but like this:\\
New York, Tokyo, Budapest, \ldots

2.4.6 连字

一些字母组合不是简单一个个字母得到的,而是使用了一些特殊符号。效果比如ff、fi、fl、ffi等。这就是所谓的连字,在两个字母之间插入一个\mbox{}可以禁止连字,对于由两个词组成的单词,这可能是必要的。

Not shelfful but shelf\mbox{}ful

2.4.7 注音符号和特殊字符

LaTeX支持来自多语言中的注音符号和特殊字符。

H\^otel, na\"\i ve, 
eleve,
 sm\o rrebr\o d,
!‘Se\~norita!, 
\\Sch\"onbrunner
Schlo\ss{}
Stra\ss e

要为i和j增加注音符号,需要先去除它们上面的点,这可以通过\i\j来获得。

2.5 支持使用国际语言

如果你需要使用英语外的语言书写文件,必须适当配置两处。

\usepackage[language]{babel}

来激活宏包babel。对于选定的语言,babel会自动激活适当的断字规则。

要改变源文件的编码格式,可以通过下面命令配置。

\usepackage[encoding]{inputnec}

2.6 单词的间隔

为了使输出的右边界对齐,LaTeX在单词之间插入不等的间隔,句尾插入的空间会稍多一些。LaTeX假定句子以句号、问好或感叹号结尾。如果句号后紧跟一个大写字母,它就不会被视作句尾。在句号之前加上\@说明这个句号是句子的末尾,即使后面跟了一个大写字母。

2.7 标题,章和节

对于article风格的文档,有下面分节命令:

\section{...}
\paragraph{...}
\subsection{...}
\subparagraph{...}
\subsubsection{...}

对于report和book风格的文档,还有其他两个分节命令:

\part{...}
\chapter{...}

节之间的序号和标题的字号由LaTeX自动设置。分节的两个命令有些特殊:

  • 命令\part不影响章的序号
  • 命令\appendix不带参数,只把章的序号改用为字母标记。

LaTeX在文档编译的最后一个循环中,提取节的标题和页码以生成目录。命令\tableofcontents在其出现的位置插入目录。

每个分节命令还有一种带星号的变种,带星的命令通过在命令名称后加*来实现,他们生成的节标题不出现于目录,也不带序号。例如\section{Help}的带星格式为section*{Help}

目录中出现的标题,一般与文本中的标题一致。但是也不完全如此,因为标题太长可能排不进目录。这时候目录的条目可由节命令的可选参数指定。

\chapter[Title for the table of contents]{A long and especially boring title, shown in the text}

整篇文档的标题由命令\maketitle产生。标题的内容必须在调用它之前,由下面命令定义。

\title{...}
\author{...}
\date{...}

2.8 交叉引用

LaTeX提供了下面交叉引用命令。

\latex{marker}
\ref{marker}
\pageref{marker}

你可以在节、字节、图、表或定理后输入\label命令,LaTeX把\ref替换为诶相应的序号,\pageref命令替换为\label输入处的页码。

A reference to this subsection
\label{sec:this} looks like:
‘‘see section~\ref{sec:this} on
page~\pageref{sec:this}’’

2.9 脚注

利用命令\footnote{footnote text}可以把脚注内容排印在当前页的页脚位置。脚注命令总是放在其指向的单词或句子后面。脚注是一个句子或句子的一部分,因此引用逗号或句号结尾。

Footnotes\footnote{This is a footnote.}
are often used by people using \LaTeX.

2.10 强调

如果文本用打字机键入的,用下划线来强调重要的单词。

\underline{text}

但是在印刷的书中,用一种斜体字体排印要强调的单词。

\emph{text}
\emph{If you use emphasizing inside a piece
of emphasized text, then \LaTeX{} uses the
\emph{normal} font for emphasizing.}

2.11 环境

\begin{environment}
text
\end{environment}

其中environment是环境名称。环境可以多重嵌套。

2.11.1 Itemize,Enumerate,Description

itemize环境用于简单的列表,enumerate环境用于带序号的列表,description环境用于带描述的列表。

\flushleft
\begin{enumerate}
\item You can mix the list environments to your taste:
\begin{itemize}
\item But it might start to look silly
\item[-] With a dash.
\end{itemize}
\item Therefore remember:
\begin{description}
\item[Stupid] things will not become smart because they are in a list
\item[Smart] things, though, can be presented beautifully in a list.
\end{description}
\end{enumerate}  

2.11.2 Flushleft, Flushright, Center

flushleft和flushright环境分别产生靠左和靠右排列的段落。center环境产生居中的文本。

\begin{center}
At the centre\\of the earth
\end{center} 

2.11.3 Quote,Quotation,Verse

quote环境对于例子的引用很重要。

A typographical rule of thumb
for the line length is:
\begin{quote}
On average, no line should
be longer than 66 characters.
\end{quote}
This is why \LaTeX{} pages have
such large borders by default and
also why multicolumn print is
used in newspapers.

有两个类似的环境,quotation环境用于多段的较长引用,它会对段落进行缩进。verse环境用户诗歌。

2.11.4 逐字打印

位于\begin{verbatim}\end{verbatim}之间的文本会被直接打印,包括断行和空白,而不会执行任何LaTeX命令,就像打印机一样。

2.11.5 表格

tabular环境可以用来排印带有水平和垂直表线的漂亮表格,LaTeX自动确认每一列的宽度。

\begin{tabular}{table spec}

table spec定义了表格的样式。用l产生一个左对齐的列,用r产生右对齐的列,用c产生居中列。用p{宽度}产生相应宽度、包含自动断行文本的列。|产生垂直表线。

在tabular环境,用&跳入下一列,用\\开始新的一行,用\hline插入水平线。用cline{j-i}可以添加部分表线,其中j和i分别表示表线的起始列和终止列的序号。

\begin{tabular}{|r|l|}
    \hline
    7C0 & hexadecimal \\
    3700 & octal \\ \cline{2-2}
    11111000000 & binary \\
    \hline \hline
    1984 & decimal \\
    \hline
\end{tabular}

表列分隔符可以通过@{…}来构造,这个命令去掉表列之间的间隔,换做两个花括号之间的任何输入。

\begin{tabular}{c r @{.} l}
Pi expression &
\multicolumn{2}{c}{Value} \\
\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$ & 36&46 \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}

用表格环境排印的材料总是位于同一页中。如果需要跨页,可以使用supertabular和longtabular环境。

2.12 浮动体

如今大多数出版物包含许多图片和表格,由于不能跨页,因此需要专门处理。如果一个图片或表格过大而不能再当前页放置,则会新开一页,这个方法会在页面上留下空白,效果很差。

对于在当前页无法放置的图片或表格,最好的方法是把它们浮动到下一页,而当前页剩余部分用正文文本填充。LaTeX提供了两个浮动体环境,一个用于图片,一个用于表格。

包围在环境figure或环境table中的任何材料都会被视为浮动内容。

\begin{figure}[placement specifier]
\begin{table}[placement specifier]

placement specifier称为放置说明符,它由可选参数组成。比如\begin{table}[!hbp]表示可以将表格放在当前页,或放在某页的底部(b),或放在一个专门的浮动页上(p),严格按照放置说明符,即使看起来不佳(!)。缺省的放置说明符为[tbp]。

LaTeX会保证图片和表格按照声明的顺序出现在输出中。

支持的放置说明符有如下:

放置说明符 含义
h 浮动体放在当前页面上
t 放在页面顶部
b 放在页面底部
p 放在专门页面,该页面仅包含一个浮动体
! 忽略阻止浮动体放置的大部分内部参数

在浮动体中,可以用\caption[short title]{caption text}命令给浮动体定义一个标题。而序号和字符串由LaTeX自动添加。

\listoffigures
\listoftables

上面两个命令和\tableofcontents命令类似,用于排印一个图目录和表目录。

利用\label\ref可以在文本中为浮动体创建交叉引用。

在一些情况可能需要使用命令clearpagecleardoublepage,两者都要求LaTeX立即安排所有阻塞在等待队列中的浮动体,并且开始新的一页。但是后者要求LaTeX新开一个奇数页面。

2.13 保护脆弱命令

作为命令参数的命令,可能会失效。这种命令称为脆弱命令,它们需要额外的保护。把\protect命令放在它们之前可以保护它们。\protect仅保护紧跟其右侧的命令,但是不会保护它的参数。

\section{I am considerate \protect\footnote{and protect my footnotes} }

第三章 数学公式

3.1 基础知识

LaTeX使用一种特殊的模式来排版数学符号和公式。段落中的数学表达式应该置于\(\)之间,$和$之间,或math环境中。

Add $a$ squared and $b$ squared
to get $c$ squared. Or, using a 
more mathematical approach:
$c^{2}=a^{2}+b^{2}$
\TeX{} is pronounced as
$\tau\epsilon\chi$.\\[6pt]
100~m$^{3}$ of water\\[6pt]
This comes from my $\heartsuit$

对于较大的数学公式,最好的方法是放在displaymath环境中排版。这样排版出的公式是没有编号的,如果你希望LaTeX对其添加编号的话,可以使用equation环境来达到这个目的。

\documentclass{book}
\begin{document}
 
Add $a$ squared and $b$ squared
to get $c$ squared. Or, using
a more mathematical approach:
\begin{displaymath}
c^{2}=a^{2}+b^{2}
\end{displaymath}
And just one more line.

\end{document}
\begin{equation} \label{eq:eps}
\epsilon > 0
\end{equation}
From (\ref{eq:eps}), we gather
\ldots

数学家通常对使用什么样的符号很挑剔。习惯使用空心粗体表示实数集合,这种字体可以用amsfonts或amssymb宏包中的命令\mathbb得到。

\begin{displaymath}
    x^{2} \geq 0\qquad
    \textrm{for all }x\in\mathbb{R}
\end{displaymath}

3.2 数学模式中的分组

数学模式中的命令仅对其后面的第一个字符起作用,所以如果你需要一个命令作用多个字符的话,你需要将这些字符放在花括号之间。

\begin{equation}
    a^x+y \neq a^{x+y}
\end{equation}

3.3 建立数学公式模块

小写希腊字母的输入命令为:\alpha,\beta,\gamma等,相应的大写形式的输入命令为:\Gamma\Delta等。

$\lambda,\xi,\pi,\mu,\Phi,\Omega$

指数和下标可以用^_后加上相应的字符来实现。

$a_{1}$ \qquad $x^{2}$ \qquad
$e^{-\alpha t}$ \qquad
$a^{3}_{ij}$\\
$e^{x^2} \neq {e^x}^2$

平方根的输入命令为\sqrt,n次方根的命令为\sqrt[n]

$\sqrt{x}$ \qquad
$\sqrt{ x^{2}+\sqrt{y} }$
\qquad $\sqrt[3]{2}$\\[3pt]
$\surd[x^2 + y^2]$

命令\overline\underline可以在表达式的上下方画出水平线。

$\overline{m+n}$ \qquad
$\underline{m+n}$

命令\overbrace\underbrace在表达式的上下方给出一水平大括号。

$\underbrace{ a+b+\cdots+z }_{26}$

字符'会生成导数的'

\begin{displaymath}
y=x^{2}\qquad y'=2x\qquad y''=2
\end{displaymath}

向量通常上方有小箭头。可以通过\vec得到,另外两个命令\overrightarrow\overleftarrow在定义从A到B的向量时非常有用。

\begin{displaymath}
\vec a\quad\overrightarrow{AB}
\end{displaymath}

一般时候,乘法的圆点符号可以忽略,但是有时利用\cdot显示乘号也是有必要的。

\begin{displaymath}
v = {\sigma}_1 \cdot {\sigma}_2
{\tau}_1 \cdot {\tau}_2
\end{displaymath}

函数名通常用用罗马字体正体排版,而非像变量名一样用意大利体。下面是一些最重要的函数名。

\arccos \cos \csc \exp \ker \limsup \min
\arcsin \cosh \deg \gcd \lg \ln \Pr
\arctan \cot \det \hom \lim \log \sec
\arg \coth \dim \inf \liminf \max \sin
\sinh \sup \tan \tanh

lim_命令表示极限。

\[\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\] 

\bmod用于取余运算,比如a mod b\pmod用于表达式,例如x=a (mod b)

分数可以通过frac{...}{...}排版。

$1\frac{1}{2}$~hours
\begin{displaymath}
\frac{ x^{2} }{ k+1 }\qquad
x^{ \frac{2}{k+1} }\qquad
x^{ 1/2 }
\end{displaymath}

二项系数可以通过{... \choose ...}得到。或者使用{... \atop ...}获得去除括号的版本。

\begin{displaymath}
{n \choose k}\qquad {x \atop y+2}
\end{displaymath}

\stackrel将第一个参数放在第二个参数上。

\begin{displaymath}
\int f_N(x) \stackrel{!}{=} 1
\end{displaymath}

积分运算符用\int来生成,多重积分可以通过重复i得到,比如\iint表示二重积分,求和运算符由\sum得到,乘积运算符由\prod得到。上限和下限用^_来生成。

\begin{displaymath}
\sum_{i=1}^{n} \qquad
\int_{0}^{\frac{\pi}{2}} \qquad
\prod_\epsilon
\end{displaymath}

对于括号和其他分隔符,在TeX中有各种各样的符号。花括号用\{...\}。其他分隔符用专门命令生成。

\begin{displaymath}
{a,b,c}\neq\{a,b,c\}
\end{displaymath}

如果将命令\left放在分隔符前,TeX会自动决定分隔符的正确大小。注意必须使用对应的右分隔符\right来关闭每一个左分隔符left

\begin{displaymath}
1 + \left( \frac{1}{ 1-x^{2} }
\right) ^3
\end{displaymath}

某些情况必须手工指出数学分隔符的大小,这可以使用命令\big\Big\bigg\Bigg来作为大多数分隔符命令的前缀。

$\Big( (x+1) (x-1) \Big) ^{2}$\\
$\big(\Big(\bigg(\Bigg($\quad
$\big\}\Big\}\bigg\}\Bigg\}$\quad
$\big\|\Big\|\bigg\|\Bigg\|$

三个圆点输入公式可以使用三个命令。\ldots将点排在基线上,\cdots会水平放置三个圆点,\vdots则垂直放置,\ddots则排列成对角线。

\begin{displaymath}
x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

3.4 数学空格

3.5 垂直对齐

排版arrays使用array来排版数组,它有些类似于tabular环境,使用\\命令来分行。

\begin{displaymath}
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}

array环境也可以使用.作为隐藏右分隔符来排版只有一个大分隔符的表达式。

\begin{displaymath}
y = \left\{ \begin{array}{ll}
a & \textrm{if $d>c$}\\
b+x & \textrm{in the morning}\\
l & \textrm{all day long}
\end{array} \right.
\end{displaymath}

和tabular环境类似,也可以在array环境中画线。

\begin{displaymath}
\left(\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}\right)
\end{displaymath}

对于分成多行的公式或方程组,可以使用eqnarray和eqnarray*环境来代替equation。在eqnarray中,每一行都会有一个方程编号。而eqnarray*不对方程进行编号。

eqnarray类似于{rcl}形式的三列表格。中间的一列可以用作等号和不等号,或者其它合适的符号。

\begin{eqnarray}
f(x) & = & \cos x \\
f’(x) & = & -\sin x \\
\int_{0}^{x} f(y)dy &
= & \sin x
\end{eqnarray}

等号边的空格都很大,可以通过设定\setlength\arraycolsep{2pt}来设置列间距。

长方程不会自动地分割成小的,作者必须指定在哪里分割以及缩进多少。

\begin{eqnarray}
\sin x & = & x -\frac{x^{3}}{3!}
+\frac{x^{5}}{5!}-{}
\nonumber\\
& & {}-\frac{x^{7}}{7!}+{}\cdots
\end{eqnarray}}

\nonnumber命令阻止LaTeX为方程生成一个编号。

3.6 幻影

我们无法看到幻影,但是它依旧会占用空间。利用幻影可以为我们提供空白字符。

\begin{displaymath}
{}^{12}_{\phantom{1}6}\textrm{C}
\qquad \textrm{versus} \qquad
{}^{12}_{6}\textrm{C}
\end{displaymath}

3.7 数学字体大小

3.8 定理、定义…

写数学文档的时候可能需要一种方式来排版定理、定义、公理等。LaTeX提供了下述命令:

\newtheorem{name}[counter]{text}[section]

name是短关键字,用于标识“定理”。text定义“定理”的名称。

方括号内的选项是任意的,可以用于指定“定理”中使用的标号。counter表示计数器,每个定理的序号都会再上一个使用相同计数器的定理的序号上加1。然后新定理会按相同的顺序编号。section指定定理编号所在的章节层次。

在文件的导言中执行\newtheorem命令后,在文件中可以使用如下命令。

\begin{name}[text]
This is my interesting theorem
\end{name}
% definitions for the document
% preamble
\newtheorem{law}{Law}
\newtheorem{jury}[law]{Jury}
%in the document
\begin{law} \label{law:box}
Don’t hide in the witness box
\end{law}
\begin{jury}[The Twelve]
It could be you! So beware and
see law~\ref{law:box}\end{jury}
\begin{law}No, No, No\end{law}

3.9 粗体符号

在LaTeX中很少会见到粗体符号。这也行是故意的。因为业余排版者总是过分使用粗体。利用\mathbf可以给出粗体字母,但是这些是罗马字体,而数学符号通常是斜体。有一个\boldmath命令,但是这只能用于数学模式之外。对于符号也是这样。

\begin{displaymath}
\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath $\mu, M$}
\end{displaymath}

上面使用\boldmath将逗号也一同加粗了。

使用工具包中的amsby(包括在amsmath中)和bm很容易办到这点,因为它们包含\boldsymbol命令。

\begin{displaymath}
\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}
\end{displaymath}

参考资料

[1] https://www.youtube.com/watch?v=VhmkLrOjLsw

[2] https://www.youtube.com/watch?v=Y-kXtWdjtmw

[3] http://www.mohu.org/info/lshort-cn.pdf

[4] https://zh.wikipedia.org/wiki/TeX

[5] https://zh.wikipedia.org/wiki/LaTeX