我已经梳理了之前的问题一段时间,但还没有找到我具体问题的答案。所以我现在希望这里有人能帮助我
我正在完成一篇将提交给《天体物理学杂志》(ApJ)的文章,它有一些非常具体的格式说明(见这里)。我特别想使用 biblatex 包来正确格式化参考书目。ApJ 参考书目格式化说明 (这里)告诉您文章应这样引用:
author1_last, author1_first_init. author1_middle_init., author2_last, author2_first_init. author2_middle_init., author3_last, author3_first_init. author3_middle_init., & author4_last, author4_first_init. author4_middle_init. YEAR, JournalName, 卷号, 首页
或
author1_last, author1_first_init. author1_middle_init., author2_last, author2_first_init. author2_middle_init., author3_last, author3_first_init. author3_middle_init., et al. YEAR, JournalName, 卷号, 首页
例如,以下书目条目:
@article{Bennett93,
author = {Bennet, C. L. and N. W. Boggess and E. S. Cheng and M. G. Hauser and T. Kelsall and J. C. Mather and S. H. Moseley, Jr.
and T. L. Murdock and R. A. Shafer and R. F. Silverberg and G. F. Smoot and R. Weissi and E. L. Wright},
title = {Scientific Results from COBE},
journal = {AdSpR},
volume = {13},
number = {12},
year = {1993}
}
@article{Gupta08,
author = {Gupta, Shashikant and Saini, Tarun Deep and Laskar, Tanmoy},
title = {Direction dependence and non-Gaussianity in the high-redshift supernova data},
journal = {MNRAS},
volume = {388},
number = {1},
pages = {242-246},
year = {2008},
doi = {10.1111/j.1365-2966.2008.13377.x},
URL = { + http://dx.doi.org/10.1111/j.1365-2966.2008.13377.x},
eprint = {/oup/backfile/content_public/journal/mnras/388/1/10.1111_j.1365-2966.2008.13377.x/2/mnras0388-0242.pdf}
}
应产生以下参考书目条目:
Bennet, CL 等,1993,AdSpR 13, 409
Gupta, S.、Saini, TD 和 Laskar, T. 2008,MNRAS 388, 242
通过搜索以前类似的问题,我设法让我的 biblatex 文件产生接近但不完全正确的结果:
Bennet, CL 等 (1993). AdSpR 13, 409
Gupta, S.、Saini, TD 和 Laskar, T. (2008)。MNRAS 388, 242
所以我需要做以下更改:
(1)年份不应放在括号中
(2)年份后面应该有一个逗号,而不是句号
这是一个最小的工作示例:
\documentclass[10pt]{article}
\usepackage[minnames=1,maxnames=1,maxbibnames = 5, style=authoryear, bibstyle = authoryear, backend=biber, giveninits=true, block = none, isbn = false, url = false, doi = false, eprint = false]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\DeclareFieldFormat[article]{journaltitle}{#1}
\renewbibmacro{in:}{ }
\AtEveryBibitem{\clearfield{title}}
\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{number}}
\addbibresource{mwe_refs.bib}
\renewbibmacro*{issue+date}{%
\setunit{\addcomma\space}%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
\renewcommand*{\intitlepunct}{\space}
\AtBeginBibliography{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}
\DeclareFieldFormat{pages}{\mkfirstpage{#1}}
\renewcommand{\finentrypunct}{}
\begin{document}
Here is the first reference \parencite{Bennett93}.
And here is the second reference \parencite{Gupta08}.
\printbibliography
\end{document}
其中 mwe_refs.bib 是与上面提到的 Gupta 和 Bennet 参考文献位于同一目录中的文本文件。
在此先感谢您的帮助,如果需要任何进一步说明,请告诉我。
—萨沙
答案1
删除括号包括如何(正确地)删除 authoryear 样式中年份周围的括号?(v3)
要修复标点符号,您可以更改\newunitpunct
:
\renewcommand*{\newunitpunct}{\addcomma\space}
结合这两个修复,我们得到:
\documentclass[10pt]{article}
\usepackage{xpatch}
\usepackage[minnames=1,maxnames=1,maxbibnames = 5, style=authoryear, bibstyle = authoryear, backend=biber, giveninits=true, block = none, isbn = false, url = false, doi = false, eprint = false]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\DeclareFieldFormat[article]{journaltitle}{#1}
\renewbibmacro{in:}{ }
\AtEveryBibitem{\clearfield{title}}
\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{number}}
\addbibresource{mwe_refs.bib}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\setunit*{\addcomma\space}%
\printtext%
}{}{}
\renewcommand*{\intitlepunct}{\addspace}
\renewcommand*{\newunitpunct}{\addcomma\space}
\AtBeginBibliography{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}
\DeclareFieldFormat{pages}{\mkfirstpage{#1}}
\renewcommand{\finentrypunct}{}
\begin{document}
Here is the first reference \parencite{Bennett93}.
And here is the second reference \parencite{Gupta08}.
\printbibliography
\end{document}
答案2
这AAS 稿件准备指南强烈鼓励作者使用 AASTeX 类
强烈建议作者使用最新版本的 AASTeX 宏包准备手稿,并以电子方式提交。
这AASTeX 指南列出了创建书目的几种方法
- 手册
thebibliography
或 natbib
以及aasjournal.bst
风格还鼓励作者使用 BibTex 等参考文献管理软件来组织参考文献并生成正确的参考书目。使用 BibTeX 时,需要一个 .bst 文件来生成符合 AAS 期刊格式的正确参考文献输出。作者
aasjournal.bst
在使用 BibTex 处理 AAS 期刊手稿时应使用新文件。或者
- 环境
references
该指南还指出
它们是标准 LaTeX
thebibliography
环境和 AASTeXreferences
环境。强烈建议作者使用thebibliography
。
这段文字中没有提到 BibTeX,严格来说,BibTeX 会产生thebibliography
,因此人们可能会认为使用 BibTeX 也是可以的。对于提交,thebibliography
从.bbl
BibTeX 生成的 粘贴正确的.bst
可能是最好的解决方案。
我非常怀疑 AAS 是否会乐意接受使用 的投稿biblatex
。Biber 的工作流程biblatex
与传统的 BibTeX 有很大不同。另请参阅Biblatex:向期刊投稿
这不仅仅是生成相同的 PDF 输出的问题。许多期刊实际上并不关心 TeX 生成的 PDF,他们会将提交的论文转换.tex
为他们喜欢的格式。使用非标准软件包会使事情变得更加困难,并可能破坏期刊的工作流程。
特别是如果有如此详细的 TeX 提交指南,您应该有充分的理由不遵循指南并使用未列出的参考书目系统。
综上所述,这里有一个解决方案biblatex-ext
。即使他们接受的机会biblatex
很小,但他们喜欢的机会biblatex-ext
几乎不存在。biblatex-ext
是今年春季推出的一种非常新型的软件包(因此 TeX live < 2018 将不会有它),而且出版商并不是更新爱好者。
它并不涵盖所有https://journals.aas.org/authors/references.html完美,但它应该是一个开始,应该给出正确的结果@article
\documentclass{article}
\usepackage[style=ext-authoryear, backend=biber, giveninits=true, uniquename=init, isbn = false, url = false, doi = false, eprint = false, minnames=1,maxnames=1,maxbibnames = 5, date=year, articlein=false]{biblatex}
\AtEveryBibitem{%
\ifentrytype{book}{}{\clearfield{title}}%
\clearfield{number}}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{finalnamedelim}{\addcomma\space\&\space}
\DeclareDelimFormat{andothersdelim}{\addcomma\space}
\DeclareFieldFormat{biblabeldate}{#1}
\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{issuetitle}{#1}
\DeclareFieldFormat{maintitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\ifboolexpr{not test {\iflistundef{location}} or not test {\iflistundef{#1}}}
{\setunit{\addspace}%
\printtext[parens]{%
\printlist{location}%
\iflistundef{#1}
{\setunit*{\locdatedelim}}
{\setunit*{\locpubdelim}}%
\printlist{#1}%
\setunit*{\pubdatedelim}%
\usebibmacro{date}}}%
\newunit}
\DeclareFieldFormat{pages}{\mkfirstpage{#1}}
\renewcommand{\finentrypunct}{}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bennett93,
author = {Bennet, C. L. and N. W. Boggess and E. S. Cheng and M. G. Hauser and T. Kelsall and J. C. Mather and S. H. Moseley, Jr.
and T. L. Murdock and R. A. Shafer and R. F. Silverberg and G. F. Smoot and R. Weissi and E. L. Wright},
title = {Scientific Results from COBE},
journal = {AdSpR},
volume = {13},
number = {12},
year = {1993}
}
@article{Gupta08,
author = {Gupta, Shashikant and Saini, Tarun Deep and Laskar, Tanmoy},
title = {Direction dependence and non-Gaussianity in the high-redshift supernova data},
journal = {MNRAS},
volume = {388},
number = {1},
pages = {242-246},
year = {2008},
doi = {10.1111/j.1365-2966.2008.13377.x},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{sigfridsson,knuth:ct:a,knuth:ct:b,Bennett93,Gupta08}
\printbibliography
\end{document}