从参考书目中删除 URL,无需编辑 .bst 文件

从参考书目中删除 URL,无需编辑 .bst 文件

首先,我尝试过禁用参考书目中的 URL但它不起作用。

其次,我不重复禁止参考书目中的某些 URL因为我不想编辑自动生成的 bib 文件。

我正在准备一份会议出版物提交给 IEEE;因此,请不要建议编辑参考书目样式文件(IEEEtran.bst)。

我有一个由 Mendeley 生成的 .bib 文件,其中包含url字段。目前,我手动删除它们。但是,为了提高效率,我希望

  1. 无需 URL 即可从 Mendeley 导出的方法

或者

  1. 禁止在参考书目中插入 URL 的方法,最好通过指令或标志

最好两者兼而有之!


一个最小的例子[source.tex]

\documentclass[conference]{IEEEtran}

\begin{document}
\bstctlcite{MyBSTcontrol}
\title{I need a vacation!}
\author{\IEEEauthorblockN{tokyo coder}
\IEEEauthorblockA{Institute of Random Stuff, A big University, Japan}}
\maketitle
\IEEEpeerreviewmaketitle

\section{Introduction}
kill me now \cite{Levecque2017} \\does happiness exist?

\bibliographystyle{IEEEtran}
\bibliography{science,disabl_url}

% that's all folks
\end{document}

bib 文件为 [science.bib]

@article{Levecque2017,
author = {Levecque, Katia and Anseel, Frederik and {De Beuckelaer}, Alain and {Van der Heyden}, Johan and Gisle, Lydia},
doi = {http://dx.doi.org/10.1016/j.respol.2017.02.008},
isbn = {3907},
issn = {0048-7333},
journal = {Research Policy},
keywords = {GHQ-12,Mental health,PhD students,Psychosocial working conditions,Work organization},
number = {4},
pages = {868--879},
publisher = {Elsevier B.V.},
title = {{Work organization and mental health problems in PhD students}},
url = {http://www.sciencedirect.com/science/article/pii/S0048733317300422},
volume = {46},
year = {2017}
}

第二个 bib 文件是 [disabl_url.bib]

@IEEEtranBSTCTL{MyBSTcontrol,
    CTLuse_url = "no",
}

答案1

从 CTAN获取最新的副本IEEEtran.bst,至少Version 1.14 (2015/08/26)。然后按照禁用参考书目中的 URL

答案2

一种方法是自动编辑 .bib 文件以删除 url 字段。从 mendeley 导出文件后,您需要删除所有以 开头的行url(可能以空格开头),写入新的 .bib 文件(因为您的主参考书目在 mendeley 中,所以可以覆盖原始版本,但一般情况下我不建议你这样做)。这可以通过命令行轻松完成sed(适用于所有类 Unix 系统,包括 Mac,也可以在 Windows 上使用 Cygwin 或 MinGW,或者只是安装它)。任何像样的程序员的文本编辑器也将提供做同样事情的方法(正则表达式查找/替换)。

您实际需要的命令是sed 's/^\s*url.*,//' bibliography.bib >temp.bib,它分解为运行sed以替换(s/)从行首(^)开始的一个或多个(*)空格字符(\s)后跟“url”,以及一个或多个(*)除换行符(.)到逗号之间的任何字符。替换为空白(由分隔符给出///。这会在 url 所在的位置留下一个空白行,但 bibtex 不会介意。

如果 url 是条目中的最后一项,且行末没有逗号,则此方法无效。因此,如果 mendeley(我尝试过一次,但再也没有使用过)将 url 放在条目的最后,我们将需要稍微不同的替换,这将取决于条目}的最终结束是在其自己的行上还是与 url 在同一行上。更复杂的正则表达式可以考虑这些变量,但我发现最好保持简单,因为出错的可能性更小。

相关内容