为什么 BibTeX 文件不关心缩写终止句点后的间距?

为什么 BibTeX 文件不关心缩写终止句点后的间距?

在 DBLP、ACM 和 Google 数据库中,我们可以请求 BibTeX 格式的出版物引用。示例:

数据库可用性检查:

@article{DBLP:journals/ior/Dantzig02,
  author       = {George B. Dantzig},
  title        = {Linear Programming},
  journal      = {Oper. Res.},
  volume       = {50},
  number       = {1},
  pages        = {42--47},
  year         = {2002},
  url          = {https://doi.org/10.1287/opre.50.1.42.17798},
  doi          = {10.1287/OPRE.50.1.42.17798},
  timestamp    = {Tue, 31 Mar 2020 18:16:06 +0200},
  biburl       = {https://dblp.org/rec/journals/ior/Dantzig02.bib},
  bibsource    = {dblp computer science bibliography, https://dblp.org}
}

ACM:

@article{10.5555/2770781.2770788,
author = {Dantzig, George B.},
title = {Linear Programming},
year = {2002},
issue_date = {February 2002},
publisher = {INFORMS},
address = {Linthicum, MD, USA},
volume = {50},
number = {1},
issn = {0030-364X},
journal = {Oper. Res.},
month = {feb},
pages = {42–47},
numpages = {6},
keywords = {Professional: comments on}
}

(是的,我知道math={feb}biblatex 中这是错误的,但这不是重点。)

谷歌:

@book{1880vorlesungen,
  title={Vorlesungen {\"u}ber Geschichte der Mathematik},
  number={Bd. 1},
  series={Vorlesungen {\"u}ber Geschichte der Mathematik},
  url={https://books.google.de/books?id=qISWaqqWc_wC},
  year={1880},
  publisher={Teubner}
}

(是的,虽然我们知道author这里缺少该字段并且 bibtex 不支持非 ASCII,但这些不是这里的重点。)

在前两个引文中,我们看到Oper. Res.,在第三个引文中,我们看到Bd. 1(这是德语“Band 1”的缩写,在英语中意为“Volume 1”)。由于我们事先不知道这些引文将用于哪种语言,也不知道句号后的间距(假设某个 LaTeX 类或语言可以使用\nonfrenchspacing),至少如果我们直接在 LaTeX 文档中写出它们,为了获得最广泛的适用性,我们肯定会写成Oper.\@ Res.andBd.\@ 1Oper.\ Res.and Bd.\ 1。但是,当我要求常用的书目 Web 服务以 BibTeX 格式导出一些引文时,我从未看到他们特别关注终止缩写的句号。为什么会这样?是否有与 bibtex、biblatex 或 biber 相关的 TeX 特定原因(例如,它们会影响空格因素)?还是只是我到目前为止运气不好?

答案1

作为一般规则,我认为您应该将 bib 数据库中的 tex 标记保持在最低限度,这可以简化数据的重复使用。不幸的是,bibtex 缺乏对非 ascii 字母的真正支持,这意味着您需要{\"u}

由于参考书目中或多或少存在 never 句子,我认为使用.不受保护的 with\@并让 latex 类指定合适的间距是可以的。当然,标准article/ book/report类都设置了空间因子,.因此在这些情况下您不会得到句子空间。

classes.dtx标准类文档的来源:

% \begin{environment}{thebibliography}
%    The `thebibliography' environment executes the following
%    commands:
%
%    |\renewcommand{\newblock}{\hskip.11em \@plus.33em \@minus.07em}|\\
%      --- Defines the ``closed'' format, where the blocks (major units
%      of information) of an entry run together.
%
%    |\sloppy|  --- Used because it's rather hard to do line breaks in
%      bibliographies,
%
%    |\sfcode`\.=1000\relax| ---
%      Causes a `.' (period) not to produce an end-of-sentence space.
%

相关内容