《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等工具,来检查你的拼写错误、语法建议等。这里有一篇非常不错的文章。
格式篇: 因为我提交的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时不会改得这么痛苦, 我第一次交时就改格式改了好久,当时碰到了三个问题:
在提交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的<texmf/bibtex/bst文件里放好对应bst文件, 然后在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文件重新编译的。参考自这里。