biblatex/authoryear: Autor (Jahr), Feldreihenfolgen Einträge

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


ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

biblatex/authoryear: Autor (Jahr), Feldreihenfolgen Einträge

Beitrag von ehwlt »

Hallo,

dank viel Rumgesuche und Hilfe aus diesem Thread habe ich schon einiges so hinbekommen, wie ich es haben möchte, aber einiges fehlt auch noch. Ein Minimalbeispiel sagt mehr aus tausend Worte:
\begin{filecontents}{\jobname.bib}
@Book{Mittelbach2004,
    Title                    = {The \LaTeX{} Companion},
    Author                   = {Franck Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley},
    Publisher                = {Addison Wesley},
    Year                     = {2004},
    Address                  = {Boston, San Francisco, New York, Toronto, Montreal, London, Munich, Paris, Madrid, Capetown, Sydney, Tokyo, Singapore, Mexico City},
    Edition                  = {2}
}

@Standard{DIN8601,
    Title = {Data elements and interchange formats – Information interchange – Representation of dates and times},
    Year = {2006},
    Month = {9},
    Author = {DIN},
    Institution = {DIN},
    Type={Norm},
    Number = {8601}
}

@Article{Dimpfelmoser2008,
  Title                    = {Raub einer Kaffeemühle},
  Author                   = {Alois Dimpfelmoser and Petrosilius Zwackelmann},
  Journal                  = {J. Kasperl-Seppel},
  Year                     = {2008},
  Pages                    = {12576–12693},
  Volume                   = {191}
}
\end{filecontents}

