PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bearbeitung selbst erstellter bst-Datei



marius79
25-11-2009, 11:51
Hallo,

ich habe mir mit makebst eine eigene bst-Datei erstellt. Damit bin ich vollauf zufrieden, mit zwei kleinen Ausnahmen:

1. Wenn ich das Feld series belege, wird zwischen gezählter und ungezählter Reihe hinsichtlich der Schriftart unterschieden: Ist das volume-Feld leer, wird die Reihe aufrecht gesetzt, gebe ich die Nummer des Bandes an, erscheint die Reihe kursiv. Das hätte ich lieber einheitlich, und zwar in beiden Fällen aufrecht, zumal die Buchtitel kursiv gesetzt werden und somit u.U. nicht deutlich von der direkt nachfolgenden Reihe zu unterscheiden sind. Kann mir jemand sagen, wo in der bst-Datei welche Änderung dafür vorzunehmen ist?

Ein Minimalbeispiel erscheint mir hier nicht so sinnvoll. Die entsprechende Funktion ist doch vermutlich in allen bst-Dateien gleich benannt, oder? Wenn Ihr das anders seht, liefere ich das gerne noch nach. Bei Bedarf hänge ich auch gerne die fragliche bst-Datei an.

2. Ganz toll wäre es, wenn die gezählten Reihen in Klammern und ohne Komma direkt hinter dem Buchtitel erscheinen, z.B. so:

Buchtitel (= Name der Reihe, Bd. x), ... Rest des Eintrags.

Das wiederum soll nur bei gezählten Reihen passieren. Ist das machbar?

Der zweite Punkt ist nicht so dringend, wichtig wäre mir vor allem Hilfe bei Punkt 1.

Herzlichen Dank und viele Grüße
Marius

u_fischer
25-11-2009, 12:08
Ein Minimalbeispiel erscheint mir hier nicht so sinnvoll.

Wenn du etwas von der bibtex-Sprache verstündest, wie würdest du das Problem angehen? Du würdest doch wahrscheinlich die Stelle, von der du annimmst, dass sie für die Formatierung verantwortlich ist, ändern, die Datei speichern und dann an einem kleinem Beispiel testen, ob es so funktioniert wie gewünscht.

Und genau deswegen ist es bei solchen Fragen immer ausgesprochen sinnvoll, wenn du eine kleine, vollständige Testumgebung mitlieferst.

marius79
25-11-2009, 13:48
Entschuldigung, Du hast natürlich vollkommen Recht! Ich wusste bloß nicht, wie ich die bst-Datei in ein Minimalbeispiel einbinden soll. Aber jetzt hänge ich sie einfach als txt-Datei an. Hier ein Beispielcode:

\begin{filecontents}{lit.bib}
@incollection{ungezaehlt,
author = {Muster, Max},
title = {Beispiele, {T}eil {I}},
editor = {Itor, Ed},
booktitle = {Alle Beispiele},
series = {Wissenswertes},
publisher = {Bücher Verlag},
address = {Buxtehude},
year = {2009}
}

@incollection{gezaehlt,
author = {Muster, Moritz},
title = {Beispiele, {T}eil {II}},
editor = {Itor, Ed},
booktitle = {Alle Beispiele},
series = {Gezähltes Wissen},
volume = {42},
publisher = {Bücher Verlag},
address = {Buxtehude},
year = {2009}
}
\end{filecontents}


\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{natbib}

\begin{document}

\citet{ungezaehlt}

\citet{gezaehlt}

\bibliographystyle{myDissStyleMod}
\bibliography{lit}

\end{document}
Den ersten Punkt konnte ich mittlerweile selbst lösen. Ich habe einfach in der Funktion format.bvolume das emphasize gelöscht, und nun tut es wie gewünscht:

FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ bbl.volume volume tie.or.space.prefix
"volume" bibinfo.check * *
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ emphasize ", " * swap$ * }
if$
"volume and number" number either.or.check
}
if$
}
Trotzdem die Frage: Steht zu befürchten, dass sich diese Änderung auch auf andere Punkte noch auswirkt? Naja, das werde ich wohl dann selbst merken.

Wegen meines zweiten Punkts bin ich aber leider ratlos. Ich könnte mir vorstellen, dass ebenfalls die obige Funktion zu modifizieren und an geeigneter Stelle ein "(= series, volume)" oder so ähnlich einzufügen ist. Meine Versuche münden aber alle in Fehlermeldungen, wie z.B.

ptr=3, stack=
Gezähltes Wissen
Bd.~42
in: Ed~Itor (Hrsg.), \emph{Alle Beispiele}
---the literal stack isn't empty for entry gezaehlt
while executing---line 3075 of file myDissStyleMod.bst


Ich hoffe, damit kannst Du, Ulrike oder wer auch immer, etwas mehr anfangen?

Viele Grüße
Marius