8.22.2008

Latex(引用)

最近学会了使用Latex,并且今年的First Year Report就是用Latex写的,发现了很多也许有用的小技巧,总结一下。

工具:

我现在使用的是CTex,一个号称支持中文的Latex,不过我现在还用不上中文。该软件免费可下载:http://www.ctex.org/HomePage 里面的WinEdit确实是很好用的。编译的内核是MikTex 2.4,有一点老,不过基本功能都有了。

在linux上,可以使用texmaker,用了用,还是不错的。

一些使用心得:

插入图片。在Latex中,图片是以文件的方式嵌入到文档当中,在转换为pdf或者ps文件的时候才会嵌入到文件中,否则都是单独存在的。插入图片的基本命令:

\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{file/vcrouter}
\caption{Internal structure of a VC router}\label{fig:vcrouter}
\end{figure}

\begin{figure}和\end{figure}中间是图片的命令。\centering之后的所有内容居中。 \includegraphics插入图片,width=0.6\textwidth说明图片的宽度为0.6倍页宽,文件名是 file/vcrouter,用latex编译自动搜索后缀为eps的图像,pdflatex编译自动搜索后缀为pdf的文件。\caption说明该图 片的标题,\label给出一个标签,文中则可以使用\ref{}进行连接。插入图片需要加载\usepackage{graphicx}。

插入多幅图片并包含子图的图片:

\begin{figure}[ht]
\centering \subfigure[A bundled-data channel]{
\includegraphics[width=0.30\textwidth]{file/bundleddata}\label{fig:bundleddata}}
\hspace{0.1\textwidth} \subfigure[The 4-phase bundled-data
protocol]{
\includegraphics[width=0.4\textwidth]{file/4phasebundled}\label{fig:4phasebundled}}
\caption{The 4-phase bundled-data protocol}\label{fig:4pb}
\end{figure}

这是一个两个子图水平并列的例子。在\begin{figure}后添加[ht]说明以水平table的形式排布,当然也可以使用tabular,不过麻烦一些。使用\includegraphics需要加载\usepackage{subfigure}。

公式编辑。其实可以使用公式编辑器。MathType 5.0以上,在perferences菜单里的translators选择translate to other languages,然后选择latex。之后,用公式编辑器编辑的公司可以直接用选择和复制放到latex文件当中。

如果公式需要加编号,使用\begin{equation}和\end{equation}就能自动添加编号。不过最好加载 \usepackage{amsmath}。另外,默认公式是居中的,如果需要改成靠左缩进的方式,在\documentclass[fleqn] {firstyearreport}添加这个fleqn选择参数。

参考文献最好使用bibtex管理。管理的软件可以使用Endnote,不过我用的是jabref,一个开源软件,还是很好用的。只要 写上\bibliography{file/reference},这里的file/reference说明参考文献是file /reference.bib文件,所有的参考文献就可以自动加载。关于参考文献的风格,我使用的 是\bibliographystyle{alpha},以作者的第一字母和年代为标号。但是还有很多其他的方式,可以参考这个网站:http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html

图片格式是一个很烦人的问题。最基本的图片格式是eps,尽管现在pdflatex支持pdf和jpeg,png等等,但是我还是认为eps比较好。eps是矢量图,没有图像失真。用eps转换成的pdf放大多少都没有问题,体积也很小。

但是,支持eps的软件并不多。在windows上,我们最习惯的是Visio画图,但是visio对eps基本上没有支持。网上有很多将visio的图转化成eps的图的方法,但是很多都很麻烦。我现在终于找到了一种比较好的方式。

首先安装一个postscript的虚拟打印机,http://www.adobe.com/support/downloads/detail.jsp?ftpID=1502。然后用visio将图片用postscript打成prn或者ps文件。用CTex自带的GSview打开该文件(没有也没关系,下一个:http://pages.cs.wisc.edu/~ghost/),file菜单中有一个ps to eps,哈哈,自动转换边界,就变成eps文件了,而且是矢量的。

还有一个问题,pdflatex偏偏是不支持eps文件,默认是pdf文件。使用pdflatex时,如果没有pdf文件会报错。有人说使 用\usepackage{epstopdf}可以解决该问题,eps文件会自动在编译时变为pdf文件,但是在windows上的使用结果很糟 糕,eps文件没有自动转换边界,按A4打印,结果很难看。

其实加载\usepackage{epstopdf},就是使用epstopdf命令转换eps文件。但是在windows系统中的 epstopdf命令好像不能自动转换边界,但是linux系统上的epstopdf是好的。所以我建议使用linux系统上的epstopdf命令转 化,是会自动转化边界的。

不过大批的文件一个一个去手动转化还是很麻烦,我就写了一个makefile文件,假设所有的eps文件都在一个文件夹下,那么make all一下,就能自动转化为pdf文件。知道我在说什么吧,呵呵。Makefile的内容如下:

clean:
rm -f *.pdf

eps_file = $(wildcard *.eps)

pdf_file = $(eps_file:%.eps=%.pdf)

$(pdf_file): %.pdf : %.eps
epstopdf $<

all: $(pdf_file)

show:
echo $(pdf_file)

伪代码。伪代码有时候还是要用的,对于复杂的算法,直接写伪代码有时候更容易懂。关于伪代码有一个包algorithms,需要加 载\usepackage{algorithm}和\usepackage{algorithmic},具体用法可以直接看他的帮助,在下载的压缩包中的 doc目录下。下载路径:http://www.ctan.org/tex-archive/help/Catalogue/entries/algorithms.html 忘了说了,所有Latex相关的文件找不到,或者需要最新版,请查询www.ctan.org.

附录。需要插入附录的话,下面的命令会很有用

\appendix
\appendixpage
\addappheadtotoc

\appendix说明之后的内容为附录,\appendixpage将添加一个专门的附录页,\addappheadtotoc将附录添 加到目录当中,需要加载\usepackage{appendix}。不过,一旦附录开始,将不能转回正文。另一种方式可以使用 \begin{appendices}和\end{appendices}在正文中添加附录,参看http://www.tex.ac.uk/cgi-bin/texfaq2html?label=appendix

关于文档中的引用链接和生成pdf的链接目录,只能使用pdflatex。方法是加载\usepackage{hyperref},所有链接自动生成。

关于所有的latex相关的命令,有一本手册(书)http://tobi.oetiker.ch/lshort/lshort.pdf ,好像有中文的翻译版本 http://net.ytu.edu.cn/share/%D7%CA%C1%CF/lshort-cn.pdf

没有评论: