Biblatex: Zitierstil Fußnote - Anpassung <authortitle>

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


Elcaradura
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 16. Nov 2010, 18:30

Biblatex: Zitierstil Fußnote - Anpassung <authortitle>

Beitrag von Elcaradura »

Hallo Zusammen,

ich bin am Verzweifeln. Ich durchforste nun schon wirklich seit guten zwei Wochen das Internet und versuche mich am Biblatex-Handbuch und an den Waßenhovenen Anleitungen, aber ich kapituliere. Für mich gibt es noch derzeit zuviele Abhängigkeiten und ich kann den Code nicht immer noch nicht nachvollziehen, deshalb suche ich nun bei euch Rat.

Die Aufgabe:

Ich muss meinen Zitierstil der Vorgabe meines Profs anpassen. Ich beschränke mich hier hauptsächlich auf die Zitierweise in den Fußnoten. Diese soll wie folgt aussehen:

NAME [Titel] (Jahr), Seite/n

- Der Name soll in Kapitälchen stehen.
- Für Titel soll der Kurztitel verwendet werden. Hierzu muss ich allerdings noch die Literaturliste anpassen und steht deshalb momentan hinten an.
- Nach dem Titel soll ich runden Klammern auch das Erscheinungsjahr stehen. Mein Hauptproblem!


Zu meinem bisherigen Vorgehen:

Ich habe den Stil "Authortitle" kopiert und in "mein-authortitle-year" umbenannt (gem. Waßenhoven-Vorlage). Dieser entspricht meinen Vorgaben am ehesten. Die "standard.bbx" habe ich in "mein-authortitle-year.btx" eingefügt. Ich habe es auch schon geschafft den Namen in Kapitälchen zu setzen und den Titel in eckigen Klammern. Auch die Seitenzahlen kann ich natürlich einfügen.


Meine Probleme:

Woran ich scheitere ist das Jahr mit einzubinden (A) und zudem habe ich noch das Problem, dass im Literaturverzeichnis bei Angabe mehrerer Verfasser nur der Letzte in Kapitälchen gesetzt wird (B) und ich es auch noch nicht geschafft habe im Literaturverzeichnis den Nachnamen vor den Vornamen, getrennt durch ein Komma zu setzen (C).


Die aktuellen Anpassungen:

mein-authortitle-year.cbx
...

