上篇文我们介绍了表格和图片如何使用的基本操作,但在实际使用时,很多表格或图片所占空间不合理(也可能是其他内容),过大或位置不理想。于是,我们就要使用latex中的浮动体。
浮动体可以理解为是一个容器,这个容器是不可以被分页的,将图或表格放在其中更有效于排版,更好操作。当然,浮动体也有自己的编号(方便引用),自己的名字(表格名或图名)。
浮动体使用的指令如下:
\begin{环境名}[可选参数]
%浮动体的环境名通常有figure(图)和table(表),可选参数可以设置浮动体的排版位置,有h(当前位置)t(页首)b(页底)p(独立成页)
%中间可以用指令进行生成图片或者表格
\centering %该指令是让浮动体进行居中排版
\caption{图题或表格名} %生成图题或表格名,该指令也会对图或表自动编号
\label{浮动体标签} %生成一个浮动体的标签,之后可以引用
\end{环境名}
\ref{标签} %引用浮动体
图1 浮动体代码与实际效果
以上是浮动体最常用操作,再次进行更多的补充:如果希望禁止某个浮动体的浮动能力,希望他一直出现在文章代码中的位置,可以调用\usepackage{float}后,在\begin{figure}[H]可选参数中写入H。
其次,标题设置可参阅caption,bicaption宏包的参考手册
在命令行输入:(便可查阅)
texdoc caption
texdoc bicaption
子图表设置可参阅subcaption,subfig,floatrow等宏包
在命令行输入:(便可查阅)
texdoc subcaption
texdoc subfig
texdoc floatrow
在第一章便提到了latex中的数学模式使用$公式$进行书写,这次我们详细进行学习,基本的数学公式使用。基本数学公式使用包括行内公式使用,行间公式使用,公式撰写,公式编号,矩阵等。
处于文字行内部的公式,有以下几个方法使用:
\begin{math}
y=kx+b
\end{math}
如图2-1:
图2-1 行内数学公式和编译结果
行间公式同样也可以使用三种方法进行书写,使用行间公式会使整个文章更清晰,同时在求和,求积,积分号等的上下角标也会进行改变位置。
图2-2 行内公式与行间公式在求和,求积,积分号等的上下角标位置
以下是方法:
\begin{displaymath}
y=kx+b
\end{displaymath}
下面列举常用的数学模式下的公式指令与字符等:
表2-1 公式指令表
^{} |
上标,指数,注意为了不出错以及可读性常使用{},{}内可以使用数字,字母,公式 |
_{} |
下标,具体同上标 |
\cos(\sin,\tan,\arcsin,\arccos……) |
cos函数(sin函数,tan函数……) |
\log(\ln) |
log与ln |
\sqrt[n] |
开n次方根 |
\frac{a}{b}(也可以使用a/b) |
a/b,a除b分式 |
\vec a(\overrightarrow{xy}) |
单符号矢量(多符号矢量) |
\infty |
∞ |
表2-2 字符表(基本为英文写法)
\alpha(首字母大写\Alpha) |
α |
\beta(大写同上) |
β |
\gamma(大写同上) |
γ |
\epsilon(大写同上) |
ε |
\pi(大写同上) |
π |
\omega(大写同上) |
ω |
表2-3 括号表
()与[] |
这两个括号可以直接书写 |
\langle{}\rangle |
<>,{}内写公式,注意前后括号指令区别 |
\{\} |
{} |
\overbrace |
上括号 |
\underbrace |
下括号 |
表2-4 运算符表
\pm |
± |
\times |
× |
\div |
÷ |
\neq |
≠ |
\approx |
≈ |
\equiv |
≡ |
\geq |
≥ |
\leq |
≤小于等于 |
\sim |
~ |
\propto |
∝ |
表2-4 三角形常用指令表
\perp |
⊥ |
\overset{\frown} {AB} |
弧度 |
\angle |
∠ |
^\circ |
60°度 |
‘ |
60,分 |
表2-4 求和与微积分指令表(常与上下标组合使用)
\sum |
求和符,可以和上下标组和使用 |
\lim_{x \to 0}(该例子使用了下标) |
求极限(极限的箭头用\to表示) |
\prod |
累积 |
\prime |
导数 |
\int_{0}^\infty{f(x)dx} (该例子使用了上下标,\int为无穷号) |
积分符号,从0到无穷,对函数f(x)求积分,\infty为无穷的指令 |
\oint |
闭合曲面积分 |
\iint |
二重积分 |
\iiint |
三重积分 |
\nabla |
∇ |
\partial |
∂ |
\dot x(\ddot) |
x |
使用公式时最常用的就是给公式编号了,使用\begin{equation}环境可以生成编号的行间公式, \begin{equation*}为没有编号的行间公式(需调用amsmath宏包),两者可以使用\label标签与\ref进行调用。
\begin{equation}
\langle{67x'}\rangle\label{eq:1} %书写公式设置标签
\end{equation}
\begin{equation*}
\sum^{n}_{i=0}a+\infty\label{eq:2} %书写公式设置标签
\end{equation*}
latex若使用矩阵要先进行调用amsmath宏包,后使用matrix环境进行排版。矩阵内部编写和表格是类似的,列之间&分割,行之间\\分割。矩阵中的元素可以为任意,也可以为矩阵当然也可以用上下标啦。不过要记住就算使用环境矩阵也要放置在数学模式中撰写,不然会报错。
\usepackage{amsmath} %在导言区调用宏包
\begin{matrix}
a & b\\
c & d
\end{matrix}
矩阵边框:
矩阵不同的环境产生的矩阵是不同的,见下表:
表2-5 矩阵环境表
matrix |
无边框 |
pmatrix |
小括号矩阵 |
bmatrix |
中括号矩阵 |
Bmatrix |
大括号矩阵 |
vmatrix |
单竖线矩阵(行列式) |
Vmatrix |
双竖线矩阵 |
省略号:
很多矩阵我们经常使用省略号,\dots表示横向省略号,\ddots表示斜省略号(从左上到右下),\vdots表示纵向的省略号。
我在最初学习latex时,一位老师教我使用了自定义命令,去定义一个从右上到左下的省略号哦:
在导言区输入:
\newcommand{\adots}{\mathinner{\mkern2mu\raisebox{0.1em}{.}\mkern2mu\raisebox{0.4em}{.}\mkern2mu\raisebox{0.7em}{.}\mkern1mu}}
之后进行调用指令\adots就可以了。
\hdotsfor{列数} %这条指令可以产生跨列的省略号哦
最大值:
矩阵的最大列数值是在MaxMatrixCols计数器中设定的,默认值是10。可使用计数器设置命令修改其值,例如需要用到15列:\setcounter{MaxMatrixCols}{15}。当超宽矩阵排写完成后应随机将其再改回到默认值。
文本模式:
在数学模式撰写时如果要使用文本模式可以使用\text{}指令,为什么在这里聊呢?这条指令会用于一些矩阵的排版中使用到,比如在排版分块矩阵时我们需要一个比其他数字更大的数字作为一个矩阵。描述起来可能有点费解,实际操作时您就会想起来啦~
行内矩阵:
行内矩阵的环境是\begin{smallmatrix},使用方法不过多赘述了,和其他环境使用相似哦,当然也要放在数学模式内使用。
其他设置:
\raisebox{高度}{元素} %这条指令可以调整元素的高度
\multicolumn{列数}{书写位置}{元素} %合并列,书写位置为之前讲到的c,l,r,元素为所填元素。
\multiraw{行数}{书写位置}{元素} %合并行,同上
\left( ... \right) %\left与\right是必须成对出现的,中间的省略号代表了内部写的矩阵或者公式,这个可以左右插入一个定界符(本例是括号,您可以自己改变为中括号等,同时也可以只给左或者右单独插入)
这一章貌似是有点多啦,再提一下array环境,array环境是用来排版复杂数学矩阵的一个工具,其实使用方法是和之前提到过的表格中的tabular环境很像的。
\[ %注意数学模式内
\begin{array}{c@\hspace{-5pt}l} %这里可以进行array的嵌套从而实现更复杂的矩阵,这里产生了一个-5pt的空白,这个也是只是演示用。
\begin{array}{r|r|c} %array环境,还记着表格环境tabular么{r|r|c}表示三列右对齐、右对齐、居中对其
1 &2 \\ %是不是很眼熟,行与行之前&,下一行开启\\
\hline %还是之前的分割线
3 & 4
\end{array}
\end{array}
\]
array环境是可以排版更为复杂的矩阵的,很多非常复杂的分块矩阵都是由他完成的哦,同时他也可以在不同的地方插入分割线也是很好用的,同时array嵌套也是很常用的。
再看下面的指令和生成结果:
\begin{array}{l}
\left.\rule{0mm}{7mm}\right\}p\\
\end{array}
图2-3 指令与生成结果
矩阵的侧面出现了花括号,这就是使用array嵌套的结果,也可以生成侧向的大括号,具体的过程大家可以自己多试试就明白啦!
array的功能还有很多,比如我们常用的线性方程组也可以使用他来输入,具体再次不多赘述了,具体方法是很容易搜到的。