latex+bibtex+jabref

转自     http://blog.sina.com.cn/s/blog_53a8a4710100k6eh.html。



2009-11-16: 现阶段写科技论文一些工具、心得

(一直放在邮箱里,忘记post出来了,orz....已经隔了一个月 = =||| )
 
前言:
能寫的太多了,从方法论到具体细节其实很多都可以说上几句。
簡直不可能一次全部介绍完,所以这里我尽量简洁地给出一些keyword来记录点点滴滴。

工具篇:

latex+bibtex+jabref等一系列工具。在office我主要用CTeX套装,而在Linux环境下我用texlive。CTeX的好处 是,在windows下使用非常方便,安装好即可使用。另外配套的WinEdt工具已经做好了TeX、LaTeX、PDFLaTeX几种工具,非常方便编 译与运行PDF viewer。

bibtex与jabref主要是用来管理文献,我想这里需要另外一篇文章来介绍,不过搜索后发觉这篇文章几经介绍得不错了:
《bibtex现学现卖》: http://derecks.blog.sohu.com/118984444.html

另外,我希望能找到一篇总结bibtex里面各个entry作用,如article,conference, inproceedings(会议录) 等的区别;
以及reference里面排版惯例的介绍。(后来知道conference=inproceedings)
在文档 《How to Use the IEEEtran BibTeX Style》里有一点介绍,我想已经足够日常使用了。
我在附注2总结了一些重要的points。

最后, 则是利用aspell等工具,来检查你的拼写错误、语法建议等。 here 有一篇非常不错的文章。

格式篇:
因为我提交的paper主要是IEEE的,所以一般会按照它的格式进行编写。
IEEE的不同会议一般提供了LaTeX的模板(style file),其实就是双栏以及一些字体等细节方面的格式设置。
它是这样使用的:

(1) 如果是sty文件,则当成一个package使用,下面是最近的ASP-DAC‘10 会议提供的aspdac2e.sty的使用方法:
/documentclass[twocolumn,letterpaper]{article}
/usepackage[letter]{aspdac2e}

(2) 如果是cls文件,则直接使用为文档类,如下:
/documentclass[conference]{IEEETrans}

总是,效果大致是相同的。

在一开头就使用预定的格式写作论文,好处是paper被接收后,要准备camera ready version时不会改得这么痛苦,
我第一次交时就改格式改了好久,当时碰到了三个问题:
  • 包含了超链接——IEEE不允许使用
  • 包含了书签——也不允许
  • 没有内嵌所有字体——这个是最重要的,因为考虑到不同系统的PDF viewer不一定提供了你使用的字体。
在提交paper时,必须通过一个叫做 IEEE PDF eXpress 的工具的检查才能使用。这个工具提供了检测、转换等一系列服务,以生成合适格式的论文。
我还没研究透,以后可以另外写一篇总结。

当然,在论文初始提交阶段,也许可以不用那么严格。比如,一般会议要求不超过8页,那么可以先自行设置页宽等参数来放更多内容。
但是以后交final version时,势必要改。所以为了避免重复劳动,最好 一开头就严格使用一定的标准
特别是对于bibtex的item,每个entry最好都严格按照格式输入好,不然后面改起来很辛苦,经验之谈啊。

写作篇:
当一切格式均已制定好,所有工具准备就绪时,以后再写paper就方便多了。
当然,一开始总是生疏的,总要摸索多几次才能调整出自己最顺手的工作环境。
一般来说,我个人的风格是先做好实验再撰写文章,这样写起来比较得心应手,文思泉涌。
其实写这种文章都有一定的套路可循,无非是那几大环节,我这里稍微写一下经验:
- title : 我没什么很多的经验,个人觉得一个formal又不哗众取宠,不太长又不太短的title适合我风格
- abstract : 很考验一个人的总结水平。基本上是整片文章的缩影。
- introduction : 很考验一个人的写作能力, 写得好的intro会让审稿人迅速把握中心思想, 不会看得烦.
- literature review : 介绍前人工作, 似乎不宜写得太长, 否则会占去太多篇幅, 有reviewer喜欢用这个来说你的contribution少
- methodology : 主要介绍自己的contribution, 我喜欢先在这里或之前的section里总结一下, 让人明了你究竟做了什么.
  然后再展开来描述你的工作的各个细节. 这里可以分几个不同的section来写, 一般我会用单独的一个secion来分析问题. 然后1-2个section来说明算法/方法.
