Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Hervorhebung im Literaturverzeichnis mit biblatex

  1. #1
    Registrierter Benutzer
    Registriert seit
    31.01.2006
    Beiträge
    82

    Hervorhebung im Literaturverzeichnis mit biblatex

    Hallo,
    diesmal eine wahrscheinlich einfache Frage - ich werde nur aus der biblatex.def nicht so recht schlau. Ich möchte einen Autor im Literaturverzeichnis durch Unterstreichung hervorheben. Die Lösung, die ich habe, funktioniert, haut aber einfach bei weiteren Autoren ein Komma hinten dran. Das sieht aber so aus:

    Autor A, Autor B, Autor C.

    Ich hätte gern das Standardverhalten, nämlich:

    Autor A, Autor B und Autor C

    Allerdings weiß ich nicht, wie ich das innerhalb von \DeclareNameFormat ausdrücken kann. Könnt ihr mir auf die Sprünge helfen?

    Code:
    \documentclass[final,ngerman]{scrbook}
    
    \usepackage[utf8]{inputenc}	
    \usepackage[ngerman]{babel}	
    \usepackage[T1]{fontenc}	
    
    \usepackage{filecontents}
    \begin{filecontents}{literatur.bib}
    @BOOK{Szyperski2002a,
      title = {Component Software: Beyond Object-Oriented Programming},
      year = {2002},
      author = {Clemens Szyperski},
    }
    @BOOK{Einstein2003,
      title = {Component Software: Beyond Object-Oriented Programming},
      year = {2003},
      author = {Albert Einstein and Clemens Szyperski and Bruce Wayne},
    }
    \end{filecontents}
    
    \usepackage[style=authoryear-ibid,backend=biber,firstinits=true]{biblatex}
    \bibliography{literatur}
    
    \usepackage[normalem]{ulem}	
    \renewcommand*{\nameyeardelim}{\addcomma\space}
    \DeclareNameAlias{sortname}{last-first}
     
     % underline  name in bibliographies
     \DeclareNameFormat{author}{%
     \ifthenelse{\equal{#1}{Szyperski}}%
         {\uline{#1\ifblank{#4}{}{\addcomma\space#4}}}%
         {#1\ifblank{#4}{}{\addcomma\space#4}}%
     \ifthenelse{\value{listcount}<\value{liststop}}%
         {\addcomma\space}
         {}}
    
     \begin{document}
    
    \dots \parencite{Szyperski2002a} \dots \autocite{Einstein2003}
    
    \printbibliography[title=Literaturverzeichnis]
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    31.01.2006
    Beiträge
    82

    Unhappy

    Hat keiner 'ne Idee?

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.04.2007
    Ort
    Wrestedt
    Beiträge
    987

    Idee

    Zitat Zitat von sensemann Beitrag anzeigen
    Hat keiner 'ne Idee?
    Hallo sensemann,

    meinst du so etwas?
    Code:
    \documentclass[final,ngerman]{scrbook}
    \usepackage[utf8]{inputenc}	
    \usepackage[ngerman]{babel}	
    \usepackage[T1]{fontenc}	
    \usepackage{filecontents}
    \begin{filecontents}{literatur.bib}
    @BOOK{Szyperski2002a,
      title = {Component Software: Beyond Object-Oriented Programming},
      year = {2002},
      author = {Clemens Szyperski},
    }
    @BOOK{Einstein2003,
      title = {Component Software: Beyond Object-Oriented Programming},
      year = {2003},
      author = {Albert Einstein and Clemens Szyperski and Bruce Wayne},
    }
    \end{filecontents}
    \usepackage[style=authoryear-ibid,backend=biber,firstinits=true]{biblatex}
    \bibliography{literatur}
    \usepackage[normalem]{ulem}	
    \renewcommand*{\nameyeardelim}{\addcomma\space}
    \DeclareNameAlias{sortname}{last-first}
     % underline  name in bibliographies
    \DeclareNameFormat{author}{%
    \ifthenelse{\equal{#1}{Szyperski}}%
    {\uline{#1\ifblank{#4}{}{\space#4}}}%
    {#1\ifblank{#4}{}{\space#4}}%
    \ifthenelse{\value{listcount}<\value{liststop}}%
    {\addcomma\space}
    {}}
    \begin{document}
    \dots \parencite{Szyperski2002a} \dots \autocite{Einstein2003}
    \printbibliography[title=Literaturverzeichnis]
    \end{document}
    Gruß

    Martin
    Geändert von nixversteh (13-03-2012 um 08:33 Uhr) Grund: Anhang erstellt
    Der aus Büchern erworbene Reichtum fremder Erfahrung heißt Gelehrsamkeit. Eigene Erfahrung ist Weisheit. Das kleinste Kapital von dieser ist mehrt wert, als Millionen von jener.

    Gotthold Ephraim Lessing

  4. #4
    Registrierter Benutzer
    Registriert seit
    31.01.2006
    Beiträge
    82
    Hach, nein, da hab ich mich missverständlich ausgedrückt. Mir geht's um die Darstellung im Literaturverzeichnis.

    Über DeclareNameFormat wird ja ein bestimmter Autor unterstrichen - hier Szyperski. Danach wird nur getestet, ob noch weitere kommen, und ein Komma drangehangen. Dadurch wird leider das Standardverhalten überschrieben, welches vor dem letzten Autor ein "und" statt Komma einfügt. Ist sicher nur eine zusätzliche if-Abfrage ...

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Dann musst du halt noch einen Test für liststop-1 einfügen:

    Code:
     \DeclareNameFormat{author}{%
     \ifthenelse{\equal{#1}{Szyperski}}%
         {\uline{#1\ifblank{#4}{}{\addcomma\space#4}}}%
         {#1\ifblank{#4}{}{\addcomma\space#4}}%
     \ifthenelse{\value{listcount}<\numexpr\value{liststop}-1\relax}%
         {\addcomma\space}
         {\ifthenelse{\value{listcount}=\numexpr\value{liststop}-1\relax}%
           {\finalnamedelim}
           {}%
         }}

  6. #6
    Registrierter Benutzer
    Registriert seit
    31.01.2006
    Beiträge
    82
    Ganz genau so! (hätte ich es auch gemacht, wenn ich gewusst hätte, wie).

    Tausend Dank!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •