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

Undefined CS with entry sets #1

Closed
aboruvka opened this issue Apr 21, 2012 · 12 comments
Closed

Undefined CS with entry sets #1

aboruvka opened this issue Apr 21, 2012 · 12 comments
Assignees
Labels

Comments

@aboruvka
Copy link
Collaborator

Citing all of the entries in the documentation bib file generates undefined control sequence errors:

! Undefined control sequence.
<argument> ...c@refsection @entry@\blx@slist@name
...
! Undefined control sequence.
<argument> \blx@tempa 

l.25 \begin{document}

It looks like this is associated with biber and entry sets. Here's an example.

\documentclass{article}
\usepackage[backend=biber]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{glashow,
  author = {Glashow, Sheldon},
  title = {Partial Symmetries of Weak Interactions},
  journaltitle = {Nucl.~Phys.},
  volume = {22},
  date = {1961},
  pages = {579--588}}
@article{weinberg,
  author = {Weinberg, Steven},
  title = {A Model of Leptons},
  journaltitle = {Phys.~Rev.~Lett.},
  volume = {19},
  date = {1967},
  pages = {1264--1266}}
@set{set,
  entryset = {glashow,weinberg},
  annotation = {A \texttt{set} with two members}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
%\cite{glashow,weinberg}
\nocite{set}
\printbibliography
\end{document}
@josephwright
Copy link
Collaborator

Which versiosn of everything are we talking about here?

@aboruvka
Copy link
Collaborator Author

The dev branch (also available on SF) with biber 1.0.

@plk
Copy link
Owner

plk commented Apr 22, 2012

I have just committed an attempted fix to the dev branch - can you check? It's not clear if the addset* macros are really needed with biber, if I revert them to the original 1.7 definitions, the problem seems to be gone with biber. They now don't touch any data structures used when backend=biber.

@ghost ghost assigned plk Apr 22, 2012
@aboruvka
Copy link
Collaborator Author

biblatex.sty in the dev branch doesn't have the changes needed for related entries. After adding those, I get a different error on the first latex run after biber:

ERROR: Undefined control sequence.

--- TeX said ---
l.22   \sortlist
                {entry}{}

@plk
Copy link
Owner

plk commented Apr 22, 2012

Something strange is happening with git branches and merging I think. I have pulled everything and merged related into dev (nothing new to merge it says) and it's fine for me. The dev on github should have all the related entries stuff merged into it and should be completely up to date. That error suggests an earlier biblatex.sty without any of the printbibliography changes in there? Does your active biblatex.sty have:

\let\sortlist\blx@bbl@slist

?

@aboruvka
Copy link
Collaborator Author

Sorry - I must've been updating wrong. I pulled all of dev this time and built TDS. It now runs without errors, but the backends generate different output. biber gives:

[1] Sheldon Glashow. "Partial Symmetries ofWeak Interactions". In: Nucl. Phys.
22 (1961), pp. 579-588; Steven Weinberg. "A Model of Leptons". In: Phys. Rev. Lett.
19 (1967), pp. 1264-1266.

bibtex gives:

[1] Sheldon Glashow. "Partial Symmetries ofWeak Interactions". In: Nucl. Phys.
22 (1961), pp. 579-588; Steven Weinberg. \A Model of Leptons". In: Phys. Rev. Lett.
19 (1967), pp. 1264-1266.
[2] Sheldon Glashow. "Partial Symmetries ofWeak Interactions". In: Nucl. Phys.
22 (1961), pp. 579-588.
[3] Steven Weinberg. "A Model of Leptons". In: Phys. Rev. Lett. 19 (1967),
pp. 1264-1266.

In the manual I recall that PL states that citing an entry set does (in part) the equivalent of

\nocite{<entryset>}

So I think the bibtex output is more in line of what is expected. Not sure if this discrepancy is a big deal, though.

@plk
Copy link
Owner

plk commented Apr 22, 2012

I think that's because bibtex needs some extra fields to deal with sets (se pp. 121-122 of the 1.7 doc). If you add these and do latex-bibtex-latex-bibtex (manual says you will needs extra runs with sets and bibtex), then it looks like the biber version for me?

@aboruvka
Copy link
Collaborator Author

I can't seem to replicate the biber output with bibtex. But biblatex 1.7 and bibtex/biber 0.9.9 is consistent with the output above, so I think you've fixed this issue.

@plk
Copy link
Owner

plk commented Apr 22, 2012

Try with this .bib, just \cite{set}. Run latex, bibtex, latex, bibtex, latex.

@set{set,
 entryset = {glashow,weinberg},
 crossref = {glashow},
 annotation = {A \texttt{set} with two members}}
@article{glashow,
 entryset = {set},
 author = {Glashow, Sheldon},
 title = {Partial Symmetries of Weak Interactions},
 journaltitle = {Nucl.~Phys.},
 volume = {22},
 date = {1961},
 pages = {579--588}}
@article{weinberg,
 entryset = {set},
 author = {Weinberg, Steven},
 title = {A Model of Leptons},
 journaltitle = {Phys.~Rev.~Lett.},
 volume = {19},
 date = {1967},
 pages = {1264--1266}}

@aboruvka
Copy link
Collaborator Author

Ah, got it. Order matters - the set needs to appear in the bib file first.

@plk
Copy link
Owner

plk commented Apr 22, 2012

Yes, another of the reasons it would be nice to have a biblatex release with no bibtex support - the code is a bit hairy in the .sty and PL was really keen to clean it up and make a biber only release.

@aboruvka
Copy link
Collaborator Author

The code did get quite a bit hairier with the new biber-only sorting features. Perhaps we can revisit this discussion with Joseph.

@ghost ghost mentioned this issue Sep 7, 2012
moewew pushed a commit that referenced this issue Nov 7, 2017
French translation updated
moewew added a commit that referenced this issue Jun 10, 2018
Since years are always non-negative integers and their sign is stored in the
era field, year comparison goes wrong if the years are the same but the era
doesn't agree. Comp dates would give weird results with dateera = secular,
alldates=comp, and say date = {-0054-06-07/0055-06-09},

Ideally \ifdateyearsequal{#1}{#2} should be used instead of
\iffieldsequal{#1year}{#2year}
moewew added a commit that referenced this issue Jul 7, 2019
The solution with \lefthyphenmin would only work paragraph-initially
(it seems even more complicated than that:
 https://tex.stackexchange.com/q/323930/35864).
The solution from Peter Wilson's hyphenat/https://texfaq.org/FAQ-hyphoff
works with a fake language without hyphenation patterns.
The position within the paragraph is not relevant any more, but
one shouldn't try to switch lanaguages withing \nohyphenation now
and should probably only use it for short passages of text.
But that seems fair given the only use case is preventing hyphenation
in author names (\def\mkbibnamefamily#1{\textsc{\textnohyphenation{#1}}}
in french.lbx).
moewew added a commit that referenced this issue May 15, 2020
This makes these formats more consistent.

The old behaviour can be restored with
\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}}
\DeclareFieldFormat{multiprenote}{#1\isdot}
\DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination][\mknormrange]{#1}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants