2008/03/25

latex中如何添加附录,术语,符号

没有评论:
1. latex中怎样加附录

在开头加入
\usepackage[page,title,titletoc,header]{appendix}


在末尾加入
%%%%%%%%% Appendices
\begin{appendices}
\input{appa}
\input{appb}
\end{appendices}

%\appendix
%\include{appa} % doc for gps+cell scheme
%\include{appb} % tables for GPS



2. add glossary 创建术语表

\usepackage{glossary}
\makeglossary
\storeglosentry{pdf}{name=pdf, description=probability density function}
%%% storeglosentry必须放在引用的前面

\begin{document}
... \gls{pdf} is named ...

\printglossary
\addcontentsline{toc}{chapter}{Glossary}

\end{document}

完整的编译过程 How to generate PDF:

* use latex to generate PDF once. An *.ist file as well as a glossary file (*.glo) are generated. The glossary-file contains all the glossary entries found in the document in plain text.

* Next you type the following command in the command-line:

makeindex -s mydoc.ist -t mydoc.glg -o mydoc.gls mydoc.glo

generating the two files with the extensions *.gls and *.glg.

* You now need to re-generate the PDF, using latex.



3. add notations 创建符号表

\usepackage{nomencl}
\makenomenclature

...
...

\nomenclature{$\mathbb{R}^2$}{two-dimensional space}
\addcontentsline{toc}{chapter}{List of Notations}
\printnomenclature

完整编译过程为:
* latex
* makeindex mydoc.nlo -s nomencl.ist -o mydoc.nls
* latex
源文件在第一次编译后,自动生成一个同名术语条目文件.nlo,运行 makeindex 工具程序和术语样式文件 nomencl.ist 对其编译,再生成一个同名术语排序文件.nls,当再次编译源文件时,\printnomenclature 命令将被这个文件的内容所取代。


refer to:
http://texblog.wordpress.com/2007/11/01/glossary-in-latex/

http://zzg34b.w3.c361.com/package/note-2.htm

2008/03/24

latex中的表格

没有评论:
\begin{table}[h]

\small % change the font size

\begin{tabular*}{1.0\textwidth}{ lll }
%\begin{tabular} {lll}
%\begin{tabular*}{0.75\textwidth}{ @{\extracolsep{\fill}} lll}

\hline
Name & Example Data & Description \\
\hline

Sentence Identifier & \$GPGGA & GPS Fix Data \\
Time & 031145.999 & 03:11:45.999 UTC \\
Latitude & 0120.3055, N & 1 degree 20.3055 minutes North \\
Longitude & 10346.6611, E & 103 degree 46.6611 minutes East \\
Fix Quality &1& Data is from a GPS fix \\
Number of Satellites &05& 5 Satellites are in view \\
Horizontal Dilution of Precision &00.0& Relative accuracy of horizontal position \\
Altitude &163.3, M& 163.3 meters above mean sea level \\
Height above WGS84 ellipsoid & 156.2, M& 156.2 meters \\
Time since last DGPS update &blank& No last update \\
DGPS reference station id &blank& No station id \\
Checksum &*6F& Checksum for transmission errors \\

\hline
\end{tabular*}
\end{table}

2008/03/22

latex 文献(bib)管理软件

没有评论:
Kbibtex (首选)
Ubuntu下bib 文件管理。在kile -> settings -> Tools->build中 view bib file by kbibtex.
安装 Applications->add/remove 或者 sudo apt-get install kbibtex

JabRef
一个用java写的文献管理器。可在ubuntu menu: Applications->add/remove下直接安装,但是restricted software (not open source)。或下载从
http://jabref.sourceforge.net/index.php

Referencer
一个GNOME 应用程序,它支持最终生成 BibTeX 格式的文献文件。 主要功能包括:
* 可自动检索元数据
* 智能化的 Web 链接处理方式
* 支持从 BibTeX、Reference Manager、EndNote 等软件导入文献文件
* 支持 Tagging
Referencer 的最新版本为 1.0.2,有源码包和 deb 包可用。

Bibus
BiBus基于Python,Windows和Linux版本都有,Ubuntu下安装Bibus只要敲 sudo apt-get install bibus,就OK(JabRef同理)。
第一次使用前要选择数据库,MySQL或SQLite任选其一。