% FUSSNOTEN-ZITATE
%% Eckige Klammer um Titel
\DeclareFieldFormat{citetitle}{\mkbibbrackets{#1\isdot}}
\DeclareFieldFormat[article]{citetitle}{\mkbibbrackets{#1}}
\DeclareFieldFormat[incollection]{citetitle}{\mkbibbrackets{#1}}
\DeclareFieldFormat[unpublished]{citetitle}{\mkbibbrackets{#1}}
\DeclareFieldFormat[thesis]{citetitle}{\mkbibbrackets{#1}}

%% Angabe Seitenzahl ohne einleitendes S
%\DeclareFieldFormat[incollection]{postnote}{#1}
%\DeclareFieldFormat[incollection]{multipostnote}{#1}
% Funktioniert, wird aber nur für Gerichtsurteile benötigt. Für diese habe ich noch keinen Typ. 

%% Standardkomma herausnehmen, aber Leerzeichen nach Name
\renewcommand*{\nametitledelim}{\space}

%% Kapitälchen für Nachnamen
%% Folgende Probleme noch zu lösen: mehrere Autoren, Verfasser
\renewcommand*{\mkbibnamelast}{\textsc}

...
Mehr füge ich nicht an, da nichts nur ansatzweise funktioniert hat. Vielleicht ist es ja keine große Sache, aber ich bekomme noch nicht einmal eine funktionierende Schleife hin.
Dateianhänge
Minimalbeispiel.pdf
Ich habe nun zum besseren Verständnis auch noch die PDF angehängt, so kann man den derzeitigen Stand vielleicht besser nachvollziehen.
(183.07 KiB) 1921-mal heruntergeladen

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

Re: Biblatex: Zitierstil Fußnote - Anpassung <authortitle

Beitrag von domwass »

Elcaradura hat geschrieben:Woran ich scheitere ist das Jahr mit einzubinden (A)
Dazu musst du den cite-Befehl anpassen (siehe Beispiel unten). Bei den
authoryear-Stilen wird dabei labelyear benutzt, damit mehrere Werke
desselben Autors aus demselben Jahr unzweideutig ausgegeben werden
können (also »Autor 2000a, Autor 2000b« etc.). Da du auch die Titel
ausgeben musst, ist das in diesem Fall überflüssig.
und zudem habe ich noch das Problem, dass im Literaturverzeichnis bei Angabe mehrerer Verfasser nur der Letzte in Kapitälchen gesetzt wird (B)
Der Befehl war falsch, es fehlte das optionale Argument (der korrigierte
Befehl ist im Beispiel unten).
und ich es auch noch nicht geschafft habe im Literaturverzeichnis den Nachnamen vor den Vornamen, getrennt durch ein Komma zu setzen (C).
\DeclareNameAlias{sortname}{last-first}
ergibt »Nachname, Vorname, Nachname2, Vorname2 und Nachname3, Vorname3« (siehe auch im Beispiel unten).

Hier ein Minimalbeispiel:
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{article,
  author = {Nachname, Vorname},
  title = {Titel des Zeitschriftenartikels},
  journaltitle = {Zeitschrift},
  date = {2006},
  volume = {6},
  pages = {19--75}
}
@BOOK{book,
  author = {Buchautor, Hans-Wilhelm and Zweitautor, Zwentibold and Dritter, Dieter},
  title = {Irgendein Buch},
  location = {Buch am Wald},
  date = {2000}
}
@BOOK{book2,
  author = {Buchautor, Hans-Wilhelm and Zweitautor, Zwentibold and Dritter, Dieter},
  title = {Noch ein Buch},
  location = {Berlin},
  date = {2000}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}

\usepackage[
  style=authortitle
]{biblatex}
\bibliography{\jobname}

% FUSSNOTEN-ZITATE 
%% Eckige Klammer um Titel 
\DeclareFieldFormat{citetitle}{\mkbibbrackets{#1\isdot}} 
\DeclareFieldFormat[article]{citetitle}{\mkbibbrackets{#1}} 
\DeclareFieldFormat[incollection]{citetitle}{\mkbibbrackets{#1}} 
\DeclareFieldFormat[unpublished]{citetitle}{\mkbibbrackets{#1}} 
\DeclareFieldFormat[thesis]{citetitle}{\mkbibbrackets{#1}} 

%% Standardkomma herausnehmen, aber Leerzeichen nach Name 
\renewcommand*{\nametitledelim}{\addspace}

%% Kapitälchen für Nachnamen 
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

%% Jahr in Klammern
\DeclareFieldFormat{year}{\mkbibparens{#1}}

%% cite-Befehl um Jahr ergänzt
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {}
       {\printnames{labelname}%
        \setunit{\nametitledelim}}%
     \usebibmacro{cite:title}%
		 \iffieldundef{year}%         <-- NEU
		   {}%                        <-- NEU
			 {\setunit{\nameyeardelim}% <-- NEU
		    \printfield{year}}}%      <-- NEU
    {\usebibmacro{cite:shorthand}}}

\DeclareNameAlias{sortname}{last-first}
	
\begin{document}
\cite{article}

\cite[17]{book}

\cite[Vgl.][173]{book2}

\printbibliography
\end{document}
Gruß,
Dominik.-

Elcaradura
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 16. Nov 2010, 18:30

Beitrag von Elcaradura »

Wow, vielen Dank Dominik! Das Jahr wird tatsächlich in diesem Makro eingefügt. Daran habe ich mich auch schon versucht, bin aber kläglich gescheitert. Ich habe kein funktionierendes Makro hinbekommen. Allerdings würde es mich interessieren, wie dieses Makro funktioniert um zumindest für die Zukunft etwas mitzunehmen.

Schaue ich mir den Zitationsstil *.cbx an, so denke ich wird in \DeclareCiteCommand{\footcite}[\mkbibfootnotetext] ... das Format der Fußnoten per "\footcite"-Command festgelegt. Dieser verweist wiederum auf das Makro "\newbibmacro*{cite} und dort gibt es eine verschachtelte Abfrage und diese würde ich gerne verstehen.
\renewbibmacro*{cite}{% 
  \iffieldundef{shorthand} 
    {\ifnameundef{labelname} 
       {} 
       {\printnames{labelname}% 
        \setunit{\nametitledelim}}% 
     \usebibmacro{cite:title}% 
       \iffieldundef{year}%         <-- NEU 
         {}%                        <-- NEU 
          {\setunit{\nameyeardelim}% <-- NEU 
          \printfield{year}}}%      <-- NEU 
    {\usebibmacro{cite:shorthand}}} 
Die äußere Abfrage prüft ob "shorthand" belegt ist und wenn, dann startet es das Makro "cite:shorthand"
\renewbibmacro*{cite}{%\iffieldundef{shorthand}{…}{\usebibmacro{cite:shorthand}}}




Mit der inneren Abfrage habe ich so meine Probleme. So wie ich es verstehe, prüft \ifnameundef{labelname} ob dieses Feld belegt ist und gibt in diesem Falle dann den Inhalt aus und fügt ferner ein Trennzeichen an (per \setunit{\nametitledelim}). Bedeutet das nachfolgende % dann eine logische Verknüpfung oder müsste gar nichts da stehen und man vermeidet dadurch nur Leerzeichen?
Anschließend prüft es das Feld "Year" ab und schreibt erst das typische Trennzeichen für's Jahr und anschließend das Jahr.
\ifnameundef{labelname}{}
 {\printnames{labelname}%\setunit{\nametitledelim}}%\usebibmacro{cite:title}%
 \iffieldundef{year}{}{\setunit{\nameyeardelim}%\printfield{year}}
Bin ich wenigstens halbwegs auf dem richtigen Weg, oder verstehe ich es grundlegend falsch?


So, jetzt habe ich aber noch zwei Anmerkungen, die noch nicht so funktionieren. Ich habe dazu meine Dateien angefügt.

- Mir gibt es einmal ein komplettes Datum, anstelle einer Jahreszahl aus. (25. August 1995). Dort habe ich auch im Feld "Year" ein komplettes Datum eingefügt, da wenn ich das Datum als Feld "Date" einbringe, wie ich es gem. Biblatex könnte, dann bringt mir das Literaturverzeichnis gar nichts.
Gibt es hier eine simple Lösung wie ich nur die Jahreszahl ausgeben könnte?


- Und leider bekomme ich es mit der Sortierung nicht hin, trotz
\DeclareNameAlias{sortname}{last-first}
Dateianhänge
Archiv.zip
Die Zip enthält:
Minimalbeispiel.tex
Minimalbeispiel.pdf
mein-authortitle-year.bbx
mein-authortitle-year.cbx
BibDeskUebergang.bib
(186.28 KiB) 466-mal heruntergeladen
Zuletzt geändert von Elcaradura am Mi 17. Nov 2010, 20:58, insgesamt 1-mal geändert.

Elcaradura
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 16. Nov 2010, 18:30

Beitrag von Elcaradura »

Nochmals vielen Dank. Bei mir gibt´s noch einige Baustellen und ich stehe gerade in der unangenehmen Situation, dass mir die Zeit verrennt und ich die Studienarbeit bis Ende November fertig haben muss und zuviel Zeit mit dem Aufbau von LaTeX verbringe(n muss). Leider kommt man als Newbie schnell vom Regen in die Traufe. Allerdings möchte ich nicht mehr auf Word zurück. :-)
Und zudem steht die Abschlussarbeit dann auch zum Jahreswechsel an...

Merci also nochmals!

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

Beitrag von domwass »

Ich hab mir dein Beispiel angesehen. Die wichtigsten Fehler liegen in der bib-
Datei. Mehrere Autoren/Herausgeber werden durch »and« voneinander
getrennt, also z.B.:
editor = {Wolfgang Dieter Budde and Hermann Clemm and Helmut Ellrott and Gerhart Förschle and Martin Hoyos}
Außerdem verlangt das date-Feld das ISO-Format YYYY-MM-DD, also
date = {1995-08-25}}
Ansonsten konnte ich erstmal keine größeren Probleme erkennen.

Gruß,
Dominik.-

Antworten