Lit.verz. wie authoryear mit Autorennamen vor jedem Eintrag

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


jknorpp
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 20. Jul 2013, 23:35
Kontaktdaten:

Lit.verz. wie authoryear mit Autorennamen vor jedem Eintrag

Beitrag von jknorpp »

Wie kann man den biblatex-Stil authoryear so anpassen, dass das Literaturverzeichnis vor jedem Eintrag den Autor enthält (nicht nur einmal und in der Folge Spiegelstriche)?

Wo kann ich etwas ändern, so dass zwischen den Einträgen ein Abstand eingefügt wird?

Ist:
================

Müller, Ulrich und Ulrich Iberer (2007). „Programmentwicklung als Bildungsprozessmanagement.“ In: Erwachsenenbildung 4, S. 205–209.
– (2012). Bildungsprozessmanagement - Steuern und Gestalten von Bildungsprozessen. Studientext mit Literaturauszügen im Masterstudiengang Bildungsmanagement. Ludwigsburg: Pädagogische Hochschule.



Soll:
================

Müller, Ulrich und Ulrich Iberer (2007). „Programmentwicklung als Bildungsprozessmanagement.“ In: Erwachsenenbildung 4, S. 205–209.

Müller, Ulrich und Ulrich Iberer (2012). Bildungsprozessmanagement - Steuern und Gestalten von Bildungsprozessen. Studientext mit Literaturauszügen im Masterstudiengang Bildungsmanagement. Ludwigsburg: Pädagogische Hochschule.

\ProvidesFile{authoryear.bbx}
[\abx@bbxid]

% authoryear styles are special in the following way:

% The citation labels are "labelname (labelyear)" and since citation
% labels are the keys into the references section, the fact that the
% citation uses labelyear means that the references must also. This
% means we use a special \printdate[extra]label macro to generate the
% references section main date for an entry. Otherwise, if labeldate selects
% anything other than DATE (or equivalently, YEAR/MONTH), then the
% citation won't match the reference.

\RequireBibliographyStyle{standard}

