LaTeX笔记

内容来自《一份不太简短的\(\LaTeX2\varepsilon\)介绍》,据说是99分钟学会。 倒计时开始。 ## \(\LaTeX\)须知

概述

  • \(\LaTeX\)的发音是“Lay-tech”或“Lah-tech”,即“雷泰克”。
  • \(\TeX\)\(\LaTeX\)这个软件的引擎。
  • \(\LaTeX2\varepsilon\)\(\LaTeX\)的最新版本。

\(\LaTeX\)命令和代码结构

\(\LaTeX\)命令和环境

\(\LaTeX\)命令**以反斜线*,为以下两种形式之一:

  • 反斜线和后面的一串字母,如。它们以任意非字母符号(空格、数字、标点等)作为分隔符。
  • 反斜线和后面的一个非字母符号,如\$。他们无需分隔符。

\(\LaTeX\)命令对大小写敏感

字母形式的命令忽略后面所有空格,所以如果要引入空格,要在命令后面加一对括号阻止其忽略空格,或者紧跟反斜线加空格命令。在MathJax中不用考虑这个问题,因为空格前面本来就要加反斜线。

大多数的\(\LaTeX\)命令是带一个或多个参数,每个参数用花括号{ 和 } 包裹。有些命令带一个或多个可选参数,以方括号[ 和 ] 包裹。还有些命令在命令名称后可以带一个星号*,带星号和不带星号的命令效果有一定差异。

\(\LaTeX\)的花括号本身也起到分组的作用,可以将字体、格式等的更改限制在大括号范围之内。

\(\LaTeX\)还引入了环境的用法,用以令一些效果在局部生效,或是生成特定的文档元素。\(\LaTeX\)环境的用法为一对命令 \begin 和 \end:

\begin{<environment name>}{<arguments>}
...
\end{<environment name>}

其中<environment name>为环境名,\begin\end中填写的环境名应当一致。\begin<environment name>后可以带一个或多个参数,甚至可选参数。环境允许嵌套使用。

\(\LaTeX\)源代码结构

\(\LaTeX\)源代码以一个\documentclass命令作为开头,它规定了文档使用的文档类

\documentclass{...}

紧接着我们可以用\usepackage命令调用宏包

\usepackage{...}

再接着,我们需要用以下一对命令来标记正文内容的开始位置和结束位置,而将正文内容写入其中:

\begin{document}
...
\end{document}

\documentclass\begin{document}之间的位置称为导言区,除了使用\usepackage调用宏包之外,一些对文档的全局设置命令也在这里使用。也可以什么都不写。

用命令行操作\(\LaTeX\)

宏包和文档类

文档类

文档类规定了\(\LaTeX\)源代码索要生成的文档的性质。用\documentclass指定文档类:

\documentclass[<options>]{<class-name>}

<class-name>为文档类的名称,\(\LaTeX\)提供的基础文档类:

  • article,文章格式
  • report,长篇报告
  • book,书籍,包含章节结构、前言、正文、后记等
  • proc,基于article的简单的学术文档模板
  • slides,幻灯格式,使用无衬线字体
  • minial,极其精简,用于测试

<options>为文档类指定选项

  • 10pt、11pt、12pt,字号,缺省为10pt
  • a4paper,letterpaper,… 纸张大小
  • 更多见pdf第6页。

宏包

扩展应用,如插入复杂表格,图片,颜色,超链接等。

\usepackage[<options>]{<package-name>}

\(\LaTeX\)用到的文件一览

文件的组织方式

\(\LaTeX\)提供\include命令来在源代码里插入文件:

\include{<filename>}

如果和要编译的主文件不在一个目录,则要加上相对或绝对路径。

<filename>不带扩展名时默认为.tex。

\include在读入文件之前会另起一页。使用\input命令是纯粹的插入:

\input{<filename>}

\(\LaTeX\)排版文字

排版中文

直接用UTF8选项使CTEX支持utf-8编码,利用CTEX丰富的字体和中文设置可以更好地编辑Latex中文文本,其语法格式为:

\documentclass[UTF8]{article}
\usepackage{CTEX}
\begin{document}
...
\end{document}

例子:

% ctex_test.tex
\documentclass[UTF8]{article}
\usepackage{CTEX}
\begin{document}
这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示},{\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}
例子
例子

\(\LaTeX\)中的字符

空格和分段

\(\LaTeX\)源代码中,空格键和 Tab 键输入的空白字符视为“空格”。若干个空白字符视为一个空格一行开头的空格忽略不计

行末的回车视为一个空格;连续两个回车,也就是空行,会将文字分段。多个空行视为一个空行。也可以用\par分段。

在MathJax中,用\反斜线加空格来打出空格,只能用\\\\强制换行。

注释

用%作为注释。%后所有字符,包括回车引入的空格,都被忽略。

特殊字符

保留字符有# $ % { } _ ^ ~ 。

反斜线加保留字符可以得到这些字符。这些反斜线的形式是\(\LaTeX\)命令,^和~要带空参数,即\~{}\^{}才能打出这两个字符。

两个反斜线\\被用作手动换行,所以输入反斜杠要用\textbackslash

破除连字

西文排版中经常会出现连字,常见的有ff/fi/fl/ffi/ffl。用一对大括号破除。

