学习资料


1. 基本操作

文稿(即用于排版的源文件)包括两部分内容:

  • 正文(需要排版输出的内容)
  • 排版控制命令(用于控制版面样式、字体字形等格式)
    • 控制命令是用反斜线引导的字符串

西文排版命令分为两种:

  • 控制字

    • 由反斜线和一个或多个英文字母组成,区分大小写,可用使用任何非英文字母的字符(如空格、括号等)表示控制字的结束。
  • 控制符
    • 由反斜线和一个符号(非英文字母)组成。有一些西文排版命令带有参数,可以省略的参数放在 []中,不可省略的参数放在 {} 中。
    • \命令名[可选参数]{不可省略的参数}
    • 同一个括号内的参数,若有多个,则需要使用 , 隔开。

一般地,当源文件不含汉字时,建议使用 tex做文件的扩展名,当当源文件有汉字时,建议使用 ty 作为扩展名。

示例:

\documentclass[UTF8]{ctexart}

\usepackage{amsmath}  % 数学公式的宏包

\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle % 这个控制序列能将在导言区中定义的标题、作者、日期 按照预定的格式展现出来。
\tableofcontents % 插入目录
\section{你好中国}
中国在East Asia.
\subsection{Hello Beijing}
北京是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 天安门广场。
\subsection{Hello 山东}
\paragraph{山东大学} is one of the best university in 山东。
\end{document}

1.1 插入数学公式

为了使用 AMS-LaTeX 提供的数学功能,我们需要在导言区加载 amsmath 宏包:

\usepackage{amsmath}

LaTeX 的数学模式有两种:行内模式 (inline) 和行间模式 (display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行,并自动居中。

在行文中,使用 $ ... $ 可以插入行内公式,使用 \[ ... \] 可以插入行间公式,如果需要对行间公式进行编号,则可以使用 equation 环境:

\begin{equation}
...
\end{equation}

行内公式也可以使用 \(...\) 或者 \begin{math} ... \end{math} 来插入,但略显麻烦。

无编号的行间公式也可以使用 \begin{displaymath} ... \end{displaymath} 或者 \begin{equation*} ... \end{equation*} 来插入,但略显麻烦。(equation* 中的 * 表示该环境下不编号)

也有 plainTeX 风格的 $$ ... $$ 来插入不编号的行间公式。但是在 LaTeX 中这样做会改变行文的默认行间距,不推荐。请参考LaTeX 中不带编号的行间公式为什么推荐用 \[ … \] 而不是 $$ … $$?的回答。

其他还有一些数学环境里的「要」和「不要」。
用 $ ... $ 而不用 \( ... \);
用 align 环境而不用 eqnarray 环境;
用 matrix, bmatrix, pmatrix, vmatrix, Vmatrix 等环境而不用 array 环境去实现矩阵;
用 \bigl, \bigr 等命令来处理定界符,而尽可能避免 \left 和 \right。

1.2 上下标

示例代码(请保存后,使用 XeLaTeX 编译,查看效果):

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Einstein 's $E=mc^2$. \[ E=mc^2. \] \begin{equation}
E=mc^2.
\end{equation} \begin{align}
E=mc^2.
\end{align} \end{document}

在数学模式中,需要表示上标,可以使用 ^ 来实现(下标则是 _)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {} 括起来,例如:

\[ z = r\cdot e^{2\pi i}. \]

展示如下:

\[z = r\cdot e^{2\pi i}.
\]

1.3 根式与分式

根式用 \sqrt{·} 来表示,分式用 \frac{·}{·} 来表示(第一个参数为分子,第二个为分母)。

示例代码(请保存后,使用 XeLaTeX 编译,查看效果):

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\sqrt{x}$, $\frac{1}{2}$. \[ \sqrt{x}, \] \[ \frac{1}{2}. \]
\end{document}

效果:

\(\sqrt{x}\), \(\frac{1}{2}\),\(\dfrac{1}{2}\)

可以发现,在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用 \dfrac, 反之可以使用 \tfrac

在行内写分式,你可能会喜欢 xfrac 宏包提供的 \sfrac 命令的效果。

排版繁分式,你应该使用 \cfrac 命令。

1.4 运算符

一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成,如

\[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\;
\geq\; \leq\; \neq\; \approx \; \equiv \]

连加、连乘、极限、积分等大型运算符分别用 \sum, \prod, \lim, \int生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits\nolimits 来强制显式地指定是否压缩这些上下标。例如:

$ \sum_{i=1}^n i\quad \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 \]

显示如下:

$ \sum_{i=1}^n i\quad \prod_{i=1}^n i\(
\) \sum\limits _{i=1}^n i \quad \prod\limits _{i=1}^n i$

\[\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 \]

展示如下:

\[\iint\quad \iiint\quad \iiiint\quad \idotsint
\]

1.5 定界符(括号等)

各种括号用 (), [], \{\}, \langle\rangle 等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 \。因为 LaTeX 中 |\| 的应用过于随意,amsmath 宏包推荐用 \lvert\rvert\lVert\rVert 取而代之。

| 的效果展示:

\[\lvert x \rvert$$ 和 $$\lVert x \rVert
\]

为了调整这些分隔符的大小,amsmath 宏包推荐使用 \big, \Big, \bigg, \Bigg 等一系列命令放在上述括号前面调整大小

\[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) \]
\[ \Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr] \]
\[ \Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\} \]
\[ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x
\rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \]
\[ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x
\rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \]
\[ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x
\rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]

效果:

\[\Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr)
\]

\[\Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr]
\]

\[\Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\}
\]

\[ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x
\rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \]

\[ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x
\rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \]

\[ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x
\rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]

1.6 省略号

省略号用 \dots, \cdots, \vdots, \ddots 等命令表示。\dots\cdots 的纵向位置不同,前者一般用于有下标的序列。

\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad
\vdots\quad \ddots \]

\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad
\vdots\quad \ddots \]

1.7 矩阵

amsmath 的 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} \]

\[ \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 环境,可以生成行内公式的小矩阵。

Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.

效果图:

Marry has a little matrix $ ( \begin{smallmatrix} a&b\c&d \end{smallmatrix} ) $.

1.8 多行公式

有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。

长公式

不对齐

无须对齐的长公式可以使用 multline 环境。

\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

\[\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}
\]

如果不需要编号,可以使用 multline* 环境代替。

\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

\[\begin{multline*}
x = a+b+c+{} \\
d+e+f+g
\end{multline*}
\]

对齐

需要对齐的公式,可以使用 aligned 环境来实现,它必须包含在数学环境之内。

\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

效果:

\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

1.9 公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带星花的版本。

\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

效果:

\begin{gather}

a = b+c+d \

x = y+z

\end{gather}

\begin{align}

a &= b+c+d \

x &= y+z

\end{align}

请注意,不要使用 eqnarray 环境。

分段函数

分段函数可以用 cases 环境来实现,它必须包含在数学环境之内。

\[ y=\begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases} \]

效果:

\[y=\begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases}
\]

插入图片和表格

图片

关于 LaTeX 插图,首先要说的是:「LaTeX 只支持 .eps 格式的图档」这个说法是错误的。

在 LaTeX 中插入图片,有很多种方式。最好用的应当属利用 graphicx 宏包提供的 \includegraphics 命令。比如你在你的 TeX 源文件同目录下,有名为 a.jpg 的图片,你可以用这样的方式将它插入到输出文档中:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{a.jpg}
\end{document}

图片可能很大,超过了输出文件的纸张大小,或者干脆就是你自己觉得输出的效果不爽。这时候你可以用 \includegraphics 控制序列的可选参数来控制。比如

\includegraphics[width = .8\textwidth]{a.jpg}

这样图片的宽度会被缩放至页面宽度的百分之八十,图片的总高度会按比例缩放。

\includegraphics 控制序列还有若干其他的可选参数可供使用,一般并用不到。感兴趣的话,可以去查看该宏包的文档

表格

tabular 环境提供了最简单的表格功能。它用 \hline 命令表示横线,在列格式中用 | 表示竖线;用 & 来分列,用 \\ 来换行;每列可以采用居左、居中、居右等横向对齐方式,分别用 lcr 来表示。

\begin{tabular}{|l|c|r|}
\hline
操作系统& 发行版& 编辑器\\
\hline
Windows & MikTeX & TexMakerX \\
\hline
Unix/Linux & teTeX & Kile \\
\hline
Mac OS & MacTeX & TeXShop \\
\hline
通用& TeX Live & TeXworks \\
\hline
\end{tabular}

