我使用的是 model2-names.bst,它是我提交文章的期刊内置的。但是,由于某种原因,使用 PDFLaTeX 后,输出中附加了期刊名称和卷号,而不是用逗号 (,) 分隔。
例如:PF Goldsmith,暗云核中的分子耗竭和热平衡,ApJ557(2001)736–746。doi:10.1086/322255。
在上面的例子中,ApJ(期刊)和 557(卷号)是相连的,而不是分开的。
参考书目文件中此参考文献的条目为:
@ARTICLE{Gold01,
author = {{Goldsmith}, P.~F.},
title = "{Molecular Depletion and Thermal Balance in Dark Cloud Cores}",
journal = {\apj},
keywords = {ISM: Clouds, ISM: Globules, ISM: Molecules, Molecular Processes},
year = 2001,
month = aug,
volume = 557,
pages = {736-746},
doi = {10.1086/322255},
adsurl = {http://adsabs.harvard.edu/abs/2001ApJ...557..736G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
.bbl 中上述条目的相关 bibitem 是:
\bibitem{Gold01}
P.~F. {Goldsmith}, {Molecular Depletion and Thermal Balance in Dark Cloud
Cores}, \apj 557 (2001) 736--746.
\newblock \href {http://dx.doi.org/10.1086/322255}{\path{doi:10.1086/322255}}.
答案1
你有两种策略:
输入
journal={\apj{}}
,或定义字符串
apj
和类型journal=apj
我更喜欢后者。
\begin{filecontents*}{\jobname.bib}
@ARTICLE{Gold01,
author = {Goldsmith, P. F.},
title = {Molecular Depletion and Thermal Balance in Dark Cloud Cores},
journal = {\apj{}},
keywords = {ISM: Clouds, ISM: Globules, ISM: Molecules, Molecular Processes},
year = 2001,
month = aug,
volume = 557,
pages = {736-746},
doi = {10.1086/322255},
adsurl = {http://adsabs.harvard.edu/abs/2001ApJ...557..736G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
@STRING{
apj={ApJ}
}
@ARTICLE{Gold0X,
author = {Goldsmith, P. F.},
title = {Molecular Depletion and Thermal Balance in Dark Cloud Cores},
journal = apj,
keywords = {ISM: Clouds, ISM: Globules, ISM: Molecules, Molecular Processes},
year = 2001,
month = aug,
volume = 557,
pages = {736-746},
doi = {10.1086/322255},
adsurl = {http://adsabs.harvard.edu/abs/2001ApJ...557..736G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
\end{filecontents*}
\documentclass{article}
\newcommand{\apj}{ApJ}
\begin{document}
\cite{Gold01}
\cite{Gold0X}
\bibliographystyle{model2-names}
\bibliography{\jobname}
\end{document}
答案2
问题不在于参考书目样式,而在于您定义宏的方式\apj
:\newcommand{\apj}{ApJ}
。
你可能知道,TeX 会忽略名称仅包含字母的宏后面的空格,例如,\apj
。因此,如果您希望在缩写的期刊名称和卷号之间显示空格,则需要将宏的定义更改为\newcommand{\apj}{ApJ }
或将字段更改journal
为journal = {\apj\ },
。
实际上,还有第三种——甚至更好的——解决方案,它根本不使用宏:
在bib文件的开头,设置以下字符串常量定义:
@string{ apj = "ApJ" }
然后,将
journal
字段设置为journal = apj,
这样,如果需要空格,就会得到一个空格,如果不需要,就不会有空格——比如,因为在其他一些书目样式中,期刊名称后面有一个逗号。