加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

LaTeX技巧55:大眼睛GG的TEX教程9_行列式对齐

(2009-11-05 19:34:47)
标签:

latex

行列式

对齐

分类: 小技巧

QQ群:91940767/145316219/141877998/80300084/194770436
淘宝店:http://latexstudio.taobao.com
Email:latexstudio@hotmail.com
常见数学公式问题集下载

http://latexstudio.taobao.com
Emaillatexstudio@hotmail.com
常见数学公式问题集下载

 TeX 9

  +----------------------------------------------------+
  本节内容: 数组array, 方程(标号)equation, 多行方程  |
  eqnarray, \aligned(vatola.sty), 标号的交叉引用    |
  参考文献的使用(more)                              |
  +----------------------------------------------------+
 
   数组环境通常用来编排矩阵, 行列式等对齐的数学公式的.它的格式是:
\begin{array}{列对齐}
第一行 \\
第二行 \\
...
最后一行
\end{array}
这里, 列对齐的格式是{c1c2c3...cn}, 每个ci为一个字母, 说明第i列的对齐方式, 可以是c(居中), l(左对齐), r(右对齐). 而每一行的各列用&符号隔开, 行末是\\. 因此n列的数组, {列对齐}应该有n项, 每行应该有n-1个&, 一个\\(最后行通常不用\\). 数组中某一列可以不存在, 但是&号不能少. 数组外常常使用可变大小的定界符\left和\right, 大家看个例子:
$$\left(
\begin{array}{clr}
a+b+c & a+b+c & a+b+c \\
a+b & a+b & a+b \\
a & a & a
\end{array}
\right) $$
 
    这里要作些说明,数组中某两行的距离可以用"\\[距离]"来改变, 也可以用"\renewcommand\arraystretch{实数}"来整体修改数组的垂直距离(缺省为1.0), 而参数\arraycolsep=...是修改其列间距. 使用数组时, 经常容易出错的是: array必须出现在数
学环境中, &的个数和\\的个数一定要正确, 如果使用可变大小的 括号, 一定要注意\left和\right必须成对出现, 即使只排印半对括号.
 
    一般的$和$$环境, 不能给公式或方程编号, 因此, 就用到了方程环境. 格式是:
\begin{equation}
方程
\end{equation}
这其中的方程, 和$$情况没有两样, 只是在公式右边自动加上了程编号(如果\documentstyle用了\leqno选项, 则公式标号在左边). 多行的方程可以把array使用在equation中来实现, 但是标号只出现一个, 出现在多行的中间. 如果多行要分别标号, 或者不想用麻烦的$$嵌套array, 那就要用到多行方程环境:
\begin{eqnarray}
......
\end{eqnarray}

\begin{eqnarray*}
...
\end{eqnarray*}
二者的区别是, 带*号的不将公式标号排出来, 而不带*的自动给每行式子编排标号. 在\begin{eqnarray}和\end{eqnarray}中的部分是一个三列的array环境, 因此有两个&和一个\\, 如:
\begin{eqnarray}
y&=&1+2+3+4+5+6+7+8+9+10 \\
&=&55
\end{eqnarray}
    而如果把方程某行的\\前加上"\nonumber", 则TeX不给该行方程编排标号, 如"y&=&1+2+3+4+5+6+7+8+9+10 \nonumber \\", 则该行不出现标号. 这里还要注意的是equation和eqnarray都是直接进入$$的显示数学环境, 此不能在前面和后面加上$或$$了.
 
    大家可能会注意到, 不论是array还是eqnarray, 每个&符号都会在公式中产生列的小空隙, 同样也在vatola宏库中, 定义了一个aligned对齐环境, 它使得编排多行公式在对齐的同时不会出现$符号位置的列空隙. 它可以出现在$$环境中, 那公式不标号; 或出现在equation中, 它对一个多行公式只标一个标号, 类似于array. 它相当于一个两列的array, 因此每行仅有一个&.
\begin{equation}
\aligned
y&=1+2+3+4+5+6+7+8+9+10 \\
&=55
\endaligned
\end{equation}
这里需要注意的是, \begin{array} \end{array}和\begin{tabular}(制表)\end{tabular}不能出现在\aligned与\endaligned中, 如须
使用, 要用\vbox{}或\hbox{}等把array或tabular环境括起来.
 
    在讲第一个完整的TeX文档例子时, 大家一定注意到参考文献标号的交叉引用, 而方程也有标号, 也可以交叉引用. 为什么我们选择交叉引用而不是直接在文中写"公式(1)中..."的原因很简单, 交叉引用可以实时地调整标号, 插入或删去一个公式带来整体标号的改变, 无需改变引用标号的地方; 而且, 可以在不修改正文的情况下灵活地调整标号的风格.
 
    TeX使用\lable{标号}来定义标号, 这里的标号可以是字母,数字, 标点等组成的字符串. 需要引用, 则使用\ref{标号}, 这里的"标号"应该是有\lable定义过的, 定义和引用的先后无关. 例如, 我们有
\subsection{Early Results}
\label{sec-early}                       %这里定义子节标号
Euler's equation
\begin{equation}
e^{i\pi}+1=0 \label{eq:euler}           %这里定义方程标号
\end{equation}
\combines the five most important numbers in mathematics
in a single euqtion.
然后我们就可以如下地引用
Equation~\ref{eq:euler} in Section~\ref{sec-early} ...
不管这里方程或子节的标号是多少, 引用时都能准确地指出. 这就是我们要使用自动交叉引用的原因. 这里, \label会自动根据自己的位置, 得出标号, 如出现在equation, eqnarray, enumerate (项目), figure(图), table(表)环境中, 被引用的是公式号, 项目编号或图表号; 而出现在其它位置则是章节号.
 
    引用时除了\ref外还有一个\pageref{标号}, 它显示的是\label{标号}出现的页面位置.
 
    \cite和\bibitem我们在一开始的例子中就看到了, 我们这里更详细地说说这两条命令的完整格式:
\cite[附加信息]{标号1, 标号2, ..., 标号n}
\bibitem[名称]{标号}
先看一个\cite加附加信息的例子(这个例子是在第5节例子的参考 文献的基础上的):
See \cite{texbook, companion} or \cite[page 20-22]{lamport} ..
再看\bibitem的名称可选项:
See \cite{kn:texbook} for more details.

...
\begin{thebibliography}[lamport 86]     %[]中是最长文献编号
\bibitem[Knuth 84]{kn:texbook} D. E. Knuth. {\sl The \TeX{}book}.
Addison-Wesley, Reading.
\end{thebibliography}
 
    这里再多说一句的是: 所有涉及交叉引用的文件, 在修改过与交叉引用有关的内容之后, 都需要对源文件进行两次编译才能得到正确的结果.  

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有