PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bibtex-Style: Probleme mit Einzug etc.



telnetfx
19-08-2012, 14:01
Hallo liebe Tex-profies!

Ich schlage mich mit einem Formatierungsproblem rum, das auftritt wenn mein Literaturverzeichnis mit bibtex erstellt wird.

Ein Literatureintrag soll folgendermaßen aussehen:
[x] M. Autor: Titel, X. Auflage, Verlag, Stadt, Jahr.

Dabei ist es wichtig, dass es nach Zeilenumbrüchen keinen Einzug gibt, dass heißt, jeder Anfangsuchstabe einer Zeile im Literaturverzeichnis soll seitlich die gleiche Distanz zur rechten eckigen Klammer des Zahleneintrages haben (also wie bei plain.bst).

Ich habe bereits versucht mit bib-it einen Style selber zu erstellen. Alle Kriterien wurden hier erfüllt, leider war bei dem erzeugten Style das Problem mit dem unterschiedlichen Einzug nicht in den Griff zu bekommen. Als ich Versucht habe meinen Style an einzelnen Stellen mit plain.bst(hier passt der Abstand nach Zeilenumbrüchen) zu kombinieren, ging das natürlich in die Hose.

Könnt ihr mir dabei helfen, plain.bst so anzupasen, dass ich meine Vorgaben erfüllen kann? Von heute auf morgen bst lernen zu wollen ist für mich etwas zu viel :rolleyes:
Wenn ihr noch Infos von mir braucht um einen Lösugsvorschlag zu erarbeiten, dann fragt ganz konkret danach.

Vielen Dank!!

telnetfx
19-08-2012, 16:58
Keiner eine Idee?

rais
19-08-2012, 19:54
Hallo und Herzlich Willkommen an Board :)


Ich habe bereits versucht mit bib-it einen Style selber zu erstellen. Alle Kriterien wurden hier erfüllt, leider war bei dem erzeugten Style das Problem mit dem unterschiedlichen Einzug nicht in den Griff zu bekommen.
ich würde vorschlagen, Du erstellst ein Minimalbeispiel (http://www.mrunix.de/forums/showthread.php?t=66921) und hängst Deinen erstellten Stil mit rein (unter `Anhänge verwalten' kannst Du Dateien hier hochladen).
Es klingt zmindest einfacher, diesen Abstand in den Griff zu kriegen, als in einer .bst eine nicht näher definierte Anzahl von Anpassungen durchführen zu wollen.

Alternativ könntest Du Dich auch mit biblatex beschäftigen, da ließen sich alle Anpassungen auf LaTeX-Ebene vornehmen.

MfG

telnetfx
19-08-2012, 23:11
Ich stelle alles was gefordert ist dann morgen rein.
Erstmal danke für die Rückmeldung

telnetfx
22-08-2012, 00:16
ok, jetzt schaffe ich es endlich ein MB bereitzustellen:



\documentclass[a4paper,12pt]{article}
\usepackage{cite}
\usepackage[ngerman]{babel} % Silbentrennung nach neuer Rechtschreibung
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % Trennung von Wörtern mit Umlauten

\begin{document}

\tableofcontents
\newpage

\section{Ein Kapitel}

Hier steht etwas Text\cite{Quelle}.


\newpage
\addcontentsline{toc}{section}{Literatur}
\bibliographystyle{plainthree}
\bibliography{Literatur}


\end{document}



Wenn was am Codeblock fehlen sollte, meldet euch.

Um noch mal zu meinem Problem zurückzukommen:
Auf dem angehängten Bild sieht man, dass die zweite Zeile nicht an der gleichen horizontalen Position startet wie die erste (verdeutlich durch die Linie).
Im Idealfall haben beide Anfangsbuchstaben den gleichen Abstand zur rechten Klammer.
Und noch was: Wieso gibt es keine Leerzeile zwischen Anfangsbuchstabe und Nachname des Authors, obwohl es so in der .bib Datei steht?

lg

rais
22-08-2012, 08:22
Moin moin,

ok, jetzt schaffe ich es endlich ein MB bereitzustellen:

nicht ganz, dazu fehlt hier eine `Literatur.bib' mit dem Eintrag `Quelle'.
Und da Du in Deinem Beispiel nur eine Quelle nutzt, hat Dein angehängtes Bild erstmal nix mit diesem Code zu tun ...
BTW:



\section{Ein Kapitel}

Kapitel heißen bei LaTeX \chapter und werden von Artikelklassen nicht unterstützt, dafür gibt es Report- und Buchklassen.


Um noch mal zu meinem Problem zurückzukommen:
Auf dem angehängten Bild sieht man, dass die zweite Zeile nicht an der gleichen horizontalen Position startet wie die erste (verdeutlich durch die Linie).
Im Idealfall haben beide Anfangsbuchstaben den gleichen Abstand zur rechten Klammer.

Pass das mal in Deiner .bst an (ziemlich am Ende):


INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#1 'number.label :=
#0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
number.label #1 + 'number.label :=
label width$ longest.label.width >
{ label 'longest.label :=
label width$ 'longest.label.width :=
}
'skip$
if$
}



