Biblatex - Anpassung der Formatierung

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Tael
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 8. Jul 2010, 10:47

Biblatex - Anpassung der Formatierung

Beitrag von Tael »

Hallo zusammen,

Ich bin gerade dabei eine Vorlage für meine kommende Studienarbeit zu erstellen. Dabei bin ich hier auf dieses Forum gestoßen und hab auch schon viele Antworten auf meine Probleme gefunden - ihr habt mir also schon sehr viel geholfen :!:

Zu ein paar hat aber leider die Suchfunktion hier im Forum sowie Google keine Antwort parat:

Alle Dateien findet ihr auch im Anhang, im Text sind nur Codeschnipsel-
Wenn Minimalbeispiele benötigt werden, werde ich gern noch welche nachreichen.


Problem Nr. 1:
Die Initialen der Vornamen sollen ohne Lücke dargestellt werden und Prefixe wie "von" sollen Ausgeschrieben und noch vor dem Nachnamen stehen.
Im Moment benutze ich zum Erstellen der Namen folgenden Code:
%Namensformat: Name, Initialen
\DeclareNameFormat{default}{%
  \ifuseprefix
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}%
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}%
  \usebibmacro{name:andothers}}
Wie gefordert werden dadurch die Namen im Format "Name, Initialen" angezeigt.
Um das "von" nach vorne zu bekommen, habe ich bereits versucht die Reihenfolge zu vertauschen, also {#5}{#1}{#4}{#8}, Problem dabei ist, das nach dem ersten Eintrag immer ein Komma erzeugt wird, d.h. das Ergebnis ist: "von, Mustermann M." bzw ohne von: " , Mustermann M.".
Zur entfernung der Lücke zwischen den Initialen habe ich noch keinen Lösungsansatzh.

Problem Nummer 2:
Die Formatierung des Herrausgebers bei Inproceedings soll ein anderes sein als bei anderen.
Mein Ansatz war dabei:
\DeclareListFormat[inproceedings]{editor}{\textrm{#1}}
\DeclareListFormat[inproceedings]{byeditor}{\textrm{#1}}
Anzumerken ist hierbei das ich vorher alle Namen auf textsc setze:
\renewcommand*{\mkbibnamefirst}[1]{\textsc {#1}}
\renewcommand*{\mkbibnamelast}[1]{\textsc {#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc {#1}}
\renewcommand*{\mkbibnameaffix}[1]{\textsc {#1}}
Problem Nr. 3
Bei Patenten wird nur ein Name von vielen angezeigt, nach dem ersten steht dann "u.a.".
Frage hierzu:
Was kontrolliert die Anzahl der angezeigten Namen bis diese mit "u.a." abgekürzt werden und wie kann ich z.b. "u.a." auf et. al" ändern?

Problem Nr. 4
Hrsg. soll in Klammern stehen, dazu habe ich hier im Forum folgenden Code gefunden:
%Klammern um Hrsg.:
\renewbibmacro*{editorstrg}{%
  \iffieldundef{editortype}
    {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
       {\printtext[parens]{\bibstring{editors}}}
       {\printtext[parens]{\bibstring{editor}}}}
    {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
       {\printtext[parens]{\bibstring{\thefield{editortype}s}}}
       {\printtext[parens]{\bibstring{\thefield{editortype}}}}}}

%Editor (Hrsg.) bearbeitet:
\renewbibmacro*{editor+others}{%
  \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}
   \iffieldundef{editor}{}
{\printnames{editor}%
     \setunit{\space}%
%\printtext{(Hrsg.):}%Alternative manuelle Lösung
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}
    }
Ich hab mir inzwischen mit einer manuellen Lösung Abhilfe verschafft, indem ich "(Hrsg.):" Einfach manuell erzeuge (siehe Code). Das ganze gilt für Bücher und inproceedings.

Und zum Schluss noch eine Frage zum Zitieren:
Wenn ich mehrere Zitierungen mache, also mit
\cite{abc,def,xyz}
Wäre es schön wenn dann die Zahlen dahinter in einer Klammer dargestellt werden, also so "[1,2,3]" (Aktuell ist es "[1],[2],[3]")

Ich hoffe ihr könnt mir bei meinen Problemen helfen und schaut vielleicht auch in meinen 2. Thread rein, bei dem ich Hilfe beim entschlacken meiner Preämbel brauchen kann.
http://www.golatex.de/viewtopic,p,19699.html#19699

Vielen Dank,
Tael
Dateianhänge
Neu.tex
Dies ist die Hauptdatei
(639 Bytes) 519-mal heruntergeladen
IFSW.tex
bbx:
Umbenennen in IFSW.bbx
(2.17 KiB) 704-mal heruntergeladen
IFSW_.tex
cbx:
Umbenennen in IFSW.cbx
(23.5 KiB) 847-mal heruntergeladen
test.tex
Bib:
Umbenennen in test.bib
(5.28 KiB) 1465-mal heruntergeladen
Zuletzt geändert von Tael am Do 8. Jul 2010, 13:13, insgesamt 1-mal geändert.

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Re: Biblatex - Anpassung der Formatierung

Beitrag von domwass »

Tael hat geschrieben:Die Initialen der Vornamen sollen ohne Lücke dargestellt werden und Prefixe wie "von" sollen Ausgeschrieben und noch vor dem Nachnamen stehen.
Zu den Initialen ohne Lücken kann ich nichts sagen, vielleicht hilft dir aber
die Option „terseinits“ weiter. Das „von“ zum Namen zu rechnen lässt sich
mit der Option „useprefix=true“ einstellen.
Bei Patenten wird nur ein Name von vielen angezeigt, nach dem ersten steht dann "u.a.".
Frage hierzu:
Was kontrolliert die Anzahl der angezeigten Namen bis diese mit "u.a." abgekürzt werden
Die Option „maxnames“.
und wie kann ich z.b. "u.a." auf et. al" ändern?
\DefineBibliographyStrings{ngerman}{%
  andothers = {et al\adddot}
}
Hrsg. soll in Klammern stehen, dazu habe ich hier im Forum folgenden Code gefunden:
Und was funktioniert daran bei dir nicht?
Wenn ich mehrere Zitierungen mache, also mit
\cite{abc,def,xyz}
Wäre es schön wenn dann die Zahlen dahinter in einer Klammer dargestellt werden, also so "[1,2,3]" (Aktuell ist es "[1],[2],[3]")
Stil „numeric-comp“.

Gruß,
Dominik.-

P.S.: Es wäre vermutlich hilfreich, wenn du neben einer Google- und
Forums-Suche auch die Anleitung zu biblatex zurate ziehen würdest, dort
werden nämlich mehrere deiner Fragen bereits beantwortet.

Tael
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 8. Jul 2010, 10:47

Beitrag von Tael »

Vielen Dank für die schnelle Antwort.
Ich habe die Biblatex-Doku quergelesen, aber wenn man nicht so genau weis nach was man eigentlich suchen muss, ist das ein wenig schwierig =)
Ich werde dennoch beim nächsten Problem erst nochmal die Doku durchsuchen :)

Zu Hrsg.: die Klammern werden nicht angezeigt, weis aber nicht wieso!

Mein Test ergab:
- maxnames funktioniert wunderbar
- terseinits funktioniert ansich schon, leider entfernt dies die Punkte nach den Buchstaben, ich hätte gerne folgende Ausgabe: "Mustermann, H.M." terseinits produziert aber: "Mustermann, HM"
- Useprefix macht das "von" dummerweise zu "Von" (erster Buchstube wird groß geschrieben - soll aber klein bleiben)

Zu terseinits sagt die doku folgendes: (weswegen ichs wohl beim lesen als unbrauchbar abgestempelt habe)
terseinits=true, false
default: false
This option controls the format of all initials generated by biblatex. By default,
biblatex adds a dot after an initial. If this option is enabled, it uses a terse format
without dots and spaces. For example, the initials of Donald Ervin Knuth would
be rendered as ‘D. E.’ by default, and as ‘DE’ if this option is enabled. This terse
format is required by some citation schemes.

gehess
Forum-Century
Forum-Century
Beiträge: 172
Registriert: Do 8. Apr 2010, 22:44

Beitrag von gehess »

Tael hat geschrieben: Zu terseinits sagt die doku folgendes: (weswegen ichs wohl beim lesen als unbrauchbar abgestempelt habe)
terseinits=true, false
default: false
This option controls the format of all initials generated by biblatex. By default,
biblatex adds a dot after an initial. If this option is enabled, it uses a terse format
without dots and spaces. For example, the initials of Donald Ervin Knuth would
be rendered as ‘D. E.’ by default, and as ‘DE’ if this option is enabled. This terse
format is required by some citation schemes.
Das erklärt dein Problem doch schon. Bei dir wird wohl im Moment stehen
 \usepackage[terseinits=true]{biblatex}
dadurch fehlen die Punkte.
Um die Punkte nach den Initialien zu bekommen, musst du den Wert auf false setzten, also
 \usepackage[terseinits=false]{biblatex}

Tael
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 8. Jul 2010, 10:47

Beitrag von Tael »

Ich glaube ich habe mich undeutlich ausgedrückt, ich will nämlich folgendes:

Ohne terseinits sieht die Ausgabe so aus: "Mustermann, H. M."
(Lücke zwischen den Initialen, Initialen mit Punkt)
Mit tersinits sieht sie dann so aus: "Mustermann, HM"
(keine Lücke zwischen den Initialen, aber auch keine Punkte)

Was ich aber will ist: "Mustermann, H.M."
(keine Lücke zwischen den Initialen, Initialen mit Punkt)

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Tael hat geschrieben:Zu Hrsg.: die Klammern werden nicht angezeigt, weis aber nicht wieso!
Ich glaube, ich hab jetzt gesehen, woran es liegt. Du benutzt
\usebibmacro{editor+othersstrg}, aber du änderst nur das bibmacro
„editorstrg“, du müsstest also das bibmacro „editor+othersstrg“
entsprechend abändern.
- terseinits funktioniert ansich schon, leider entfernt dies die Punkte nach den Buchstaben, ich hätte gerne folgende Ausgabe: "Mustermann, H.M." terseinits produziert aber: "Mustermann, HM"
Ich weiß nicht, ob das geht, und habe auf die Schnelle auch nicht
herausgefunden, wie biblatex das intern macht. Wozu brauchst du das
denn? Ist das eine Vorgabe oder ein englischer Text? Wenn nicht, würde
ich es lassen, im Deutschen ist das nämlich schlicht falsch.
- Useprefix macht das "von" dummerweise zu "Von" (erster Buchstube wird groß geschrieben - soll aber klein bleiben)
Aber doch wohl nur am Satzanfang, also z. B. am Anfang einer Fußnote,
oder? Dort ist das nämlich auch richtig. Wenn das „von“ bei dir immer
groß sein sollte: Minimalbeispiel erstellen und zeigen.

Gruß,
Dominik.-

Tael
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 8. Jul 2010, 10:47

Beitrag von Tael »

Ich muss das mit den Initialen so machen, leider :(

zum Thema Hrsg.: Hab mir gerade editor+otherstrg angeschaut, ich steig da irgendwie nicht durch:
\newbibmacro*{editor+othersstrg}{%
  \iffieldundef{editortype}
    {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
       {\def\abx@tempa{editors}}
       {\def\abx@tempa{editor}}}
    {\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
       {\edef\abx@tempa{\thefield{editortype}s}}
       {\edef\abx@tempa{\thefield{editortype}}}}%
  \let\abx@tempb=\empty
  \ifnamesequal{editor}{translator}
    {\appto\abx@tempa{tr}%
     \appto\abx@tempb{\clearname{translator}}}
    {}%
  \ifnamesequal{editor}{commentator}
    {\appto\abx@tempa{co}%
     \appto\abx@tempb{\clearname{commentator}}}
    {\ifnamesequal{editor}{annotator}
       {\appto\abx@tempa{an}%
	\appto\abx@tempb{\clearname{annotator}}}
       {}}%
  \ifnamesequal{editor}{introduction}
    {\appto\abx@tempa{in}%
     \appto\abx@tempb{\clearname{introduction}}}
    {\ifnamesequal{editor}{foreword}
       {\appto\abx@tempa{fo}%
	\appto\abx@tempb{\clearname{foreword}}}
       {\ifnamesequal{editor}{afterword}
          {\appto\abx@tempa{af}%
           \appto\abx@tempb{\clearname{afterword}}}
          {}}}%
  \ifbibxstring{\abx@tempa}
    {\bibstring{\abx@tempa}%
     \abx@tempb}
    {\usebibmacro{editorstrg}}}
Kann mir das vielleicht einer erklären wo und wie ich da die Klammern reinbringe?

zum thema von:
Die rede ist vom Literaturverzeichnis, da steht nach der vorgeschlagenen methode (useprefix=true):
[1] Von Hinzkunz, H. T. usw.
und ich hätte da gern aber:
[1] von Hinzkunz, H.T. usw.

Wenn das nicht möglich ist, werd ichs wohl so nehmen müssen - sind noch so ein paar andere Sachen die ich versuch durchzudrücken. Gibt sowieso so einige fragwürdige Vorgaben. (Vorallem diejenige das mans eigentlich in Word machen soll ....)

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Zu den Initialen kann ich dir leider auch nicht weiterhelfen. Den von-Teil klein
kriegst du mit folgendem Code (Änderungen hab ich kenntlich gemacht):
\renewbibmacro*{name:last-first}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \ifblank{#3}{}{%
       %\ifcapital                                  <--- AUSKOMMENTIERT
         %{\mkbibnameprefix{\MakeCapital{#3}}\isdot}<--- AUSKOMMENTIERT
	       %{\mkbibnameprefix{#3}\isdot}%             <--- AUSKOMMENTIERT
	     \mkbibnameprefix{#3}\isdot%                  <--- NEU
       \ifpunctmark{'}{}{\addhighpenspace}}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2#3}{}{\addcomma}%
     \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}\isdot}%
     \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}}}
Für die Hrsg-Problematik fehlt mir gerade die Zeit, tut mir leid.

Gruß,
Dominik.-

Tael
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 8. Jul 2010, 10:47

Beitrag von Tael »

Vielen Dank domwass, funktioniert tadelos!

Mit dem Hrsg. werde ich mich dann einfach mit der manuellen Lösung zufriedengeben.

Und was die Initialen anbelangt muss ich halt mal verhandeln - ansonsten immer her mit den Vorschlägen :)

Antworten