BiBTeX + amsalpha + incollection + NOTE = 奇怪的结果

BiBTeX + amsalpha + incollection + NOTE = 奇怪的结果

我使用 amsalpha 作为参考书目样式,并滥用 NOTE 字段链接到 arXiv 和 DOI。(是的,我知道这是黑客行为,但我没办法。:|)通常情况下,这很有效;例如,条目

@article {FGKS,
AUTHOR = {Arthur {Fischer} and Martin {Goldstern} and Jakob {Kellner} and Saharon {Shelah}},
TITLE = {{Creature Forcing and Five Cardinal Characteristics in {Cicho{\'n}'s} Diagram}},
JOURNAL = {Arch. Math. Logic},
FJOURNAL = {Archive for Mathematical Logic},
VOLUME = {56},
YEAR = {2017},
NUMBER = {7--8},
PAGES = {1045--1103},
ISSN = {0933-5846},
CODEN = {AMLOEH},
NOTE = {\href{https://dx.doi.org/10.1007/s00153-017-0553-8}{\textsc{doi}:~10.1007/S00153-017-0553-8}, \href{https://arxiv.org/abs/1402.0367}{arXiv:~1402.0367 [math.LO]}},
URL = {http://arxiv.org/abs/1402.0367},
}

输出为

[FGKS17] Arthur Fischer、Martin Goldstern、Jakob Kellner 和 Saharon Shelah,Cichoń 图表中的生物强迫和五大基本特征、数学逻辑学56(2017),第7-8期,1045-1103,DOI: 10.1007/S00153-017-0553-8arXiv: 1402.0367 [math.LO]

我的问题是 @incollection 条目格式不正确。例如,

@incollection {Blass93,
AUTHOR = {Andreas {Blass}},
TITLE = {{Simple Cardinal Characteristics of the Continuum}},
BOOKTITLE = {{S}et {T}heory of the {R}eals},
EDITOR = {Haim {Judah}},
PAGES = {63--90},
SERIES = {Israel Mathematics Conference Proceedings},
VOLUME = {6},
PUBLISHER = {Gelbart Research Institute for Mathematical Sciences, Bar-Ilan University, Ramat-Gan},
YEAR = {1993},
NOTE = {\href{http://arxiv.org/abs/9405202}{arXiv:~9405202 [math.LO]}},
URL = {http://www.math.lsa.umich.edu/~ablass/sccc.pdf},
}

输出为

[Bla93] 安德烈亚斯·布拉斯,连续体的简单基本特征,实数集合论(Haim Judah 编辑),以色列数学会议论文集,第 6 卷,盖尔巴特数学科学研究所,巴伊兰大学,拉马特甘,1993 年,arXiv: 9405202 [math.LO],第 63-90 页。

…与页面笔记。

我做错了什么吗?这是预期的行为吗(如果是,为什么)?有没有一种相当简单的方法来改变这种行为?

答案1

以下是文件中amsalpha.bst格式化类型条目的代码@incollection

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  crossref missing$
    { format.incoll.title.editors "booktitle" output.check
      format.bookvolume.series.number output
      publisher "publisher" output.check
      address output
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
    }
  if$
  note output
  format.book.pages output
  format.language *
  fin.entry
}

无需过多了解细节,请注意,该pages字段设置为输出,不在之前,note领域。

你问,

... 附有注释后的页面。... 这是预期的行为吗(如果是,为什么)?

是的,这是预期的行为。恐怕我无法解决您的问题为什么问题。

你还问过,

有没有一个相当简单的方法来改变这种行为?

在您的 TeX 发行版中找到该文件amsalpha.bst。复制此文件并将副本命名为 。myamsalpha.bst(不要编辑 TeX 发行版中未重命名的原始文件。)myamsalpha.bst在文本编辑器中打开该文件并找到函数incollection。(它应该看起来像上面显示的代码。)交换行的顺序

      note output
      format.book.pages output

这样它们看起来就像这样:

      format.book.pages output
      note output

将文件保存myamsalpha.bst在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择后者,请确保适当更新 TeX 发行版的文件名数据库。在主 tex 文件中,将指令更改\bibliographystyle{amsalpha}\bibliographystyle{myamsalpha}并重新运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。

最后一条评论:我假设您使用amsalpha围兜样式是因为您必须这样做。如果是这样,那么修改围兜样式几乎肯定是一个坏主意。

相关内容