- \usepackage{stfloats}
- 长公式的开始和结束加上\begin{figure*}和\end{figure*}。置顶:\begin{figure*}[ht];置底:\begin{figure*}[hb]。
- 把长公式代码放置于它应该出现那页的前面一页。
- Step 3 会导致公式序号打乱,然后在三个地方要设置一哈。
- 在长公式开始之前,也即\begin{figure*}之前加入以下三句。
\newcounter{TempEqCnt} % 创建临时变量TempEqCnt
\setcounter{TempEqCnt}{\value{equation}} % 将当前公式序号 赋给TempEqCnt
\setcounter{equation}{x} % 当前公式序号变为x,x等于长公式应有的序号减1. - 在长公式结束之后,也即在\end{figure*}之后加:
\setcounter{equation}{\value{TempEqCnt}} % 把TempEqCnt中存的公式序号赋回给当前公式序号 - 到了长公式后面一个公式(注意:“后面”是在pdf文档中,不是latex source中),前面加上以下命令
\setcounter{equation}{y} % 当前公式序号变为y,y等于长公式的序号.
- 在长公式开始之前,也即\begin{figure*}之前加入以下三句。
- 其他调节指令必须出现在\begin{figure*}和\end{figure*}之间。加横线指令\hrulefill,空白调节指令\vspace*{10pt}。
来源网址:http://jdong-live.spaces.live.com/blog/cns!8278A237228FC65B!1779.entry
问题2:latex中跨双栏长图表的置顶/置底问题
LaTeX 对参考文献的处理有这么一些优点:
1. 可以维护一个 bib 文件,在你的整个研究生涯可以只维护这样一个文件,就象一个数
据库,每个参考文献是一个记录,由一个唯一的 ID (例如下面的 MartinDSP00)描述。
比如我的 myreference.bib 文件里一条典型的文献是这样的:
@article{MartinDSP00,
author = "A. Martin and M. Przybocki",
title = "The {NIST} 1999 speaker recognition evaluation --- an overview",
journal = "Digital Signal Processing",
volume = "10",
pages = "1--18",
year = "2000",}
其中 {NIST} 中的大括号不会被显示,它的作用是保证将来的生成的参考文献中 NIST 四个字保持原样,不会被小写。
2. 需要引用文献的时候,在正文里加入:
\bibliographystyle{ieeetr}
\bibliography{myreference}
就可以用 \cite{} 来引用文献库中的论文了,如 \cite{MartinDSP00}。上面第一行是控制文献显示格式的,这个后面再讲。此时,myreference.bib 文件在正文 tex 文件的同
一目录下,以保证 LaTeX 可以找到该 bib 文件。
3. 编译正文之后,生成 aux 文件,然后用 bibtex 在当前目录生成 bbl 文件,再编译正文两次,完整的 dvi 就生成了。这样,LaTeX 保证了所有用 \cite 引用到的文献都已被
列出,并且自动编号。同时,如果没有用 \nocite 命令,LaTeX 还保证所有列出的参考文献都在正文中得到了引用。
4. 关于 bib 文件
前面提到 bib 文件的维护问题。我一般不对里面的文献排序,如果文献比较多,需要查找的话,可以通过查询关键字来实现。bib 文件把 @ 所定义的 entry 之外的所有东西
看作是注释。比如在上面 @article 的例子里,如果我在大括号之外写些东西的话,bibtex 是不会关心的,就当它不存在。所以我就把文献的关键字写在这里,将来通过搜索关键
字来查找某些文献。其实也可以搞一个临时的 LaTeX 文件,使用 \nocite{*} 命令,然后编译成 dvi,这样就得到了一个 bib 文件中所有参考文献的列表,当然是可以按照作者名
字排序的。另外,很多 journal(学术期刊)或者 booktitle(国际会议)都是重复的,为了规范化,可以定义缩写,如
@string(ICASSP = "Proc. of the International Conference on Acoustics, Speech,
and Signal Processing (ICASSP)")
然后
@conference{QL.ICA98,
author = "Qi Li and Biing-Hwang Juang",
title = "Speaker Verification Using Verbal Information Verification for Automatic Enrollment",
booktitle = ICASSP,
year = "1998",}
这样在执行 bibtex 之后,ICASSP 会被替换成它的全称。
5. bib 中的中文文献
中文文献和英文的格式不同,并且使用全角的标点符号,有一点难办。我的解决办法是这样的:
@misc{Xie.1995,
note = "谢锦辉,《隐 {Markov} 模型及其在语音处理中的应用》,华中理工大学出版社,1995年4月",
key = "Xie",}
唯一的缺陷是参考文献中最后是以英文的 "." 而不是 "。" 结束的。还好我的中文文献不多,无伤大雅,否则就手工修改一下 bbl 文件吧。
6. 关于参考文献的显示格式、排序,及其他前面提到参考文献的排序问题,以及引用序号是 LaTeX 提供的 ID 还是数字的问题。其实不止这些,参考文献的显示格式也是可以定制的。参考文献以正文中引用顺序排序,还是以文献第一作者的 last name 排序,是通过一些 bst 文件来控制的。而使用哪种 bst 格式,可通过 bibliographystyle 命令控制。LaTeX 默认提供了这么几种格式,如:plain、alpha、unsrt等。具体意义见相关文档,这些 bst 在 texmf\bibtex\bst\base 可被找到。
bst 控制的格式非常细致,除了上面讲过的排序方式等,还有:作者名字是否用缩写,作者名字放在文献的起始还是结束,文章 title 要不要大小写(即 "Speaker Verification Using ..." 还是 "Speaker verification using "),title 用什么区分(用不用引号括起来,用不用斜体等),刊物名字的格式(要不要全部大写,要不要粗体,要不要斜体,要不要括起来),等等等等。打开 bst 文件看一下就知道,绝对是想要什么形式,就可以得到什么形式。最关键的是,在文章定稿之后,完全可以用几个命令重新定义参考文献的格式!
给个例子:采用 IEEE 给出的 bst 格式(即 ieeetr.bst),声明:
\bibliographystyle{ieeetr}
就可以使用了。最终格式是这样的(按正文引用顺序排序):
[4] D. A. Reynolds, "Comparison of background normalization
methods for text-independent speaker verication," in
EUROSPEECH, 1997.
7. 如何定制参考文献的显示格式
其实 bst 文件有很多,总能找到自己需要的。如果这些还不能满足,可以通过生成自己的 bst 文件来定制。这有两个方法,第一是手写(反正我是写不出来),第二是通过工
具。custom-bib 是一个定制 bst 文件的包,解压缩后用 LaTeX 编译其中的主 tex 文件,便会进行交互式的 bst 定制过程,具体过程我就不讲了。把生成的自定义的 bst 放到
LaTeX 相应目录下,刷新文件名数据库就可以使用了。
\hrule
\vskip 0.5mm
\hrule
9.空一行空格
1.\ \notag
2. \vspace{1em}或者{-1em}
10.LaTeX的数学公式有两种,即行中公式和独立公式。行中公式放在正文中间,独立公式单独成行。
(1)行中公式可以用如下这三种方法表示:
\begin{math}x^n+y^n=z^n\end{math},
或者
\(x^n+y^n=z^n\),
或者
$x^n+y^n=z^n$。
(2)会自动单独成行的独立公式可以用如下三种方法表示:
\begin{displaymath}
x^n+y^n=z^n
\end{displaymath}
不自动编号
\[x^n+y^n=z^n\]
人工编号
$$x^n+y^n=z^n$$
此种格式还可以指定公式的手动编号:
$$x^n+y^n=z^n \eqno{(1)}$$
自动编号:
\begin{equation}
x^n+y^n=z^n
\end{equation}
引用时候可以直接用$编号$即可。
例如,$$a^2+b^2=c^2 /eqno (**)$$
由公式($**$)即可得到结论。
一般情况下,行间公式 $$…$$也可以用/[…/]表示
但对于这种人工编号的公式,不能用/[../]代替$$…$$.
单个公式换行
单个公式很长的时候需要换行,但仅允许生成一个编号时,可以用split命令
/begin{equation}
/begin{split}
a &= b //
c &= d
/end{split}
/end{equation}
注意:每行只允许出现一个“&”,使用split命令后,编号会 上下居中 显示。
(3)多行的独立公式,可以用如下方式撰写:
begin{eqnarray}
左 & 中 & 右//
左 & 中 & 右//
…
/end{eqnarray}
比如:
\begin{eqnarray*}
x^n+y^n & = & z^n \\
x+y & = & z
\end{eqnarray*}
该环境对多行公式每行都加自动编号,如果相对某行不加编号,可在换行之前添加命令/nonumber。
其中两个&号之间的是公式间对齐的位置,用//隔开各行公式。将eqnarray改为eqnarray*输出的公式是没有编号。
如果要改变公式的自动编号,可以重设计数器初始值:
/setcounter{equation}{数}
下一个编号自动加1。
(4)多个公式(比如,方程组)每个公式自动编号。
1) gather环境
是下面align环境的一种特殊情形。
/begin{gather}
a &= b //
c &= d //
…
/end{gather}
>>1.如果其中某几行使用同一个编号,则需要内嵌一个split环境。
>>2.命令/notag可使当前行不编号。
2) align环境
可使几组公式并排在一起,即在同一行显示多个公式,方法是跟以前一样,使用”&”对齐。
可替代gather环境。
3) /gathered,/aligned。以上几种方程组环境,无论每个公式多小,都会占满一行。使用相应的/gathered,/aligned环境,则只占据公式的实际宽度,整体作为一个特大的符号与其他符号一同处理。
这个结构还可以添加位置参数,以决定与其他符号的竖直对齐方式(b,t)。而且这种环境不再具有自动编号功能。
例如:
/begin{equation}
/left.
/begin{aligned}[b]
a &= b+c //
d &= b+c
/end{aligned}
/right/}
/Longrightarrow
/qquad a=d
/end{equation}