1

In the databases of DBLP, ACM, and Google, we can ask for a citation of a publication in the BibTeX format. Examples:

DBLP:

@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}
}

(Yes, I know that math={feb} is wrong in biblatex, but that's not the point here.)

Google:

@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}
}

(Yes, though we know that the field author is missing here and that non-ASCII is not supported by bibtex, these are not the point here.)

In the first two, we see Oper. Res., and in the third, we see Bd. 1 (which is an abbreviation of German “Band 1”, which means “Volume 1” in English). As neither the language nor the after-period spacing in which these citations will be used are known in advance (hypothetically, a LaTeX class or language could use \nonfrenchspacing), we would surely write Oper.\@ Res. and Bd.\@ 1 or Oper.\ Res. and Bd.\ 1 for the widest applicability at least if we write them in LaTeX documents directly. However, when I ask the usual bibliographic Web services to export some citations in the BibTeX format, I never see any special care being paid to the period terminating an abbreviation. Why so? Is there, perhaps, a TeX-specific reason related to bibtex, biblatex, or biber (e.g., them messing with the space factor)? Or was I just unlucky so far?

AlMa1r
  • 411
  • 2
    Why-type questions regarding (lack of) forethought applied to various design choices can only be answered authoritatively by the author(s) of the respective pieces of software. Do you have reason to believe that these persons hang out on TeX.SE? My own view -- incidentally, I have no affiliation with Google, ACM, or DBLP -- is that if you rely blindly on whatever bibliography-related information these sites (along with Zotero, etc) produce, you have only yourself to blame for any mishaps. It's your publication, and it's your job to assure that its typography is appropriate. – Mico Feb 23 '24 at 06:57
  • 2
    Of course, it's not only typographic correctness you have to think about when you import bibliographic database stuff. Sometimes, there are more or less blatantly obvious errors of content as well. E.g., take the 1880vorlesungen entry: it's missing the author field entirely! (It should be "Moritz Cantor", I believe...) I'd say that the missing author field is a far more serious issue than the lack of a spacing correction after "Bd.". – Mico Feb 23 '24 at 07:05
  • 1
    I've taken the liberty of deleting the biblatex, biber, and bibtex tags and replacing them with the bibliographies tag, as I believe your posting isn't specific to either of the first three tags. Feel free to revert. – Mico Feb 23 '24 at 07:10
  • 1
    Apart from what the BibTeX export functionality of these databases are doing, it does not seem very prevalent anywhere to use these spacing commands in .bib files. Take for example the files https://mirrors.ctan.org/biblio/bibtex/base/xampl.bib and https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/examples/biblatex-examples.bib which are provided as official examples for BibTeX and BibLaTeX respectively. They use entries like booktitle = "Proc. Fifteenth Annual ACM" or {J.~Amer. Math. Soc.}, so sometimes ~ but never \@ or \. – Marijn Feb 23 '24 at 08:19
  • Regarding the BibTeX output of these services also https://tex.stackexchange.com/questions/386053/software-generated-bibliographic-entries-common-errors-and-other-mistakes-to-ch is relevant. – Marijn Feb 23 '24 at 09:33
  • @Mico Missing parts (such as author=) are per-entry. Not caring about space widths is common. Question improved. – AlMa1r Feb 23 '24 at 13:52
  • @DavidCarlisle Clarified concerning non-ASCII characters in the question. For the rest: I thought that, hypothetically, bibliography packages and classes might mess with sfcode such that it wouldn't matter. – AlMa1r Feb 23 '24 at 13:58
  • @Marijn I see. Perhaps, should the official examples be improved? – AlMa1r Feb 23 '24 at 13:58
  • 1
    Your tags seem to be mutually exclusive. Can you decide if you use biber or bibtex and then tag accordingly? (or use bibliographies if you have a non-specific question) – samcarter_is_at_topanswers.xyz Feb 23 '24 at 14:09
  • 1
    @samcarter_is_at_topanswers.xyz I'm not sure: the question is specifically about .bib file syntax not generic bibliography issues, and that applies to bibtex and biblatex – David Carlisle Feb 23 '24 at 14:13
  • @DavidCarlisle Consider reverting Mico's decision to add the bibliography tag. I've already re-added the tags [bibtex], [biblatex], and [biber] removed by him. – AlMa1r Feb 23 '24 at 16:28

1 Answers1

2

As a general rule I'd say that you should keep tex markup in a bib database to a minimum, which simplifiies re-use of the data. It's already unfortunate that bibtex's lack of real support for non ascii letters means you need {\"u}.

As there are more or less never sentences in a bibliography, I'd say it is fine to use . unprotected with \@ and leave it to the latex class to specify suitable spacing. Certainly the standard article/book/report classes all set the space factor of . so that you do not get a sentence space in these cases.

classes.dtx the source of the standard class documents:

% \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.
%
David Carlisle
  • 757,742
  • Is an instance of thebibliography environment generated by bibtex/biblatex/biber? – AlMa1r Feb 23 '24 at 16:02
  • Moreover, why is the sfcode of only the period set? This is strange and probably counterintuitive. Consider the self-constructed example “J. Smith, Genderism: on Cis, Trans. Psych. Soc. 2024.” In \frenchspacing, it is unclear whether the title is Genderism: on Cis and the journal is Trans. Psych. Soc., or whether the title is Genderism: on Cis, Trans and the journal is Psych. Soc. With \sfcode of the period only being 1000, we'd get J. Smith, [more stretch]Genderism: on Cis, [more stretch]Trans. Psych. Soc. 2024., which unintentionally favors the first case. – AlMa1r Feb 23 '24 at 16:25
  • In \nonfrenchspacing (i.e., ignoring the choice made in classes.dtx for thebibliography), we would get J. Smith, [more stretch]Genderism: on Cis, [more stretch]Trans. Psych. Soc. 2024., which unintentionally favors the second case and wrongly separates Psych. and Soc.. :-( – AlMa1r Feb 23 '24 at 16:25
  • @AlMa1r for your first comment yes, that's its main function to generate such an environment. The period only is set probably because Leslie Lamport was keeping code to a minimum in 1985 and didn't think he could afford more (although \frenchspacing would be less tokens and do more. it's been that way forever in latex). We can't really change the standard classes, but other classes can improve on the examples. – David Carlisle Feb 23 '24 at 17:14
  • I see. By the way, llncs.cls, IEEEtran.cls, and elsarticle.cls do the same \sfcode\.=1000or\sfcode`.@mdirectly or by loading article. Would it be better to say\frenchspacing` instead or do you see any drawbacks? I could probably try to patch the environment locally. Or, perhaps, there is some fix-article.cls lying around where you put everything you developers consider necessary but not done by Lamport. – AlMa1r Feb 23 '24 at 17:47
  • @AlMa1r not as far as I know, you should also check what biblatex is doing, there are less compatibility constraints there so more freedom to change things if they need changing – David Carlisle Feb 23 '24 at 18:52