如何使用书目样式“elsarticle-num-names.bst”按字母顺序排列参考文献?
以下是从 elsarticle 模板文件夹本身复制的 MWE:
elsarticle-模板.tex:
\documentclass[preprint]{elsarticle}
\journal{Journal of \LaTeX\ Templates}
\bibliographystyle{elsarticle-num-names}
\begin{document}
\begin{frontmatter}
\end{frontmatter}
Here are two sample references: \cite{Feynman1963118,Dirac1953888}.
\section*{References}
\bibliography{mybibfile}
\end{document}
我的bib文件.bib:
@article{Dirac1953888,
title = "The lorentz transformation and absolute time",
journal = "Physica ",
volume = "19",
number = "1-–12",
pages = "888--896",
year = "1953",
doi = "10.1016/S0031-8914(53)80099-6",
author = "P.A.M. Dirac"
}
@article{Feynman1963118,
title = "The theory of a general quantum system interacting with a linear dissipative system",
journal = "Annals of Physics ",
volume = "24",
pages = "118--173",
year = "1963",
doi = "10.1016/0003-4916(63)90068-X",
author = "R.P Feynman and F.L {Vernon Jr.}"
}
答案1
此样式已使用排序功能。您可以编辑排序功能bib.sort.order在您的 .bst 文件中。Bibtex .bst 文件修改为包含字母顺序。希望对你有帮助。
答案2
引用的排序方式由.bst文件。如果您想更改顺序,则需要修改该文件。
以下是您可以如何修改您的elsarticle-num-names.bst文件,以便按字母顺序排列参考文献。我建议创建该文件的副本并将其命名为elsarticle-names.bst修改之前。
首先,找到预排序功能.bst文件。它可能看起来像这样:
FUNCTION {presort}
{ calc.label
label sortify
" "
*
seq.num #1 + 'seq.num :=
seq.num int.to.fix
'sort.label :=
sort.label
*
" "
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
然后将其替换为以下内容:
FUNCTION {presort}
{ calc.label
label sortify
" "
*
type$ "book" =
type$ "inbook" =
or
'author.editor.sort
{ type$ "proceedings" =
'editor.sort
'author.sort
if$
}
if$
#1 entry.max$ substring$
'sort.label :=
sort.label
*
" "
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
还有几种替代方法.bstElsevier 提供的文件(按字母顺序排列或不按字母顺序排列)样本稿可用的这里。不过,需要提醒的是,如果你打算向科学期刊投稿,你应该使用.bst编辑为该特定期刊提供的文件,无需修改。关于参考书目的格式,确实有严格的指导方针需要遵守。