PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigenen bst.-File editieren



Onyag
13-06-2008, 08:22
Ich habe folgendes Problem:
Wie kann ich in der Bibilography (basierend auf eigenem .bst-File) die Angabe der Seitenzahlen in Sammelbänden von hinten in die Mitte bekommen? (Ich verwende natbib.)

Jetzt sieht es so aus:
Schönwälder, Karen, 2007: Siedlungskonzentrationen und Integration: eine Zwischenbilanz. In: Karen Schönwälder (Hg.), Residential Segregation and the Integration of Immigrants: Britain, the Netherlands and Sweden. WZB Discussion Paper Nr. SP IV 2007-602, S. 101-116.

Ich will es aber so:
Schönwälder, Karen, 2007: Siedlungskonzentrationen und Integration: eine Zwischenbilanz. S. 101-116 in: Karen Schönwälder (Hg.), Residential Segregation and the Integration of Immigrants: Britain, the Netherlands and Sweden. WZB Discussion Paper Nr. SP IV 2007-602.

Soll ich dazu den ganzen bst-File hier posten?

Onyag
14-06-2008, 15:35
Weiß das niemand? :(

aakaasha
16-06-2008, 13:44
Versuch mal mit makebst ein eigenes bst-file zu generieren.

LG Flo

Onyag
18-06-2008, 16:20
Genau das habe ich doch gemacht. Die von mir gewünschte Einstellung konnte dort aber nicht gewählt werden (oder ich habe es übersehen). Daher will ich es im Nachhinein ändern.

aakaasha
19-06-2008, 09:52
Da ich erst letzte Woche ein eigenes bst-file erstellt habe, glaub ich mich zu erinnern, daß es da eine Option gab wie "Alle Seitenzahlen ans Ende" oder so ähnlich.

Du kannst natürlich versuchen das bst-file händisch zu editieren. Öffne es in einem Texteditor und suche den betreffenden Eintrag (FUNCTION {incollection}) und dort wahrscheinlich der Eintrag "format.chapter.pages output". Setze den an die gewünschte Stelle.

Meine bst-Datei sieht z.B. so aus:

FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
new.sentence
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.chapter.pages output
format.publisher.address output
format.edition output
format.date "year" output.check
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.note output
fin.entry
}

MfG,
Florian

Onyag
20-06-2008, 10:01
Bei mir sieht es so aus:

FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.chapter.pages output
new.sentence
format.publisher.address output
format.edition output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
new.block
format.url output
new.block
format.note output
fin.entry
}

Wenn ich das von dir rotmarkierte vor " format.in.ed.booktitle "booktitle" output.check" setze ändert sich nichts :(

Onyag
23-06-2008, 22:52
Weiß niemand eine Antwort? ;)

rais
24-06-2008, 14:49
Moin moin,

Weiß niemand eine Antwort? ;)
Du änderst etwas an einer Datei, die wir nicht kennen ... was soll man dazu sagen?
Nicht nur das, Du versuchst (zwangsläufig) drei Dateien miteinander in Einklang zu bringen: Deine .bib, Deine .bst und Deine .tex ... wie wär's mit einem Beispiel? (Deine .bst kannst Du zu .bst.txt umbenennen und über `Anhänge verwalten' hier reinstellen).

MfG

Onyag
24-06-2008, 19:42
Da hast du natürlich recht ;)
Also im Anhang ist meine .bst-Datei und die erzeugte PDF Datei (Minimalbeispiel).
Was ich möchte: In der Bibliographie soll die "Schönwälder 2007" Zitation wie folgt aussehen:

Schönwälder, Karen , 2007: Siedlungskonzentrationen und Integration: eine Zwischenbilanz. S. 101-116, in: Karen Schönwälder (Hg.), Residential Segregation and the Integration of Immigrants: Britain, the Netherlands and Sweden. WZB Discussion Paper Nr. SP IV 2007-602.

Ich verwende "natbib". Was soll ich noch posten?

Onyag
28-06-2008, 13:40
Ich habe es jetzt hinbekommen, dass die Seitenzahlen nicht mehr am Ende stehen:

Friedrichs, Jürgen, 1998: Do Poor Neighbourhoods Make Their Residents Poorer? Context Effects of Poverty Neighbourhoods on Residents. S. 77-99. in: Hans-Jürgen Anreß (Hg.), Empirical Povertys Research in a Comparative Perspective. Ashgate: Aldershot.

Wie kann ich es erreichen, dass nach der Seitenzahl kein Punkt steht?

Onyag
29-06-2008, 10:54
Eine weitere Frage hat sich ergeben: Wenn ich zwei Werke des gleichen Autoren zitieren möchte ergibt sich:

bla bla bla (Autor 2005 2007).

Ich möchte aber:

bla bla bla (Autor 2005, 2007)

Weiß jemand, wie ich Latex dazu bringe, das Komma zu setzen?

Ach ja, eine weitere Frage wäre, wie es mit natbib möglich ist, dass Latex bei wiederholter Zitierung des gleichen Werkes "ebd." schreibt.

Anerev
29-06-2008, 11:38
Eine weitere Frage hat sich ergeben: Wenn ich zwei Werke des gleichen Autoren zitieren möchte ergibt sich:

bla bla bla (Autor 2005 2007).

Ich möchte aber:

bla bla bla (Autor 2005, 2007)

Weiß jemand, wie ich Latex dazu bringe, das Komma zu setzen?

Die Abtrennung durch ein Komma ist eigentlich die default-Einstellung bei natbib. Guck mal in die entsprechende Doku unter Punkt 4.3 "Selecting citation punctuation".

