2008/03/25
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中的表格
\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)管理软件
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文件头定义冲突
! Too many }'s.
该冲突可直接在文件开头加入下面5句话解决:
\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax
2008/03/19
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
首先,安装数值计算包 numpy, scipy
1. NumPy 1.04 : numpy is a new version of numarray. numpy,已替代Numeric.
http://numpy.scipy.orgsudo 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中的算法描述
它提供了各种控制流命令,可以加行号,显示对齐线,定义输入输出,而且作为浮动体,还能排版算法标题。 详情参见 algorithm2e.pdf
一个完整的algorithm2e例子
\documentclass{article}
\usepackage[linesnumbered,boxed]{algorithm2e}
\begin{document}
One example.
\begin{algorithm}\end{document}
%% \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}
-----------------------------------------------------
一个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数学公式
多行的数学公式
可以表示为: \begin{eqnarray*} \cos 2\theta & = & \cos^2 \theta - \sin^2 \theta \\ & = & 2 \cos^2 \theta - 1. \end{eqnarray*}
其中&是对其点,表示在此对齐。
*使latex不自动显示序号,如果想让latex自动标上序号,则把*去掉
矩阵 表示为: 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).\]对应于\left.
和\right.
只用与匹配,本身是不显示的,比如,要输出:] 则用 \[ \left. \frac{du}{dx} \right_{x=0}. \]
希腊字母
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
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
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)