我有以下使用该amsrefs
包进行交叉引用的示例:
\documentclass{amsart}
\usepackage{amsrefs}
\begin{document}
Please see \cite{B} for more details.
\begin{bibdiv}
\begin{biblist}
\bib*{A}{book}{
title = {Proceedings of the 10th Annual International Conference on XXX},
publisher = {La-La},
date = {2000}
}
\bib{B}{article}{
title = {A Brief History of XXX},
author = {John, M.},
xref = {A},
date = {2000},
pages = {70--80}
}
\end{biblist}
\end{bibdiv}
\end{document}
通过 LaTeX 运行此程序并预览 PDF 文档,我发现参考书目中的文章条目包含会议论文集书籍的标题,但不包含书籍出版商的名称。有没有一种优雅的方法来解决这个问题?
谢谢!
答案1
您可以重新定义以下规格collection.article
:
\documentclass{amsart}
\usepackage{amsrefs}
\BibSpec{collection.article}{%
+{} {\PrintAuthors} {author}
+{,} { \textit} {title}
+{.} { } {part}
+{:} { \textit} {subtitle}
+{,} { \PrintContributions} {contribution}
+{,} { \PrintConference} {conference}
+{} {\PrintBook} {book}
+{,} { } {booktitle}
+{,} { } {publisher}
+{,} { \PrintDateB} {date}
+{,} { pp.~} {pages}
+{,} { } {status}
+{,} { \PrintDOI} {doi}
+{,} { available at \eprint} {eprint}
+{} { \parenthesize} {language}
+{} { \PrintTranslation} {translation}
+{;} { \PrintReprint} {reprint}
+{.} { } {note}
+{.} {} {transition}
+{} {\SentenceSpace \PrintReviews} {review}
}
\begin{document}
Please see \cite{B} for more details.
\begin{bibdiv}
\begin{biblist}
\bib*{A}{book}{
title = {Proceedings of the 10th Annual International Conference on XXX},
publisher = {La-La},
date = {2000}
}
\bib{B}{collection.article}{
title = {A Brief History of XXX},
author = {John, M.},
xref = {A},
date = {2000},
pages = {70--80}
}
\end{biblist}
\end{bibdiv}
\end{document}
出版商amsrefs.sty
不包含在该条目类型的信息中。请注意,最好对其进行分类,collection.article
而不是article
无论如何。
答案2
如第 8.3 节所述包装文档,复合字段也可用作交叉引用字段。在这种情况下,您可以使用book={A}
而不是 来显示出版商的名称xref={A}
。
这里,年份2000
出现了两次,因为该条目date={2000}
出现在\bib*{A}{book}
条目中,也出现在\bib{B}{article}
条目中。有时,这确实是所需的行为;但在这种情况下,它似乎是多余的,因此您可以删除条目date
中的条目\bib{B}{article}
。
公平地说,文档\xref
对于何时应使用复合字段(如交叉引用)来代替它,有点不清楚book
,实际上将其留作“读者的练习” [第 8.3 节,第 24 页]。
对文档中提供的示例进行一些实验可以得出以下经验规则:
\xref
表现得好像交叉引用中的所有字段\bib*
都逐字添加到主\bib
引用中,除了以title
形式添加的任何字段booktitle
。例如,在您的 MCVE 中,输出包含文章的标题以及会议的标题,因为后者字段是booktitle
通过 导入为字段的xref
:约翰先生,XXX 简史, 第 10 届 XXX 国际会议论文集,2000 年,第 70-80 页。
- 交叉引用重复的任何字段都将被忽略。MCVE
date
中的字段就是这种情况:请注意,年份“2000”在输出中仅出现一次,这是应该的。 - 交叉引用中任何不被主引用类型识别的字段都会被忽略。在您的例子中,交叉引用添加的字段被忽略,因为这些字段不被条目
\bib
类型识别。publisher
address
article
- 例如,当使用复合字段
book
进行交叉引用时,\bib*
交叉引用中的字段将逐字导入book
主引用中的复合字段\bib
。此“内页”字段(在本例中)识别的任何字段都会打印,而它无法识别的任何字段都会被忽略。