Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In case of 'split' bibliographies, defernumbers=true is advised but details of references may be very hard to find #493

Closed
dbitouze opened this issue Oct 9, 2016 · 12 comments
Assignees
Milestone

Comments

@dbitouze
Copy link
Contributor

dbitouze commented Oct 9, 2016

A discussion about the following started on SE.

In case of 'split' bibliographies, defernumbers=true is advised but, as shown by the following MWE, details of references may in this case be very hard to find (for instance, just with your eyes, try to find details of reference e.g. [84] cited in 2nd section).

It appears that:

  • in case of non-overlapping lists and any global one, defernumbers=true could be recommended,
  • otherwise, for e.g. theses or books, maybe defernumbers=false could be recommended.

Hence I suggest to remove the warning:

Package biblatex Warning: Setting 'defernumbers=true' recommended.

in any case or, at least, in case of overlapping lists plus a global one.

MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[cm]{fullpage}
\usepackage{multicol}
\usepackage[%
backend=biber,refsegment=section,
defernumbers=true,
]{biblatex}
%
\addbibresource{biblatex-examples.bib}
%
\pagestyle{empty}
\AtBeginDocument{\tiny}
\AtBeginBibliography{\tiny}

\begin{document}
\begin{multicols}{3}%
\section{First section}
\autocite{%
  gaonkar,%
  companion,%
  nietzsche:ksa1,%
  moore,%
  cicero,%
  augustine,%
  britannica,%
  maron,%
  kullback:reprint,%
  vizedom:related,%
  markey,%
  weinberg,%
  wassenberg,%
  augustine,%
  almendro,%
  knuth:ct:related,%
  murray,%
  sigfridsson,%
  geer,%
  westfahl:space,%
  bertram,%
  baez/article,%
  kastenholz,%
  shore,%
  kullback:related,%
  hammond,%
  worman,%
  knuth:ct:a,%
  spiegelberg,%
  knuth:ct:b,%
  aksin,%
  wilde,%
  sorace,%
  matuz:doody,%
  vangennep:related,%
  padhye,%
  cicero,%
  malinowski,%
  baez/online,%
  aristotle:anima,%
  kullback:reprint,%
  vangennep,%
  nietzsche:historie,%
  knuth:ct,%
  kant:ku,%
  piccato,%
  gaonkar:in,%
  piccato,%
  sarfraz,%
  glashow,%
  massa,%
  knuth:ct:e,%
  itzhaki,%
  jcg,%
  angenendt,%
  cms,%
  gaonkar,%
  knuth:ct:d,%
  padhye,%
  averroes/hercz,%
  kant:kpv,%
  moore,%
  vazques-de-parga,%
  nietzsche:ksa,%
  chiu,%
  geer,%
  knuth:ct,%
  reese,%
  maron,%
  knuth:ct:a,%
  sigfridsson,%
  knuth:ct:c,%
  hyman,%
  gonzalez,%
  kant:kpv,%
  gillies,%
  aristotle:rhetoric,%
  nussbaum,%
  britannica,%
  iliad,%
  brandt,%
  springer,%
  knuth:ct:e,%
  knuth:ct:related,%
  westfahl:frontier,%
  massa,%
  baez/online,%
  vangennep:trans,%
  moore:related,%
  jcg,%
  nussbaum,%
}
\printbibliography[heading=subbibliography,segment=\therefsegment,title=References
of section 1]
%
\section{Second section}
\autocite{%
  averroes/bland,%
  almendro,%
  vangennep:related,%
  murray,%
  averroes/hercz,%
  sarfraz,%
  bertram,%
  angenendt,%
  knuth:ct:c,%
  herrmann,%
  gerhardt,%
  companion,%
  aristotle:anima,%
  aristotle:rhetoric,%
  baez/article,%
  ctan,%
  moraux,%
  cms,%
  spiegelberg,%
  moore:related,%
  doody,%
  wassenberg,%
  reese,%
  matuz:doody,%
  coleridge,%
  ctan,%
  salam,%
  moraux,%
  loh,%
  vizedom:related,%
  aristotle:poetics,%
  malinowski,%
  laufenberg,%
  cotton,%
  salam,%
  aristotle:poetics,%
  gaonkar:in,%
  gonzalez,%
  knuth:ct:b,%
  glashow,%
  aristotle:physics,%
  nietzsche:ksa,%
  nietzsche:historie,%
  hammond,%
  vangennep:trans,%
  worman,%
  westfahl:space,%
  pines,%
  weinberg,%
  knuth:ct:d,%
  westfahl:frontier,%
  laufenberg,%
  nietzsche:ksa1,%
  kullback,%
  yoon,%
  chiu,%
  kant:ku,%
  vangennep,%
  aristotle:physics,%
  vazques-de-parga,%
  sorace,%
  yoon,%
  kowalik,%
  brandt,%
  aksin,%
  loh,%
  doody,%
  averroes/bland,%
  itzhaki,%
  kastenholz,%
  hyman,%
  shore,%
  kullback:related,%
  kowalik,%
  kullback,%
  jaffe,%
  gerhardt,%
  coleridge,%
  herrmann,%
  iliad,%
  springer,%
  cotton,%
  markey,%
  gillies,%
  pines,%
  wilde,%
  averroes/hannes,%
  averroes/hannes,%
  jaffe,%
}
\printbibliography[heading=subbibliography,segment=\therefsegment,title=References
of section 2]
%
\printbibliography
\end{multicols}
\end{document}
plk added a commit that referenced this issue Oct 9, 2016
@plk plk self-assigned this Oct 9, 2016
@plk
Copy link
Owner

