距离提交毕业论文的时间只有一个多月,我却还只字未动。每天寻找各种各样的理由(如带小孩、喂奶粉、买菜、接待访客等),并以此作为不能动手写论文的借口。而实际原因其实很简单,是我自己那与生俱来的无可救药的懒惰和拖延的恶习在作祟。今晚10点,在老妈的唠叨声中,在老婆的催促声中,在儿子的啼哭声中,终于下定决心、鼓起勇气,准备开始写那篇关系到我能否顺利毕业以及决定我能否去工作为孩儿赚奶粉钱的博士毕业论文!
然而,天有不测风云,program有不测bug!正所谓好事多磨,当我正踌躇满志准备用latex来为我的论文整理参考文献的时候,却发现用来写毕业论文的那个latex模板有一个小小的问题(问题的症状见下一节)。
正所谓光棍眼里揉不进沙子,这个小小的问题搞得我心里很烦,决定把这个小问题解决。于是,我花了N天时间下的开始写毕业论文的决心,在写了开头一段话之后,就暂时被中断了。
故而,特写本文,作为该问题的解决方案,希望能够对与我一样准备用latex搞毕业论文的兄弟姐妹们有所帮助;此外,还希望本文能够起到保留中断现场的作用,使得我在搞定这个问题、写完这篇短文之后,还能回忆起我的论文搞到那一段,并能敦促我接着搞下去。
症状
首先声明:我所采用的latex编译次序依次为:Latex、BibTex、MakeIndex、Latex、Latex、dvi2pdf。至于本文的读者(如果本文能够很有幸的居然真的拥有读者的话)用哪种方法我不能去管。然而,无论用哪种方法,若尊敬的读者您也遇到我所遇到的这种情况,并且当您耐心的读完全文并依照我提供的解决方法去尝试,并且当您这匹死马被我当作活马来医治且居然真的医好了的情况下,请麻烦您回帖顶一个。谢谢!
在黄正华老师所提供的武汉大学硕博论文Latex模板中,存在这样一个小小的问题:当使用BibTex参考文献引用方式的时候,在编译生成的pdf文档的参考文献列表中,每一个bititem项目中的期刊名下会出现下划线,无论引用的是中文文章还是英文文章,都会出现这种情况。
这是小事情。然而,当它与武大博士毕业论文的格式要求不符合的时候,就变成了大事情;而当论文送审或者答辩的时候被评审老师指出这种错误并以此为借口不让论文通过的时候,恐怕就变成了此生遇到的最大的事情。
病因
作为一个latex方面的庸医,其实我也不太清楚从深层次来看到底出了什么问题。但从浅一点的层次来看,我认为是latex中的强调命令(\em)在论文模板环境下的不兼容所导致。
在以前用latex写英文文章的时候,我曾经看过编译生成的bbl文件,也曾经看过cls文件和bst文件,也曾经尝试过去写cls和sty文件。在论文参考文献条目中,“期刊名”这一项一般都是以强调(emphasis)字体进行标的。
Emphasis字体,在英文latex环境下一般都是以斜体来表示。而在这个武大论文的模板中,居然是以在字符下加下划线的形式进行强调。这就是参考文献中的“期刊名”这一项会出现下划线的原因。
解药
既然找到了原因,那么解决该问题的方法就呼之欲出了。既然读者您愿意听我啰啰嗦嗦唧唧歪歪的讲到这里,我不提供一下解决方案也就太说不过去了。
为了报答尊敬的读者您的可敬的耐心,我决定赠送您2个解决方案。这两种方法都能解决问题,但一个治标,一个治本。
治标:
您编译完文件并生成pdf文件之后,在您的工作目录下应该有一个.bbl文件吧……什么?没有?!您再睁大眼睛,仔细找找看!
找到那个bbl文件,用WinEdit(或者随便什么文本编辑器)将它打开,您会发现其中的内容是多么的眼熟啊!没错,这个文件中包含了您所引用的参考文献,并且是以thebibliography环境中包含bibitem条目的形式出现的。事实上,可以将这个文件中的所有内容拷贝到tex源文件中替换\bibliography的参考文献引用形式。
在每个bibitem条目中,包含若干个由newblock包含的信息,如文章名、期刊名等等。请注意:在期刊名前面有一个”\em”!就是这个\em导致了对期刊名进行强调,而这种强调,在正常的情形下会将英文字体变成斜体,将中文字体变成楷体;而在非正常的情形下比如你我现在遇到的这种情形),会在被强调的字符下面加下划线!
事情到了这一步,就很好办了。您可以将这个\em替换成能够使得后面的字体变成斜体 任何命令(比如替换成”\it”)。 替换完毕之后,再依次执行Latex、Latex、dvi2pdf,就会发现下划线消失了,期刊名变成斜体字了,参考文献看起来像那么回事了。
然而,要注意:在修改完bbl文件并保存之后,尊敬的读者您可千万不要再执行BibTex命令,否则它会根据你的bib文件中的内容重新生成一份bbl文件并替换原有文件,这样您辛辛苦苦修改好的bbl文件就付诸东流了。因此,这个方法一般用于您的文章完全定稿之后,再不会有新的参考文献添加进来了,也就是说您不需要再很惬意的点击BibTex按钮来更新参考文献了。在此之前,您就甭管参考文献中有没有下划线了,反正您的文章还没写完呢,不必担心评审专家们看到。
治本:
前面的那个治标的方法简单,然而很麻烦,而且您得能够耐得住心头的痒痒,告诫自己不要轻易的去点击BibTex按钮,并且您还得能够对参考文献中那密密麻麻的碍眼的下划线看得顺眼才行。
我是不行,因为我有多动症兼强迫症!所以只好用这第二种一劳永逸的方法:直接修改bst文件。您不知道bst文件是做什么用的?这……好吧,简而言之,bst文件是用来决定您的参考文献条目是如何显示的!
在你的tex文件中应该会有\bibliographystyle{unsrt}或者\bibliographystyle{plain}之类的语句吧?这些语句就标明您想使用那种参考文献引用形式。它们所使用的bst文件分别是”\texmf\bibtex\bst\base\”目录下的unsrt.bst或者plain.bst文件。就个人而言,除了论文模板强行规定,我一般是使用unsrt形式,因为这样参考文献的编号次序就是在文中被引用的先后次序。
找到您要使用的bst文件之后,剩下的工作就是对这个bst文件进行修改了。为了保证不破坏您机子上原有的bst文件,我强烈建议您把您要用的bst文件拷贝到您能的工作目录下,放在与您的tex源文件同一个目录下,然后再对这个拷贝的bst文件进行修改。
修改的方法很简单。用WinEdit打开那个bst文件,用替换功能,将所有的”\em”替换成”\it”,然后保存。OK!接下来随便您怎么编译,无论您那只痒痒的手点击多少次BibTex按钮,都能保证生成的参考文献的格式符合您需要。
后记
其实,这个解决方案有些问题,因为它将强调字体强行修改成了斜体字体,这在形式上是没有问题,然而逻辑上是有问题的。不过,如果那些评审专家只关心字体形式的话,本文提供的解决方案也足够应付他们的啦!
Kao,凌晨1点了!待会娃又醒来吵着吃奶粉了,赶快抓紧时间睡一觉!