Kleine Probleme bei der Personalisierung von Biblatex-DW

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


Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Kleine Probleme bei der Personalisierung von Biblatex-DW

Beitrag von Nilson »

Hallo zusammen,

ich habe ein Frage bei der Personalisierung des Zitierstils Biblatex-dw. Ich hoffe Ihr könnt mir helfen. Zum einen würde ich mehrere Autoren gerne mit et al. statt mit u.a. abkürzen.
Generell zitiere ich eigentlich nur in Fußnoten, weswegen der Stil sehr gut passt. Allerdings würde ich gerne bei Zitaten in Tabellen (Literaturübersicht, ohne Fußnoten) nur die Autoren und die Jahreszahl machen. Ich weiß, eigentlich ist authortitle-dw nicht für Autor (Jahr) Zitate gemacht, aber vielleicht gibt es ja einen einfachen Weg, das zu ändern? Würde diesen Stil gerne weiter benutzen, da er für Fußnoten sehr nah an den an mich gestellten Anforderungen ist.

Vielen Dank im Voraus,

Nilson

Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Beitrag von Nilson »

Das erste Problem konnte ich selbst lösen, habe einfach im german.lbx File nach u.a. gesucht und es ersetzt durch et al.. Das Problem Mit Autor Jahr besteht weiterhin.

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

Beitrag von domwass »

Nilson hat geschrieben:Das erste Problem konnte ich selbst lösen, habe einfach im german.lbx File nach u.a. gesucht und es ersetzt durch et al..
Du solltest nie die Dateien direkt ändern, da deine Änderungen beim
nächsten Update wieder verlorengehen. Stattdessen kannst du deine
Anpassungen entweder direkt in die Präambel deiner tex-Datei schreiben
oder in die Datei biblatex.cfg (dann gelten Sie für alle Dokumente auf diesem
System). Eine dritte Möglichkeit ist, einen eigenen Stil zu schreiben (das ist
gar nicht schwer, denn man kann andere Stile als Basis nehmen).
Generell zitiere ich eigentlich nur in Fußnoten, weswegen der Stil sehr gut passt. Allerdings würde ich gerne bei Zitaten in Tabellen (Literaturübersicht, ohne Fußnoten) nur die Autoren und die Jahreszahl machen.
Ich halte es nicht für sinnvoll, Autor-Jahr und Autor-Titel-Zitierweise zu
mischen. Was spricht gegen Autor und Kurztitel in den Tabellen? Um was
für eine Art von Tabelle handelt es sich denn? Für wen soll diese
Literaturübersicht sein?
Ich weiß, eigentlich ist authortitle-dw nicht für Autor (Jahr) Zitate gemacht, aber vielleicht gibt es ja einen einfachen Weg, das zu ändern?
Das ist wohl nicht so einfach möglich. Man könnte eventuell einen neuen
Zitierbefehl erstellen, der dann andere bibmacros benutzt (die man sich
aus dem authoryear-Stil kopieren könnte). Also: grundsätzlich wäre es
wohl möglich, aber mit einem gewissen Aufwand verbunden.

Gruß,
Dominik.-

Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Beitrag von Nilson »

Hallo domwass,

danke für die schnelle Antwort. Das mit dem File habe ich mir zu Herzen genommen, werde es jetzt im Dokument ändern.
Die Sache mit dem Autor Jahr will mein Professor so, es soll in Tabellen erscheinen, die im Text auftauchen. Dort soll in einer Spalte die Quelle der Zitate in einer anderen Spalte angeführt werden. Es muss leider zwingend Autor Jahr sein. Wie ließe sich dieser Befehl erstellen? Und was müsste ich dafür im Hauptfile ändern? Ich würde es ja händisch eintragen, aber die Quellen sollten auch in der Bibliographie auftauchen.

LG,

Nilson

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

Beitrag von domwass »