Note:
windows下有EndNote, Biblioscape, NoteExpress,Reference Manager,ProCite.
在线版或者以浏览器插件形式存在的有EndNote Web和Zotero.

2008/03/21

latex文件头定义冲突

没有评论:
在latex中使用ACM proceedings格式文件(acm_proc_article-sp.cls)时,如果用到了algorithm2e的包,编译时会出现:
! Too many }'s.

该冲突可直接在文件开头加入下面5句话解决:

\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax

2008/03/19

latex的图片排版: subfigure

没有评论:
目的: 使用latex的subfigure并排放置两张图.

注意要使用宏包\usepackage{graphicx}和\usepackage{subfigure}

\begin{figure} \centering
\subfigure[figure 1 title.] { \label{fig:a}
\includegraphics[width=0.8\columnwidth]{fig1.eps}
}
\subfigure[figure 2 title.] { \label{fig:b}
\includegraphics[width=0.8\columnwidth]{fig2.eps}
}
\caption{ general title. }
\label{fig}
\end{figure}

Note:
如果前图漏掉 \caption{},后图的编号可能不会从(a)算起。改变编号用
\setcounter{subfigure}{0};
引用子编号\subref{fig:subfig};
改变间距用 \vspace{.3in} 和\hspace{.1in},置于两subfigure间.

2008/03/08

利用Python绘制论文图片: Gnuplot,pylab

没有评论:
python 生成 数据,gnuplot/pylab 画图, 嵌入到latex。 这里:python 调用 gnuplot 画图,set output 到 png or latex.

首先,安装数值计算包 numpy, scipy

1. NumPy 1.04 : numpy is a new version of numarray. numpy,已替代Numeric.
http://numpy.scipy.org

sudo apt-get install python-numpy

import numpy

2. SciPy library depends on NumPy

install scipy: (only for optimized package using LPAS, since numpy contains it.)
www.scipy.org


然后,安装 gnuplot 或者 pylab

安装PyLab: plotting with the pylab module from matplotlib, depending on numpy. free from: http://matplotlib.sourceforge.net/

install:
sudo apt-get install python-matplotlib
import math
import pylab # a new name of matplotlib


