我想修改参考书目样式联合高能物理研究所解决以下问题:
当包含期刊参考文献时,arXiv 参考文献会出现在括号 [...] 中,而如果没有期刊参考文献,则没有括号。如果我无论如何都想要括号,我必须如何修改 .bst 文件?
MWEB(复制联合高能物理研究所在工作目录中,运行 LaTeX+BibTex+LaTeX+LaTeX):
\documentclass{article}
\usepackage[numbers]{natbib}
\usepackage{filecontents}
\begin{filecontents}{references.bib}
@article{a,
author = "Author, A.",
title = "{Title}",
journal = "Journal",
volume = "1",
pages = "1",
year = "2009",
eprint = "0904.0464",
}
@article{b,
author = "Author, B.",
title = "{Title}",
eprint = "0904.0464",
}
\end{filecontents}
\begin{document}
Reference \cite{a,b}
\bibliographystyle{JHEP}
\bibliography{references}
\end{document}
答案1
您可以在工作目录中复制 JHEP.bst,将其重命名为,例如JHEPmod.bst
,在文章函数中更改行
{ format.eprint output }
到
{ format.eprint.paren output }
在您的文档中,您可以使用重命名的样式\bibliographystyle{JHEPmod}
。
FUNCTION {article}
{ output.bibitem
format.collaboration output
format.authors "author" output.check
format.title "title" output.check
blank.sep
crossref missing$
{ journal missing$
{ format.eprint.paren output } % <- THIS LINE NEEDS TO BE CHANGED !!!!!!!
{ journal empty$ { format.eprint output } {
format.doi * "{" * journal emphasize before.all 'output.state := "journal" output.check
% added \href{doi} and { before journal
% Slv
blank.sep
format.volume output
blank.sep
format.date.paren "year" output.check
%month empty$ { format.number output }
% 'skip$ if$
blank.sep
format.pages.nopp "}" * output }
%% closed parenthesis for href argument
if$
}
if$
report missing$
{ journal empty$ {} { format.eprint.paren output} if$ }
{blank.sep format.report output format.eprint.paren output}
if$
}
{ format.article.crossref output.nonnull
format.pages output
format.eprint.paren output
}
if$
new.sentence
% format.doi output
% note output
fin.entry
}