Ich hab nochmal drüber nachgedacht. Am einfachsten ist es wohl, einen
Befehl zu definieren, der \citeauthor und \citeyear nutzt, um die
entsprechenden Informationen zu liefern. Ich hab dazu im folgeden
Minimalbeispiel den Befehl \tabcite definiert:
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{article,
  author = {Nachname, Vorname},
  title = {Titel des Zeitschriftenartikels},
  journal = {Zeitschrift},
  year = {2006},
  volume = {6},
  pages = {19--75}
}
@BOOK{book,
  author = {Buchautor, Hans-Wilhelm},
  title = {Irgendein Buch},
  address = {Buch am Wald},
  year = {2000}
}
\end{filecontents}
\newcommand{\tabcite}[1]{\citeauthor{#1} (\citeyear{#1})}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}

\usepackage[style=footnote-dw]{biblatex}
\bibliography{\jobname}
								
\begin{document}
\cite{book}

\tabcite{article}

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

Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Beitrag von Nilson »

Hallo Dominik,

vielen Dank für Deine Antwort. Es funktioniert, nur leider gibt er mir nicht wie in Deinem Minimalbeispiel nur den Nachnamen aus, sondern Nachname(kursiv), Vorname (Jahr). Ich fürchte das liegt an den Änderungen, die meine Vorgänger an dem authortitle-dw Stil durchgeführt haben. Auch wenn ich Footnote-dw verwende, besteht dieses Problem allerdings. Hast Du spontan eine Idee? Ich möchte Dir nicht die komplette Hauptdatei antun, von Minimalbeispiel kann man da wohl kaum mehr sprechen...;)

Viele Grüße,

Nilson

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

Beitrag von domwass »

Ein Minimalbeispiel kann man aber aus einer komplexen Datei erstellen, in
relativ wenigen Schritten. Siehe dazu den Link in meiner Signatur.

Gruß,
Dominik.-

P.S.: bbx- und cbx-Dateien kannst du auch anhängen oder irgendwo zum
Download bereitstellen.

[Edit: P.S. eingefügt, 30.08.2010, 18:39]

Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Beitrag von Nilson »

Hallo Dominik,

es hat eine gute Weile gedauert, aber mittlerweile konnte ich ein Minimalbeispiel erstellen. (Ich hoffe es entspricht den Anforderungen). Ich denke, es ist mir gelungen die Änderungen zu isolieren, die das Problem verursachen. Allerdings sind diese jeweils für die Zitierungen in den Fussnoten erwünscht, nur in den Tabellen hätte ich eben gerne einfach nur Nachname (Jahr), wenn der Nachname kursiv bleiben muss ist das nicht so ein großes Problem.

Vielen Dank schon mal,

Nilson
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{article,
  author = {Nachname, Vorname},
  title = {Titel des Zeitschriftenartikels},
  journal = {Zeitschrift},
  year = {2006},
  volume = {6},
  pages = {19--75}
}
@BOOK{book,
  author = {Buchautor, Hans-Wilhelm},
  title = {Irgendein Buch},
  address = {Buch am Wald},
  year = {2000}
}
\end{filecontents}
\newcommand{\tabcite}[1]{\citeauthor{#1} (\citeyear{#1})}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}

%-------Änderung die Kursivstellung verursacht
\usepackage[
maxnames=3,						%Anzahl Namen ohne et. al
autocite=footnote,		%autocite verhält sich wie footcite
hyperref=true,				%Links in Zitaten
useprefix=true,				%Namenspräfixe werden mitsortiert
style=authortitle-dw,	%Stil von de-biblatex-dw
%style=footnote-dw,	%Stil von de-biblatex-dw
useeditor=true,		%(Hrsg. in Klammern nach den Herausgebern, danach Titel
namefont=italic,			%kursive Nachnamen
firstfull=true,				%Erstzitat ist Vollzitat
%omitpages=true,			%keine Seitenangaben in Fussnoten
idemtracker=constrict,						%kein ersetzen durch "`Ders"'
citedas=false,				%"'im folgenden zitiert als"' wird unterdrückt
herename=false,				%"`hier"' vor Seitenzahlen, da Vollzitate Seitebereiche von bspw. Artikeln enthalten
idembib=false,				%kein "`Ders."' im LitVZ
edbyidem=false,				%Hrsg. werden angegeben, falls sie dieselben sind wie Autoren
ibidtracker=true,			%macht aus ders. ebd., sofern idem auf true gesetzt (s.o.)
sortcites=true
journumafteryear=true,
]{biblatex}

                    
                       
\bibliography{\jobname}


%------------------Änderung die die Hinzunahme des Autorvornamens verursacht


\DeclareNameFormat{labelname}{									%formatiert Fußnoten mit Vornamen UND Nachname, firstreversed
  \ifnum\value{listcount}=1\relax												
    \iffirstinits
      {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
    \ifblank{#3#5}
      {}
      {\usebibmacro{name:revsdelim}}%
  \else
    \iffirstinits
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}%
  \fi
  \usebibmacro{name:andothers}}
%
\DeclareNameFormat{default}{%									%formatiert obiges Verhalten (firstreversed) auch für das Erstzitat			
  \ifnum\value{listcount}=1\relax												
    \iffirstinits
      {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
    \ifblank{#3#5}
      {}
      {\usebibmacro{name:revsdelim}}%
  \else
    \iffirstinits
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}%
  \fi
  \usebibmacro{name:andothers}}
%
\let\citerevsdnamedelim\revsdnamedelim					%Komma zwischen Autoren in Fußnoten
\let\citemultinamedelim\multinamedelim					%"'"'
\let\citefinalnamedelim\finalnamedelim					%"'"'
	

%----------------------------------------------------------------------------------------------------------------------

%                       
                       
\begin{document}
\cite{book}

\tabcite{article}

\printbibliography
\end{document}

Nilson
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Di 24. Aug 2010, 13:06

Beitrag von Nilson »

Übrigens benutze ich in meiner Arbeit eigentlich sonst nur den Befehl \footcite.
Vielleicht spielt das ja auch eine Rolle.

Viele Grüße,

Nils

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

Beitrag von domwass »

Ich habe es nun doch mit einem eigenen Zitierbefehl mit biblatex-Mitteln
umgesetzt, weil es übersichtlicher ist. Zunächst habe ich \tabcite definiert,
wobei ich mich an \citeauthor orientiert habe:
\DeclareCiteCommand{\tabcite}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \usebibmacro{tabcite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
Der einzige Unterschied ist, dass nicht einfach die Namen ausgegeben
werden, sondern das bibmacro tabcite ausgeführt wird. Das habe ich als
nächstes definiert:
\newbibmacro*{tabcite}{%
  \printnames[tabname]{labelname}%
  \setunit{\addspace}%
  \printtext[parens]{\printfield{year}}}
Hier werden die Namen (\printnames{labelname}) und das Jahr in
Klammern ausgegeben. Bei den Namen wird das Namensformat
[tabname] verwendet. Das muss natürlich auch noch definiert werden:
\DeclareNameFormat{tabname}{% für tabcite
  \usebibmacro{name:last}{#1}{#3}{#5}{#7}%
  \usebibmacro{name:andothers}}
Hier wird nur der Nachname ausgegeben und – falls maxnames greift –
ein u.a. bzw. et al.

Hier das vollständige Minimalbeispiel:
\documentclass[ngerman]{scrartcl} 
\listfiles 
\usepackage{filecontents} 
\begin{filecontents}{\jobname.bib} 
@BOOK{book, 
  author = {Buchautor, Hans-Wilhelm}, 
  title = {Irgendein Buch}, 
  address = {Buch am Wald}, 
  year = {2000} 
} 
\end{filecontents} 

\usepackage[T1]{fontenc} 
\usepackage[latin1]{inputenc} 
\usepackage{babel,csquotes} 

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

\DeclareCiteCommand{\tabcite}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \usebibmacro{tabcite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newbibmacro*{tabcite}{%
  \printnames[tabname]{labelname}%
	\setunit{\addspace}%
	\printtext[parens]{\printfield{year}}}

\DeclareNameFormat{tabname}{% für tabcite
  \usebibmacro{name:last}{#1}{#3}{#5}{#7}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{labelname}{%
  \ifnum\value{listcount}=1\relax                                     
    \iffirstinits 
      {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
      {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
    \ifblank{#3#5} 
      {} 
      {\usebibmacro{name:revsdelim}}% 
  \else 
    \iffirstinits 
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} 
      {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% 
  \fi 
  \usebibmacro{name:andothers}} 

\DeclareNameFormat{default}{%
  \ifnum\value{listcount}=1\relax                                     
    \iffirstinits 
      {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
      {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
    \ifblank{#3#5} 
      {} 
      {\usebibmacro{name:revsdelim}}% 
  \else 
    \iffirstinits 
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} 
      {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% 
  \fi 
  \usebibmacro{name:andothers}} 

\begin{document} 
cite: \cite{book} 

tabcite: \tabcite{book} 

footcite: \footcite{book}
\end{document}
Gruß,
Dominik.-

Antworten