302010

今天收到邮件通知说提交的CIKM的论文有问题,提示如下:

Error Font Helvetica-Bold is not embedded (86x)
Error Font Helvetica is not embedded (404x)
Error Font Times-Bold is not embedded (246x)
Error Font Times-Roman is not embedded (427x)
Error Font Times-Italic is not embedded (125x)

我安装的是CTEX套装,生成pdf是按latex->bib->latex->latex->div2ps->ps2pdf的步骤。

去网上找了将近半天,众说纷纭。根据我自己的判断应该是Type1字体没有嵌入,然后被TrueTpye字体给替换了。具体说就是上面最后两步出问题了。网上的解决方案很多。我试了试都不管用,至少是不完全有用。折腾了半天,终于把问题解决了,我把我的解决方案贴出来,希望遇到同样问题的同学能看到。

首先是div2ps这步,必须确保type1字体被嵌入。我是按http://www.acm.org/sigs/publications/sigfaq#a14里的提示命令操作的:

dvips -t letter -Pdownload35 -o <file>.ps <file>.dvi

acm给的解释是This option 'forces' the embedding of all the fonts.
(Note: This option is not available in all dvips versions.)

有兴趣大家可以打开CTEXMiKTeXmiktexconfigupdmap.cfg看下,其实-Pdownload35是把下面的dvipsDownloadBase3临时设置成了true。

# dvipsDownloadBase35
#
# Should dvips (by default) download the standard 35 LaserWriter fonts
# with the document (then set dvipsDownloadBase35 true) or should these
# fonts be used from the ps interpreter / printer?
# Whatever the default is, the user can override it by specifying
# dvips -Pdownload35 … resp. dvips -Pbuiltin35 … to either download
# the LW35 fonts resp. use the build-in fonts.
#
# Valid settings are true / false:
dvipsDownloadBase35 false

当然上面的命令是不能点WinEdt上的dvi->ps按钮实现的,必须切换到命令行下执行。

接下来就是ps2pdf这一步了。网上说CTEX是集成Type1字体的。但是我点ps->pdf按钮生成的pdf还是不行。由于我对latex配置不熟,找不到在那配置,而且我也怕改了配置后改不回来,以后会导致未知错误。于是我按照网上说的用Acrobat Distiller把ps生成pdf。我的Acrobat Distiller版本是9,是装Adobe Acrobat 9 Pro自带的。其实用此方法的话说需要的字库就和CTEX没关系了。现在要做的就是在Windows上安装说需要的Type1字库了。我的pdf缺少Type1的Times字库和Helvetica字库。大家可以按自己系统的情况安装。我提供3个地址共参考:

http://www.ams.org/publications/amsfonts.html

http://www.aifont.com/post/?p=15

http://www.artec.cn/resource/font/2198-font.html

安装完字库用Acrobat Distiller把ps转化成pdf就行了。

LaTeX 的对参考文献的处理

Posted by 冰河 at 21:34 No Responses » 38,753 Views
252010
    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. 需要引用文献的时候,在正文里加入:

ibliographystyle{ieeetr}
ibliography{myreference}

    就可以用 cite{} 来引用文献库中的论文了,如 cite{MartinDSP00}。上面第一行是
控制文献显示格式的,这个后面再讲。此时,myreference.bib 文件在正文 tex 文件的同
一目录下,以保证 LaTeX 可以找到该 bib 文件。

3. 编译正文之后,生成 aux 文件,然后用 bibtex 在当前目录生成 bbl 文件,再编译正
文两次,完整的 dvi 就生成了。这样,LaTeX 保证了所有用 cite 引用到的文献都已被
列出,并且自动编号。同时,如果没有用
ocite 命令,LaTeX 还保证所有列出的参考文
献都在正文中得到了引用。

4. 关于 bib 文件
    前面提到 bib 文件的维护问题。我一般不对里面的文献排序,如果文献比较多,需要
查找的话,可以通过查询关键字来实现。bib 文件把 @ 所定义的 entry 之外的所有东西
看作是注释。比如在上面 @article 的例子里,如果我在大括号之外写些东西的话,bibt
ex 是不会关心的,就当它不存在。所以我就把文献的关键字写在这里,将来通过搜索关键
字来查找某些文献。其实也可以搞一个临时的 LaTeX 文件,使用
ocite{*} 命令,然后
编译成 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 A
utomatic 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 文件来控制的。而使用哪种 b
st 格式,可通过 bibliographystyle 命令控制。LaTeX 默认提供了这么几种格式,如:
plain、alpha、unsrt等。具体意义见相关文档,这些 bst 在 texmfibtexstase 可
被找到。
    bst 控制的格式非常细致,除了上面讲过的排序方式等,还有:作者名字是否用缩写,
作者名字放在文献的起始还是结束,文章 title 要不要大小写(即 "Speaker Verificat
ion Using ..." 还是 "Speaker verification using "),title 用什么区分(用不用引
号括起来,用不用斜体等),刊物名字的格式(要不要全部大写,要不要粗体,要不要斜
体,要不要括起来),等等等等。打开 bst 文件看一下就知道,绝对是想要什么形式,就
可以得到什么形式。最关键的是,在文章定稿之后,完全可以用几个命令重新定义参考文
献的格式!
   
    给个例子:采用 IEEE 给出的 bst 格式(即 ieeetr.bst),声明:

