von LarsR » Mi 29. Sep 2010, 21:54
Hallo nochmal,
es lässt mir keine Ruhe, allerdings scheine ich da langsam an meine Grenzen zu stoßen. Das habe ich mir alles so zusammen gebastelt, da ich den Doppelpunkt bei Normen zum Anhängung des Datums der Fassung breuche (siehe Minimalbeispiel). In meiner richtigen Datei habe ich das Datumsformat noch entsprechend umgestellt, so dass es DIN 1000:2010-09-01 lautet, aber das ist hier ja nachrangig, daher habe ich es im Minimalbeispiel weg gelassen.
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@legislation{ArbSchG,
label = {ArbSchG},
sortkey = {ArbSchG},
title = {Gesetz über die Durchführung von Maßnahmen des Arbeitsschutzes zur Verbesserung der Sicherheit und des Gesundheitsschutzes der Beschäftigten bei der Arbeit},
note = {vom 7. August 1996 (BGBl. I S. 1246)},
}
@misc{DIN,
label = {DIN 1000},
sortkey = {DIN 1000},
title = {DIN-Norm},
date = {2010-09-01}}
@book{Test,
Author = {Theo Test},
title = {Testbuch},
date = {2010-09-01},
publisher = {Testverlag},
location = {Berlin},
edition = {11}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
style=authoryear
]{biblatex}
\bibliography{\jobname}
\DeclareBibliographyDriver{legislation}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{title}%
\setunit{\addsemicolon\space}%
\printfield{note}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\addcolon}}
{\textsc{\printnames{labelname}}% %Kapitälchen
\setunit{\nameyeardelim}}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\renewbibmacro*{begentry}{%
\begingroup%
\defcounter{maxnames}{1}%
\textbf{[\usebibmacro{cite}]}\\%
\endgroup%
}%
\begin{document}
\cite{ArbSchG}
\cite{DIN}
\cite{test}
\printbibliography
\end{document}
Zur Not könnte ich auf den Doppelpunkt bei @misc auch verzichten, aber dann habe ich bei dem, was ich mir da zusammen gebaut habe, entweder kein Leerzeichen an der richtigen Stelle (DIN 10002010) oder eines an der falschen Stelle [ArbSchG ] (s. zweites Minimalbeispiel).
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@legislation{ArbSchG,
label = {ArbSchG},
sortkey = {ArbSchG},
title = {Gesetz über die Durchführung von Maßnahmen des Arbeitsschutzes zur Verbesserung der Sicherheit und des Gesundheitsschutzes der Beschäftigten bei der Arbeit},
note = {vom 7. August 1996 (BGBl. I S. 1246)},
}
@misc{DIN,
label = {DIN 1000},
sortkey = {DIN 1000},
title = {DIN-Norm},
date = {2010-09-01}}
@book{Test,
Author = {Theo Test},
title = {Testbuch},
date = {2010-09-01},
publisher = {Testverlag},
location = {Berlin},
edition = {11}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
style=authoryear
]{biblatex}
\bibliography{\jobname}
\DeclareBibliographyDriver{legislation}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{title}%
\setunit{\addsemicolon\space}%
\printfield{note}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}}%
{\textsc{\printnames{labelname}}% %Kapitälchen
\setunit{\nameyeardelim}}%
%\setunit*{\addspace}
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\renewbibmacro*{begentry}{%
\begingroup%
\defcounter{maxnames}{1}%
\textbf{[\usebibmacro{cite}]}\\%
\endgroup%
}%
\begin{document}
\cite{ArbSchG}
\cite{DIN}
\cite{test}
\printbibliography
\end{document}
Kapitälchen möchte ich nur im Verweis in eckigen Klammern, daher habe ich das so gelöst. Mit der anderen Lösungen werden die Namen im Literaturverzeichnis alle in Kapitälchen gesetzt?
Bezüglich der Autoren: Ich soll im Text den ersten Autorennamen und das Jahr in eckigen Klammern verwenden, im Literaturverzeichnis dann diesen Klammer-Ausdruck wiederholen (eben um es schnell finden zu können) und in der Quellenangabe darunter dann alle Autoren angeben. Das klappt im Originaldokument auch, kann sein, dass ich das hier ins Minimalbeispiel nicht eingebaut habe.
Wie gesagt, ich fürchte, dass ich die Stile mittlerweile ziemlich verbastelt habe und ich bei den Macros nicht durchblicke. Eigentlich klappte nach einigem Ausprobieren immer alles, was ich mir wünschte, aber da meine Programmierkenntnisse nicht ausreichend sind, rächt sich einiges später wieder.
Irgendwie müsste ich das aber so hin bekommen, zur Not wie gesagt auch in der Form [DIN 1000 2010], aber dann darf bei [ArbSchG ] das Leerzeichen nicht auftauchen.
Wenn ich mehrere cite-Stile verwende (z. B. einen eigenen für @misc) funktioniert die Wiederholung der Verweise im Literaturverzeichnis nicht mehr so einfach, oder?
Wäre nett, wenn sich das noch einmal jemand anschauen könnte, auch wenn ich vielleicht langsam nerve.

