一种委婉的生成完美中文引用样式的方法

最近书呆写开题报告,忽而觉得下面这样的引用方式很直接,如下图所示, 完美的应用样式 既有作者,又有年份,还有文献在文献列表中的序号。 用这种引用方式进行文献综述时,会使的时间逻辑(年份)和空间逻辑(该文献在文章最后哪一个部分)都很清晰,且含有主语(作者名)。

然而书呆使用natbib包中的引用作者+年份+序号方式时候,

\newcommand{\citeayu}[1]{\citeauthor{#1}~(\citeyear{#1})\citeup{#1}}

发现\citeauthor引用时候在中文正文里出现了“et al.” 中英混杂引用 英文名字也罢了,在正文中不能中英文混用,所以“et al.”必须要干掉。 而工大毕业论文模板和开题报告模板均采用的是bibTeX处理bib文件来生成bbl文件。 bibTeX在有些功能上先天不足,例如毕业论文最后的参考文献列表,有时会出现某页参考文献列表下方出现较大空白就是bibTeX在对跨页的参考文献项目支持不足导致。 natbib中对\citeauthor中的“et al.”定义完全依赖bibTeX。 如果将bbl中的“et al.”完全改为中文样式,再make会影响最终的参考文献样式。 中英混杂的参考文献列表

于是辗转反侧后,一个委婉的生成完美中文引用样式的方法机智地蹦出脑海:

  1. 使用make或者按照Makefile中的顺序生成好了带有“et al.”的pdf。
  2. 把bbl文件中所有”et al.”字样均替换为“等”。
  3. 运行两次xelatex main.tex
  4. 把bbl文件中所有“等”字样均替换为”et al.”。
  5. 运行一次xelatex main.tex

好了,到这里就生成了完美引用样式了。 最后再吐槽一下,由于bibTeX的先天不足,使用工大参考文献样式bst处理bib文件时常常返回错误参数2。 这个错误参数会直接终断make进程。 又一个委婉的解决方法是这样————

bibtex main || true
石见 石页 /
在共享协议(CC)下发布于
类别: technology 
标签: LaTeX  XeLaTeX  中文引用方法  实在是太机智了!  中