使用 auctex 格式化 Bibtex 条目

使用 auctex 格式化 Bibtex 条目

总体而言,auctex 可以很好地格式化 latex。但是,Bibtex 的格式化似乎不太好。例如,我倾向于以这种方式格式化我的 bibtex 条目:

@article{Smith,
   author = {Smith, John},
   journal = "A good journal",
   title = {A snappy title},
   volume = {1},
   year = {2010}
}

但是,C-M-\将条目格式化为:

          @article{Smith,
          author = {Smith, John},
          journal = "A good journal",
          title = {A snappy title},
          volume = {1},
          year = {2010}
          }

(请注意 LHS 上的较大间隙)。使用 emacs 时,是否有更好的机制来格式化 Bibtex 条目?

答案1

我猜您正在寻找C-c C-q(= bibtex-fill-entry)。您的示例的结果是:

@article{Smith,
  author =       {Smith, John},
  journal =      "A good journal",
  title =        {A snappy title},
  volume =       {1},
  year =         {2010}
}

还有一个bibtex-reformat(在菜单中)用于bibtex-fill-entry整个缓冲区。另请参阅这些功能的帮助。

答案2

在 OSX 上,我只需使用名为的应用程序加载 bibtex 文件bibdesk,然后保存它,即可设置所需的格式。大多数平台上可能都有类似的工具。

我非常喜欢 emacs,但由于 bibdesk 的额外功能,我最终还是在 bibdesk 中完成了大部分引用工作。用关键字标记条目特别有用,因为我维护着一个大型的中央 bibtex 文件,当我写一些特定的东西时,我喜欢提取一个子集并在本地使用它。(对我写的每篇论文使用单独的 bibtex 文件可以使论文更可靠。我永远不必担心当我为了满足审稿人而进行修改时,我可能会意外删除条目或更改其引用键。)bibdesk 的另一个很棒的功能是它支持拖放 PDF 文件和 URL,因此 bibdesk 不仅仅是一个引用管理器,而是一个阅读库。

还有一点建议:要仔细注意你的引用键。我试过几种方案,但最近我改用了以下方案。取第一作者的姓氏,用小写字母写。在右边,写上出版日期的 4 位数字。在右边,用小写字母写上标题前四个单词(或尽可能多的单词)的首字母。我绝不跳过标题中的一个单词,例如“世界末日”变成“teot”。这种方案的好处是基本上不会有任何冲突,而且密钥非常容易记住,或者一眼就能构造出来,只要有参考书目中出现的完整引用即可。

答案3

您使用了错误的命令来格式化 bib 条目。

这可能是 bibtex-mode 的疏忽,CM-\ 做错了。您可以C-c C-q按照其他人的建议使用。我个人使用C-c C-c它来清理条目,包括正确的缩进。

相关内容