我用它apacite
来制作参考书目。我\newcommand*{\doi}[1]{\href{http://dx.doi.org/#1}{#1}}
以前也用过这行代码\begin{document}
来超链接 DOI 字符串,效果很好。它取自这里我必须稍微修改一下,因为apacite
打印出来的是“doi:”
问题是,在参考书目中,冒号和字符串之间有一个空格,根据 APA 样式,这不应该存在。
作为一个例子,我得到了doi: 10.1348/014466604X18523
应该是的参考书目doi:10.1348/014466604X18523
。
我尝试了一下,apacite.bst
但没弄明白。我该如何修复这个问题,最好是在主.tex
文件中修复?
答案1
.bbl
文件中已经有空间了
\begin{APACrefDOI} \doi{10.1348/014466604X18523} \end{APACrefDOI}
所以您可以编辑.bst
文件不添加空格,或者我们可以添加\ignorespaces
到APACrefDOI
环境中。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{hyperref}
\usepackage{apacite}% load apacite after hyperref, see §8.2 of the apacite manual
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
year = {1980},
doi = {10.1348/014466604X18523},
}
\end{filecontents}
\newcommand*{\doi}[1]{\href{https://doi.org/#1}{#1}}
\makeatletter
\renewenvironment{APACrefDOI}{%
\global\let\old@doi\doi
\if@doi
\doiprefix
\else
\global\let\doi\@gobble
\fi
\ignorespaces
}{\global\let\doi\old@doi }
\makeatother
\begin{document}
\cite{appleby}
\bibliographystyle{apacite}
\bibliography{\jobname}
\end{document}
如果您希望修改.bst
文件,则需要按照以下步骤操作。
apacite.bst
例如通过键入 来在您的机器上定位kpsewhich apacite.bst
。- 将文件复制到 LaTeX 可以找到它的地方(https://texfaq.org/FAQ-inst-wlcf)您的文档的目录就可以了,并且改名比如说,将它改为
apacite-nspdoi.bst
。请注意, 的许可证apacite.bst
要求您在修改文件时更改其名称。 - 打开
apacite-nspdoi.bst
并插入带有新文件名和当前日期的标题 查找
FUNCTION {begin.end.doi.env}
并替换整个函数FUNCTION {begin.end.doi.env} { "\begin{APACrefDOI}"% removed trailing space here " \end{APACrefDOI} " }
与原文唯一的变化是删除了最后一个空格,
"\begin{APACrefDOI} "
使其变为"\begin{APACrefDOI}"
。保存文件并
\bibliography{apacite-nspdoi}
在您的文档中使用。
或者你可以apacite-nspdoi.bst
从https://gist.github.com/moewew/520dbd08e1a7a3129a8838d5e6be34a3
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{hyperref}
\usepackage{apacite}% load apacite after hyperref, see §8.2 of the apacite manual
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
year = {1980},
doi = {10.1348/014466604X18523},
}
\end{filecontents}
\newcommand*{\doi}[1]{\href{https://doi.org/#1}{#1}}
\begin{document}
\cite{appleby}
\bibliographystyle{apacite-nspdoi}
\bibliography{\jobname}
\end{document}
输出如上。
答案2
APA 风格指南关于 DOI 是这里. 如果你想使用“https://doi.org/XXXXXX“和您希望它成为 .pdf 中的可点击链接,然后您可以将以下内容添加到序言中。
\usepackage[natbibapa]{apacite}
\usepackage{hyperref}
\makeatletter
\newcommand*{\doi}[1]{\href{https://doi.org/#1}{https://doi.org/#1}}
\renewcommand{\doiprefix}{}
\makeatother