It’s difficult to find \ldots .\\
It’s dif{}f{}icult to f{}ind \ldots .

\[It’s\ difficult\ to\ find \ldots .\\\\It’s\ dif{}f{}icult\ to\ f{}ind\ \ldots .\] (MathJax里好像没有这个必要) #### 标点符号

  • 引号 左单引号:`,是键盘上1左边的那个键;右单引号:’是键盘上分号右边那个键。 左双引号:两个左单引号。右双引号相似。
  • 不同长度的横线 1到3个短横-代表三个不同长度的横线。
  • 省略号 用\ldots\dots而不是直接输入三个点来得到省略号。
  • 波浪号 \~{}得到的波浪号在上面,如果要中间的、大的波浪号,用数学公式里的$\sim$代替。也可以用中文的全角波浪号。

\(\LaTeX\)标志

\(\LaTeX\)里可以用\LaTeXe来打出\(\LaTeX2\varepsilon\),但是MathJax不支持。

文字强调

  • 下划线 用ulem宏包里的:\uline{underlined words.}
  • 斜体强调 。,内部用正常字体。

断行和断页

文档元素

排版数学公式

公式排版基础

数学公式有两种排版方式:其一是与文字混排,称为行内公式;其二是单独列为一行排版,称为行间公式

行内公式用一对\\(符号包裹。行间公式在\)$里由equation环境包裹。equation环境为公式自动生成一个编号,这个编号可以用\label\ref生成交叉引用,amsmath的\eqref命令甚至为引用自动加上圆括号;还可以用\tag命令手动修改公式的编号,或者用\notag命令取消为公式编号(与之基本等效的命令是)。

如果想要取消公式的编号,还有三种方法: - 使用displaymath环境,即公式用\begin{displaymath}\end{displaymath}包裹 - 使用equation*环境,即公式用\begin{equation*}\end{equation*}包裹 - 使用\[\]命令生成不带编号的行间公式

数学模式和文本

当开始输入公式时,进入数学模式。数学模式相比文本模式有如下特点: 1. 数学模式中输入的空格全部被忽略。数学符号的间隙默认完全由符号的性质(关系符号、运算符等)决定。需要人为引入空隙时,使用\quad\qquad等命令。 2. 不允许有空行(分段)。每个公式(每组多行公式)自成一个段落。 3. 所有的字母被当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词之间的空格。如果想在数学公式中输入正体的文本,可用\mathrm命令。amsmath提供了更加方便的\text命令。

数学符号

多行公式

长公式折行

通常来讲应当避免写出需要折行的长公式。如果一定要折行的话,优先在等号之前折行,其次在加号、减号之前,再次在乘号、除号之前。其它位置应当避免折行。

书写折行长公式可以用amsmath宏包的multline环境。允许用\\折行,将公式编号放在最后一行。多行公式的首行左对齐,末行右对齐,其余行居中。最后一行不要写\\。

多行公式

罗列一系列公式,并令其按照等号对齐,用align环境。(需使用amsmath宏包。)将公式用&分隔为两部分并对齐。分隔符放等号左边。align环境会给每行公式加分号。如果同时要在某一行公式折行,可以将&放在等号右边,在等号后面添加一对大括号。align 还能够对齐多组公式,除等号前的&之外,公式之间也用&分隔。

如果不需要对齐等号,可以用gather环境。

公用编号的多行公式

将多个公式组在一起共用一个编号,编号位于公式的居中位置:用amsmath宏包里的aligned、gathered环境,与equation环境套用。

数组和矩阵

使用array环境,需要定义列格式。用\换行。也可以用带各种定界符的matrix环境。

公式中的间距

可以用\quad\qquad\\,\:\;生成不同大小的间距。可以用\!生成负间距。

数学符号的字体控制

见pdf p.45~p.46

定理环境

要先自定义定理环境,用\newtheorem定义:

\newtheorem{<type>}{<title>}[<section-name>]
\newtheorem{<type>}[<counter>]{<title>}

<type>是定理类型的名称,或者说是“这种类型定理的代号”。<title>是定理类型的标签,放在定理序号的前面。

定理序号由两个可选参数之一决定,他们不能同时使用: - <section-name>为章节名称,使定理序号成为章节的下一级序号; - counter 为用\newcounter自定义的计数器名称,定理序号由这个计数器管理。

如果两个可选参数都不用的话,则使用一个默认的计数器。定理带一个可选参数,用于注明定理的名称,如“法拉第定律”等。在环境内还可以用\label声明引用。

例子:

\newtheorem{mythm}{My Theorem}[section]
\begin{mythm}\label{thm:light}
The light speed in vaccum
is $299,792,458\,\mathrm{m/s}$.
\end{mythm}
\begin{mythm}[Energy]
The relationship of energy,
momentum and mass is
\[E^2 = m_0^2 c^4 + p^2 c^2\]
where $c$ is the light speed
described in theorem \ref{thm:light}.
\end{mythm}

amsthm宏包可以修改定理格式。

证明环境和证毕符号

amsthm 还提供了一个proof环境用于排版定理的证明过程。proof环境末尾自动加上一个证毕符号\(\Box\)。如果行末是一个不带编号的公式,\(\Box\)符号会另起一行,这时可使用\qedhere命令将\(\Box\)符号放在公式末尾。

符号表