ibliographystyle{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 相应目录下,刷新文件名数据库就可以使用了。

原文链接:http://xb9he.bokee.com/6688578.html

Latex:表格制作全攻略

Posted by 冰河 at 16:29 8 Responses » 83,081 Views
212010

给出一个制作复杂表格的例子,制作表格主要用到multicolumn,multirow和cline,其中,要使用multirow,必须usepackage{multirow}

如果要制作出如下图所示的表格:

Latex表格制作全攻略

则可以通过如下的代码:

\begin{table*}

\begin{tabular}{|c|c|c|c|c|}

hline hline

multirow{2}{*}{Multi-Row} & multicolumn{2}{|c|}{Multi-Column} & multicolumn{2}{|c|}{multirow{2}{*{Multi-Row and Col}} \

cline{2-3}

& column-1 & column-2 & multicolumn{2}{|c|}{} \

hline

label-1 & label-2 & label-3 & label-4 & label-5 \

hline

end{tabular}

end{table*}

其中,multirow{2}{*}{text}的第一个参数表示行的数目,*表示由系统自动调整文字,text表示要写入的文字

multicolumn与multicolumn类似,功能是跨多列, multicolumn{2}{|c|}{text}表示跨2行,文字采用中心对齐的方式,text是要写入的文字。

multicolumn和multirow可以组合使用,跨多行多列,只需要将multirow作为multicolumn的text即可。

最后,cline用于画横线 cline{i-j}表示从第i列画到第j列。

hline画一整条横线。

multicolumn使用比较简单,因为latex的表格本来就是按行组织的。下面附上multirow的使用文档:

http://www.ctex.org/documents/packages/table/multirow.htm

132010

Figures

To insert a figure in a LaTeX document, you write lines like this:

\begin{figure}
    \centering
    \includegraphics[width=3.0in]{imagefile1}
    \caption{Caption for figure}
    \label{fig:sample_figure}
\end{figure}

The whole block is enclosed between \begin{figure} and \end{figure}. The command \includegraphics does the actual insertion of the image. Here the file name of the inserted image is imagefile1. If you are using LaTeX to process your document, .eps extension is appended automatically to the file name. If you are using pdfLaTeX, it appends .pdf, .png, or .jpg when searching for the image file.

By default, figures are looked for in the current directory (the one in which your .tex file is located). If you want to specify a path for the \includegraphics command, remember to use forward slashes (/) as directory separators, not backslashes. For example, if your figures are in a sub-directory named “figures” inside the current directory, you write something like this: \includegraphics[width=3.0in]{figures/imagefile1}.

You can also specify the width of the image. The height of the figure is scaled proportionally so the image doesn’t get distorted. Specify the width as a parameter (enclosed in brackets [ ]) to the \includegraphics command. Acceptable measurement units are for example in, mm, and cm. You can make the figure’s width equal to the width of paragraph text lines by using [width=\linewidth], or, for example, three quarters of the text width by using [width=0.75\linewidth].

Here we have used a \centering command to center the figure in the column. The \caption command gives a caption for the figure. We have also added a \label, which is useful when you want to refer to the figure in your text (see References).

Remember to always keep the commands in this order: First \includegraphics, then \caption, and finally \label. This way you get figure references right and captions underneath figures. Additionally, keep the \label and \caption commands always inside the \begin{figure}\end{figure} structure.

You can specify the locations where the figure (or table) is allowed to be placed by using placement parameters. For example, to put a figure at the bottom of page, you type \begin{figure}[b]. To allow a figure to be placed only at the top of page, write \begin{figure}[t]. To allow both locations, use [tb]. Other options are described, for instance, in Chapter 9 of Online tutorials on LaTeX.

If you don’t yet know how to create EPS images for LaTeX documents, read the Creating figures tutorial.

Subfigures

If you want to divide a figure into many smaller parts, use the \subfigure command. First, you have to add this in the beginning of your .tex file:

\usepackage{subfigure}

Let’s add three small figures in place of one normal figure:

\begin{figure}
    \centering
    \subfigure[First caption]
    {
        \includegraphics[width=1.0in]{imagefile2}
        \label{fig:first_sub}
    }
    \\
    \subfigure[Second caption]
    {
        \includegraphics[width=1.0in]{imagefile2}
        \label{fig:second_sub}
    }
    \subfigure[Third caption]
    {
        \includegraphics[width=1.0in]{imagefile2}
        \label{fig:third_sub}
    }
    \caption{Common figure caption.}
    \label{fig:sample_subfigures}
\end{figure}

The result is:

Write as many \subfigure commands as you need. \subfigure takes an argument (enclosed in brackets [ ]) which specifies the caption for that subfigure. You don’t need to write the labels (a), (b), (c), etc., because LaTeX adds them automatically. Then put the \includegraphics and \label commands between { and } of the subfigure. Here we use an image file named imagefile2.eps. We have also specified a width for each image using the optional width parameter of the \includegraphics command.

Note the \\ after the first subfigure. This command creates a line break. In this case, it separates the three subfigures into two rows. Without the \\ all the three subfigures may end up in just one row. You can try the \\ also in other places and see its effect.

Finally, we put one more \caption and \label. These are for the whole three-part figure element.

Tables

A table in LaTeX may look a bit scary bunch of code at first. But you can copy and paste the basic lines that are needed. Then inserting your own text into the table is a piece of cake. Here we go:

\begin{table}
\renewcommand{\arraystretch}{1.3}
\caption{Simple table}
\label{tab:example}
\centering
\begin{tabular}{c|c}
    \hline
    Heading One  &  Heading Two\\
    \hline
    \hline

    Three   &   Four\\
    \hline

    Five    &   Six\\
    \hline
\end{tabular}
\end{table}

The result will look like this (using IEEE’s style):

Hence it’s a table with two columns and three rows. Here is how you organize the text in a table: In each table cell write the the text that you want to appear in the cell. Then type & when you want to jump to the next column. A new table row begins when you type \\. You can insert horizontal lines using the command \hline.

Here we have specified the column format like this: \begin{tabular}{c|c}. Every letter c, l, or r denotes a column and | represents a vertical line between columns. c creates a column with centered text, l is for left aligned text, and r for right aligned. Thus, c|c creates two columns with centered text and a vertical line between them.

To get double lines between columns, use || instead of single |. To get no line between columns, omit the |. More columns can be added by using more c, l, or r letters. For example, this produces four columns with no vertical lines: lccc. Now the leftmost column is left aligned and the others are centered.

You may wonder about the strange line \renewcommand{\arraystretch}{1.3}. This is needed for adjusting the white space around text in the table cells. The value 1.3 produces quite a pleasing look.

If you want to have the caption underneath the table, move the \caption and \label lines after the \end{tabular} line. Remember that the \caption command must be before \label.

Double column figures and tables

If you are writing a two column document and you would like to insert a wide figure or table that spans the whole page width, use the “starred” versions of the figure and table constructs. Like this:

\begin{figure*}
    \centering
    \includegraphics[width=\textwidth]{imagefile1}
    \caption{This is a wide figure}
    \label{fig:large}
\end{figure*}

You can use also subfigures inside figure*. An adequate width specifier for a double column figure is width=\textwidth. This makes the figure wide enough to span the whole body width (all columns) of the page.

A double column table is created in a similar way by using \begin{table*} and \end{table*}. Write the contents of the table in the usual way.

Note that double column figures and tables have some limitations. They can’t be placed at the bottom of pages. Additionally, they will not appear on the same page where they are defined. So you have to define them prior to the page on which they should appear.

Equations

Short mathematical expressions can be inserted within paragraph text by putting the math between $ signs. For example:

... angle frequency $\omega = 2\pi f$ ...

This is called an inline equation. The result is: .

In equations, the normal text symbols are written as such, for example 2 and f. Greek symbols are named for example \alpha, \beta and so on. You don’t need to remember these because in WinEdt and TeXnicCenter you can use symbol toolbars, which have buttons for Greek letters and other math symbols.

Numbered equations are separate from paragraph text and LaTeX numbers them automatically. The contents are written using the same ideas as inline equations but now we write \begin{equation} and \end{equation} instead of $ signs. For example:

\begin{equation}
    \label{eq:kinetic_energy}
    E_{k} = \frac{1}{2}mv^{2}
\end{equation}

The result is:

Here we learn some structures which are often used in equations: The \frac command creates a fraction. Write the contents of the numerator and denominator inside the curly braces. Subscripts and superscripts are created using _{} and ^{}. (If the content of the subscript or superscript is a single symbol, you can omit the curly braces like this: E_k and v^2.)

Remember that an empty text line produces a paragraph break. Thus, omit empty lines before and after your equations, unless you really need a paragraph break there. This way you can easily explain the meaning of the variables (“where m is the mass and v is…”) so that the word “where” won’t start a new paragraph and won’t become indented.

You can freely type spaces in equations. LaTeX ignores extra spaces and determines automatically where (and how wide) space is needed (for example, on both sides of the = sign). However, line breaks are not allowed. Spaces are needed also to separate LaTeX commands. For instance, if you want to print , you must type \beta A, not \betaA. The latter one won’t compile because LaTeX is looking for a command named betaA.

Occasionally spaces in equations may need some fine adjustment. For example, consider the following two equations:

Equation (1) has been created by simply typing f_{res} = 500 MHz. It seems to have several problems:

  • The unit “MHz” and the subscript “res” have an incorrect spacing between letters. This is a common problem in variable names, subscripts, and units that consist of several letters. LaTeX understands “res” as a product of variables r, e, and s. Thus it adds a small space between each multiplicand. To fix the problems, write \mathrm{res} and \mathrm{MHz} . The “mathrm” stands for math “roman” (upright) font style.
  • The unit “MHz” and the subscript “res” should be typed with upright font, not italic. The aforementioned \mathrm command fixes this problem. If you, instead, want to use italic font, replace \mathrm with \mathit.
  • In equation (1), there is hardly any space between the number and the unit. LaTeX has thought that you want to multiply 500 times “MHz” and thus it removes all spaces you write here. To force a visible space, use command \,.

Here is the final fixed content of the equation, which produces the result (2) as shown above:

f_{\mathrm{res}} = 500 \, \mathrm{MHz}

If you have problems with a long equation that is wider than the space available on the page, you can split your math on several lines like this: First put \usepackage{amsmath} in the beginning of your LaTeX file. Then use \begin{split}...\end{split}:

\begin{equation}
\label{eq:long_equation}
\begin{split}
    F &= a + b + c + d + e + f + g \\
    &+ h + i + j + k + l + m \\
    &= a + \ldots + m \\
    &= 0
\end{split}
\end{equation}

The result looks like this:

To start a new line in your equation, add \\ to the end of the line. Additionally, put an & before the signs that should be aligned in a straight vertical line. Here we have aligned the = and + symbols.

Like shown above, amsmath can often provide a LaTeX solution to more demanding math problems. See the documentation of amsmath at TeX Catalogue Online or at CTAN.

原文链接:http://www.electronics.oulu.fi/latex/examples/example_3/index.html

LaTex数学宏包汇总集锦

Posted by 冰河 at 22:19 No Responses » 32,222 Views
122010

algorithm2e

它提供一个 Algorithm2e 环境,用于在 LaTeX2e  中排版算法步骤。它将算法步骤定义为浮动体;它提供一组关键词供排版使用,关键词既可修改也可创新。

源文件

Christophe Fiorio

algorithms

它定义了 algorithmic 和 algorithm 两个环境和一组命令,可用于排版算法步骤,对其中的关键词可以采用不同的显示效果。两种环境可分别使用,也可同时使用;其中 algorithm 环境还可以处理图形之类的浮动体。

源文件 示例

Rogério Brito

amsbsy

它定义了排版黑体数学符号的命令 \boldsymbol 和 \pmb。该宏包现已经被更新的宏包 bm 所取代。

源文件

Frank Mittelbach

amscd

它定义了一个 CD 环境,适用于排版较简单的只有单向箭头的矩形交换图表。

源文件

Frank Mittelbach

amscls

它定义了 amsart、amsbook 和 amsproc 三种数学源文件类型,它们包括了美国数学学会所有出版物的样式。它还提供了一个可独立使用的定理宏包 amsthm

源文件

AMS

AMSFonts

美国数学学会根据其印刷和电子出版物以及在线资料库的样式要求,编造的一组用于排版数学出版物的数学符号字体库宏包套件,它包含有:amsfontsamssymbeufrakeucal 四个宏包。

eucal 可修改 LaTeX 的数学字体命令 \mathcal 。当加载该宏包后,使用 \mathcal 命令,调出的是欧拉书写体,而不是通常的计算机现代书写体。它还有一个 mathscr 选项,使其可与数学字体命令 \mathscr 结合使用。

eufrak 设置了哥特字体,这是一种书写或印刷字体,外观非常华丽,多见于中世纪时的神学文献。如果已加载了 amsfonts 宏包,该宏包就是多余的。

源文件

AMS

amsfonts

它定义了大写空心粗体字命令 \mathbb 和欧拉字体命令 \mathfrak 以及数学公式中各种相应的字体,如:粗数学斜体和粗希腊字母下标、求和积分等大符号下标、 欧拉数学字体、斯拉夫字体等。

大写空心粗体字一般用于表示数学和物理学中的向量或集合。

现在常用的数学字体命令及其字体样式见下表所示:

LaTeX技巧251:latex数学宏包汇总集锦

要使用其中蓝色的字体命令就要调用 amsfonts 宏包。

源文件

AMS

AMSLaTeX

美国数学学会主要有三种类型的出版物:论文、学报和书籍或专论,每一种都有详细严格的出版样式要求。

标准 LaTeX 本身就有很强的数学排版能力,但对于非常专业而复杂的数学公式和数学结构,还是需要定义一些新命令和环境来简化源文件的编辑过程。

1982年,美国数学学会根据其刊物出版要求,委托开发了用于排版数学刊物的 TeX 系统:AMSTeX,1987年又将其移植到 LaTeX,成为 AMSLaTeX。现在它已成为 LaTeX-2e 的一个数学宏包套件。

AMSLaTeX 套件包括有:amsbsyamscd、amsgen、amsmath、amsopn、ams-text、amsxtra、amsthm 、upref 和 amscls 等宏包。

AMS

amsmath

它定义了各种显示多行公式的环境和一系列排版数学公式的命令,可用以改进和提高方程式、多行上\下标等数学结构的排版效果。 例如,它提供的一条命令:\cfrac,用来排版连分数,要比标准 LaTeX 中的 \frac 命令输出效果更加美观。

该宏包还有11个选项,可以影响极限、方程和方程序号等数学式的放置,而这些选项的设置要优先于源文件中其他相关选项的设置。

当调用该宏包的同时,另外三个与之相关的宏包:amsbsy、amsopn amstext,也自动被加载了。

源文件

AMS

应用举例 源文件 AMS

amsopn

它提供命令:\DeclareMath0perator{\新函数命令}{新函数名},在导言区用来自定义类似 \sim 和 \lim 等新的算符 或函数;也可以在正文中用它提供的命令:\operatorname{函数名},自定义临时使用的函数。举例说明:

LaTeX技巧251:latex数学宏包汇总集锦 LaTeX技巧251:latex数学宏包汇总集锦

在实际排版中,大都用 amsmath 宏包替代该宏包。

源文件

Michael Downes

amssymb

宏包套件 AMSFonts 中的一个宏包,它定义了 amsfonts 宏包里 msam 和 mabm 字库中全部数学符号的命令。当调用该宏包时,amsfonts 宏包也同时被加载了。

下表为 Latex 和 AMS 所提供的数学符号及其命令,其中蓝色符号命令表示需要调用amssymb 宏包:

希腊字母:
LaTeX技巧251:latex数学宏包汇总集锦
其他字母:
LaTeX技巧251:latex数学宏包汇总集锦
各种普通符号:
LaTeX技巧251:latex数学宏包汇总集锦
二元运算符号:
LaTeX技巧251:latex数学宏包汇总集锦
量关系符号:
LaTeX技巧251:latex数学宏包汇总集锦
箭头关系符号:
LaTeX技巧251:latex数学宏包汇总集锦
其他关系符号:
LaTeX技巧251:latex数学宏包汇总集锦
累积符号:
LaTeX技巧251:latex数学宏包汇总集锦
成对界限符号:
LaTeX技巧251:latex数学宏包汇总集锦
单界限符号:
LaTeX技巧251:latex数学宏包汇总集锦
垂直箭头符号:
LaTeX技巧251:latex数学宏包汇总集锦
声调符号:
LaTeX技巧251:latex数学宏包汇总集锦
函数符号:
LaTeX技巧251:latex数学宏包汇总集锦

源文件

AMS

amstext

它定义命令 \text,可用于在数学公式中插入少量文本,并可调整上下标中文本字体的尺寸。

源文件

Frank Mittelbach

amsthm

它定义了一个 proof 环境,用来排版定理和证明,能自动在最后添加证毕符号。它还提供一个命令:\newtheorem{定理环境名}{标题}[计数器名],可自定义定理类 环境。

源文件

AMS

应用举例 源文件 Michael Downes

bm

bm 的是黑体数学符号的英文缩写,该宏包可使数学公式以粗体的方式来显示。它提供一个 \bm{数学式} 命令,在数学模式中,只要把数学符号或数学式置于大括号中就会由粗体来显示。

源文件

David Carlisle

calc

TeX 中的算数运算通常是由 \advance 和 \multiply 这样的底层命令来完成的,一般只用来开发新宏包,难以为普通用户所使用。

该宏包定义的几条命令增强了 LaTeX 的算术运算能力,而且非常容易理解。

它是标准 LaTeX2e 工具宏包套件之一。

源文件

Kresten Krab Thorup

delarray

编排矩阵、数组或行列式一般都采用下列方法:

LaTeX技巧251:latex数学宏包汇总集锦 LaTeX技巧251:latex数学宏包汇总集锦

左右括号必须辅以 \left 和 \right 命令,其大小才能够自动与内容匹配。如果论文中这类数学式很多,就显得非常麻烦,容易遗漏;另外,为了约束这些数学式的位置,通常要在 array 环境中添加位置选项,如 [t] 或 [b] 等,但这样会造成括号不匹配:

LaTeX技巧251:latex数学宏包汇总集锦 LaTeX技巧251:latex数学宏包汇总集锦

采用 delarray 宏包就可以解决上述问题:

LaTeX技巧251:latex数学宏包汇总集锦 LaTeX技巧251:latex数学宏包汇总集锦

源文件

David Carlisle

easybmat

它提供了一个 BMAT 环境,可编排列宽相等、或行高相等、或列宽相等且行高相等的块状矩阵,并可在矩阵的行列之间加上各种式样的界线。BMAT 环境的一个主要特点就是可以嵌套,最多可达8层;BMAT 最多可处理30行30列。

它可能会与 booktabs,array 等表格宏包冲突。

Enrico Bertolazzi

eqnarray

它将标准 LaTeX 中的 eqnarray 环境与 array 环境相结合,定义了一个新的环境:equationarray。在该环境中,公式组可以排成三列以上,在某些方面类似 amsmath 宏包提供的 align 环境。该宏包需要与 array 宏包配合使用。

源文件

Roland Winkler

exscale

它提供一套按比例伸缩的数学扩展字体。

源文件

Frank Mittelbach

举例

mathdesign

它将系统默认的数学字体重新定义,所有字符都有标准体和粗体,并附带多重圆积分,欧元等特殊符号。它有七个选项,可以影响希腊字母等某些字符的字体。

该宏包会与 amsfonts 或 mathrsfs 等数学宏包发生冲突,应避免同时使用,因为对同一命令各有不同的定义。

Paul Pichaureau

示例

mathenv

它提供了一些使用更简便、效果更优美的数学命令和环境。

在它所提供的数学环境中都有一个标签选项,可用于交叉引用;这些环境都有带*号的形式,所不同的是它们不产生公式序号。其中:MultiLine 环境可以排版多行长公式、System 环境用于公式组且共用一个序号、EqSystem 环境也是用于公式组的,但每行公式各有分序号,如(1.1),(1.2)…。

它还重新定义了命令:\( 、\) 、\[ 、\] 、\{ 和 \} ,使其可以在数学模式中直接使用,无需 \left 和 \right 命令配合。

源文件

F. Bosisio

mathptmx

在标准 LaTeX 中,默认的字体族为计算机现代罗马字体;在数学环境中,大写希腊字母为直立体,小写希腊字母为倾斜体。

加载该宏包可将系统默认的字体族改为 Adobe Times,并将文稿中的数学字符转成虚拟mathptmx 字体。它只有一个 slantedGreek 选项,使用此选项,数学模式中的大写希腊字母也成为倾斜体。如需变为直立体,比如 \Gamma 改为 \upGamma 即可,而小写希腊字母则不行。它没有粗体数学字符,\boldmath 命令无效,也不推荐使用 bm 宏包,可 以用命令 \mathbf 获得粗体数学字符。

该宏包是 psnfss 宏包套件之一,它将 times 和 mathptm 两个宏包的功能合为一体。

源文件

Walter Schmidt

示例源文件

mdwmath

它提供了一个带星号的开根命令 \sqrt*,所生成的根号没有上面的横线,如 √a ,这样其中操作数的字体尺寸就不受根号的限制了;同时,它改进了标准开根命令 \sqrt,使其生成的根式更加美观;另外它还定义了几个特殊的数学符号。

源文件

Mark Wooding

ntheorem

它增强了 LaTeX 的定理类环境功能,(例如:定理、推论、定义和证明等都可以归为定理类),改进了定理类环境的页面设置;当使用 thmmarks 选项,可以自动恰当地放置定理类环境的结束标记;它还能像图形目录那样生成定理类环境目录。

当它载后,标准 LaTeX 中的 \newtheorem 命令改由该宏包控制。

它可与 theorem 宏包兼容。

源文件

Wolfgang May

subeqn

有时需要对方程式中的子方程式进行编号,以便注释和引用,但在标准 LaTeX 中则无法做到。

为解决这一问题,该宏包定义了两个环境 subequations 和 subeqnarray,可以对方程式中的子方程式进行编号,得到如(1a)、(1b)和(1c)这样的编号。 举例

该宏包可在源文件类型的 leqno 和 fleqn 选项中工作,前者把方程式的序号放在左边而不是右边,后者将方程式缩排左对齐而不是居中;它不能与 subeqnarray 宏包兼容。

源文件

Donald Arseneau

subeqnarray

它提供了 subeqnarray 和 subeqnarray*两个环境,使用其定义的 \slabel 命令,可对多行公式组中的每一行进行编号,如给出 (1a),(1b), (1c)等。

源文件

Johannes L. Braams

举例

theorem

它是 LaTeX 工具宏包套件之一,通过定义不同的 theorem 环境,可自己设置定理、定义和引理等的式样。

源文件

Frank Mittelbach

tmmaths

它支持使用 Times 字族和 TM-Math 字族排版。当该宏包加载后,默认字体为 Adobe
Times;可选用 MicroPress TM-Math 字体编排数学公式;\mathbold 命令可以排印斜粗体字母,包括希腊字母。

源文件

Walter Schmidt

vector

在标准 LaTeX 中,向量可以在数学模式里用 \vec 命令生成,例如:$\vec{a}$ ;但在实际应用中,向量符号常为粗罗马字体或带有下划线。

vector 宏包定义了一组新命令,用于排版各种式样的向量符号,包括粗体的、带下划线的以及戴帽子的单位向量等,并可成组横\竖排列,成为隐式或显式向量序列。向量符号的字体可以是 boldface roman 或 sans serif ;下划线可以是直线或波浪线。

源文件

Nick Efford

yhmath

它提供了一组大型数学分界符,其中有花括号、圆括号、方括号、三角括号和重音号等;另外还提供很多大尺寸数学符号,如根号、圆积分号和求和号等。这些符号都存于 cmex10  字库中。

源文件

Yannis Haralambousy

图例

youngtab

它可以用于排版群论中的 Young-Tableaux 方格式。该宏包定义了两个命令:\yng 和 \young,前者能生成空方格,后者可在方格中标注,这两个命令都很简单以免拼写错误。它附有四个选项,可对方格式的样式产生影响。

源文件

Volker Börchers

参考链接:http://zzg34b.w3.c361.com/package/maths-2.htm

162010

我有两年多的LaTeX使用经验,用它排实验报告、毕业论文和书籍(半本);Word的使用时间长一些,但真正用好也不过是近一两年的事。这两个软件我都 用得很熟,我想我可以一边谈谈读《Word排版艺术》的感受,一边把Word和LaTeX这两个排版软件做一对比。(考虑到本文可能会以纯文本方式传播, 我只好把LaTeX写成这样了L,另外,文本所称的LaTeX是指LaTeX+CJK中文宏包)

Word 和 LaTeX 都是排版软件,但在我看来,却都不是专业排版软件——尽管用它们可以排出非常专业的效果。我的观点是,所谓专业排版,是指为专门为别人排版。(好比给别人 开车的叫司机,自己驾车代步的则不算)。例如杂志社的美工用 PageMaker 或者 QuarkXpress 排版杂志或海报,或者电路板厂的排线工人用 PowerPCB 或 Allegro 为客户排布印刷电路板,或者半导体厂的排线工人为客户排布集成电路的内部连线。这种专业工作往往只关心形式(排版效果),不关心内容(半导体厂的排线工作 常常不知道自己排布的芯片是做什么用的J)。而 Word 和 LaTeX 设计来都是给作者用的,作者(特别是技术作者)既要关心内容取舍,也要关心版面安排,以求最好地表达自己的想法,利于读者领会吸收。(注:尽管也有人使用 Word或LaTeX专为别人排版,但这毕竟不是这两款软件的设计初衷。)侯捷先生在不同的场合多次提到“作者应该自己排版”这一观点,我非常赞同。国外 很多著名的技术作家如Knuth、Tanenbaum、Stevens等人的书都是自己排版的。

鉴于Word和LaTeX都能排出专业印刷品(书刊、论文),我习惯把它们称为“半专业”排版软件。

LaTeX是基于TeX的一套宏包(macro packages),而TeX是Knuth教授开发的排版系统。在《The TeX Book》一书的前言中,Knuth用一句话概括了TeX的功能:”(TeX is) a new typesetting system intended for the creation of beautiful books — and especially for books that contain a lot of mathematics.” LaTeX在TeX的基础上大大改善了易用性,也就是说,LaTeX能排成什么样,只用TeX也能排成那样,不过LaTeX用起来方便得多。

或者举一个类比,TeX的排版指令(primitives,原语)有大约300条,这些指令好比汇编语言,直接用汇编语言写程序是很繁琐的。Knuth在设计的时候充分考虑了可扩展性,他自己就示范为TeX写了一套扩展宏包,称为plain TeX,随TeX发布。plain TeX宏包提供了大约600条命令,这些命令都是宏定义(macros)。plain TeX宏包的600条命令加上TeX的300条原语,共有900条左右的控制语句,这可比作“宏汇编”J。我们说Knuth的书用TeX排版,实际上指的是用plain TeX宏包排版。Plain TeX当然比裸的TeX要好用,但用起来还是很繁琐。而LaTeX为TeX指令提供了更高层的封装,易用性大为增强,可比作C++语言J。(实际上,LaTeX不是基于plain TeX宏包而是直接基于裸的TeX。)

在细部(字号、行距、断字、断行、公式)方面,TeX和LaTeX几本无区别,而从全局角度(章、节、交叉引用、索引、参考文献、目录)看,LaTeX的 自动化程度高得多。LaTeX提供有文档模板(article、book、report),以这些模板为基础,很容易做出符合自己排版风格的模板,继而排 出风格相近的一系列书籍。LaTeX的常用控制语句大约有一二十条,不难记,很好用。

Word是一款办公/文字处理软件,非常易用。但“好用”不意味着“用好”,有多少人被本不复杂的版面安排搞得焦头烂额?如果用Word排十来页的文章报 告,是不用看任何Word书籍的,任何问题都可以暴力解决J。不过,如果想充分发挥Word的作用,为文章(书籍)的写作过程带来便利,《Word排版艺 术》是很好(惟一?)的选择。

比较排版软件,一是要看它能做什么,二是看使用是否方便。

从基本的排版功能上看,Word和LaTeX相差不大:页面设置、纸张大小、版心尺寸、字型字号、行距段距、段首缩进、居中对齐、页眉页脚、页码编排、脚 注尾注、多级项目编号、章节自动编号、目录自动生成、交叉引用、生成索引等等这些功能二者都差不多。LaTeX在管理参考文献方面要强一些,另外 LaTeX可以很方便地做“边注(margin note)”。LaTeX和Word都能做图文混排,由于Word是所见即所得,在调整图形的位置及大小时要方便一些。以上这些功能对作者来说是够用了。

用LaTeX排版的感觉就好像用文本编辑器写HTML文件(或者只用文本编辑器写GUI程序),一方面你可以精确地控制每个细节和总体结构,另一方面在排 图形表格较多的文档时明显不如可视化工具方便。而用Word的感觉恰好相反,你不能直接看到数据的底层表示(用VBA可以,《Word排版艺术》一书介绍 了这方面内容),只能通过上层的鼠标键盘操作来控制文档。在Word中把一段文字设成蓝色,又把它设成红色,最后改回黑色,那么据我观察Word多半不会 聪明到去掉这些相互抵消的属性,而会留下类似HTML中<font color=blue><font color=red><font color=black>文字</font></font></font>这样的冗余标记。

LaTeX和Word都不适合处理过于复杂的版面,例如报纸、招贴画、复杂的分栏等等,毕竟那是专业排版软件的生存空间。个人感觉Word和LaTeX适合作者用来排版技术书籍和文章,而LaTeX排的版面总体上看更朴素一些,但细微之处处理得更好。

给Word添加字体不费吹灰之力,只要把字体文件拷贝到WindowsFonts就行了;为LaTeX安装新字体可是件麻烦事,不是几步就能搞定的。

Word在多人协作方面能力更强一些,例如可以追踪修订。另外Word排表格比LaTeX要方便一些。

从排版效果看,Word和LaTeX可谓各有所长。(La)TeX排数学公式的能力天下第一,Word自然是没法比。在处理英文(西文)文献 时,LaTeX知道在单词的音节之间断开分行,排出来的版面显得比Word匀称。在处理中文版面方面,Word比LaTeX体贴一些(特别是中文标点和拼 音的处理),毕竟CJK中文宏包是德国人写的。中科院张林波先生的CCT宏包对中文的支持似乎比CJK要好,不过我没有用过CCT,无法比较。

再好的排版软件也不能阻止人排出难看的版面,LaTeX不是傻瓜软件,不要指望用它就能排出好看的版面,我就见过某些数学系同学用LaTeX排的毕业论文,那叫一个烂:版面支离破碎、段落参差不齐、文字时浓时淡。

排版软件的选择是个见仁见智的问题。我不是LaTeX专家,也不是Word专家,犯不着跟自己较劲说非得用哪个软件不可,哪个顺手就用哪个,不方便就换另 一个呗。工具为人所用,人不要为工具所累。对于一般的技术文档(杂志稿件等)我一般用Word排,长文档(毕业论文)或者有数学公式的文档(某些实验报 告)用LaTeX排。请保持一个开放的心态,不做软件的拥趸。

市面上讲LaTeX的书不多,就我阅读的那几本书来说,都有点只见树木不见森林的感觉。这些书多是介绍LaTeX的功能、讲解LaTeX命令的使用,有的 会提及版面的微调,但少有能从大局着眼,介绍怎样能系统地排出好看的版面,达到“正式出版物”的水平。我自己倒是摸索出一些经验,后面会提到。

市面上大多数Word书籍也一样,举个例子来说,几乎每本Word书都会告诉你怎么设字体字号,行距段距(这是最基本的操作),但往往不会告诉你普通书籍 的正文应该用多大的字,行距应该是多少,段距应该是多少。(或许这些Word书不是作者自己排的,他们自己也不是很清楚?)

侯先生这本《Word排版艺术》告诉你,据他多年排版的经验,正文可用9.5磅字(比五号字略小),字体是华康简宋(简体版,繁体版用华康明细体),行距 16磅(或18磅),段前4磅,段后8磅。这样排出来的正文很均匀美观,没有常见的那种挤成一团的感觉,可直接付印。看这样的书,目的在于吸取专家经验, 迅速提到自己的排版功力。阅读《Word排版艺术》是成为Word高手的捷径。

p.s. 我所谓“正式出版物”,是指要拿给很多人看的那种东西,例如毕业论文、印刷发行的杂志文章、书籍等等。换一种说法是,从用打印机+复印机印十几二十份到用照排机+印刷机印几千上万份,都算“正式出版物”。自己留着看的不算,打印一份交给老师的也不算。

《Word排版艺术》一书着眼于“排版”,先介绍排版基础知识,然后介绍Word的“正规军作业模式”以及侯先生自己的“版面美学观”。这是前两章的内容(这部分内容是这本书独有的),可从www.jjhou.com免费下载阅读。这可看作这本书的第一部分。

第3~8章是这本书的第二部分,具体讲解Word排版大规模文档的的正规方法。第3、4章介绍版面设置(纸张、版心、页眉页脚、页码),一句话:排版也遵循“距离带来美感”原则,设置各种距离(页边距、页眉距、段距、行距、标题距)是排出美观版面的第一步。

第5章是重点,介绍版心之内的文字编排,其中最重要的是“样式/Style”的使用。我觉得看一个人用Word用得好不好,主要就看他会不会用“样式”。 全局样式+局部微调是排出好看版面的不二法门。这一章还介绍了Word的各种自动编号功能,例如脚注的自动编号、题注的自动编号、(多级)项目列表的自动 编号、章节的自动编号等等。有了这些功能,就能不重不漏地为各种条目编号,让手工编号成为历史。

第7章讲目录(普通目录、章目录、图标目录)的自动编排,这些都需以第5章讲的“样式”为基础。第8章讲索引的自动生成,这可是书籍排版的要件。第6章 呢?第6章讲图文混排,这可是Word这种“所见即所得”排版软件的强项。LaTeX的图文混排不如Word方便,调整起来更麻烦。

第9、10两章是本书的“提高”部分,介绍怎样实现Word没有直接提供的自动化功能。个人感觉这两章适合有一点编程经验的人阅读。第11没有讲排版,而 是介绍Word电子文档和多人协作修订的用法。第12章介绍利用Acrobat生成PDF文件。这四部分“起承转合”下来,相信读者对怎样用Word排版 大型文件会有全面的了解。

整本书印刷精美,制作考究,内容丰富,既能当教材学,又能当手册查,是难得的佳作。

由于排版的知识是相通的,我相信LaTeX用户也能从《Word排版艺术》中吸取养料(特别是前5章的知识可直接套用),排出美观的版面(我自己正式如此)。

如果将来有时间,我把自己用LaTeX排书的经验总结一下,让读者在阅读《Word排版艺术》的基础上,更容易地把知识应用到LaTeX排版中去。

作者:陈硕

资料提供:电子工业出版社博文视点公司

Latex:图片及子图排版

Posted by 冰河 at 16:33 No Responses » 34,768 Views
102010

在谈插入eps之前,首先要了解常用的latex图形宏包——graphics和psfrag。

graphics 图形宏包套件主要有两个宏包:早期标准的 graphics 宏包和在其基础上扩展增强的 graphicx 宏包。它们可用以引入外部图形,旋转或缩放文字、图表等等;对不同的DVI 驱动,它们提供了对 EPS、PS、PDF、TIFF 和 JPEG 等图形格式的支持。这两个宏包的功能很相近,提供的命令名称相同,只是参数格式有所不同。目前一般都使用功能较完善的 graphicx。实际上,在调用 graphicx 时,其基础文件 graphics 也自动被加载了。

graphicx 宏包具有多种驱动程序选项,常用的有 dvips、dvipdf 和 pdftex;还有多个功能控制选项,如 draft,为草稿模式,只显示图形的边框及其名称。

graphicx 提供了一组控制命令,其中最常用的是插图命令:

includegraphics[选项]{图形名},

下表为常用选项:

选项 说明
angle 图形旋转角度,正值表示逆时针旋转
height 图形高度
width 图形宽度
scale 图形缩放因数
psfrag,在 CJK 和 CCT 等中文环境中,可用该宏包将 EPS 图形中的外文字符替换为相应的中文字符。那些不支持中文输入的绘图软件如 Gauss 等,就可用它来再处理。
因此,在插入eps图片的时候,需要首先在cls文件中插入相应的命令:RequirePackage{graphicx};如果需要在图片中插入中文注释,可以插入命令:RequirePackage{graphicx,psfrag}。
插入eps分为两种情况,一种是只有一个图,一个标题;另一种是有多个图,每个图有个子标题,然后有个总的大标题。
对于第一种情况,举例如下:

egin{figure}[!htbp]

enewcommand{captionlabeldelim}{ }
centering
includegraphics[width=6cm,height=4cm,engle=90]{eps图的名字.eps}
caption{图片标题}
end{figure}

enewcommand{captionlabeldelim}{ }命令用来定义标题的标号后面是空格,而不是“:”。
对于第二种情况,除了需要graphicx宏包,还需要加入对子标题支持的宏包subfigure。可以在cls文件中插入命令usepackage{subfigure}。参考下面的例子:

begin{figure}[!htbp]

enewcommand{captionlabeldelim}{ }
centering
subfigure[子图1]{
label{fig:subfig:a} %% label for first subfigure
includegraphics[width=3.2cm,height=3.5cm]{bian.eps}}
hspace{0.5in}
subfigure[子图2]{
label{fig:subfig:b} %% label for second subfigure
includegraphics[width=3.2cm,height=3.5cm]{jing.eps}}
hspace{0.5in}
subfigure[子图3]{
label{fig:subfig:c} %% label for second subfigure
includegraphics[width=3.2cm,height=3.5cm]{jia.eps}}
caption{大标题}
label{fig:subfig} %% label for entire figure
end{figure}

LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件.

在LaTeX文档中插入图片都是通过使用一些latex图形处理宏命令来实现的, 有很多宏命令都支持在在LaTeX文档中插入eps格式的图形文件, 主要有:
1. 用includegraphics宏命令(graphicx包):

首先需在latex文档的文件说明部分加上:

usepackage{graphicx}

然后在需要插入图片的地方引用:

includegraphics[height=高度]{图片文件名}

或者: includegraphics[width=宽度]{图片文件名}

其中的”高度”和”宽度”是指希望图片打印的高度和宽度, 必须给出单位, 可用厘米(cm)或英寸(in). 高度和宽度也可用上述格式同时给出, 这样可以改变原图的长宽比例. 上述命令中的图片文件名是指欲插入的图片文件 的文件名, 图片必需是eps格式的.

用graphicx包的includegraphics宏命令插入图片时还可以使图片旋转, 方法是:
includegraphics[height=高度][angle=旋转角度]{图片文件名}
2. 用psfig宏命令:
首先需在latex文档的文件说明部分加上:

usepackage{psfig}
然后在需要插入图片的地方引用:
psfig{figure=图片文件名,height=高度}
或者: psfig{figure=图片文件名,width=宽度}
其中的”高度”和”宽度”是指希望图片打印的高度和宽度, 必须给出单位, 可用厘米(cm)或英寸(in). 高度和宽度也可用上述格式同时给出, 这样可以改变原图的长宽比例. 上述命令中的图片文件名是指欲插入的图片文件 的文件名, 图片必需是eps格式的.
3. 用epsfig宏命令:
epsfig宏命令的使用方法和psfig完全相同, 具体方法是: 首先需在latex文档的文件说明部分加上:

usepackage{epsfig}
然后在需要插入图片的地方引用:
epsfig{figure=图片文件名,height=高度}
或者: epsfig{figure=图片文件名,width=宽度}
其中的”高度”和”宽度”是指希望图片打印的高度和宽度, 必须给出单位, 可用厘米(cm)或英寸(in). 高度和宽度也可用上述格式同时给出, 这样可以改变原图的长宽比例. 上述命令中的图片文件名是指欲插入的图片文件 的文件名, 图片必需是eps格式的.
4. 用epsf宏命令:
用epsf宏命令的使用方法是: 首先需在latex文档的文件说明部分加上:

usepackage{epsf}
然后在需要插入图片的地方引用:
epsfxsize=宽度epsffile{图片文件名}
或者: epsfysize=高度epsffile{图片文件名}
其中的”高度”和”宽度”是指希望图片打印的高度和宽度, 必须给出单位, 可用厘米(cm)或英寸(in). 高度和宽度也可用上述格式同时给出, 这样可以改变原图的长宽比例. 上述命令中的图片文件名是指欲插入的图片文件 的文件名, 图片必需是eps格式的.

LaTex:图片排版

Posted by 冰河 at 15:54 2 Responses » 23,961 Views
102010

一般支持三种格式的图片排版

%% if you use PostScript figures in your article

%% use the graphics package for simple commands

%% usepackage{graphics}

%% or use the graphicx package for more complicated commands

%% usepackage{graphicx}

%% or use the epsfig package if you prefer to use the old commands

%% usepackage{epsfig}

eps格式图片的排版举例:

首先需要在导言部分引入相关包:usepackage{epsfig}

排版效果图:

排版代码:

%Latex排版之图片排版

begin{figure*}[!htbp]

centering

psfig{file=pic/Ex4-20ga.eps,width=1.5in,origin=br,angle=-90}

psfig{file=pic/Ex4-20gb.eps,width=1.5in,origin=br,angle=-90}

%psfig{file=pic/Ex4-20gc.eps,width=1.5in,origin=br,angle=-90}

caption {Experiment result for uneven data distribution.}

label{fig:ex4}

end{figure*}

需要注意的:在论文中排版eps图片后,编译tex文件的顺序为:先运行编译TeXify ,再运行dvi2pdf 得到pdf文件。

LaTex:算法排版

Posted by 冰河 at 21:19 5 Responses » 66,417 Views
092010

排版可能需要的包:

usepackage{algorithm} //format of the algorithm

usepackage{algorithmic} //format of the algorithm

usepackage{multirow} //multirow for format of table

usepackage{amsmath}

usepackage{xcolor}

DeclareMathOperator*{argmin}{argmin} //argmin或argmax公式的排版

enewcommand{algorithmicrequire}{ extbf{Input:}} //Use Input in the format of Algorithm

enewcommand{algorithmicensure}{ extbf{Output:}} //UseOutput in the format of Algorithm

排版图片可能需要的包:

usepackage{graphics}

usepackage{graphicx}

usepackage{epsfig}

算法的排版举例:

\begin{algorithm}[htb] %算法的开始

caption{ Framework of ensemble learning for our system.} %算法的标题

label{alg:Framwork} %给算法一个标签,这样方便在文中对算法的引用

\begin{algorithmic}[1] %这个1 表示每一行都显示数字

REQUIRE ~~\ %算法的输入参数:Input

The set of positive samples for current batch, $P_n$;\

The set of unlabelled samples for current batch, $U_n$;\

Ensemble of classifiers on former batches, $E_{n-1}$;

ENSURE ~~\ %算法的输出:Output

Ensemble of classifiers on the current batch, $E_n$;

STATE Extracting the set of reliable negative and/or positive samples $T_n$ from $U_n$ with help of $P_n$; label{code:fram:extract} %算法的一个陈述,对应算法的一个步骤或公式之类的; label{ code:fram:extract }对此行的标记,方便在文中引用算法的某个步骤

STATE Training ensemble of classifiers $E$ on $T_n cup P_n$, with help of data in former batches; label{code:fram:trainbase}

STATE $E_n=E_{n-1}cup E$; label{code:fram:add}

STATE Classifying samples in $U_n-T_n$ by $E_n$; label{code:fram:classify}

STATE Deleting some weak classifiers in $E_n$ so as to keep the capacity of $E_n$; label{code:fram:select}

RETURN $E_n$; %算法的返回值

end{algorithmic}

end{algorithm}

排版效果图:

在文中对算法和算法的某个步骤的引用:Therefore, in step
ef{code:fram:extract} of algorithm
ef{alg:Framwork}, we extract $T_n$, a set of reliable negative samples

1、 For和While循环语句的排版举例

(1) 排版效果图

(2)排版代码

\begin{algorithm}[h]

caption{An example for format For & While Loop in Algorithm}

\begin{algorithmic}[1]

FOR{each $iin [1,9]$}

STATE initialize a tree $T_{i}$ with only a leaf (the root);\

STATE $T=Tigcup T_{i};$\

ENDFOR

FORALL {$c$ such that $cin RecentMBatch(E_{n-1})$} label{code:TrainBase:getc}

STATE $T=T cup PosSample(c)$; label{code:TrainBase:pos}

ENDFOR;

FOR{$i=1$; $i<n$; $i++$ }

STATE $//$ Your source here;

ENDFOR

FOR{$i=1$ to $n$}

STATE $//$ Your source here;

ENDFOR

STATE $//$ Reusing recent base classifiers. label{code:recentStart}

WHILE {$(|E_n| leq L_1 )and( D
eq phi)$}

STATE Selecting the most recent classifier $c_i$ from $D$;

STATE $D=D-c_i$;

STATE $E_n=E_n+c_i$;

ENDWHILE label{code:recentEnd}

end{algorithmic}

end{algorithm}

© 2009 - 2024 冰河的博客