浮动体

插图和表格通常需要占据大块空间,所以在文字处理软件中我们经常需要调整他们的位置。figure 和 table 环境可以自动完成这样的任务;这种自动调整位置的环境称作浮动体(float)。我们以 figure 为例。

\begin{figure}[htbp]
\centering
\includegraphics{a.jpg}
\caption{有图有真相}
\label{fig:myphoto}
\end{figure}

htbp 选项用来指定插图的理想位置,这几个字母分别代表 here, top, bottom, float page,也就是就这里页顶页尾浮动页(专门放浮动体的单独页面) 。\centering 用来使插图居中;\caption 命令设置插图标题,LaTeX 会自动给浮动体的标题加上编号。注意 \label 应该放在标题命令之后。

Latex 学习之旅的更多相关文章

  1. Latex 学习之旅(一)

    学习资料: LaTeX笔记(八)--数学建模专题 如何用Markdown写论文? LaTeX排版札记 LaTeX排版札记:part 2-速查手册.导言区.扉页和公式 论文格式细节整理汇总 https: ...

  2. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  3. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  4. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  5. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

  6. WCF学习之旅—WCF服务部署到IIS7.5(九)

    上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...

  7. WCF学习之旅—WCF服务部署到应用程序(十)

    上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...

  8. WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...

  9. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

随机推荐

  1. --BEA官方网站(http: //www.bea.com)甲骨文已完成对该公司的收购BEA Weblogic Server 7.0x应用服务器简明安 装、配置手册 1

    ====================简 介: BEA公司是业内著名的中间件产商,以Tuxedo及Weblogic闻名于世,而其基础件平台(infrastructure)Weblogic platf ...

  2. Window启动Zookeeper报错java.lang.NumberFormatException: For input string:

    用zkServer start命令报如题的错误,改为直接用zkServer启动则ok 还有在window下,myid文件不能是myid.txt,不能带文件格式 dataDir=D:/zookeeper ...

  3. codeblocks 设置代码自动补全

    熟悉使用一些开发类IDE的朋友对代码自动补全一定印象深刻,如Visual studio,eclipse等,我们在程序中定义的那一个个超长的变量函数名只需打出几个字母就可自动补全,但是在codebloc ...

  4. Web 开发人员需知的 Web 缓存知识

    今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~ 什么是Web缓存,为什么要使用它? Web ...

  5. IFeatureCursorProxy.flush AutomationException: 0x80041538

    添加面的时候碰到的一个问题,有些数据没问题,有些报错,后来请教一位同事说有可能是经纬度字段的数据精度问题,因为投影坐标系统不同,支持的经纬度经度不同,后来转换投影坐标系统后果然解决问题了,我一开始也怀 ...

  6. Redhat 7 之 Mariadb(mysql)

    Redhat7 之后mysql 改为Mariadba,由于mysql 被卖给了IBM, 有闭源的风险. 所以就另外开了一个新的分支,继续开源.Maria 来源于mysql开发者的女儿的名字. 1. 安 ...

  7. MM(Majorize-Minimization, Minorize-Maximization)优化方法

    MM算法思想 MM算法是一种迭代优化方法,它利用函数的凸性来找到原函数的最大值或最小值.当原目标函数\(f(\theta)\)较难优化时,算法不直接对原目标函数求最优解,而去求解逼近于原目标函数的一个 ...

  8. bootstrap分页查询传递中文参数到后台(get方式提交)

    <!--分页 --> <div style="width: 380px; margin: 0 auto; margin-top: 50px;"> <u ...

  9. tomcat和weblogic的区别

    Tomcat是Apache基金会提供的Servlet容器,它支持JSP, Servlet和JDBC等J2EE关键技术,所以用户可以用Tomcat开发基于数据库,Servlet和JSP页面的Web应用, ...

  10. perl6 HTTP::UserAgent (3) JSON

    如果一个 URL 要求POST数据是 JSON格式的, 那我们要怎么发送数据呢? 第一种: HTTP::Request 上一篇说到, 发送 POST 数据, 可以: . $ua.post(url, % ...