最近学会了使用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
===
相关链接:
Latex 使用心得
Latex参考文献技巧(Latex编辑部)
Latex参考文献FAQ
LaTeX 参考文献的处理
文献管理软件 JabRef 入门简介
Latex之Natbib中文说明
latex+bibtex+jabref