最近书呆写开题报告,忽而觉得下面这样的引用方式很直接,如下图所示, 既有作者,又有年份,还有文献在文献列表中的序号。 用这种引用方式进行文献综述时,会使的时间逻辑(年份)和空间逻辑(该文献在文章最后哪一个部分)都很清晰,且含有主语(作者名)。
然而书呆使用natbib包中的引用作者+年份+序号方式时候,
发现\citeauthor
引用时候在中文正文里出现了“et al.”
英文名字也罢了,在正文中不能中英文混用,所以“et al.”必须要干掉。
而工大毕业论文模板和开题报告模板均采用的是bibTeX处理bib文件来生成bbl文件。
bibTeX在有些功能上先天不足,例如毕业论文最后的参考文献列表,有时会出现某页参考文献列表下方出现较大空白就是bibTeX在对跨页的参考文献项目支持不足导致。
natbib中对\citeauthor
中的“et al.”定义完全依赖bibTeX。
如果将bbl中的“et al.”完全改为中文样式,再make
会影响最终的参考文献样式。
于是辗转反侧后,一个委婉的生成完美中文引用样式的方法机智地蹦出脑海:
- 使用
make
或者按照Makefile中的顺序生成好了带有“et al.”的pdf。 - 把bbl文件中所有”et al.”字样均替换为“等”。
- 运行两次
xelatex main.tex
。 - 把bbl文件中所有“等”字样均替换为”et al.”。
- 运行一次
xelatex main.tex
。
好了,到这里就生成了完美引用样式了。
最后再吐槽一下,由于bibTeX的先天不足,使用工大参考文献样式bst处理bib文件时常常返回错误参数2
。
这个错误参数会直接终断make进程。
又一个委婉的解决方法是这样————