![如何抑制 abbrv.bst 中的某些字段](https://linux22.com/image/261357/%E5%A6%82%E4%BD%95%E6%8A%91%E5%88%B6%20abbrv.bst%20%E4%B8%AD%E7%9A%84%E6%9F%90%E4%BA%9B%E5%AD%97%E6%AE%B5.png)
我在 natbib 包下使用 abbrv 样式来编写参考书目。是否可以在输出中隐藏字段,例如“SERIES”?
这是我的 .bib 文件中的一个项目:
@book{GelfandVilenkin64GF4,
AUTHOR = {Gel'fand, I. M. and Vilenkin, N. Ya.},
TITLE = {Generalized functions. {V}ol. 4: {A}pplications of harmonic
analysis},
SERIES = {Translated by Amiel Feinstein},
PUBLISHER = {Academic Press},
ADDRESS = {New York },
YEAR = {1964},
PAGES = {xiv+384},
MRCLASS = {46.00 (46.40)},
MRNUMBER = {0173945 (30 \#4152)},
MRREVIEWER = {J. L. B. Cooper},
}
非常感谢!
答案1
您需要为此定义一种新样式。复制abbrv.bst
到一个新文件,例如myabbrv.bst
,并将其放在 TeX 可以找到的地方。使用编辑器打开它,并找到函数format.number.series
。它应该看起来像这样:
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ output.state mid.sentence =
{ "number" }
{ "Number" }
if$
number tie.or.space.connect
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}
将其替换为
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ "" }
{ output.state mid.sentence =
{ "number" }
{ "Number" }
if$
number tie.or.space.connect
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}
即,我们删除写入 <series> 的部分。然后使用新样式myabbrv
。
由于您正在使用natbib
,因此您也可以使用abbrvnat
样式。在那里,类似的编辑会有所帮助,但是,还有另一种选择,即通过操作\bibinfo
宏。
答案2
这是我的解决方案。这可能不是最好的方法。我将 abbrv.bst 复制到我的工作文件夹并将其更改为另一个名称:abbrv_mod.bst。然后删除 ENTRY 部分中的条目“series”:
ENTRY
{ address
author
booktitle
chapter
edition
editor
howpublished
institution
journal
key
month
note
number
organization
pages
publisher
school
title
type
volume
year
}
然后在 tex 文件中使用以下命令:
\bibliographystyle{abbrv_mod}