\documentclass[
    pagesize,%
    DIV=9,%
    parskip=half%
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\usepackage{lmodern}

\usepackage[expansion=true,final,babel=true]{microtype}

\usepackage{amsmath}

\usepackage[%
    unicode=true,%
    pdftex,%
    bookmarksnumbered=true,%
    breaklinks,%
    pdftitle={BibLaTeX-Stile}%
]{hyperref}

\usepackage[%
    style=authoryear,% Autor-Jahr-Zitierstil
    natbib,% stellt \citet{} usw. aus natbib zur Verfügung
    dashed=false% alle Verzeichniseinträge desselben Autors mit Namen beginnen, nicht nur den ersten
]{biblatex}

\usepackage{csquotes}

\addbibresource{\jobname.bib}

\setlength{\bibitemsep}{0.5\baselineskip}% Abstand zwischen den Einträgen im Verzeichnis

\ExecuteBibliographyOptions{%
    firstinits=true,% Vornamen abkürzen
    maxbibnames=99,% alle Namen im Verzeichnis
    maxcitenames=2% nur erster Name und "et al." im Text ab drei Namen
}

\AtBeginBibliography{%
    \renewcommand*{\revsdnamepunct}{\addspace}% "Nachname V." statt "Nachname, V."
    \renewcommand*{\finalnamedelim}{\addcomma\addspace}% Komma statt "und" vor dem letzten Namen
    \renewcommand*{\labelnamepunct}{\addcolon\addspace}% Doppelpunkt zwischen Namen und Titel
    \renewcommand*{\finentrypunct}{}% kein Punkt am Ende eines Verzeichniseintrags
}

\DefineBibliographyStrings{german}{%
    andothers = {et\addspace al\adddotspace}% "et al." statt "u.a."
}

\renewcommand*{\mkbibnamefamily}[1]{\textls[75]{\textsc{#1}}}

\recalctypearea
\begin{document}

\section{Zitierstil}

So soll es aussehen, wobei sowohl Name als auch Jahreszahl verlinkt sein sollen:

\begin{addmargin}{1em}
Rübezahl hat \textls[75]{\textsc{Mittelbach}}~et~al.~(2004) gelesen und in \textls[75]{\textsc{Dimpfelmoser}} und \textls[75]{\textsc{Zwackelmann}}~(2008) gemäß \textls[120]{\textsc{DIN}}\,8601~(2006) darüber berichtet.
\end{addmargin}

So macht es Bib\LaTeX mit allen Anpassungen, die ich bis jetzt gefunden habe:

\begin{addmargin}{1em}
Rübezahl hat \citet{Mittelbach2004} gelesen und in \citet{Dimpfelmoser2008} gemäß \citet{DIN8601} darüber berichtet.
\end{addmargin}

\section{Verzeichnisstil}

So soll das Verzeichnis aussehen (das erste ist ein Artikel aus einem Journal, die fette Zahl dessen Volume):\bigskip

\begin{addmargin}[1em]{0em}
\hspace{-1em}Dimpfelmoser A., P. Zwackelmann: Raub einer Kaffeemühle. J. Kasperl-Seppel~\textbf{191}, 12\,576\;\!–\:\!12\,693~(2008)

\hspace{-1em}\textls[120]{\textsc{DIN}}\,8601: \textit{Data elements and interchange formats – Information interchange – Representation of dates and times} (September 2006)

\hspace{-1em}Mittelbach F., M. Goossens, J. Braams, D. Carlisle, C. Rowley: \textit{The \LaTeX Companion}. 2. Auflage (Addison Wesley, Boston, … 2004)
\end{addmargin}

\printbibliography
\end{document}
Ich bin mir nicht sicher, ob der Stil authoryear die beste Grundlage dafür ist.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wenn Du die Paketoption natbib nur für den Befehl \citet lädst, dann dürfte \textcite ohne diese Option auskommen.

Die Option firstinits von biblatex wurde durch giveninits ersetzt.

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Die Option ändert »Autor, Jahr« zu »Autor (Jahr)«. Das müßte auch mit BibLaTeX-Bordmitteln gehen. Andererseits ist der Quelltext für den Fließtext mit der Option natbib und citet/citep kompatibel zu BibTeX und BibLaTeX.

Gast

Beitrag von Gast »

So, ich bin nicht mit allen Anfragen auf die Schnelle fertig geworden. Aber das hier ist ein Anfang. Ich habe in Deiner .bib-Datei nur eine Sache geändert: Listen im publisher-Feld werden mit and getrennt, außerdem ist es wenig sinnvoll, zehn Orte anzugeben, das habe ich gekürzt.

Ansonsten findest Du in dem MWE (Achtung! Wegen filecontents überschreibt es eine vorhandene .bib-Datei desselben Namens ohne Warnung!) einen neuen Abschnitt mit Fragen, die Du Dir mal ansehen solltest. Beachte, dass ich auch Lade-Optionen von biblatex geändert habe.
Die meisten Änderungen sollten, wenn sie nicht sofort selbsterklärend sind, durch einen Blick in die Dokumentation zu den beteiligten Befehlen klar sein.
\documentclass[
    pagesize,%
    DIV=9,%
    parskip=half%
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{lmodern}
\usepackage[expansion=true,final,babel=true]{microtype}
\usepackage{csquotes}
\usepackage[%
    style=authoryear,% Autor-Jahr-Zitierstil
    bibstyle=authortitle,% Autor-Jahr-Zitierstil
    dashed=false,% alle Verzeichniseinträge desselben Autors mit Namen beginnen, nicht nur den ersten
    abbreviate=false,
   sorting=nyt,
]{biblatex}

\usepackage[%
    unicode=true,%
    pdftex,%
    bookmarksnumbered=true,%
    breaklinks,%
    pdftitle={BibLaTeX-Stile}%
]{hyperref}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Mittelbach2004,
  title     = {The \LaTeX{} Companion},
  author    = {Franck Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley},
  publisher = {Addison Wesley},
  year      = {2004},
  address   = {Boston and others},
  edition   = {2}
}

@standard{DIN8601,
  title       = {Data elements and interchange formats – Information interchange – Representation of dates and times},
  year        = {2006},
  month       = {9},
  author      = {DIN},
  institution = {DIN},
  type        = {Norm},
  number      = {8601}
}

@article{Dimpfelmoser2008,
  title   = {Raub einer Kaffeemühle},
  author  = {Alois Dimpfelmoser and Petrosilius Zwackelmann},
  journal = {J. Kasperl-Seppel},
  year    = {2008},
  pages   = {12576–12693},
  volume  = {191}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\setlength{\bibitemsep}{0.5\baselineskip}% Abstand zwischen den Einträgen im Verzeichnis

\ExecuteBibliographyOptions{%
    firstinits=true,% Vornamen abkürzen
    maxbibnames=99,% alle Namen im Verzeichnis
    maxcitenames=2% nur erster Name und "et al." im Text ab drei Namen
}

\AtBeginBibliography{%
  \renewcommand*{\revsdnamepunct}{\addspace}% "Nachname V." statt "Nachname, V."
  \renewcommand*{\finalnamedelim}{\multinamedelim}% Komma statt "und" vor dem letzten Namen
  \renewcommand*{\mkbibnamefamily}[1]{#1}%
}

\renewcommand*{\mkbibnamefamily}[1]{\textls[75]{\textsc{#1}}} 
\renewcommand*{\labelnamepunct}{\addcolon\addspace}% Doppelpunkt zwischen Namen und Titel
\renewcommand*{\finentrypunct}{}% kein Punkt am Ende eines Verzeichniseintrags

\DefineBibliographyStrings{german}{%
    andothers = {et\addspace al\adddotspace}% "et al." statt "u.a."
}

\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {citetitle}{#1\isdot}

\DeclareFieldFormat[article,periodical]{pages}{#1}% Nur für @article und @periodical, wenn überall das `S.' wegsoll, dann kannst Du das [article,periodical] weglassen

\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \setunit{\addspace}%
  \printtext[parens]{%
    \printlist{#1}%
    \setunit*{\addcomma\space}%
    \printlist{location}%
    \setunit{\addspace}%
    \usebibmacro{date}}%
  \newunit}

\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}

% Jetzt wird es etwas komplizierter
% das sind Kopien aus authoryear.cbx mit wenigen Modifikationen
\makeatletter
\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{ecite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newbibmacro*{ecite}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:parenlabelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}

% Sorry, das ist jetzt echt lang. Früher waren das vier Zeilen, aber mit den neuen tollen Features fürs Datum explodiert die Zeilenzahl. 
\newbibmacro*{cite:parenlabelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {}
       {\datecircaprint}%
     \dateeraprintpre{labelyear}%
     \printfield{labelyear}%
     \printfield{extrayear}%
     \dateuncertainprint%
     \iffieldsequal{labeldateera}{labelenddateera}{}
       {\dateeraprint{labelyear}}%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {\datecircaprintedtf}
       {}%
     \iffieldundef{labelendyear}
       {}
       {\iffieldsequal{labelyear}{labelendyear}{}
        {\ifdefstring\blx@dateformat@labeldate{edtf}
          {\slash}% strict EDTF
          {\bibdaterangesep
           \enddatecircaprint}%
         \dateeraprintpre{labelendyear}%
         \printfield{labelendyear}%
         \enddateuncertainprint
         \ifdefstring\blx@dateformat@labeldate{edtf}
           {\enddatecircaprintedtf}
           {}%
         \dateeraprint{labelendyear}}}}}}
\makeatother

\recalctypearea
\begin{document}
\section{Zitierstil}

So soll es aussehen, wobei sowohl Name als auch Jahreszahl verlinkt sein sollen:

\begin{addmargin}{1em}
Rübezahl hat \textls[75]{\textsc{Mittelbach}}~et~al.~(2004) gelesen und in \textls[75]{\textsc{Dimpfelmoser}} und \textls[75]{\textsc{Zwackelmann}}~(2008) gemäß \textls[120]{\textsc{DIN}}\,8601~(2006) darüber berichtet.
\end{addmargin}

So macht es Bib\LaTeX mit allen Anpassungen, die ich bis jetzt gefunden habe:

\begin{addmargin}{1em}
Rübezahl hat \cite{Mittelbach2004} gelesen und in \cite{Dimpfelmoser2008} gemäß \cite{DIN8601} darüber berichtet.
\end{addmargin}

\section{Verzeichnisstil}

So soll das Verzeichnis aussehen (das erste ist ein Artikel aus einem Journal, die fette Zahl dessen Volume):\bigskip

\begin{addmargin}[1em]{0em}
\hspace{-1em}Dimpfelmoser A., P. Zwackelmann: Raub einer Kaffeemühle. J. Kasperl-Seppel~\textbf{191}, 12\,576\,–\,12\,693~(2008)

\hspace{-1em}\textls[120]{\textsc{DIN}}\,8601: \textit{Data elements and interchange formats – Information interchange – Representation of dates and times} (September 2006)

\hspace{-1em}Mittelbach F., M. Goossens, J. Braams, D. Carlisle, C. Rowley: \textit{The \LaTeX Companion}. 2. Auflage (Addison Wesley, Boston, … 2004)
\end{addmargin}

\section{Offene Fragen}
Wenn Du Autor-Jahr Zitate im TeXt hast, sollte das Jahr dann im Literaturverzeichnis nicht eine exponiertere Stellung bekommen?
So wird es für einen Leser schwer, die passende Referenz zum Zitat zu finden, da das Jahr untergeordnet gegen Ende kommt.

Wie sollen \cite{westfahl:space,brandt,hyman} im Literaturverzeichnis aussehen? Was ist mit \cite{moraux,cicero,coleridge,gaonkar}?

Was soll für \verb!@article! passieren, die eine DOI mitbringen \parencite{sigfridsson}?

Wie möchtest Du Zitate desselben Autors aus demselben Jahr kenntlich machen \cite{knuth:ct:b,knuth:ct:c}? Wie soll das im Literaturverzeichnis angezeigt werden?

\printbibliography
\end{document}

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Holla die Waldfee … Also, der Reihe nach. ;-)
\DeclareFieldFormat[article,periodical]{pages}{#1}
Das entfernt das S. « vor den Seitenzahlen, klar.
\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}
Das ist auch noch klar, das entfernt das »In: « vor dem Namen des Journals.
\newbibmacro*{pubinstorg+location+date}[1]{%
  \setunit{\addspace}%
  \printtext[parens]{%
    \printlist{#1}%
    \setunit*{\addcomma\space}%
    \printlist{location}%
    \setunit{\addspace}%
    \usebibmacro{date}}%
  \newunit}

\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}
»pubinstorg« sagt mir nichts, aber der Rest macht wohl »(Verlag, Orte Jahr)«. Dazu:
Listen im publisher-Feld werden mit and getrennt, […].
Du meinst im address-Feld?
\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{ecite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
Das verstehe ich jetzt nicht ganz. Bei mir läßt sich Dein Code nicht fehlerfrei kompilieren, bei allen \cite entsteht ein »Undefined control sequence«.
\newbibmacro*{ecite}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:parenlabelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}
Sorgt das dafür, daß der ganze Verweis zum Link wird?
\newbibmacro*{cite:parenlabelyear+extrayear}{ […]
»Autor, Jahr« → »Autor (Jahr)«, vermute ich.

Zu den offenen Fragen:
Wenn Du Autor-Jahr Zitate im TeXt hast, sollte das Jahr dann im Literaturverzeichnis nicht eine exponiertere Stellung bekommen? So wird es für einen Leser schwer, die passende Referenz zum Zitat zu finden, da das Jahr untergeordnet gegen Ende kommt.
Genau das denk ich auch (ist mir auch schon in Literaturverzeichnissen von Fachartikeln negativ aufgefallen), aber ich habe eine LaTeX-Vorlage bekommen (mit DIV=11 und doppeltem Zeilenabstand, was ich mal ändern wollte, ohne Erfolg), an die halte ich mich einfach.
Wie sollen Westfahl (labelyear2000labelyear); Brandt und Hoffmann (labelyear1987labelyear); Hyman (labelyear1981labelyear) im Literaturverzeichnis aussehen?
Das wird zu:

»Westfahl G., V. Nachname: The True Frontier. Confronting and Avoiding the Realities of Space in American Science Fiction Films. In Space and Beyond. The Frontier Theme in Science Fiction. Hrsg. G. Westfahl, 55–65 (Greenwood, Westport, Conn., London, 2000)«
Was ist mit Moraux (labelyear1979labelyear); Cicero (labelyear1995labelyear); Coleridge (labelyear1983labelyear); Gaonkar (labelyear2001labelyear)?
Du meinst language, editor, translator, afterword, subtitle, series und number? Die Felder werden von der Vorlage ignoriert, sind für mich auch mehr oder weniger irrelevant, benutze ich nie. Sowas muß bei mir nicht im Literaturverzeichnis stehen (zumindest bis jetzt). Die Vorlage ignoriert übrigens auch das Feld date, die kennt nur year. Mit dem Gaonkar-Eintrag in der bib-Datei kommt die Vorlage überhaupt nicht zurecht. Die ISBN soll wohl nicht in Verzeichnis, ich würde sie aber hinten anhängen, also so:

»… (Verlag, Orte Jahr). ISBN: …«

Am liebsten wäre mir \textls[120]{ISBN} (nicht \textls[120]{\textsc{isbn}}).
Was soll für @article passieren, die eine DOI mitbringen
Die Vorlage macht daraus

»… 19, 377–395 (1998). http://dx.doi.org/10.1002/(SICI)1096-98 ... 3.0.CO;2-P. – DOI 10.1002/(SICI)1096–987X(199803)19:4<377::AID–JCC1>3.0.CO;2–P«,

also URL in texttt davor und verlinkt. Die Lösung aus Deinem Beispiel gefällt mir besser, aber ich hatte sowas noch nie, ich glaube auch nicht, daß ich das brauchen werde, von daher würde ich das so lassen wie in Deinem Beispiel.
Wie möchtest Du Zitate desselben Autors aus demselben Jahr kenntlich machen Knuth (labelyear1986alabelyear); Knuth (labelyear1986blabelyear)? Wie soll das im Literaturverzeichnis angezeigt werden?
Mit Kleinbuchstaben hinter der Jahreszahl, auch im Verzeichnis. Da läuft nur grad anscheinend etwas mit \cite schief.

Und wie es aussieht benutzt biblatex nicht den Buchstaben b, wenn es sich um den zweiten Eintrag in der bib-Datei handelt, sondern wenn es sich um den zweiten zitierten Eintrag handelt, auch wenn es der fünfte Eintrag in der bib-Datei ist. Das erscheint mir aber logisch.

Vielen Dank schonmal bis hierhin, mit meiner Einschätzung den Aufwand betreffend lag ich anscheinend nicht so falsch …

Gast

Beitrag von Gast »

Bevor ich weitermache, kann ich ja versuchen, Deine Fragen zu beantworten.

puborginst ist meine Marotte, um die drei strukturell sehr ähnlichen Makros publisher+location+date, institution+location+date und organization+location+date auf einmal zu ändern.
Eventuell sollte man bei der Definition noch eine Abfrage einbauen, dass nicht ein leeres Klammerpaar gedruckt wird.

Natürlich meinte ich das address/location-Feld, es gilt aber auch für publisher.

Dein Problem mit dem undefinierten \cite kann ich nicht nachvollziehen. Welche control sequence sei denn undefined? Tatsächlich funktioniert das nur, wenn Du die Definition von ecite und cite:parenlabelyear+extrayear auch im Dokument hast. Wenn Du das ganze stückweise einfügst, müssen die drei Dinger gemeinsam in das Dokument.

Dass Deine Vorlage mit date nicht klarkommt, war fast zu erwarten, das Feld kennt eigentlich nur biblatex, BibTeX jedenfalls eigentlich nie. (Hast Du denn nur eine Vorlage oder auch eine offizielle Vorgabe? Nicht, dass wir jetzt an einigen Stellen einer vermurksten oder schlechten Vorlage hinterherlaufen, die nur komische Ausgaben verursacht, weil sie mit bestimmten Sachen nicht klarkommt.)

Ja, die Buchstaben stehen im Verzeichnis noch nicht, das ließe sich wohl einrichten.

Eigentlich sollte biblatex die Buchstaben nach der Sortierreihenfolge angeben, diese ist zur Zeit 'Autor -> Jahr -> Titel', wäre das in Ordnung?

Gast

Beitrag von Gast »

Hier noch eine leicht angepasste Version, die auf ein paar Deiner Antworten eingeht.
\documentclass[
    pagesize,%
    DIV=9,%
    parskip=half%
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{lmodern}
\usepackage[expansion=true,final,babel=true]{microtype}
\usepackage{csquotes}
\usepackage[%
    style=authoryear,% Autor-Jahr-Zitierstil
    bibstyle=authortitle,% Autor-Jahr-Zitierstil
    dashed=false,% alle Verzeichniseinträge desselben Autors mit Namen beginnen, nicht nur den ersten
    abbreviate=false,
   sorting=nyt,
]{biblatex}

\usepackage[%
    unicode=true,%
    pdftex,%
    bookmarksnumbered=true,%
    breaklinks,%
    pdftitle={BibLaTeX-Stile}%
]{hyperref}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Mittelbach2004,
  title     = {The \LaTeX{} Companion},
  author    = {Franck Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley},
  publisher = {Addison Wesley},
  year      = {2004},
  address   = {Boston and others},
  edition   = {2}
}

@standard{DIN8601,
  title       = {Data elements and interchange formats – Information interchange – Representation of dates and times},
  year        = {2006},
  month       = {9},
  author      = {DIN},
  institution = {DIN},
  type        = {Norm},
  number      = {8601}
}

@article{Dimpfelmoser2008,
  title   = {Raub einer Kaffeemühle},
  author  = {Alois Dimpfelmoser and Petrosilius Zwackelmann},
  journal = {J. Kasperl-Seppel},
  year    = {2008},
  pages   = {12576–12693},
  volume  = {191}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\setlength{\bibitemsep}{0.5\baselineskip}% Abstand zwischen den Einträgen im Verzeichnis

\ExecuteBibliographyOptions{%
    firstinits=true,% Vornamen abkürzen
    maxbibnames=99,% alle Namen im Verzeichnis
    maxcitenames=2% nur erster Name und "et al." im Text ab drei Namen
}

\AtBeginBibliography{%
  \renewcommand*{\revsdnamepunct}{\addspace}% "Nachname V." statt "Nachname, V."
  \renewcommand*{\finalnamedelim}{\multinamedelim}% Komma statt "und" vor dem letzten Namen
  \renewcommand*{\mkbibnamefamily}[1]{#1}%
}

\renewcommand*{\mkbibnamefamily}[1]{\textls[75]{\textsc{#1}}}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}% Doppelpunkt zwischen Namen und Titel
\renewcommand*{\finentrypunct}{}% kein Punkt am Ende eines Verzeichniseintrags
\renewcommand*{\finallistdelim}{\multilistdelim}

\renewcommand*{\mkbibacro}{\textls[120]}

\DefineBibliographyStrings{german}{%
    andothers = {et\addspace al\adddotspace},
    byeditor = {Hrsg\adddot},
}

\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {citetitle}{#1\isdot}

\DeclareFieldFormat{pages}{#1}

\renewcommand*{\intitlepunct}{\addspace}
\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \ifboolexpr{not test {\iflistundef{#1}} or not  test {\iflistundef{location}} or not test {\iffieldundef{year}}  or not test {\iffieldundef{labelyear}}}
    {\setunit{\addspace}%
     \printtext[parens]{%
      \printlist{#1}%
      \setunit*{\addcomma\space}%
      \printlist{location}%
      \setunit{\addspace}%
      \usebibmacro{date}}}
  {}%
  \newunit}

\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}

\renewbibmacro*{date}{%
  \iffieldsequal{year}{labelyear}
    {\printlabeldateextra}%
    {\printdate}}

% Jetzt wird es etwas komplizierter
% das sind Kopien aus authoryear.cbx mit wenigen Modifikationen
\makeatletter
\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{ecite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newbibmacro*{ecite}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:parenlabelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}

% Sorry, das ist jetzt echt lang. Früher waren das vier Zeilen, aber mit den neuen tollen Features fürs Datum explodiert die Zeilenzahl.
\newbibmacro*{cite:parenlabelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {}
       {\datecircaprint}%
     \dateeraprintpre{labelyear}%
     \printfield{labelyear}%
     \printfield{extrayear}%
     \dateuncertainprint%
     \iffieldsequal{labeldateera}{labelenddateera}{}
       {\dateeraprint{labelyear}}%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {\datecircaprintedtf}
       {}%
     \iffieldundef{labelendyear}
       {}
       {\iffieldsequal{labelyear}{labelendyear}{}
        {\ifdefstring\blx@dateformat@labeldate{edtf}
          {\slash}% strict EDTF
          {\bibdaterangesep
           \enddatecircaprint}%
         \dateeraprintpre{labelendyear}%
         \printfield{labelendyear}%
         \enddateuncertainprint
         \ifdefstring\blx@dateformat@labeldate{edtf}
           {\enddatecircaprintedtf}
           {}%
         \dateeraprint{labelendyear}}}}}}
\makeatother

\recalctypearea
\begin{document}
\section{Zitierstil}

So soll es aussehen, wobei sowohl Name als auch Jahreszahl verlinkt sein sollen:

\begin{addmargin}{1em}
Rübezahl hat \textls[75]{\textsc{Mittelbach}}~et~al.~(2004) gelesen und in \textls[75]{\textsc{Dimpfelmoser}} und \textls[75]{\textsc{Zwackelmann}}~(2008) gemäß \textls[120]{\textsc{DIN}}\,8601~(2006) darüber berichtet.
\end{addmargin}

So macht es Bib\LaTeX mit allen Anpassungen, die ich bis jetzt gefunden habe:

\begin{addmargin}{1em}
Rübezahl hat \cite{Mittelbach2004} gelesen und in \cite{Dimpfelmoser2008} gemäß \cite{DIN8601} darüber berichtet.
\end{addmargin}

\section{Verzeichnisstil}

So soll das Verzeichnis aussehen (das erste ist ein Artikel aus einem Journal, die fette Zahl dessen Volume):\bigskip

\begin{addmargin}[1em]{0em}
\hspace{-1em}Dimpfelmoser A., P. Zwackelmann: Raub einer Kaffeemühle. J. Kasperl-Seppel~\textbf{191}, 12\,576\,–\,12\,693~(2008)

\hspace{-1em}\textls[120]{\textsc{DIN}}\,8601: \textit{Data elements and interchange formats – Information interchange – Representation of dates and times} (September 2006)

\hspace{-1em}Mittelbach F., M. Goossens, J. Braams, D. Carlisle, C. Rowley: \textit{The \LaTeX Companion}. 2. Auflage (Addison Wesley, Boston, … 2004)
\end{addmargin}

\section{Offene Fragen}
Wenn Du Autor-Jahr Zitate im TeXt hast, sollte das Jahr dann im Literaturverzeichnis nicht eine exponiertere Stellung bekommen?
So wird es für einen Leser schwer, die passende Referenz zum Zitat zu finden, da das Jahr untergeordnet gegen Ende kommt.

Wie sollen \cite{westfahl:space,brandt,hyman} im Literaturverzeichnis aussehen? Was ist mit \cite{moraux,cicero,coleridge,gaonkar}?

Was soll für \verb!@article! passieren, die eine DOI mitbringen \parencite{sigfridsson}?

Wie möchtest Du Zitate desselben Autors aus demselben Jahr kenntlich machen \cite{knuth:ct:b,knuth:ct:c}? Wie soll das im Literaturverzeichnis angezeigt werden?

\printbibliography
\end{document}
Soweit ich das sehe fehlen noch zwei Dinge: (1) @standard sollte wie gewünscht funktionieren und (2) die Seitenzahl sollte jeweils vor die Datumsklammer.

(1) ist gar nicht so kompliziert. Wenn es schön gemacht werden soll, müsste man aber die driver umschreiben und das lässt die Anzahl an Zeilen im Code explodieren.
(2) ist etwas mühseliger, hier muss der driver neu erstellt werden.

Vielleicht nehme ich das morgen Mittag mal in Angriff.

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Anonymous hat geschrieben:puborginst ist meine Marotte, um die drei strukturell sehr ähnlichen Makros publisher+location+date, institution+location+date und organization+location+date auf einmal zu ändern.
Eventuell sollte man bei der Definition noch eine Abfrage einbauen, dass nicht ein leeres Klammerpaar gedruckt wird.
Ach so, damit kenne ich mich noch nicht aus. Aber: Wenn ich die Option bibstyle=authortitle weglasse, gibt es tatsächlich leere Klammern (wenn es keinen Verlag und keine Orte gibt).
Anonymous hat geschrieben:Dein Problem mit dem undefinierten \cite kann ich nicht nachvollziehen. Welche control sequence sei denn undefined? Tatsächlich funktioniert das nur, wenn Du die Definition von ecite und cite:parenlabelyear+extrayear auch im Dokument hast. Wenn Du das ganze stückweise einfügst, müssen die drei Dinger gemeinsam in das Dokument.
Die sind alle drei drin. Ich dachte, LaTeX meint \cite, bin mir aber nicht ganz sicher, im Log steht:
! Undefined control sequence.
<argument> \datecircaprint

l.182 Rübezahl hat \cite{Mittelbach2004}
gelesen und in \cite{Dimpfelmoser2...
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
Und noch viel mehr davon. Bei den ersten drei cites jeweils vier Fehler, bei denen danach jeweils zwölf. Ich glaube, es liegt an \datecircaprint, dateeraprintpre usw.
Anonymous hat geschrieben:Dass Deine Vorlage mit date nicht klarkommt, war fast zu erwarten, das Feld kennt eigentlich nur biblatex, BibTeX jedenfalls eigentlich nie. (Hast Du denn nur eine Vorlage oder auch eine offizielle Vorgabe? Nicht, dass wir jetzt an einigen Stellen einer vermurksten oder schlechten Vorlage hinterherlaufen, die nur komische Ausgaben verursacht, weil sie mit bestimmten Sachen nicht klarkommt.)
Es ist keine offizielle Vorgabe, aber auch nicht »nur« eine Vorlage. Eigentlich soll ich einfach diese Vorlage benutzen, ohne etwas zu ändern. Aber der Code ist anscheinend mit der Zeit gewachsen und inzwischen ziemlich unübersichtlich, stellenweise auch redundant oder sogar komplett veraltet (subfig usw.), das kann man nicht direkt übernehmen (nicht guten Gewissens, wenn man soetwas wie ein LaTeX-Gewissen hat ;-)).
Anonymous hat geschrieben:Ja, die Buchstaben stehen im Verzeichnis noch nicht, das ließe sich wohl einrichten.
Das wäre wichtig, sonst gräbt am Ende noch jemand das Guttenbergbeil aus …
Anonymous hat geschrieben:Eigentlich sollte biblatex die Buchstaben nach der Sortierreihenfolge angeben, diese ist zur Zeit 'Autor -> Jahr -> Titel', wäre das in Ordnung?
Im Moment ist es glaube ich so: Wenn in der bib-Datei fünf Werke desselben Autors aus demselben Jahr stehen und alle zitiert werden, werden sie der Sortierreihenfolge nach mit a bis e ergänzt. Wenn ich stattdessen nur b und d zitiere, bekommen diese die Buchstaben a und b, die anderen drei bekommen keine Buchstaben, weil sie im Dokument überhaupt nicht auftauchen. So soll es glaube ich auch sein.
Anonymous hat geschrieben:Soweit ich das sehe fehlen noch zwei Dinge: (1) @standard sollte wie gewünscht funktionieren und (2) die Seitenzahl sollte jeweils vor die Datumsklammer.

(1) ist gar nicht so kompliziert. Wenn es schön gemacht werden soll, müsste man aber die driver umschreiben und das lässt die Anzahl an Zeilen im Code explodieren.
(2) ist etwas mühseliger, hier muss der driver neu erstellt werden.

Vielleicht nehme ich das morgen Mittag mal in Angriff.
Zu (1): Es gibt neben Normen noch andere Dokumente mit einem »Autor« ähnlich wie »DIN« und einer Nummer (mit oder ohne Buchstaben) als Titel, aber die Vorlage schreibt diese Nummer nicht hinter den »Autor« (DIN, ISO o.ä.). Bei der Vorlage wird für solche Dokumente der Typ @Misc verwendet und die Nummer mit ins Autorfeld geschrieben (author = {DIN8601}). Da die Vorlage es da nicht so genau nimmt, würde ich da (im Moment) keine Arbeit reinstecken.

Kann man die Ausgabe von Issue abschalten? Die Vorlage läßt das weg.

Bei Deiner zweiten Version fehlen im Verzeichnis die Seitenzahlen. Das scheint an \renewbibmacro*{date} zu liegen.

Vielen Dank nochmal, in der kurzen Zeit wäre ich das garantiert nicht so weit gekommen.

Gast

Beitrag von Gast »

Die Kommentare beziehen sich auf die zweite Version, die ich gestern um 17:08 gepostet habe.

Die Fehlermeldung, die Du bekommst deutet darauf hin, dass Deine biblatex-Version zu alt ist. \datecircaprint und das ganze andere Gesumse für extensive Datumsdarstellung gibt es erst seit Version 3.5. Aktuell ist 3.7.
Du musst also ein Update machen. Denk daran, dass Du biblatex und Biber immer gemeinsam updaten musst, um Versionskonflikte zu vermeiden.

Das sollte eigentlich alle merkwürdigen Dinge erklären, die Du gesehen hast. (Leere Klammern sollte es mit der zweiten Version nicht geben. Die Seitenzahl ist bei mir auch immer da.)

Ja, es werden nur den wirklich in das Literaturverzeichnis aufgenommenen Werken Buchstaben zugeordnet.

In der zweiten Version sollten die Buchstaben jetzt auch angezeigt werden.

Möchtest Du issue oder number ausschalten? Wie sieht denn ein Eintrag, bei dem Du das tun möchtest, aus?

Nochmal zu der Vorlagengeschichte: Hast Du schon mal dezent angefragt, wie sehr Du Dich an die Vorlage halten sollst? Würde es Deine Betreuerin/Dozentin überhaupt bemerken und dann auch noch schlecht finden, wenn Du von der Vorlage sinnvoll abweichst?
Ich habe bis jetzt noch nie eine Vorlage bekommen, aber ein paar Vorgaben gibt es an meiner Uni schon. Nach Rücksprache mit meinen Dozenten durfte ich die aber meistens sinnvoll ändern.

Wo kommt die Vorlage überhaupt her? Ist das eine Uni-Vorlage oder eine Deines Arbeitskreises oder der Dozentin? Gibt es da irgendeinen Support für? Eigentlich ist es unverantwortlich, Leute zu zwingen eine veraltete, schlecht geschriebene und nicht supportete Vorlage zu nutzen.

Gast

Beitrag von Gast »

Hier ist der Code, der (1) von der Wunschliste erledigt. Wie versprochen ist der Code nun recht lang (um dir 600 Zeilen), die eigentlichen Änderungen am bibdriver waren aber minimal.
\documentclass[
    pagesize,%
    DIV=9,%
    parskip=half%
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[expansion=true,final,babel=true]{microtype}
\usepackage{csquotes}
\usepackage[%
    style=authoryear,% Autor-Jahr-Zitierstil
    bibstyle=authortitle,% Autor-Jahr-Zitierstil
    dashed=false,% alle Verzeichniseinträge desselben Autors mit Namen beginnen, nicht nur den ersten
    abbreviate=false,
   sorting=nyt,
]{biblatex}

\usepackage[%
    unicode=true,%
    pdftex,%
    bookmarksnumbered=true,%
    breaklinks,%
    pdftitle={BibLaTeX-Stile}%
]{hyperref}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Mittelbach2004,
  title     = {The \LaTeX{} Companion},
  author    = {Franck Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley},
  publisher = {Addison Wesley},
  year      = {2004},
  address   = {Boston and others},
  edition   = {2}
}

@standard{DIN8601,
  title       = {Data elements and interchange formats – Information interchange – Representation of dates and times},
  year        = {2006},
  month       = {9},
  author      = {DIN},
  institution = {DIN},
  type        = {Norm},
  number      = {8601}
}

@article{Dimpfelmoser2008,
  title   = {Raub einer Kaffeemühle},
  author  = {Alois Dimpfelmoser and Petrosilius Zwackelmann},
  journal = {J. Kasperl-Seppel},
  year    = {2008},
  pages   = {12576–12693},
  volume  = {191}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\setlength{\bibitemsep}{0.5\baselineskip}% Abstand zwischen den Einträgen im Verzeichnis

\ExecuteBibliographyOptions{%
    firstinits=true,% Vornamen abkürzen
    maxbibnames=99,% alle Namen im Verzeichnis
    maxcitenames=2% nur erster Name und "et al." im Text ab drei Namen
}

\AtBeginBibliography{%
  \renewcommand*{\revsdnamepunct}{\addspace}% "Nachname V." statt "Nachname, V."
  \renewcommand*{\finalnamedelim}{\multinamedelim}% Komma statt "und" vor dem letzten Namen
  \renewcommand*{\mkbibnamefamily}[1]{#1}%
}

\renewcommand*{\mkbibnamefamily}[1]{\textls[75]{\textsc{#1}}}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}% Doppelpunkt zwischen Namen und Titel
\renewcommand*{\finentrypunct}{}% kein Punkt am Ende eines Verzeichniseintrags
\renewcommand*{\finallistdelim}{\multilistdelim}

\renewcommand*{\mkbibacro}{\textls[120]}

\DefineBibliographyStrings{german}{%
  andothers = {et\addspace al\adddotspace},
  byeditor  = {Hrsg\adddot},
}

\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {citetitle}{#1\isdot}

\DeclareFieldFormat{pages}{#1}

\renewcommand*{\intitlepunct}{\addspace}
\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \ifboolexpr{not test {\iflistundef{#1}} or not  test {\iflistundef{location}} or not test {\iffieldundef{year}}  or not test {\iffieldundef{labelyear}}}
    {\setunit{\addspace}%
     \printtext[parens]{%
      \printlist{#1}%
      \setunit*{\addcomma\space}%
      \printlist{location}%
      \setunit{\addspace}%
      \usebibmacro{date}}}
  {}%
  \newunit}

\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}

\renewbibmacro*{date}{%
  \iffieldsequal{year}{labelyear}
    {\printlabeldateextra}%
    {\printdate}}

% Jetzt wird es etwas komplizierter
% das sind Kopien aus authoryear.cbx mit wenigen Modifikationen
\makeatletter
\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{ecite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newbibmacro*{ecite}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:parenlabelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}

% Sorry, das ist jetzt echt lang. Früher waren das vier Zeilen, aber mit den neuen tollen Features fürs Datum explodiert die Zeilenzahl.
\newbibmacro*{cite:parenlabelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {}
       {\datecircaprint}%
     \dateeraprintpre{labelyear}%
     \printfield{labelyear}%
     \printfield{extrayear}%
     \dateuncertainprint%
     \iffieldsequal{labeldateera}{labelenddateera}{}
       {\dateeraprint{labelyear}}%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {\datecircaprintedtf}
       {}%
     \iffieldundef{labelendyear}
       {}
       {\iffieldsequal{labelyear}{labelendyear}{}
        {\ifdefstring\blx@dateformat@labeldate{edtf}
          {\slash}% strict EDTF
          {\bibdaterangesep
           \enddatecircaprint}%
         \dateeraprintpre{labelendyear}%
         \printfield{labelendyear}%
         \enddateuncertainprint
         \ifdefstring\blx@dateformat@labeldate{edtf}
           {\enddatecircaprintedtf}
           {}%
         \dateeraprint{labelendyear}}}}}}
\makeatother

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue}%
  \newunit}
  
\newbibmacro*{artdate}{%
  \setunit{\addspace}%
  \printtext[parens]{%
    \usebibmacro{date}}%
  \newunit}

\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal+issuetitle}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit
  \usebibmacro{note+pages}%
  \newunit\newblock
  \usebibmacro{artdate}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{booklet}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{howpublished}%
  \newunit\newblock
  \printfield{type}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{collection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{editor+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{inproceedings}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{event+venue+date}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \printlist{organization}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{manual}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor}%
  \newunit\newblock
  \printfield{edition}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{type}%
  \newunit
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \printlist{organization}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{proceedings}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{editor+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{event+venue+date}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \printlist{organization}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{report}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \printfield{type}%
  \setunit*{\addspace}%
  \printfield{number}%
  \newunit\newblock
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{institution+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isrn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{thesis}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \printfield{type}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \usebibmacro{institution+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\recalctypearea
\begin{document}
\section{Zitierstil}

So soll es aussehen, wobei sowohl Name als auch Jahreszahl verlinkt sein sollen:

\begin{addmargin}{1em}
Rübezahl hat \textls[75]{\textsc{Mittelbach}}~et~al.~(2004) gelesen und in \textls[75]{\textsc{Dimpfelmoser}} und \textls[75]{\textsc{Zwackelmann}}~(2008) gemäß \textls[120]{\textsc{DIN}}\,8601~(2006) darüber berichtet.
\end{addmargin}

So macht es Bib\LaTeX mit allen Anpassungen, die ich bis jetzt gefunden habe:

\begin{addmargin}{1em}
Rübezahl hat \cite{Mittelbach2004} gelesen und in \cite{Dimpfelmoser2008} gemäß \cite{DIN8601} darüber berichtet.
\end{addmargin}

\section{Verzeichnisstil}

So soll das Verzeichnis aussehen (das erste ist ein Artikel aus einem Journal, die fette Zahl dessen Volume):\bigskip

\begin{addmargin}[1em]{0em}
\hspace{-1em}Dimpfelmoser A., P. Zwackelmann: Raub einer Kaffeemühle. J. Kasperl-Seppel~\textbf{191}, 12\,576\,–\,12\,693~(2008)

\hspace{-1em}\textls[120]{\textsc{DIN}}\,8601: \textit{Data elements and interchange formats – Information interchange – Representation of dates and times} (September 2006)

\hspace{-1em}Mittelbach F., M. Goossens, J. Braams, D. Carlisle, C. Rowley: \textit{The \LaTeX Companion}. 2. Auflage (Addison Wesley, Boston, … 2004)
\end{addmargin}
\cite{sigfridsson,worman,cicero,matuz:doody}

\printbibliography
\end{document}
Meine Kommentare von heute Morgen gelten natürlich noch immer.

PS: Wenn in neuer Rechtschreibung (nach 1996) schreibst, solltest Du babel wohl mit dem Argument ngerman laden und nicht mit german. Die Vorlage wird mir immer unsympathischer.

Antworten