Und noch was: Wieso gibt es keine Leerzeile zwischen Anfangsbuchstabe und Nachname des Authors, obwohl es so in der .bib Datei steht?

Wie eingangs gesagt, hier weiß keiner, was wie in Deiner .bib steht -- aber was soll eine Leerzeile an dieser Stelle? :confused:

MfG

telnetfx
22-08-2012, 19:47
hey, Super!
Das hilft mir ungemein!
Hattest du schon öfter mit Schwierigkeiten genau dieser Art zu tun?
Du hast das Problem ja sehr zielsicher erkannt

Ich bin dankbar dafür, dass sich Menschen wie du in ihrer Freizeit unentgeltlich in den Dienst anderer stellen.


Noch mal zu der .bib:



@book{Riedel,
author = {E. Riedel},
title = {Anorganische Chemie},
volume = {7. Auflage},
publisher = {Walter de Gruyter},
address = {Berlin, New York},
year = "2007",
}


Wie man sieht, ist ein Leerzeichen (keine Leerzeile) im Literatureintrag vorhanden. Allerdings steht im gerenderten Verzeichnis "E.Riedel", hättest du eine Idee wie man dem auch beikommen könnte?

Ich habe ein Bild mit der aktuellen Anzeige hochgeladen.

Auf jeden Fall noch mal Danke an dieser Stelle!

Sepp99
23-08-2012, 08:33
Versuch es einmal mit der korrekten Syntax:

author = {Riedel, E.},
Leider gibst du immer nur unzureichende Informationen weiter und Bilder statt Code. Mehrere Autoren müssen mit "and" angegeben werden:

author = {Blasius, E. and Jander, G.},

Gruß, Sepp.-

rais
23-08-2012, 10:31
Moin moin,


Hattest du schon öfter mit Schwierigkeiten genau dieser Art zu tun?
Du hast das Problem ja sehr zielsicher erkannt

nun, ich hab die Ausgabe unter Verwendung von plainthree und plain miteinander verglichen. Damit ich etwas vergleichen konnte, hab ich die mir nicht vorliegende bib durch xampl (afaik auf jedem System verfügbar, auf dem BibTeX installiert ist) ersetzt und den \cite{Quelle} durch \nocite{*} ersetzt.
Die vielen Warnungen bezüglich undefinierter Eintragstypen -- Dein Stil stellt hier nur @book zur Verfügung, xampl nutzt ein paar mehr) hab ich dabei ignoriert.
Dann hab ich die beiden bbl-Dateien (die vom jeweiligen BibTeX-Lauf erstellt wurden) miteinander verglichen und festgestellt, daß die `breiteste Marke' beim \begin{thebibliography}-Aufruf bei dem Teil mit plainthree erzeugten .bbl leer blieb. Dann ging es rückwärts durch die .bst: Wie wird \begin{thebibliography}{..} in die bbl geschrieben? Wie wird `..' erzeugt? Wer oder was verändert eigentlich `label' (in longest.label.pass)?
Letzten Endes hab ich diese longest.label.pass an plain.bst angeglichen.;)


Noch mal zu der .bib:



@book{Riedel,
author = {E. Riedel},
title = {Anorganische Chemie},
volume = {7. Auflage},
publisher = {Walter de Gruyter},
address = {Berlin, New York},
year = "2007",
}


Wie man sieht, ist ein Leerzeichen (keine Leerzeile) im Literatureintrag vorhanden. Allerdings steht im gerenderten Verzeichnis "E.Riedel", hättest du eine Idee wie man dem auch beikommen könnte?

In Deiner .bst in der Funktion `format.names.author' kommt zweimal der Ausdruck


{ s nameptr "{ff}{ll}" format.name$ 't :=

vor. Ändere beide Fundstellen zu


{ s nameptr "{ff~}{ll}" format.name$ 't :=

Getestet mit


\documentclass[a4paper,12pt]{article}
\usepackage[ngerman]{babel} % Silbentrennung nach neuer Rechtschreibung
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % Trennung von Wörtern mit Umlauten
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Riedel,
author = {E. Riedel},
title = {Anorganische Chemie},
volume = {7. Auflage},
publisher = {Walter de Gruyter},
address = {Berlin, New York},
year = "2007",
}
\end{filecontents}
\begin{document}

\nocite{*}
\bibliographystyle{plainfive}
\bibliography{\jobname}

\end{document}

MfG