
Ich verwende diebeilstein.clsKlasse aus dembeilsteinPaket zum Formatieren eines Dokuments. Die Referenzen in diesen Dokumenten werden mit dembjnano.bststyle-Datei, die mit dembeilsteinPaket von CTAN (https://ctan.org/pkg/beilstein). In meinem Dokument verweise ich auf eine Referenz vom Typ „InProceedings“, was den folgenden Fehler mit Bibtext verursacht:
This is BibTeX, Version 0.99d (MiKTeX 20.7)
The top-level auxiliary file: co-paper-MWE.aux
The style file: bjnano.bst
Database file #1: MWE.bib
You can't pop an empty literal stack for entry 5420955
while executing---line 1463 of file bjnano.bst
(There was 1 error message)
Trotz des Fehlers wird eine ordentliche Bibliographie erstellt und der Eintrag scheint vollständig zu sein. Ich habe mir Zeile 1463 der Style-Datei angeschaut, verstehe die Formatierung allerdings nicht.
Hier ist das entsprechende MWE:
\documentclass{beilstein}
\usepackage{filecontents}
\begin{filecontents*}{MWE.bib}
@INPROCEEDINGS{5420955,
author={J. J. {Martin} and V. {Neburchilov} and H. {Wang} and W. {Qu}},
booktitle={2009 IEEE Electrical Power Energy Conference (EPEC)},
title={Air cathodes for metal-air batteries and fuel cells},
year={2009},
volume={},
number={},
pages={1-6},
publisher={{IEEE}},
doi = {10.1109/epec.2009.5420955},}
\end{filecontents*}
\begin{document}
Text\cite{5420955}
\bibliography{MWE}
\end{document}
Liegt der Fehler in der Stildatei oder enthält meine BIB-Datei einen Fehler?
BEARBEITEN: Wie der Paketbetreuer in einer Antwort weiter unten anmerkt, besteht dieser Fehler in Version 2.0 (vom 26.02.2020) und wird mit einem neuen Versionsupdate behoben.
Antwort1
Es gibt einen kleinen Fehler in der inproceedings
Funktion in bjnano.bst
.
Nach dem Drucken des Buchtitels wird die Funktion aufgerufen add.semicolon write$
(Zeile 1121). An dieser Stelle ist der Stapel offenbar leer, daher tritt der Fehler auf. Ersetzt man die Zeile durch new.block
(was ebenfalls ein Semikolon druckt), verschwindet der Fehler, während die Ausgabe gleich bleibt.
Volle Funktion ohne Fehler:
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
after.item 'output.state :=
title empty$
'skip$
{ title format.title.noemph output
after.sentence 'output.state :=
}
if$
booktitle format.proc.title.in "booktitle" output.check
new.block
format.pub.address "publisher" output.check
format.bdate "year" output.check
pages empty$
'skip$
{ new.block
format.pages output }
if$
format.doi output
fin.entry
}
Antwort2
Danke für den Bericht. Eine aktualisierte Version 2.1 wurde gerade an CTAN gesendet.