我的 .bib 文件由 Mendley 桌面生成,通常包含 URL、ISSN 和 DOI。我使用的是 \usepackage[round]{natbib} 包和 \bibliographystyle{plainnat}。
我意识到我不是第一个问这个问题的用户(问题 1;问题2)——虽然公平地说,这个用户询问的样式与我使用的样式不同。和这个用户一样,我不希望 DOI、URL、ISSN 显示在我的参考书目中。我该如何摆脱它们?
约瑟夫·赖特建议使用 doi=false等等。但我不清楚这该如何编码。我尝试添加 doi=false,如下所示:\bibliographystyle{natbib, doi=false},但这不起作用。
编辑:为了清晰起见进行更改。
答案1
推荐的解决方案
使用 无法真正简单地优雅地完成此操作natbib
,因为.bst
格式化参考书目条目的文件要么生成字段,要么不生成字段。无法有选择地打开或关闭它们。出于这个原因,我建议natbib
您使用而不是biblatex
来管理参考书目,因为这将允许您直接控制是否生成它们。
看
然后是 Joseph 所链接的问题中的解决方案:
将工作。
但是,此解决方案的一个小问题是没有完全biblatex
模仿的样式plainnat
,主要是因为大多数作者年份系统将年份放在作者之后,而不是像作者年份系统那样放在作者末尾plainnat
。如果您在选择样式时有任何灵活性,您可以选择标准biblatex
authoryear
样式、apa
样式或biblatex-chicago
带有authordate
样式的包之一。以下是使用 APA 样式的最小示例:
% !BIB TS-program = biber
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{AD.Smith2001,
author = {Arthur D. Smith},
title = {A simple model of LaTeX References.},
journal = {Journal of LaTeX},
year = {2001},
volume = {100},
pages = {1--10},
number = {3},
keywords = {LaTeX models; biology},
doi = {10.1115/1.1372322},
publisher = {Cambridge},
url = {http://link.aip.org/link/?PBY/321},
}
\end{filecontents*}
\documentclass[a4paper,12pt]{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,
backend=biber,
natbib=true, % use this to use natbib cite commands
url=false,
doi=false]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}
\begin{document}
\citet{AD.Smith2001}.
\printbibliography
\end{document}
不推荐(但可行)的解决方案
.bst
修改文件以不打印任何这些字段并不困难。该.bst
文件plainnat
具有如下所示的函数(一个用于 URL,一个用于 ISSN,一个用于 DOI 等)
FUNCTION {format.isbn}
{ isbn empty$
{ "" }
{ new.block "ISBN " isbn * }
if$
}
我们可以用这样的函数替换其中的每一个:
FUNCTION {format.isbn}
{ "" }
这只会导致这些字段中的任何一个都无法打印。复制一份plainnat.bst
,给它起一个新名字(我把它叫做)plainnat-noURL
,然后把它保存在与文档相同的文件夹中.tex
。然后编辑文件,对于每个函数,用上面的函数替换该函数。
通过这个最小的例子我们得到了我们想要的输出。
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{AD.Smith2001,
author = {Arthur D. Smith},
title = {A simple model of LaTeX References.},
journal = {Journal of LaTeX},
year = {2001},
volume = {100},
pages = {1--10},
number = {3},
keywords = {LaTeX models; biology},
doi = {10.1115/1.1372322},
publisher = {Cambridge},
url = {http://link.aip.org/link/?PBY/321},
}
\end{filecontents*}
\documentclass[a4paper,12pt]{article}
\usepackage[round]{natbib}
\begin{document}
\cite{AD.Smith2001}.
\bibliographystyle{plainnat-noURL}
\bibliography{\jobname} % using the bib file created with filecontents
\end{document}