【转载请注明出处】http://www.cnblogs.com/mashiqi

2016/10/20

一年多没写博文了。今天写一个短的,记录一下使用LaTeX的一些经验。

有些时候,我们的latex文档是这样开头的

\documentclass[fleqn,leqno]{article}

其中 leqno 参数的作用是使得公式的编号显示在左边。当参数 fleqn 存在时,公式往往不能正确的居中。这时,我们就需要特别小心的使用equation、align、flalign、alignat等命令。下面详细讲讲。

1、多行公式在一个地方对齐
如何居中多行的公式呢?我试过很多种方法后,觉得下面这个最好用:

\begin{flalign*}
% In this way (this arrange of &), the equation will in the center and align at the third &. If use this method for 'split', equations will not be centered
% However, 'flalign' will give each line a separate number. It cannot number the whole equations in one number.
&& a & = b & \\
&& a & = b & \\
&& a & = b & \\
&& a & = b &
\end{flalign*}

其中的多个&符号是专门安排好的。只用往第二个和第三个&符号后面添加代码就行了,它们就能对齐 并且所有公式作为一个整体进行居中。但这里有个问题,就是编号的问题。这里没有公式的编号。如果把flalign后面的*号去掉的话,那么就有编号了,但是是每一行公式一个编号,有些情况下这不太合适。因此,为了编号,我们要对上述代码做如下更改:

\begin{flalign}
% In this way (this arrange of &), the equation will in the center and align at the third &. If use this method for 'split', equations will not be centered
% However, 'flalign' will give each line a separate number. It cannot number the whole equations in one number.
&& a & = b & \nonumber\\
&& a & = b & \\
&& a & = b & \nonumber\\
&& a & = b & \label{eq2}\\
&& a & = b & \nonumber
\end{flalign}
Now we refer equation (\ref{eq2}).

现在去掉了flalign后面的*号,那么给不想编号的行的结尾加上 \nonumber,给想加编号的行的后面 不添加任何东西 或者加上 \label{...} 。当 不添加任何东西 时,此行是有编号的,但这个编号将不能被引用到;当加上了 \label{...} 时,可以通过 \ref{...} 来引用这个编号。

下图就是上面两段代码的输出结果:

以上就基本解决了:多行公式、居中、对齐、加编号、引用编号这些问题。唯一的小缺点就是编号并不在整个公式的中间。不过这个小缺点可以容忍。

2、多行公式在多个地方对齐

为了达到多行公式在多个地方对齐的目的,我们必须取消最开始的 fleqn 命令。

有了上面使用 flalign 的经验之后,我们可以使用 \begin{alignat*}{·} 进行多行公式在多个地方对齐的操作。“alignat”后面的那个括号里的数字是每行的“&”符号的个数加1后除以2。举例如下:

\begin{alignat*}{2}
a & = b &\quad c & = d \\
a & = b & c & = d
\end{alignat*}

注意:为了让各个公式之间能有一个间隔,要在分隔各个公式的&符号之后加一个 \quad 。其实 flalign 也可以通过上面的方法实现多个地方对齐,但是当每一行的公式不多时,为了故意填满一整行,公式间的间距会很大。而 alignat 命令不会可以去填满一整行,而是会使得各个公式间尽量靠拢,所以各个公式间的水平距离会看起来更舒服一些。 alignat 和 flalign 之间的区别举例如下:

\begin{alignat*}{2}
a & = b &\quad c & = d \\
a & = b & c & = d
\end{alignat*} \begin{flalign*}
&& a & = b & c & = d && \\
&& a & = b & c & = d &&
\end{flalign*}

3、 其他命令加编号

另外,使用

$$...$$

命令也是可以加编号的,方法是使用 \eqno{...} 命令。举例如下:

$$a=b \eqno{()}$$

但这时的编号 () 要手动输入,而且不能被引用。

