继续解决杂项条目https://tex.stackexchange.com/a/482872,让我们考虑输入
\documentclass{elsarticle}%% V3.1 from https://ctan.org/tex-archive/macros/latex/contrib/elsarticle
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{LevesonTurner-InvestigationOfTheTherac25Accidents,
author = {Nancy Gail Leveson and Clark Savage Turner},
title = {Investigation of the {Therac}-25 accidents},
journal = {{IEEE} Computer},
volume = 26,
number = 7,
pages = {18--41},
year = 1993
}
\end{filecontents}
\bibliographystyle{elsarticle-num}%%% V2.1 From https://ctan.org/tex-archive/macros/latex/contrib/elsarticle
\begin{document}
\cite{LevesonTurner-InvestigationOfTheTherac25Accidents}
\bibliography{\jobname}
\end{document}
运行标准pdflatex
-bibtex
循环会产生(1993)
两次年份:
当我看着样式文件在第 1177 行左右,我看到年份仅被处理一次:
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.title "title" output.check
crossref missing$
{ journal
"journal" output.check
% add.blank
before.all 'output.state :=
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
format.journal.pages
format.note output
format.date "year" output.check
fin.entry
write.url
}
我看不出哪里出了问题。有错误修复吗?
答案1
直接从article
函数来看,年份确实只处理一次。但是,函数format.journal.pages
(由 调用article
)出于某种原因这样做了。该函数如下所示(位于 的第 797 行elsarticle-num.bst
):
FUNCTION {format.journal.pages}
{ pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{
" " *
format.year * " " * % <-- This guy here
pages n.dashify *
}
if$
}
if$
}
在正常情况下,如果pages
条目存在,代码会添加一个空格 ( " " *
),年份后面由于某种原因又加了一个空格 ( format.year * " " *
),然后才添加页数 ( pages n.dashify *
)。因此,如果您注释掉添加年份和空格的行,那么您就只剩下 了<space> pages
。
回答你的评论,我会注释掉这个例子,因为year
:
它在
format.journal.pages
函数中,因此从语义上讲它在错误的位置,因此代码很笨拙。您自己看到了 :)大多数其他条目类型以以下内容结尾:
format.note output format.date "year" output.check fin.entry write.url
因此年份是 URL 前面的最后一项。如果只是类型
article
有不同的约定,看起来会很奇怪;如果
pages
没有给出条目,BibTeX 将不会到达条件的分支,并且年份将“神秘地”消失。
答案2
使用旧版本(版权所有 2007、2008、2009 Elsevier Ltd)
尝试这个 https://github.com/gagolews/bibliography/blob/master/elsarticle-num.bst