Hallo nochmal,
es lässt mir keine Ruhe, allerdings scheine ich da langsam an meine Grenzen zu stoßen. Das habe ich mir alles so zusammen gebastelt, da ich den Doppelpunkt bei Normen zum Anhängung des Datums der Fassung breuche (siehe Minimalbeispiel). In meiner richtigen Datei habe ich das Datumsformat noch entsprechend umgestellt, so dass es DIN 1000:2010-09-01 lautet, aber das ist hier ja nachrangig, daher habe ich es im Minimalbeispiel weg gelassen.
[code]\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@legislation{ArbSchG,
label = {ArbSchG},
sortkey = {ArbSchG},
title = {Gesetz über die Durchführung von Maßnahmen des Arbeitsschutzes zur Verbesserung der Sicherheit und des Gesundheitsschutzes der Beschäftigten bei der Arbeit},
note = {vom 7. August 1996 (BGBl. I S. 1246)},
}
@misc{DIN,
label = {DIN 1000},
sortkey = {DIN 1000},
title = {DIN-Norm},
date = {2010-09-01}}
@book{Test,
Author = {Theo Test},
title = {Testbuch},
date = {2010-09-01},
publisher = {Testverlag},
location = {Berlin},
edition = {11}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
style=authoryear
]{biblatex}
\bibliography{\jobname}
\DeclareBibliographyDriver{legislation}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{title}%
\setunit{\addsemicolon\space}%
\printfield{note}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\addcolon}}
{\textsc{\printnames{labelname}}% %Kapitälchen
\setunit{\nameyeardelim}}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\renewbibmacro*{begentry}{%
\begingroup%
\defcounter{maxnames}{1}%
\textbf{[\usebibmacro{cite}]}\\%
\endgroup%
}%
\begin{document}
\cite{ArbSchG}
\cite{DIN}
\cite{test}
\printbibliography
\end{document}[/code]
Zur Not könnte ich auf den Doppelpunkt bei @misc auch verzichten, aber dann habe ich bei dem, was ich mir da zusammen gebaut habe, entweder kein Leerzeichen an der richtigen Stelle (DIN 10002010) oder eines an der falschen Stelle [ArbSchG ] (s. zweites Minimalbeispiel).
[code]\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@legislation{ArbSchG,
label = {ArbSchG},
sortkey = {ArbSchG},
title = {Gesetz über die Durchführung von Maßnahmen des Arbeitsschutzes zur Verbesserung der Sicherheit und des Gesundheitsschutzes der Beschäftigten bei der Arbeit},
note = {vom 7. August 1996 (BGBl. I S. 1246)},
}
@misc{DIN,
label = {DIN 1000},
sortkey = {DIN 1000},
title = {DIN-Norm},
date = {2010-09-01}}
@book{Test,
Author = {Theo Test},
title = {Testbuch},
date = {2010-09-01},
publisher = {Testverlag},
location = {Berlin},
edition = {11}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
style=authoryear
]{biblatex}
\bibliography{\jobname}
\DeclareBibliographyDriver{legislation}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{title}%
\setunit{\addsemicolon\space}%
\printfield{note}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}}%
{\textsc{\printnames{labelname}}% %Kapitälchen
\setunit{\nameyeardelim}}%
%\setunit*{\addspace}
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\renewbibmacro*{begentry}{%
\begingroup%
\defcounter{maxnames}{1}%
\textbf{[\usebibmacro{cite}]}\\%
\endgroup%
}%
\begin{document}
\cite{ArbSchG}
\cite{DIN}
\cite{test}
\printbibliography
\end{document}[/code]
Kapitälchen möchte ich nur im Verweis in eckigen Klammern, daher habe ich das so gelöst. Mit der anderen Lösungen werden die Namen im Literaturverzeichnis alle in Kapitälchen gesetzt?
Bezüglich der Autoren: Ich soll im Text den ersten Autorennamen und das Jahr in eckigen Klammern verwenden, im Literaturverzeichnis dann diesen Klammer-Ausdruck wiederholen (eben um es schnell finden zu können) und in der Quellenangabe darunter dann alle Autoren angeben. Das klappt im Originaldokument auch, kann sein, dass ich das hier ins Minimalbeispiel nicht eingebaut habe.
Wie gesagt, ich fürchte, dass ich die Stile mittlerweile ziemlich verbastelt habe und ich bei den Macros nicht durchblicke. Eigentlich klappte nach einigem Ausprobieren immer alles, was ich mir wünschte, aber da meine Programmierkenntnisse nicht ausreichend sind, rächt sich einiges später wieder.
Irgendwie müsste ich das aber so hin bekommen, zur Not wie gesagt auch in der Form [DIN 1000 2010], aber dann darf bei [ArbSchG ] das Leerzeichen nicht auftauchen.
Wenn ich mehrere cite-Stile verwende (z. B. einen eigenen für @misc) funktioniert die Wiederholung der Verweise im Literaturverzeichnis nicht mehr so einfach, oder?
Wäre nett, wenn sich das noch einmal jemand anschauen könnte, auch wenn ich vielleicht langsam nerve. :)