LaTeX_fleqn参数时,多行公式对齐居中的同时选择性的加编号的更多相关文章

  1. word中编辑论文公式对齐问题

    这里只说在word中编辑公式时,公式居中,编号右对齐的情况. 在编辑公式时,我平时就是右对齐,然后通过敲击空格键进行公式的居中,然而这样并不美观.所以接下来学习一下: 1)首先打开视图-->标尺 ...

  2. mvc中view与controll之间传递参数时,可以使用url进行传递

    mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...

  3. LaTeX技巧206:使用gather输入多行公式的技巧

    上文中提到了几个输入多行公式的环境,gather也是其中之一,gather输入的好处是每一行,他都会按照前文的编号计数器进行向下计数,这样保证了公式编号的连贯性.所以,当我们输入公式的每一行公式需要独 ...

  4. LaTeX技巧207:使用align环境输入多行公式的技巧

    align是输入多行公式中最好用的环境,仅仅是个人浅见,因为他的对齐非常灵活,如果大家需要非常灵巧的对齐方式的多行公式,建议使用align环境,对应的也还有align*和aligned等等类似的环境, ...

  5. 优化MySQL开启skip-name-resolve参数时显示“ignored in --skip-name-resolve mode.”Warning解决方法

    转自:http://blog.csdn.net/yiluoak_47/article/details/53381282 参数用途: skip-name-resolve #禁止MySQL对外部连接进行D ...

  6. docx转doc时,防止公式被转成图片的解决办法

    编辑社回复需要doc(Word 97-2003)格式的文档,可是将docx(Word 2007+)另存为doc格式时,发现公式被转成了图片.其实,最简单的办法就是,打个电话过去给编辑社:“大爷,拜托您 ...

  7. CAD参数绘制多行文字(com接口)

    在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...

  8. CAD参数绘制多行文字(网页版)

    在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...

  9. word 条件多项式公式对齐

    条件多项式公式对齐 觉得有用的话,欢迎一起讨论相互学习~Follow Me 对于使用word编写具有多个多项式的公式时,经常会有所偏移 最不优雅的方式就是使用逗号进行分隔和排版使其公式上下对齐 第二种 ...

随机推荐

  1. virtual_login

    from selenium import webdriverimport timedriver = webdriver.Chrome()driver.set_window_position(30, 4 ...

  2. js写的闹钟,支持多个闹钟

    因为玩一个游戏,该游戏可以支持多个号,每个号有好多等时间的任务. 来回切换看,太耽误时间.手机的闹钟操作太麻烦. 所以写了一个使用配置文件的闹钟,简单方便. var ForReading = 1, F ...

  3. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?

    这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others)  ...

  4. 解析txt文本,dom4j工具输出为xml文档

    有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾, 要将它们输出为xml格式文档 工具:dom4j,jar包导入MyEclipse的Java Project工程 代码如下: pa ...

  5. widows下node.js环境搭建及运行js

    昨天刚刚开始学习node.js,网上一些教程不是很清楚,所以总结一下我的经验. 1.安装. 安装省略,就到官网上去下载安装一下就好.安装完成之后,打开cmd,输入"path",查看 ...

  6. 《Pro Express.js》学习笔记——Express框架常用设置项

    Express 设置 系统设置 1.       无须再定义,大部分有默认值,可不设置 2.       常用设置 env view cache view engine views trust pro ...

  7. Spring(4)

    Spring的Bean的配置形式 1.基于XML的形式(无需讲解) 2.基于注解的形式(需要引入AOP的jar包,此jar包实现了AOP的注解) 当在Spring配置文件中引入类扫描注解命名空间并且指 ...

  8. 常用CSS样式

    1.line-height:行高.默认normal normal:允许内容顶开或溢出制定的容器边界; length:15px,可以为负数; ... 2.overflow:滚动条设置 overflow- ...

  9. 使用Mulesoft建立webservice, simple方式,POJO

    Mulesoft是使用CXF来支持web service,有三种方式 1.JAX-WS 2.Simple, POJO 3. Proxy, pass-throught 本文介绍POJO,最简单的方式 1 ...

  10. 作业七:团队项目——Alpha版本冲刺阶段008

    今日进度:组内成员讨论 今日安排:组内成员分工