Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Fussnoten in biblatex anpassen

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.06.2009
    Beiträge
    49

    Fussnoten in biblatex anpassen

    Hallo,

    ich würde in biblatex gerne die Ausgabe der Felder in den Fussnoten anpassen. So, dass ich beispielsweise sagen kann:

    -Beim Eintragstyp @online sollen die Felder author, title, urlday, urlmonth und urlyear ausgegeben werden.

    Ich weiss, dass ich die Ausgabe im Literaturverzeichnis mit
    Code:
    \DeclareBibliographyDriver{online}{
    ...
    }
    steuern kann. Leider kann ich im Code die Stelle für die Anpassung der Zitierweisen nicht finden.

    Vielen Dank für eure Hilfe.

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.03.2009
    Beiträge
    180
    Ich stand vor dem selben Problem für die Typen jurisdiction und legislation. Ich habe das so gelöst:

    Den cite-Befehl umdefinieren und dabei die gewünschten Typen abfangen und in ein eigenes Makro weisen:

    Code:
    \DeclareCiteCommand{\cite}%
      {\usebibmacro{prenote}}
      {\usebibmacro{citeindex}%
       \ifthenelse{\equal{\thefield{entrytype}}{jurisdiction}}{\usebibmacro{meincite-jura}}{\ifthenelse{\equal{\thefield{entrytype}}{legislation}}{\usebibmacro{meincite-jura}}{\usebibmacro{cite}}}}
      {\multicitedelim}
      {\usebibmacro{postnote}}
    und im Makro, das im style-File oberhalb der Definition des cite-Befehls stehen muss, die Zitierweise definieren:
    Code:
    \newbibmacro{meincite-jura}{%
      \iffieldundef{shorttitle}{\printfield{title}}{\printfield{shorttitle}}\addcomma\addspace%
      \iffieldundef{howpublished}{%
      \printfield{journaltitle}%
      \printfield{year}\addslash%
      \iffieldundef{issue}{}{\thefield{issue}}%
      \iffieldundef{number}{}{\thefield{number}}%
      }{\printfield{howpublished}}}
    Ob das der Königsweg ist, weiss ich nicht, aber es sollte funktionieren.
    Geändert von ElEsido (01-08-2009 um 17:22 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.06.2009
    Beiträge
    49
    Vielen Dank für deine Antwort!

    Es hat wunderbar geklappt.

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.06.2009
    Beiträge
    49
    Zitat Zitat von shortener Beitrag anzeigen
    Vielen Dank für deine Antwort!

    Es hat wunderbar geklappt.
    Es gibt nun doch noch ein Problem, dass ich vorher noch nicht entdeckt hatte und zwar folgendes:

    Ich hab folgende Anpassungen vorgenommen
    Code:
    \DeclareCiteCommand{\cite}
        {\usebibmacro{prenote}}
        {\usebibmacro{citeindex}
        \iffieldequalstr{entrytype}{online}
            {\usebibmacro{meincite-online}}
            {\usebibmacro{cite}}
      {\multicitedelim}
      {\usebibmacro{cite:postnote}}
    und für footnote
    Code:
    \DeclareCiteCommand{\footcite}[\mkbibfootnote]
      {\bibsentence
       \usebibmacro{prenote}}
      {\usebibmacro{citeindex}%
        \iffieldequalstr{entrytype}{online}
            {\usebibmacro{meincite-online}}
            {\usebibmacro{cite}}
      {\multicitedelim}
      {\usebibmacro{cite:postnote}}
    und

    Code:
    \newbibmacro*{urldate}{
      \iffieldundef{urlyear}
        {}
        {\setunit{\addspace}
         \printtext[urldate]{\biburldate}}}
    
    \newbibmacro{meincite-online}{
        \printnames{author}
        \iffieldundef{shorttitle}
            {\printfield{title}}
            {\printfield{shorttitle}}
        \addspace
        \iffieldundef{date}
            {\usebibmacro{urldate}}
            {\usebibmacro{date}}
    }
    Das funktioniert soweit ganz gut. Wenn man aber genau hinschaut erkennt man ein Problem:



    Es entsteht ein Leerraum zwischen der Zahl und dem ersten Buchstaben.

    Ich hoffe, dass du mir helfen kannst.
    Geändert von shortener (02-08-2009 um 10:38 Uhr) Grund: footnote vergessen

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.06.2009
    Beiträge
    49
    So, ich habe jetzt eine Lösung gefunden. Ich weiss nicht, ob sie perfekt ist, aber auf den ersten Blick scheint sie zu funktionieren.

    Ich spreche jetzt nur für footcite. Der Rest funktioniert ja analog.

    Code:
    \DeclareCiteCommand{\footcite}[\mkbibfootnote]
        {%\bibsentence
        \usebibmacro{prenote}}
        {\usebibmacro{citeindex}%
        \iffieldequalstr{entrytype}{online} %if entrytype = @online
            {{\usedriver{\DeclareNameAlias{sortname}{default}}{footcite:\thefield{entrytype}}}} %true
             {\usebibmacro{cite}} %false
      {\multicitedelim}
      {\usebibmacro{cite:postnote}}
    darunter definiere ich Folgendes:

    Code:
    \newbibmacro*{urldate}{
        \iffieldundef{urlyear}
            {}
            {\setunit{\addspace}\printtext[urldate]{\biburldate}}
    }
    
    \DeclareBibliographyDriver{footcite:online}{
        \usebibmacro{author}
        \newunit
        \printfield{labeltitle}
        \newunit
        \usebibmacro{urldate}
    }
    Mit diesen Anpassungen funktioniert es ganz gut. Den input für diese Idee habe ich im biblatex manual ab S. 153 (4.10.1 Mixing programming interfaces) gefunden.

    (keine Gewähr, dass alle Klammern richtig geschlossen sind. Hab das nur schnell mal zusammenkopiert)

    edit: Bis anhin hat es funktioniert. Jetzt tut es wieder nicht. Manchmal sind in der PDF-Ausgabe auch die anderen Fussnoten verschoben...
    Ich habe keine Ahnung was da los ist.
    Geändert von shortener (02-08-2009 um 14:28 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.03.2009
    Beiträge
    180
    Danke für den Hinweis mit den Lücken, die hatte ich auch, ohne sie zu bemerken...

    Habe das Problem bei mir gelöst, indem ich jedes Makro mit Stern definiert und an die Enden jeder Zeile ein % gesetzt habe. Versuchs doch mal so:
    Code:
    \newbibmacro*{urldate}{%
      \iffieldundef{urlyear}%
        {}%
        {\setunit{\addspace}%
         \printtext[urldate]{\biburldate}}}
    
    \newbibmacro*{meincite-online}{%
        \printnames{author}%
        \iffieldundef{shorttitle}%
            {\printfield{title}}%
            {\printfield{shorttitle}}%
        \addspace%
        \iffieldundef{date}%
            {\usebibmacro{urldate}}%
            {\usebibmacro{date}}%
    }

  7. #7
    Registrierter Benutzer
    Registriert seit
    02.06.2009
    Beiträge
    49
    Super, danke dir! Es funktioniert einwandfrei. Hoffentlich bleibt das so

Stichworte

Lesezeichen

Berechtigungen

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