2008/03/08

安装作图软件 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)