- experimental result : 也是很重要的一个环节,用图表来证明自己方法的效率以及比起前人工作的优越性
- conclusion : 基本上就是再说一次,我喜欢加上future work

写好后,就是跟老板的互动反馈意见了。虽然很简单,但是我很喜欢这种style。
基本上论文都是我自己写的,所以很考验人的写作能力,虽然辛苦,但是也算是一种学习过程。
然后通过老板的反馈意见修改文章时,也会发现自己的不足,就这样修改个3-5次,基本上就得到了能投的文章。
当然我还希望有peer review,可惜实验室没人有空帮我看 :(

附注1:搭建一個合适的jabref+bibtex工作环境
之前我的方法很山寨:一个paper开一个文件夹,里面放tex的src以及bibtex的.bib文件。
这样的话,不同的paper往往会使用同一个bib,管理起来很不方便(比如A paper里面的bib改了,其他也需要更新)。
现在的解决方法是:
专门用一个文件夹来装paper + .bib,要完成这个任务具体需要三个步骤:
1. 假设这个文件夹叫做allpapers,则建立一个allpapers/bibtex 文件夾,把.bib放里面
2. 设置jabref论文的搜索路径,比如我简单起见,把所有paper都塞到bibtex文件夹里,则jabref搜索路径设为当前文件夹"."即可。
3. 设置tex发行版的搜索路径(search path),比如CTeX可以设置miktex的option,在root里面加上allpapers文件夹。
(发觉miktex搜索的路径貌似只能是allpapers/bibtex,而不是allpapers本身....所以之前把.bib放在bibtex文件夾里)

设置好后,用
initexmf -vu
更新数据库,用
findtexmf xxx.bib
测试是否能正确搜索到,如果可以则会打印出文件的路径。

这么下来,论文里面要引用这个.bib只需简单地用
/bibliography{xxx}
即可。
pdflatex、bibtex会在指定的目录下面搜索对应的bib文件,再也不用一个文件夹放一个bib了!

* 更理想的管理方法是,能把paper稍微分类,这样也许可以通过指定jabref的搜索路径为上一层目录解决。
比如allpapers/{bibtex, PL, CAD, OS}这种目录结构,管理起来会方便很多。

参考:
- http://www.haptonstahl.org/latex/work_bibtex.php
- http://www.fceia.unr.edu.ar/lcc/cdrom/Instalaciones/LaTex/MiKTex/doc/ch08.html

这里有一篇 很好的 jabref 使用指南。
附注2:关于IEEETran BibTeX style以及参考文献引用规范
IEEETran BibTeX style file是用于生成符合IEEE规范的参考文献列表的BibTeX样式文件。
有很多种不同的样式,最常用的应该是IEEEtran.bst这个文件。
要使用它非常简单,只需在对应tex distro的 然后在tex src里面加入这句即可:
/biblilographystyle{IEEEtran}
/bibliography{IEEEabrv, mybibfile}

其中的IEEEabrv是一些会忆名字的缩写,以方便你后面快速引用,mybibfile是你的bibtex文件。
下面介绍一些重要的entry type(article,conference/inproceedings,book)以及一些注意事项。

1. journal article (@article)
由于example已经在document里面详细给出,这里不再赘述。
IEEE 鼓励在author里详细给出作者的名字,生成最后的reference时,bibtex会根据bst文件自动缩写姓名首字母等。
并且可以在超过一定数量的作者时,自动缩写成`et al.'
在title里面,大括号用于保持单词的大小写状态,因为bibtex会根据bst文件自动更改title里面的一些大小写。
journal的输入是一个缩写string,这样可以很方便地根据要求,在full name(IEEEfull.bib)与abbreviations之间更换。
月份的输入是三个字母的输入,这样可以使bibtex识别并自动格式化日期。

2. conference proceedings
@conference与@inproceedings是一样的,没有区别。
要注意的是,对于这种entry,IEEE把page number,volume number等放到日期的后面。

3. book
这个……没什么好说的。

4. electronic(IEEEtran.bst extension)
这是ieee bst里面的拓展。用于引用一些电子资源。
其中可以使用url域(其实是所有entry type都可以使用的)
bibtex会生成一个[online]. Available: + url的字符串以提供下载。

5. 未出版、待出版文章
使用@misc 这个类型,里面加上
note = "to be published"
来说明。
或者是在@article的year field里写上"submitted for publication"。

6. 控制开关
(具体做法请参考 原文档 。)我喜欢把CTLdash_repeated_names设为no
否则如果一个reference item后续的item作者相同,则会省略为一条横线。
估计很多人看不惯,但却是IEEE推荐的格式。
不过,在bib里面添加了
@IEEEtranBSTCTL{BSTcontrol,
  CTLdash_repeated_names  =  "no",
}
这个entry后,每次打开jabref会有warning,有点烦。

附注3: ACM要求直接给出所有bibitem,而不是使用bibtex
很简单,只需使用上述流程正常生成文件后,在得到的bbl文件里复制即可。因为bibtex的原理也是用latex来预处理bib文件得到最终的tex代码,然后再包含进tex文件重新编译的。 参考自这里 。

4月22日

Apr-22 2010: LaTeX 排版心得续(转自http://xiaoiveney.spaces.live.com/blog/cns!C5C46C7E99A3CD13!917.entry)

又写了一篇paper,继续写心得攒RP,希望能中吧~

----

- 使用
/documentclass[conference]{IEEEtran}
来直接套用IEEEtran的模板,ACM也有自己的模板(sigalt等) 

- 现在做figure一般会pdf, eps各生成一份。pdfTeX的作用是最终submit的时候用pdfTeX直接生成pdf,eps的作用是平时写的过程中可以生成dvi,然后用forward-search。
关于如何从pdf转到eps,参见以前写的一篇 文章 。

- 对表格写脚注,不能直接使用footnote,而必须把表格放在minipage里。
但是minipage里面的footnote的counter与平时的footnote的counter是分开的。因此,必须小心使用, 这里 有一个example。
另外参考mpfnmark这个宏包,可以设置mpfootnotemark
不过这里有一个没有解决的小问题,在minipage环境里面,使用footnotemark时,
如果对应的footnote counter没有被使用过,则footnotemark无效,非常奇怪。
不过也可能是我还没搞清楚究竟是mpfootnote还是footnote的问题。暂时没有深究了,因为后面用了一些其他的方法来做footnote.

- 如何在表格里使用平行的脚注。
为了节省位置,我想到了这个方法,因为一个脚注一行太浪费空间了,也很难看,特别是two column的table。如下:
        col 1    col 2
row 1   11 *      12+
row 2   21        22

* footnote one    + footnote two

如果是直接使用footnote,则+会跑到*的下面。
于是可以使用一个模拟的方法来做脚注,即把脚注内容直接写到表格里面。
为了美观,一般在实际表格数据的最后一行添加一个没有边框的空表格行,另开一行,再写几个multicolumn的表格来装脚注文字。
而对应的要标mark的地方纯粹是用footnotemark标注一下而已。

- 经过比较,发觉algorithm2e生成的算法是最好看的,也是书写起来最方便的。

- 使用/addtolength命令,对一些距离做操纵,具体参考 上一篇文章 里面的参考文献。

- 两栏的table以及figure,都是使用带*的版本,如figure是/begin{figure*}

- 使用/twocolumn[...]来模拟title,不使用maketitle,则可以省下title上下的一些空白空间。其实也是可以设置的,不过这个方法hack起来的确快。

4月21日

搜索到的几篇LaTeX省紙文章

在寫conference paper時,有時拼命縮減文字也不能裁到6頁的限制以內,
所以各種tricky的方法應運而生…… 以下就是幾篇搜索到的summary....

http://gurmeetsingh.wordpress.com/2008/09/20/latex-tips-n-tricks-for-conference-papers/

http://www.terminally-incoherent.com/blog/2007/09/19/latex-squeezing-the-vertical-white-space/

http://www.eng.cam.ac.uk/help/tpl/textprocessing/squeeze.html

你可能感兴趣的:(学习笔记)