Bei deiner zweiten Frage kann ich dir nicht helfen; Angaben wie "ebd." oder "ibid." sollten aber eigentlich sowieso vermieden werden, da wenig leserfreundlich.

Viele Grüße
Verena

Onyag
29-06-2008, 11:48
Das hat funktioniert, vielen Dank! (Auch wenn es sonderbar ist, da ich den Befehl vorher überhaupt nicht verwendet habe und somit ja eigentlich bereits die Standard-Einstellung hätte verwendet werden müssen :confused:).

Du kannst nicht zufällig auch noch meine etwas weiter oben formulierte Frage beantworten? (die mit dem Punkt nach den Seitenzahlen)? ;)

Anerev
29-06-2008, 19:09
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.chapter.pages output
new.sentence
format.publisher.address output
format.edition output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
new.block
format.url output
new.block
format.note output
fin.entry
}


Hmm, ich vermute mal, dass es an dem new.sentence liegt...was passiert denn, wenn du das rausnimmst?

Onyag
30-06-2008, 10:21
Also bei mir sieht der bst.-file anders aus (siehe Anhang) :confused:

Onyag
04-07-2008, 20:00
Keine Antworten und Ideen mehr? :(

rais
04-07-2008, 21:32
Moin moin,


Friedrichs, Jürgen, 1998: Do Poor Neighbourhoods Make Their Residents Poorer? Context Effects of Poverty Neighbourhoods on Residents. S. 77-99. in: Hans-Jürgen Anreß (Hg.), Empirical Povertys Research in a Comparative Perspective. Ashgate: Aldershot.

Wie kann ich es erreichen, dass nach der Seitenzahl kein Punkt steht?
wie sieht der entsprechende Eintrag in Deiner .bib aus? Wenn ich das hier mit Deiner in Beitrag#15 geposteten koeln.bst versuche, dann steht da schon ein Komma...

BTW: wenn hier im Board von `Beispiel', `Minimalbeispiel' oder kurz `MB' die Rede ist, dann ist grundsätzlich lauffähiger Code gemeint -- in Deinem Fall also bestehend aus

foo.tex
foo.bib
foo.bst
;-)

MfG

Onyag
05-07-2008, 02:06
Stimmt, da steht ein Komma - sorry! Genau dieses Komma soll jedoch weg.
Im Anhang mal meine bib., tex. und bst. Files.

Der vermutlich zu ändernde Eintrag in der bib. Datei sieht so aus:


FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
format.pages "pages" output.check
format.in.ed.booktitle "booktitle" output.check
crossref missing$
{ format.bvolume output
format.number.series output
format.chapter.pages output
format.publisher.address output
format.edition output
}
{ format.incoll.inproc.crossref output.nonnull
}
if$
format.url output
new.block
format.note output
fin.entry
}

rais
06-07-2008, 12:54
Moin moin,

Stimmt, da steht ein Komma - sorry! Genau dieses Komma soll jedoch weg.
Im Anhang mal meine bib., tex. und bst. Files.

allein die jeweilige Dateigröße dürfte so manchen davon abgehalten haben, sich Deine Dateien überhaupt erst anzusehen ...
Schau Dir doch bitte die hiesigen Boardregeln an, ist derzeit der vierte Thread von oben.



\begin{filecontents}{Migration3.bib}
@INCOLLECTION{Portes1995,
author = {Portes, Alejandro},
title = {Children of Immigrants: Segmented Assimilation and Its Determinants},
booktitle = {The Economic Sociology of Immigration: Essays on Networks, Ethnicity and Entrepreneurship},
publisher = {Russell Sage Foundation},
year = {1995},
editor = {Portes, Alejandro},
pages = {248--280}
} %%%<--
\end{filecontents}
\documentclass[ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel,natbib}
\begin{document}
\citep{Portes1995}
\bibliographystyle{koeln-2}
\bibliography{Migration3}
\end{document}

Ergebnis siehe foo.jpg.

MfG

Onyag
06-07-2008, 13:00
Du hast wahrscheinlich recht bezüglich der Länge (werde in Zukunft Minimalbeispiele posten).
Ich habe jetzt einfach den bst.-File von dir übernommen. Kannst du mir aber schreiben, was du geändert hast? ;)
In jedem Fall vielen herzlichen Dank für die Hilfe :)

rais
06-07-2008, 17:47
Moin moin,


Kannst du mir aber schreiben, was du geändert hast? ;)

sicher: in Funktion `output.nonnull' -- hier wurde das Komma gesetzt -- hab ich eine neue Abfrage im Fall output.state = mid.sentence eingebaut: wenn die neue Variable ext.output.state = no.comma (neue Konstante), dann nur Leerzeichen ausgeben, sonst Komma und Leerzeichen; ext.output.state wird danach auf die ebenfalls neue Konstante maybe.comma gesetzt, um Komma wieder zuzulassen.
Damit's funktioniert, müssen die neuen Konstanten/Variablen deklariert sein:
INTEGERS entsprechend erweitert um `ext.output.state maybe.comma no.comma', Funktion init.state.consts entsprechend erweitert um

#0 'maybe.comma := %%%<--
#1 'no.comma := %%%<--

und in Funktion `format.pages' wird `ext.output.state' hier auf `no.comma' gesetzt, damit auch wirklich nur nach den Seiten das Komma verschwindet.;)

MfG

Onyag
06-07-2008, 17:55
Hm, das übersteigt meine Kenntnisse doch um einiges (oder anders ausgedrückt: Ich verstehe nur Bahnhof). Werde es mir vielleicht mal in Ruhe anschauen und versuchen nachzuvollziehen. Fürs erste reicht mir jedoch, dass es einfach funktioniert so wie ich will (nochmals Danke für die umfassende Hilfe!) :)