![为什么 BibTeX 文件不关心缩写终止句点后的间距?](https://linux22.com/image/474146/%E4%B8%BA%E4%BB%80%E4%B9%88%20BibTeX%20%E6%96%87%E4%BB%B6%E4%B8%8D%E5%85%B3%E5%BF%83%E7%BC%A9%E5%86%99%E7%BB%88%E6%AD%A2%E5%8F%A5%E7%82%B9%E5%90%8E%E7%9A%84%E9%97%B4%E8%B7%9D%EF%BC%9F.png)
在 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.\@ 1
或Oper.\ 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.
%