我想为资助申请生成一个具有最小结构的参考书目。理想情况下,例如science.bst
省略文章标题。
AN Clarkson、BS Huang、SE Macisaac、I. Mody、ST Carmichael、自然 468,305 (2010)。
不过,我更喜欢作者和年份的结构像这样apalike.bst
。
Clarkson, AN、Huang, BS、Macisaac, SE、Mody, I. 和 Carmichael, ST (2010)。减少过度 GABA 介导的强直抑制可促进中风后的功能恢复。自然,468:305–9。
有没有办法可以轻松地强制apalike.bst
删除文章标题或science.bst
反转作者/姓名首字母并移动年份?
答案1
例如,您可以尝试一下makebst
。即,latex makebst
在命令行中输入并按照(有点冗长的)对话框创建您自己的bst
文件。
答案2
问题:
有没有办法可以轻松地强制 apalike.bst 删除文章标题……?
(备注:我在之后更新了这个答案埃尔顿发表评论指出,2011 年 8 月发布的原始答案不再有效,大概是因为在此期间对 BibTeX 进行了一些更新。)
简短回答:是的。
较长的回答:我建议您按如下方式进行:
在您的 TeX 发行版中找到该文件
apalike.bst
。复制此文件并将副本命名为 。apalike-notitlefield.bst
(不要直接编辑 TeX 发行版的原始文件。在文本编辑器中打开
apalike-notitlefield.bst
。你用来编辑 tex 文件的程序就可以了。找到函数
format.title
。(在我的文件副本中,该函数从第 264 行开始。)在此函数中,找到
{ title "t" change.case$ }
将此行更改为
{ "" }
本质上,您现在指示 BibTeX 对该title
字段不执行任何操作,即使它非空。
将文件保存
apalike-notitlefield.bst
到包含主 tex 文件的目录(即包含\bibliographystyle
和\bibliography
指令的文件)或 BibTeX 搜索的目录。如果选择第二个选项,请确保适当更新 TeX 发行版的文件名数据库。在主 tex 文件中,更改
\bibliographystyle{apalike}
到
\bibliographystyle{apalike-notitlefield}
并执行完整的重新编译循环(LaTeX、BibTeX 和 LaTeX 两次以上)以完全传播所有更改。
最后说明:众所周知,此答案适用于apalike
书目样式。它也应该适用于许多其他书目样式,只要它们提供一个名为的功能format.title
。
为了完整起见,这里是 2011 年 8 月底的原始答案:
apalike.bst
是的!只需要进行一些简单的修改。首先,在您的系统上找到该文件,然后在您喜欢的文本编辑器中打开它;在我的系统上,它的前两行是:
% BibTeX `apalike' bibliography style (version 0.99a, 8-Dec-10), adapted from
% the `alpha' style, version 0.99a; for BibTeX version 0.99a.
然后找到构造ENTRY{...}
(在我的副本上从第 43 行开始apalike.bst
),并在该构造中包含单个单词的行
title
%
(我复制的是第 62 行)。通过在行首放置一个注释字符来注释掉此行。将此文件保存myapalike.bst
到 TeX/LaTeX 可以找到的地方。例如,如果您使用 TeXLive,您还需要运行(使用 sudo 权限)命令mktexlsr
;如果您使用 MikTeX,您必须调用设置程序并单击“刷新 FNDB”。
顺便说一句,这种技术——注释掉 bst 文件的 ENTRY 结构中的一行以避免它出现在参考书目打印输出中——非常通用。例如,如果您想要一个样式文件,它永远不会打印出发表某篇文章的期刊名称,您可以注释掉该行journal
并获得所需的结果。
最后,请注意,如果您在文件上运行 LaTeXmakebst.tex
来从头开始创建自己的 bst 文件,您仍然必须手动编辑生成的 bst 文件,因为程序不允许您完全省略期刊文章的标题。相反,它会询问您是否要将标题放在引号中,以及引号应该是什么样子,例如,单引号还是双引号,或者单引号还是双引号。
答案3
您的 -type 条目的格式@article
在以下部分中指定
FUNCTION {article}
对于 ,从第 482 行开始apalike.bst
,对于 (的当前版本),从第 1036 行开始science.bst
。
为了从文章条目(或任何其他 *.bst 文件)title
中删除该字段,请通过添加以下内容注释掉第 488 行:apalike.bst
%
% format.title "title" output.check
year
更改字段的位置science.bst
需要移动第 1045 行
format.date "year" output.check
到所需位置,即第 1038 行之后
format.authors "author" output.check
format.date "year" output.check
请注意,这只会改变文章条目的位置year
,如问题中所述。但是,它很容易扩展到其他条目类型。
反转作者/姓名首字母需要更改 format.names 函数(第 489 行science.bst
)。顺序在第 497 行指定
"{f.~}{vv~}{ll}{, jj}" format.name$
并且首字母是第一部分,需要移到最后。
"{vv~}{ll}{, jj}{, f.}" format.name$
请注意,此更改适用于author
所有条目类型的所有字段。
当然,对于任何其他 *.bst 文件来说,所有这些都是完全有效的。