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


没有评论: