总体而言,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
它来清理条目,包括正确的缩进。