我准备了我的文章文章, 使用\citep&\citet整个过程中。我最初使用阿帕莱克但现在需要将其更改为elsarticle-num-names引用格式要求(见下文第 2 点)。
现在,我尝试做出两项改变:
- 将 DOI 添加到参考书目
- 修改引用样式
[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
没有定义\doi
宏这hyperref
需要。
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