PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einträge im Literaturverzeichnis zählen



Michael C.
14-06-2010, 10:02
Hallo zusammen,

ich sitze an der Latex-Vorlage für eine größere wiss. Arbeit. Unter anderem wird auf den Titelseiten die Angabe von Gesamtseitenanzahl (arabisch nummerierte Inhaltsseiten), Abbildungen, Tabellen, Anlagen sowie Literaturquellen verlangt. Nachdem ich die ersten 4 Dinge mit Hilfe von zahlreichen Foren erfolgreich umsetzen konnte, stockt das Ganze nun leider bei den Literaturquellen.

Ich verwende Bibtex zur Erzeugung des Literaturverzeichnisses. Das klappt auch alles prima. Nun würde ich die Anzahl der Einträge in der bib-Datei irgendwie in einem Zähler speichern, der anschließend so (wohl in einer aux-datei??) abgespeichert wird, dass er beim nachfolgenden Latex-Lauf ausgegeben werden kann.

Kann mir das jemand helfen, wie ich da herangehe bzw. gibt es vllt. eine ganz andere Möglichkeit, hier zum Ziel zu kommen? Meine bisherige Recherche hat mir leider gar nicht weitergeholfen.

Viele Grüße
Michael

Xenara
14-06-2010, 10:15
Was für einen .bib-Style verwendest du? Vielleicht gibt es eine Möglichkeit, die Einträge so umzudefinieren, dass dem Label ein Zähler mitgegeben wird. Das dürfte aber nicht trivial sein.

Mein einfacher Ansatz wäre aber, als Style plain zu verwenden, der ja die Einträge mit Nummern versieht. Dann siehst du ja die Anzahl, kannst sie zum Schluss auf die Titelseite schreiben und dann immernoch einen anderen Style wählen.

Michael C.
14-06-2010, 12:46
Danke für die schnelle Antwort! Ja, die Variante mit dem Bibtex-Style mit den durchlaufend nummerierten Literatureinträgen und die manuelle Übernahme des letzten Eintrages würde mit wenig Aufwand funktionieren, auch wenn eine automatisch generierte Anzahl natürlich ideal wäre. Normalerweise verwende ich einen anderen Stil, der dem "alpha"-Stil recht nahe kommt. Das ist derzeit die letzte große Baustelle an der Vorlage, die noch offen ist, da die Vorgaben - wie leider so oft - sehr individuell sind und kein Standardstil so recht passen mag.

Xenara
14-06-2010, 13:15
Wenn du einen bestimmten Stil brauchst, gibt es makebst oder du verwendest biblatex. Zu biblatex gibt es hier im Forum einige Experten, möglicherweise kann man darin dann den gewünschten Zähler mit einbauen. Ich kann dir da leider nicht mehr weiterhelfen.

lockstep
14-06-2010, 16:52
biblatex kennt den Zähler instcount, der bei jedem Zitat und bei jedem Eintrag in Literaturverzeichnisse (bzw. Sigelverzeichnisse) hochgezählt wird. Wenn man also a) einen neuen Zähler "bibentries" definiert b) nach dem letzten Zitat, aber vor dem (ersten) Literaturverzeichnis



\setcounter{bibentries}{-\theinstcount}


setzt sowie c) nach dem (letzten) Literaturverzeichnis



\addtocounter{bibentries}{\theinstcount}


ausführt, liefert \thebibentries die Zahl der Verzeichniseinträge.

lockstep

lockstep
14-06-2010, 18:13
Anbei eine Lösung, bei der (ab dem zweiten LaTeX-Lauf) die Zahl der Verzeichniseinträge nicht bloß am Schluss, sondern an jeder Stelle des Dokuments als \ref{bibentries} verfügbar ist. Teile des Codes basieren auf dem Paket lastpage.



\documentclass{article}

\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage[style=authoryear-icomp]{biblatex}% lädt auch Paket etoolbox
\usepackage{csquotes}

\makeatletter
\newcounter{bibentries}
\newbool{firstbiblos}
\booltrue{firstbiblos}
\newcommand*{\subtractcitesiffirst}{%
\ifbool{firstbiblos}{%
\setcounter{bibentries}{-\theinstcount}%
\boolfalse{firstbiblos}%
}{%
}%
}
\pretocmd{\printbibliography}{\subtractcitesiffirs t}{}{}
\pretocmd{\printshorthands}{\subtractcitesiffirst} {}{}
\AtEndDocument{%
\addtocounter{bibentries}{\theinstcount}%
\immediate\write\@auxout{%
\string\newlabel{bibentries}{{\thebibentries}{}}%
}%
}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
hyphenation = {english},
author = {Blinder, Alan S.},
year = {1974},
title = {The economics of brushing teeth},
journaltitle = {Journal of Political Economy},
volume = {82},
number = {4},
pages = {887--891},
}
\end{filecontents}

\bibliography{\jobname}

\begin{document}

Zahl der Verzeichniseinträge in diesem Dokument: \ref{bibentries}

Ein bisschen Text \autocite{Bli74}.

\printbibliography

\end{document}


lockstep

Michael C.
23-06-2010, 09:05
Danke für die ausführliche Lösung!

Ich habe mich dennoch etwas anders beholfen. Ich nutze zur Definition des Zitierstils natbib, für das Literaturverzeichnis Standard-BibTeX. Ich habe nach einigem Herumprobieren einen eigenen Stil mit makebst erstellen können, der den Anforderungen hier entspricht und im Zusammenspiel mit Citavi und einer entsprechend Konfigurierten BibTeX-Exportdefinition in Citavi wunderbar funktioniert.

Die manuelle Zählung der Einträge klappt über ein einmaliges Umschalten des Stils über die Nutzung der Option [numbers] beim Einbinden des natbib-Paketes. (normalerweise: \usepackage{natbib}; zum Zählen der Einträge kurzzeitig: \usepackage[numbers]{natbib})

Nochmal Danke für die prompte Hilfe und die Hinweise.

Michael C.