Schreiben/Umschreiben eines bibLaTeX-Stils

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


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

Beitrag von domwass »

Hallo Eglatholion,
Eglatholion hat geschrieben:
%% change of abbreviations
\DefineBibliographyStrings{german}{%
  and={\&},
  editor={\unspace\mkbibparens {Hg\adddot}},
  editors={\unspace\mkbibparens {Hgg\adddot}},
  byeditor={Hg\addcolon\thinspace},
%  byeditor={\unspace\mkbibparens {Hg\adddot}},
  thiscite={hier\addcolon\thinspace},
  number={H\adddot},
  }
Es ist keine gute Idee, Zeichensetzung in die BibliographyStrings
hineinzunehmen. Dazu solltest du besser die entsprechenden bibmacros
(editor, editor+others etc.) umdefinieren. Das byeditor-Problem kriegst du
ebenfalls hin, indem du die entsprechenden bibmacros (byeditor,
byeditor+others …), die du übrigens in biblatex.def findest, umdefinierst:
\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\addspace}% statt \addcomma\space
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}
    {}}

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}% statt \addcomma\space
     \usebibmacro{editorstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}
Ich habe jetzt nur mal bei editor+others das Komma entfernt und
byeditor+others dem bibmacro editor+others angeglichen. Eventuell musst
du auch byeditorx, bytranslator+others und ähnliche Makros umdefinieren,
das kommt ein bisschen auf deine Daten an. Jedenfalls findest du die
ganzen Makros in biblatex.def.

Um die Herausgeber in Klammern zu haben, brauchst du dann nur noch
die bibstrings anpassen:
\DefineBibliographyStrings{german}{% 
   and={\&}, 
   editor={\mkbibparens{Hg\adddot}}, 
   editors={\mkbibparens{Hgg\adddot}}, 
   thiscite={hier\addcolon\thinspace}, 
   number={H\adddot}, 
   } 
Gruß,
Dominik.-

Eglatholion
Forum-Anfänger
Forum-Anfänger
Beiträge: 31
Registriert: Mo 31. Jan 2011, 13:18
Kontaktdaten:

Beitrag von Eglatholion »

Hallo! :)

Zunächst vielen Dank und sorry für die späte Rückmeldung. Es hat nun einige Zeit gedauert, bis ich es ausprobieren konnte.

Ich habe nun noch eine weitere Umsetzungsfrage und eine handwerkliche:

1. Bei den durch byeditor erzeugten Namen müsste nun immer "Vorname Nachname" kommen und nicht "Nachname, Vorname, Vorname Nachname".
Wenn ich dafür \DeclareNameFormat nehme, werden jedoch auch die eigentlichen Autoren am Anfang in der Reihenfolge gedreht. Dort ist diese Reihenfolge aber richtig.
Was kann ich da machen?

2. Nach dem Buchtitel bei InCollection benötige ich (unkonsequenterweise) ein Komma statt eines Punktes (bei Book u.Ä. aber nicht). Ich bin jetzt hergegangen und habe innerhalb von \DeclareBibliographyDriver{incollection} einfach das Komma an der entsprechenden Stelle angefügt:
[...]
\usebibmacro{maintitle+booktitle}\addcomma\space%
[...]

Ich nehme an, dass auch das nicht handwerklich geschickt ist?!
Wenn ich das mit \renewbibmacro machen würde, hätte in das Komma ja auch in Book und Ähnlichem mit verändert.
Gibt es dennoch eine Stelle, wo das besser angebracht ist oder ist es recht ungefährlich, wenn ich es so lasse?

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

Beitrag von domwass »

Eglatholion hat geschrieben:1. Bei den durch byeditor erzeugten Namen müsste nun immer "Vorname Nachname" kommen und nicht "Nachname, Vorname, Vorname Nachname".
Wenn ich dafür \DeclareNameFormat nehme, werden jedoch auch die eigentlichen Autoren am Anfang in der Reihenfolge gedreht. Dort ist diese Reihenfolge aber richtig.
Was kann ich da machen?
Das NameFormat »byeditor« verweist auf das NameFormat »standard«.
Du kannst das recht einfach ändern mit einem Alias:
\DeclareNameAlias{byeditor}{first-last}
Oder du änderst mit \DeclareNameFormat{byeditor}{…}
2. Nach dem Buchtitel bei InCollection benötige ich (unkonsequenterweise) ein Komma statt eines Punktes (bei Book u.Ä. aber nicht). Ich bin jetzt hergegangen und habe innerhalb von \DeclareBibliographyDriver{incollection} einfach das Komma an der entsprechenden Stelle angefügt:
[...]
\usebibmacro{maintitle+booktitle}\addcomma\space%
[...]

Ich nehme an, dass auch das nicht handwerklich geschickt ist?!
Das kann man so schon machen, allerdings würde ich die Zeichensetzung
mit Hilfe von \setunit einstellen:
\usebibmacro{maintitle+booktitle}%
\setunit{\addcomma\space}%
Gruß,
Dominik.-

Eglatholion
Forum-Anfänger
Forum-Anfänger
Beiträge: 31
Registriert: Mo 31. Jan 2011, 13:18
Kontaktdaten:

Beitrag von Eglatholion »

Hallo!

Hmm, merkwürdig.

Beides reagiert gar nicht. :roll:

Ich hab das doch richtig verstanden, dass ich die unit innehalb hiervon setze?!
%% InCollection
\DeclareBibliographyDriver{incollection}{% 
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}% 
  \usebibmacro{author/translator+others}% 
  \setunit{\labelnamepunct}\newblock 
  \usebibmacro{title}% 
  \newunit 
  \printlist{language}% 
  \newunit\newblock 
  \usebibmacro{byauthor}% 
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \setunit{\addcomma\space}%            <---------
  \newunit 
  \iffieldundef{maintitle} 
    {\printfield{volume}% 
     \printfield{part}}%
    {}% 
  \newunit\newblock
  \iffieldundef{series}
  {}%
  {\usebibmacro{series+number}}%
  \usebibmacro{byeditor+others}%
  \newunit\newblock 
  \printfield{edition}%
  \newunit 
  \printfield{volumes}% 
  \newunit\newblock 
  \printfield{note}% 
  \newunit\newblock 
  \usebibmacro{chapter+pages}% 
  \newunit\newblock 
  \usebibmacro{publisher+location+date}% 
  \newunit\newblock 
  \usebibmacro{doi+eprint+url}% 
  \newunit\newblock 
  \usebibmacro{addendum+pubstate}% 
  \setunit{\bibpagerefpunct}%
  \newblock 
  \usebibmacro{pageref}% 
  \usebibmacro{finentry}}% 
Und \DeclareNameAlias{byeditor}{first-last} setze ich irgendwo einzeln?

LG

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

Beitrag von domwass »

Eglatholion hat geschrieben:
  \setunit{\addcomma\space}%            <---------
  \newunit 
Nimm das \newunit raus, das überschreibt das \setunit wieder.
Und \DeclareNameAlias{byeditor}{first-last} setze ich irgendwo einzeln?
Ja.

Gruß,
Dominik.-

Antworten