安装python-gnuplot module
(by Michael haggerty http://gnuplot-py.sourceforge.net/)

sudo apt-get install python-gnuplot


参考书 python scripting for computational science.pdf




Python-Gnuplot 1.7 interface

没有评论:

all python module files are located under ./build/lib/Gnuplot
demo.py
Gnuplot.py
PlotItems.py

Interface intrdocution:
PlotItems.Data()

if want to redraw, can use replot()
gp.plot(p1)
gp.replot(p2)

or add all into one itemlist, then plot()
gp._add_to_queue( (p1,p2,p3) )
gp.replot()

一些 tricks:

如果要在一个page上画多副图,可以
======================================
set multiplot ;会抹掉前面的图
plot ...

set parametric ;参数画图
plot [0:2*pi] cos(t),sin(t)
unset parametric ;恢复

plot ... ;标题会和第一条标题重叠

==========
如果不用set multiplot,可以 plot, replot,replot...

Gnuplot两种绘图模式:multiplot

没有评论:

在 gnuplot> 模式下,
plot 命令会冲掉前面的图,而
replot 会在原图上画,并且顺序排列图标志文字

在multiplot>模式下,
plot和replot都不会冲掉前面的图,但
plot 的标志文字会和前面的覆盖
replot的标志文字不会和前面的覆盖,顺序排列

但是参数画图不能用replot, 后面也不能接其他replot。
例如:
set parametric
plot [0:2*pi] cos(t), sin(t) notitle
unset parametric

所以如果目的是多图重叠绘制,并且要用到参数绘图,建议方案是:

* 使用multiplot模式,
* 非参数绘图用 replot
* 参数绘图用 set, plot, unset。缺点是参数绘图的图标文字会重叠,但设成title="" 也可接受。

279 unset multiplot # or else cannot set term to ps
280 set term postscript
281 set output "sample.ps"
282 set multiplot

283 plot x # no previous plot
284 plot x+2

285 set parametric
286 plot [0:2*pi] cos(t), sin(t) notitle
287 unset parametric

288 plot x+3

289 history

Gnuplot支持图片格式,保存,及插入到latex

没有评论:

在文件中置入 gnuplot 绘制的图形

目前支持格式 postscript(*.ps), enhanced postscript(*.eps), x11(screen)

set terminal postscript eps color lw 1 “Helvetica” 20
如果想让线条粗些,可以修改 lw 后面的 1
然后再加上一句这个来设置输出文件:
set output ‘sample.eps’

所有终端在能力上都不相同。其中的一些(如 LaTeX)可能不支持文本的旋转,所以如果您像我们前面那样设置 ylabel,在不同的终端中可能显示不一样。换句话说,您可以在 LaTeX 的特定终端中使用 LaTex 命令。例如, set ylabel "$sin(\\theta)$"(注意我们使用两个反斜杠产生一个 LaTex 所需的反斜杠 —— gnuplot 在将双引号中所括的字符串传送到终端驱动程序之前,先对其进行反斜杠处理)。现在,您可以使用 \input{output.tex} 将输出文件包含在 LaTeX 文件中。要在 PostScript 终端中获得相同的结果,使用相应的 PostScript 命令: {/Symbol q} 。在 enhanced PostScript 和 LaTeX 中,您可以使用表示法 x^{superscript}和 x_{subscript} 得到上标文字。还要注意缩写的终端和输出命令:

eps 驱动程序的能力set term post enh
# enhanced PostScript, essentially PostScript
# with bounding boxes
set out 'gplt.eps'
set xlabel '{/Symbol q_1}
set ylabel 'sin^2({/Symbol q_1})'
plot sin(x)**2

控制比例和长宽比

默认情况下,gnuplot 对 x 轴和 y 轴都使用比例系数 1,但是它对控制图形的长宽比(y 轴长度与 x 轴长度的比率)不起作用。终端驱动程序使用终端的默认长宽比。比例系数、长宽比或者两者都可以使用 set size 命令指定,例如:

# square is synonymous to an aspect ratio of 1;
# scale y-axis by 2, retain x-axis size
set size ratio square 1,2

gnuplot 使用给定的长宽比能否成功绘制图可能受到终端能力的限制。 set size 也是与 multiplot 命令一起使用才有用,multiplot 命令用于在同一输出屏幕或文件中生成多个图。

安装作图软件 gnuplot

没有评论:

如果 sudo apt-get install gnuplot 不行则从 www.gnuplot.info 下载 版本 4。2。0
然后解压缩,在root权限下执行
./configure
(may prompt to install "texinfo" package in advance)
make
make check # test
make install #install

注意: 如果 ./configure 失败,需要安装基本编程环境:
sudo apt-get install build-essential # for gcc 编译

sudo apt-get install xorg-dev #for "set term x11" 如果设置 x11终端失败

安装完毕后,在命令行下运行:
$ gnuplot
就进入了gnuplot
系统出现:
gnuplot>
画个最简单的吧,sin(x)
在提示符下面输入:
gnuplot> plot [-3.14:3.14] sin(x)

一般情况下使用gnuplot都是科学绘图,因此很多都是放在文章里面。一般优秀的科技文献都是用latex来编写的,所以gnuplot提供了直 接输出 tex文件的功能,只需要把output设置为latex就可以了。下面来看一个例子,就把上面的正弦曲线插入到你的文章中。在命令行下输入:
gnuplot> set terminal latex
set output "sin.tex"
plot [-3.14:3.14] sin(x)
那么程序自动生成了一个tex文件,其包含一系列代码,都是绘图用的,可以用写字板打开,里面都是一些指令,你完全可以忽略掉。你可以把这个文件直接插入你的文章中,例如
\begin{figure}
\begin{center}
\input{sin.tex}
\end{center}
\end{figure}


奇怪我安装的gnuplot不支持png, jpeg terminals,只有 ps图像格式。没办法,只好安装了imagemagick好使用convert命令

sudo apt-get install imagemagick

convert sample.ps sample.png

convert -rotate 90 sample.ps sample.png #图像旋转90度

2008/03/07

latex文件与图片转换

没有评论:

Latex 支持:
* latex, dvipdfmx: tex文件只能包含 eps, ps 图片。如是ps图片可能要指定图片尺寸
* pdflatex: tex文件只能包含 pdf, jpg, png图片

插入的外部图,可分点阵图和矢量图。 照片是点阵图, 如 jpg, png格式。 而示意图和数据图最好是矢量图,用 eps 和 pdf 格式. 矢量图的好处是,即使把文章中的图放大,线条仍然分明。

建议使用 latex + dvipdfmx , 图片用EPS. 因为科技论文一般要求提供EPS格式的图形,大多数的作图软件都能生成EPS格式图形且一般都是矢量形式。 Tex排版软件对EPS格式的支持最好。 为照顾jpg图片,也可用 pdflatex, pdf (示意图和数据图), jpg(照片) 输出。

这样写文本, latex, pdflatex会各自找所需的图片文件。

\usepackage{graphicx}.
\includegraphics{figure} %% no extension.
编译命令:
latex filename.tex
dvips filename.dvi
dvipdfm filename.dvi
dvipdfmx filename.dvi (ubuntu, kile下要sudo apt-get install dvipdfmx)
dvi2pdf filename.dvi
pdflatex filename.tex

转换图片:

epstopdf figure.eps
convert figure.ps figure.png # keep both files
jpeg2ps figure.jpeg



注:

PostScript打印输出默认的文件格式是prn,其实就是ps文件,把后缀该为ps即可。这个ps文件还不是标准的EPS格式,它的图形周围还有很多空白。所以还需要通过PS2EPS,输出成标准的EPS图形。如果你在文章中插入EPS图形时出现大片空白,或者文字跳动等怪异情况,则就需要考虑重新计算图形边界。

如果需要知道图片尺寸 bounding box,以下两方法可以告诉LaTeX:

格式: \includegraphics[parameters]{filename}
where parameters is a comma-separated list of any of the following:
bb=llx lly urx ury (bounding box),
width=h_length, height=v_length, angle=angle, scale=factor, clip=true/false, draft=true/false.

1. \includegraphics[bb=lbx lby rux ruy]{xxxx.yyy} 其中(lbx,lby), (rux,ruy)分别是图片左下角和右上角的坐标。

2. 用ebb xxxx.yyy产生xxxx.bb文件。LaTeX编译的时候会自动去寻找xxxx.bb文件。


由照片转成的EPS图片仍然是点阵式,放大后仍会失真。

dvi 可能预览不了某些图片,但生成ps 或pdf后可看。

latex+.bb 排版结果和pdflatex排版结果可能很不一样。


批量转换shell script:

#!/bin/sh
echo "pdflatex: *.png -> *.pdf"
for file in *.png
do
echo $file
convert $file `basename $file .png`.pdf
done

echo "pdflatex: *.jpg -> *.jpg"


echo "latex: *.png -> *.eps"
for file in *.png
do
echo $file
convert $file `basename $file .png`.eps
done

echo "latex: *.jpg -> *.eps"
for file in *.jpg
do
echo $file
convert $file `basename $file .jpg`.eps
done


2008/03/06

latex中的算法描述

没有评论:
Latex排版算法使用algorithm2e.sty 相较 algorithm+algorithmic 宏包为优.
它提供了各种控制流命令,可以加行号,显示对齐线,定义输入输出,而且作为浮动体,还能排版算法标题。 详情参见 algorithm2e.pdf

一个完整的algorithm2e例子
\documentclass{article}
\usepackage[linesnumbered,boxed]{algorithm2e}
\begin{document}
One example.
\begin{algorithm}
%% \SetLine
\KwIn{$r_i$ , $Backgrd(T_i)$=${T_1,T_2,\ldots,T_n}$ and similarity threshold $\theta_r$}
\KwOut{$con(r_i)$}
$con(r_i)= \Phi$\;
\For{$j=1;j \le n;j \ne i$}
{
float $maxSim=0$\;
$r^{maxSim}=null$\;
\While{not end of $T_j$}
{
compute Jaro($r_i,r_m$)($r_m \in T_j$)\;
\If{$(Jaro(r_i,r_m) \ge \theta _r) \wedge ((Jaro(r_i,r_m) \ge r^{maxSim}) $}
{
replace $r^maxSim$ with $r_m$\;
}
}
$con(r_i)=con(r_i) \cup {r^{maxSim}}$\;
}
return $con(r_i)$\;
\caption{identifyRowContext}
\label{algo:1}
\end{algorithm}
\end{document}

-----------------------------------------------------
一个algorithmic 的例子
\usepackage{algorithmic,algorithm}

\begin{algorithm}
\caption{MED approximation. } \label{algo_minball}
\begin{algorithmic}[1]
\STATE choose two points $ x,y $ randomly from $P$, and
construct a disk $B(c,r)$ whose center $c = \frac{x+y}{2}$
and radius $r = \frac{\|x-y \|}{2} $.
\STATE $ P = P - \{x,y\}$;
\WHILE {$P$ is not empty}
\STATE choose a point $w \in P$.
\IF { $B(c,r)$ does not cover $w$ }
\STATE $ r = \frac{r + \| w-c \| }{2} $,
\STATE $ c = c + \frac{w-c}{ \|w-c\| } r $, where $r$ is the updated.
\ENDIF
\STATE $ P = P - \{ w \} $.
\ENDWHILE
\STATE return $B(c,r)$
\end{algorithmic}
\end{algorithm}

2008/03/04

latex数学公式

没有评论:
more refer to: wiki

多行的数学公式


[GIF Image]
可以表示为:
\begin{eqnarray*}
\cos 2\theta & = & \cos^2 \theta - \sin^2 \theta \\
           & = & 2 \cos^2 \theta - 1.
\end{eqnarray*}
其中&是对其点,表示在此对齐。
*使latex不自动显示序号,如果想让latex自动标上序号,则把*去掉



矩阵[GIF Image]
表示为:
The \emph{characteristic polynomial} $\chi(\lambda)$ of the
$3 \times 3$~matrix
\[ \left( \begin{array}{ccc}
a & b & c \\
d & e & f \\
g & h & i \end{array} \right)\]
is given by the formula
\[ \chi(\lambda) = \left| \begin{array}{ccc}
\lambda - a & -b & -c \\
-d & \lambda - e & -f \\
-g & -h & \lambda - i \end{array} \right|.\]

c表示向中对齐,l表示向左对齐,r表示向右对齐。

括号和分隔符
()和[ ]和|对应于自己;{}对应于\{ \}; ||对应于\|。
当要显示大号的括号或分隔符时,要对应用\left和\right,如:

\[ f(x,y,z) = 3y^2 z \left( 3 + \frac{7x+5}{1 + y^2} \right).\]对应于
[GIF Image]
\left.\right. 只用与匹配,本身是不显示的,比如,要输出:]
[GIF Image]
则用
\[ \left. \frac{du}{dx} \right_{x=0}. \]


希腊字母[GIF Image]


[GIF Image]


[GIF Image]

2008/03/01

Ubuntu: 安装 latex 排版软件

没有评论:

安装 latex 排版软件


I only install the basic tetex package.

sudo apt-get install tex-common tetex-base tetex-bin tetex-extra

Use latex sample.tex to create sample.dvi file
Use pdflatex sample.tex to create sample.pdf file

For editing, i use kile, gedit or vi. Someone says emacs is powerful, but i got used to.


Ubuntu: Xfig, TexMaker, Winefish Latex Editor, Dia diagram editor

一些关于latex编辑和office的工具软件:
Xfig
TexMaker
Winefish Latex Editor 感觉一般,界面帮助不大,不如TexMaker
Dia diagram editor
Kile 推荐


在此之前我用的是
gedit - text editor
gimp - image editor


1) KILE可能是世界上最强大的LaTeX编辑器(集成环境)了。
有很多高级功能:
自动补全latex命令
跳跃到出错地点
警告和badbox提示
代码折叠
......
但是Kile依赖kde的库,你要安装kdelib等东西来安装。

2) Texmaker 的作者原来就是kile的作者之一。功能和kile相近,但是弱了一点。没有上面提到的高级功能。


No spell checker in new kile

The spellchecker in KDE is managed via KControl. By default, it uses ispell. That's why ispell works but not aspell.
Solution 1: install ispell directly.
$sudo apt-get install ispell

Solution 2: use kcontrol to change spellchecker to aspell.
1) $ sudo apt-get install kcontrol
2) $ kcontrol
3) Select KDE Components > Spell Checker
4) Choose aspell as client (and utf-8 as encoding)