参考书目样式 elsarticle-num-names 带有 DOI 和超链接,但没有明确的 url

参考书目样式 elsarticle-num-names 带有 DOI 和超链接,但没有明确的 url

我准备了我的文章文章, 使用\citep&\citet整个过程中。我最初使用阿帕莱克但现在需要将其更改为elsarticle-num-names引用格式要求(见下文第 2 点)。

现在,我尝试做出两项改变:

  1. 将 DOI 添加到参考书目
  2. 修改引用样式[1]\citep以及Author et al. [1]\citet

我想保留超链接并且不想要明确的 URL(仅需要 DOI)但无法实现这个功能!

感谢您提供的任何帮助!

梅威瑟:

\documentclass[preprint,12pt]{elsarticle}
%\usepackage{hyperref}

\journal{Test Journal}
\begin{document}
\begin{frontmatter}
\title{The Title}
\author{Prof. Big Ol' Wanker}
\address{123 Happy Lane}
\begin{abstract}
TEXT
\end{abstract}
\begin{keyword}
keyword 1 \sep keyword 2 \sep keyword 3
\end{keyword}
\end{frontmatter}

\section{SECTION1TEST}
\noindent cite: \cite{Richards1931} \\
citep: \citep{Richards1931} \\
citet: \citet{Richards1931} \\

\bibliography{library}
\bibliographystyle{elsarticle-num-names}

\end{document}

以下是我的 library.bib 文件中对 Richards1931 的引用:

@article{Richards1931,
author = {Richards, LA},
doi = {10.1063/1.1745010},
file = {:D$\backslash$:/Papers/Richards - 1931 - Capillary Conduction of Liquids Through Porous Mediums - Journal of Applied Physics.pdf:pdf},
issn = {01486349},
journal = {Journal of Applied Physics},
pages = {318},
title = {{Capillary Conduction of Liquids Through Porous Mediums}},
url = {http://scitation.aip.org/content/aip/journal/jap/1/5/10.1063/1.1745010},
volume = {1},
year = {1931}
}

没有超链接(需要超链接存在,DOI 显示正确,但存在不需要的 URL):

无超链接

使用 hyperref(超链接不存在,DOI 显示不正确,并且存在不需要的 URL):

使用超链接

答案1

出现此问题的原因是elsarticle 没有定义\doihyperref需要。

Hyperref调用\doi{\bibinfo{doi}{XXX}}来生成参考文献 XXX 中 DOI 的 URL。如果\doi未定义宏,则结果输出将类似于\let\@tempa\bibinfo@X@doi{XXX}

作为一种解决方法,您可以定义一个\doi解决问题的宏

\documentclass{elsarticle}

\usepackage{hyperref}

\makeatletter
\providecommand{\doi}[1]{%
  \begingroup
    \let\bibinfo\@secondoftwo
    \urlstyle{rm}%
    \href{http://dx.doi.org/#1}{%
      doi:\discretionary{}{}{}%
      \nolinkurl{#1}%
    }%
  \endgroup
}
\makeatother

相关内容