删除 APA 参考书目中“doi:”后面的空格

删除 APA 参考书目中“doi:”后面的空格

我用它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文件不添加空格,或者我们可以添加\ignorespacesAPACrefDOI环境中。

\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文件,则需要按照以下步骤操作。

  1. apacite.bst例如通过键入 来在您的机器上定位kpsewhich apacite.bst
  2. 将文件复制到 LaTeX 可以找到它的地方(https://texfaq.org/FAQ-inst-wlcf)您的文档的目录就可以了,并且改名比如说,将它改为apacite-nspdoi.bst。请注意, 的许可证apacite.bst要求您在修改文件时更改其名称。
  3. 打开apacite-nspdoi.bst并插入带有新文件名和当前日期的标题
  4. 查找FUNCTION {begin.end.doi.env}并替换整个函数

    FUNCTION {begin.end.doi.env}
    { "\begin{APACrefDOI}"% removed trailing space here
      " \end{APACrefDOI} "
    }
    

    与原文唯一的变化是删除了最后一个空格,"\begin{APACrefDOI} "使其变为"\begin{APACrefDOI}"

  5. 保存文件并\bibliography{apacite-nspdoi}在您的文档中使用。

或者你可以apacite-nspdoi.bsthttps://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

相关内容