\DeclareBibliographyOption{dashed}[true]{%
  \ifstrequal{#1}{true}
    {\ExecuteBibliographyOptions{pagetracker}%
     \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
    {\renewbibmacro*{bbx:savehash}{}}}

\DeclareBibliographyOption{mergedate}[true]{%
  \ifcsdef{bbx@opt@mergedate@#1}
    {\csuse{bbx@opt@mergedate@#1}}
    {\PackageError{biblatex}
       {Invalid option 'mergedate=#1'}
       {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak
        'true' (=compact), and 'false'.}}}

\providebibmacro*{date+extrayear}{}

\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact}

\def\bbx@opt@mergedate@maximum{%
  \renewbibmacro*{date+extrayear}{%
    \iffieldundef{labelyear}
      {}
      {\printtext[parens]{%
         \printfield{issue}%
	 \setunit*{\addspace}%
	 \printdateextralabel}}}%
  \renewbibmacro*{date}{}%
  \renewbibmacro*{issue+date}{}%
}

\def\bbx@opt@mergedate@compact{%
  \renewbibmacro*{date+extrayear}{%
    \iffieldundef{labelyear}
      {}
      {\printtext[parens]{\printdateextralabel}}}%
  \renewbibmacro*{date}{}%
  \renewbibmacro*{issue+date}{%
    \iffieldundef{issue}
      {}
      {\printtext[parens]{\printfield{issue}}}%
    \newunit}%
}

\def\bbx@opt@mergedate@basic{%
  \renewbibmacro*{date+extrayear}{%
    \iffieldundef{labelyear}
      {}
      {\printtext[parens]{%
	 \printfield{labelyear}%
	 \printfield{extrayear}}}}%
  \renewbibmacro*{date}{%
    \iffieldundef{month}
      {}
      {\printdate}}%
  \renewbibmacro*{issue+date}{%
    \ifboolexpr{
      test {\iffieldundef{issue}}
      and
      test {\iffieldundef{month}}
    }
      {}
      {\printtext[parens]{%
	 \printfield{issue}%
	 \setunit*{\addspace}%
	 \printdate}}%
    \newunit}%
}

\def\bbx@opt@mergedate@minimum{%
  \renewbibmacro*{date+extrayear}{%
    \iffieldundef{labelyear}
      {}
      {\printtext[parens]{%
	 \printfield{labelyear}%
	 \printfield{extrayear}}}}%
  \renewbibmacro*{date}{%
    \ifboolexpr{
      test {\iffieldundef{month}}
      and
      test {\iffieldundef{extrayear}}
    }
      {}
      {\printdate}}%
  \renewbibmacro*{issue+date}{%
    \ifboolexpr{
      test {\iffieldundef{issue}}
      and
      test {\iffieldundef{month}}
      and
      test {\iffieldundef{extrayear}}
    }
      {}
      {\printtext[parens]{%
	 \printfield{issue}%
	 \setunit*{\addspace}%
	 \printdate}}%
    \newunit}%
}

\def\bbx@opt@mergedate@false{%
  \renewbibmacro*{date+extrayear}{%
    \iffieldundef{labelyear}
      {}
      {\printtext[parens]{%
	 \printfield{labelyear}%
	 \printfield{extrayear}}}}%
  \renewbibmacro*{date}{\printdate}%
  \renewbibmacro*{issue+date}{%
    \printtext[parens]{%
      \printfield{issue}%
      \setunit*{\addspace}%
      \printdate}%
    \newunit}%
}

\ExecuteBibliographyOptions{labeldate,sorting=nyt,pagetracker,mergedate}

\DeclareFieldFormat{shorthandwidth}{#1}
\setlength{\bibitemsep}{0pt}

\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}

\defbibenvironment{bibliography}
  {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

\defbibenvironment{shorthands}
  {\list
     {\printfield[shorthandwidth]{shorthand}}
     {\setlength{\labelwidth}{\shorthandwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}%
      \renewcommand*{\makelabel}[1]{##1\hss}}}
  {\endlist}
  {\item}

\InitializeBibliographyStyle{%
  \global\undef\bbx@lasthash}

\newbibmacro*{bbx:savehash}{%
  \savefield{fullhash}{\bbx@lasthash}}

\newbool{bbx@inset}
\DeclareBibliographyDriver{set}{%
  \booltrue{bbx@inset}%
  \entryset{}{}%
  \newunit\newblock
  \usebibmacro{setpageref}%
  \finentry}

\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
	\iffieldundef{authortype}
	  {\setunit{\addspace}}
	  {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
	\setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}

\renewbibmacro*{editor}{%
  \usebibmacro{bbx:editor}{editorstrg}}
\renewbibmacro*{editor+others}{%
  \usebibmacro{bbx:editor}{editor+othersstrg}}
\newbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
	\setunit{\addcomma\space}%
	\usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}

\renewbibmacro*{translator}{%
  \usebibmacro{bbx:translator}{translatorstrg}}
\renewbibmacro*{translator+others}{%
  \usebibmacro{bbx:translator}{translator+othersstrg}}
\newbibmacro*{bbx:translator}[1]{%
  \ifboolexpr{
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{translator}%
	\setunit{\addcomma\space}%
	\usebibmacro{bbx:savehash}}%
     \usebibmacro{translator+othersstrg}%
     \clearname{translator}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}

\newbibmacro*{bbx:dashcheck}[2]{%
  \ifboolexpr{
    test {\iffieldequals{fullhash}{\bbx@lasthash}}
    and
    not test \iffirstonpage
    and
    (
       not bool {bbx@inset}
       or
       test {\iffieldequalstr{entrysetcount}{1}}
    )
  }
    {#1}
    {#2}}

\newbibmacro*{labeltitle}{%
  \iffieldundef{label}
    {\iffieldundef{shorttitle}
       {\printfield{title}%
        \clearfield{title}}
       {\printfield[title]{shorttitle}}}
    {\printfield{label}}}

\endinput
[\code]

Herzlichen Dank für Hilfestellungen!

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

jknorpp hat geschrieben:Wo kann ich etwas ändern, so dass zwischen den Einträgen ein Abstand eingefügt wird?
Hiermit:
\setlength{\bibitemsep}{1ex}
jknorpp hat geschrieben: Wie kann man den biblatex-Stil authoryear so anpassen, dass das Literaturverzeichnis vor jedem Eintrag den Autor enthält (nicht nur einmal und in der Folge Spiegelstriche)?
Sollte hiermit funktionieren:
\renewbibmacro*{author}{% 
  \ifboolexpr{ 
    test \ifuseauthor 
    and 
    not test {\ifnameundef{author}} 
  } 
    {\usebibmacro{bbx:dashcheck} 
       {\bibnamedash} 
       {%\usebibmacro{bbx:savehash}% 
        \printnames{author}% 
   \iffieldundef{authortype} 
     {\setunit{\addspace}} 
     {\setunit{\addcomma\space}}}% 
     \iffieldundef{authortype} 
       {} 
       {\usebibmacro{authorstrg}% 
   \setunit{\addspace}}}% 
    {\global\undef\bbx@lasthash 
     \usebibmacro{labeltitle}% 
     \setunit*{\addspace}}% 
  \usebibmacro{date+extrayear}} 
Hoffe es hilft
Epllus

jknorpp
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 20. Jul 2013, 23:35
Kontaktdaten:

Beitrag von jknorpp »

Hallo Epllus,

vielen Dank für die schnelle Hilfe.

Die Auskommentierung von
%\usebibmacro{bbx:savehash}
bei
\renewbibmacro*{author}
und
\renewbibmacro*{editor}
brachte das gewünschte Ergebnis: Autor/Hrsg. wird bei jedem Eintrag im Literaturverzeichnis genannt.
\setlength{\bibitemsep}{<value>}
will jedoch eine Zahl als Wert. Der Wert "lex" wirft die Fehlermeldung: Missing number, treated as zero.

"10pt" liefert hier für mich ein gutes Bild.

Danke auch hier, dass du mich auf die richtige Spur gebracht hast!

Viele Grüße
jknorpp

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

jknorpp hat geschrieben: Der Wert "lex" wirft die Fehlermeldung: Missing number, treated as zero.
:) Nicht „lex“(L-e-x) sondern „1ex“(Eins-e-x)

Grüße
Epllus

PS: Bitte Status anpassen.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Wie kann man den biblatex-Stil authoryear so anpassen, dass das Literaturverzeichnis vor jedem Eintrag den Autor enthält (nicht nur einmal und in der Folge Spiegelstriche)?
Option dashed=false. Siehe doc\latex\biblatex\examples\50-style-authoryear.pdf

jknorpp
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Sa 20. Jul 2013, 23:35
Kontaktdaten:

Beitrag von jknorpp »

@ Epllus: Ah - manchmal sind sich 1 und l einfach ziemlich ähnlich… ;-)
Welchen Status sollte ich ändern?

edit: Statusfrage geklärt - hab's verstanden, dass du den Status des Threads meintest.

@ u_fischer: Vielen Dank auch für deinen Hinweis. - Auf welche Dokumentation oder ähnliches verweist der Pfad, den du gepostet hast?

Antworten