plk commented Oct 9, 2016

Yes, I think that warning was not really intended to be adequate to such circumstances. I have removed it in the dev version.

@dbitouze
Copy link
Contributor Author

dbitouze commented Oct 9, 2016

Thanks!

@moewew
Copy link
Collaborator

moewew commented May 5, 2020

I'd like to revisit the question whether or not biblatex should issue a warning here.

I know and agree that in the situation that sparked this discussion (also https://tex.stackexchange.com/q/332431/35864) defernumbers=true, gives sub-par results. I feel, however, that defernumbers=false, also does not give ideal results (arguably the result is better than with defernumbers=true,, so the best biblatex can give you with that setup, but still not ideal). I would further like to argue that this setup is exotic enough that it probably should not serve as the only data point to decide whether or not to warn here.

On the other hand, here are some links to TeX.SX questions where defernumbers=true, clearly produces superior results (i.e. it generates the continuous numbering people normally expect)

Given that

  • this warning was present at least in version 1.0 of biblatex (so PL thought it was useful),
  • it is extremely useful in many circumstances (I would have thought in almost all circumstances that are not pathological in that one entry may appear in several of the split bibliographies)
  • it is only a warning that you are free to ignore as you please

I think it would be extremely useful to reinstate the warning.

I'm all for making it slightly more verbose and maybe even for providing a way to 'opt out' of receiving the warning if you have decided that defernumbers=true, is not for you.

@moewew moewew reopened this May 5, 2020
@dbitouze
Copy link
Contributor Author

dbitouze commented May 5, 2020

On the other hand, here are some links to TeX.SX questions where defernumbers=true, clearly produces superior results (i.e. it generates the continuous numbering people normally expect
[...]

None of these examples contain a global bibliography. I guess none of their authors would have complained if they would have added a global bibliography 😃:

\documentclass{article}

\usepackage[sorting = ynt,bibstyle=numeric,defernumbers]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
    @book{a,
        author = "I",
        year = "1973"
    }
    @book{a2,
        author = "I",
        year = "1923"
    }
    @book{b,
        author = "You",
        year = "1959"
    }
\end{filecontents}

\addbibresource{\jobname.bib}

\DeclareBibliographyCategory{own}

\begin{document}

\nocite{a,a2}
\addtocategory{own}{a,a2}
\nocite{b}

\printbibliography[category=own,title={A}]
\printbibliography[notcategory=own,title={B}]

\printbibliography
\end{document}

test

That's why I said:

It appears that:

  • in case of non-overlapping lists and any global one, defernumbers=true could be recommended,
  • otherwise, for e.g. theses or books, maybe defernumbers=false could be recommended.

Wouldn't it possible for biblatex to detect the 2nd case (i.e. split bibliographies with overlapping lists and a global one) and prevent the warning in this case?

@moewew
Copy link
Collaborator

moewew commented May 5, 2020

Sure, adding a global bibliography turns the examples into the pathological case, where both settings give sub-par results, but defernumbers=false, gives arguably better results.

I don't think we can reliably distinguish whether or not there is an additional global bibliography with the current machinery (the way split bibliographies are detected at the moment is very low-tech). I don't doubt that it would be possible in general, but I don't see a quick way and I don't think an investigation into this would be worth it, since this is just about a warning.

We basically can only detect split bibliographies in general and decide to warn or not to warn. In my experience the vast majority of users who wants split bibliographies will not have an additional global bibliography. For those users the warning is helpful. I concede that I don't expect that many users will actually read the warning, but for those who do it can be useful (especially if we make it a bit more verbose). People with global bibliographies can choose to ignore the recommendation.

I guess my reasoning is as follows.

  1. I understand that some people like to have their documents compile without warnings. For those users we can add a way to disable the warning.

  2. The benefits of recommending defernumbers to people who need it (suppose you don't know about defernumbers: how else are you going to find out about it?) outweigh the disadvantages of recommending it when it gives worse results (at worst the user tries it, doesn't like the result, goes back to defernumbers=false and from that on the warning is only a mild annoyance).

    defernumbers=true Warning No warning
    desirable OK User needs to find out about defernumbers otherwise (difficult: bad)
    undesirable Warning is annoying (not that bad) OK
  3. I expect that there are many more people with a non pathological setup (no global bibliography) than people with a pathological setup. (-> Most people want defernumbers=true,).

I think point 2 and 1 together would already justify putting the warning back in, but point 3 puts additional mass on the "desirable" row in the table.

@dbitouze
Copy link
Contributor Author

dbitouze commented May 6, 2020

OK but the current warning:

Package biblatex Warning: Setting 'defernumbers=true' recommended.

isn't unbiased :) Hence, it is not only annoying, it could be misleading. Si, if you change it for an unbiased one, why not?

BTW, in all the TeX.SE issues you mention, the bibliographies are by categories, keywords or types. Wouldn't defernumbers=false be generally a better choice for split bibliographies by segments or sections?

@moewew
Copy link
Collaborator

moewew commented May 6, 2020

OK but the current warning:

Package biblatex Warning: Setting 'defernumbers=true' recommended.

isn't unbiased :) Hence, it is not only annoying, it could be misleading. Si, if you change it for an unbiased one, why not?

As I mentioned above, I'm all for making the warning more verbose, precise and useful. So if that's the only thing holding us back, I'm sure we can work something out.

BTW, in all the TeX.SE issues you mention, the bibliographies are by categories, keywords or types. Wouldn't defernumbers=false be generally a better choice for split bibliographies by segments or sections?

In a way refsegments work like categories and keywords: They just mark an entry as belonging to a particular segment. With refsegments the question is whether or not you end up with entries belonging to multiple refsegments: If there is no entry that belongs to two segments defernumbers=true, gives better results. If there are entries that belong to several segments, both settings give infelicitous results, but defernumbers=false, may be 'less bad'.

While the setup is usually so that you do not end up with an entry belonging to several bibliographies if you split by categories or keywords (unless you have a global bibliography), there is a real possibility that an entry may belong to several segments.

When you split only by section the question of whether or not to use defernumbers does not arise. The output will be the same either way, since refsections are kept completely separate with independent numbering. But as far as I can see there never was a warning if you only split by section and I don't plan to introduce the warning in that case.

@dbitouze
Copy link
Contributor Author

dbitouze commented May 6, 2020

Okay. I am very curious to know what kind of warning you have in mind.

moewew added a commit to moewew/biblatex that referenced this issue May 8, 2020
@moewew
Copy link
Collaborator

moewew commented May 8, 2020

My suggestion is at moewew@0b4165a. Feedback is welcome.

edit: hrmpf, there was a typo moewew@6966ea5.

The effect of the two commits together can be seen in dev...moewew:warndefernum

moewew added a commit to moewew/biblatex that referenced this issue May 8, 2020
@dbitouze
Copy link
Contributor Author

dbitouze commented May 8, 2020

Well, I would say, still a bit biased ("pathological cases") 😄 but, okay, let's close this issue.

@moewew moewew added the fixedindev Fixed in current DEV version label May 8, 2020
@moewew moewew added this to the v3.15 milestone May 8, 2020
@moewew moewew added this to Done in biblatex 3.15 May 8, 2020
@moewew
Copy link
Collaborator

moewew commented May 8, 2020

Pushed 0b4165a and 6966ea5 to dev.

@moewew moewew removed the fixedindev Fixed in current DEV version label Aug 31, 2020
@moewew
Copy link
Collaborator

moewew commented Aug 31, 2020

biblatex 3.15 with the new warnings has been released.

@moewew moewew closed this as completed Aug 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
biblatex 3.15
  
Done
Development

No branches or pull requests

3 participants