Seite 1 von 1
Stil chem-angew anpassen
Verfasst: Fr 9. Sep 2016, 13:12
von BlackyDee
Hallo zusammen.
Ich möchte den Zitierstil chem-angew für Bücher wie folgt anpassen:
A. Nachname, B. Nachname, C. Nachname, Buchtitel, Auflage, Verlag, Jahr, a) Seite x, b) Seite y, c) Seite z.
Ich habe also aus einem Buch drei verschiedene Textstellen auf drei verschiedenen Seiten, die so wie oben aufgeführt in's Literaturverzeichnis sollen.
Hat jemand eine Idee, wie ich das mit möglichst wenig Aufwand bewerkstelligen kann?
Vielen Dank vorab.
Verfasst: Fr 9. Sep 2016, 17:09
von Gast
Diese Chemie-Zitatstile sind immer etwas schwierig. Eine Lösung mit ganz wenig Aufwand kenne ich leider nicht.
Aber vielleicht kann Dir das hier weiterhelfen, oder Anderen eine Idee geben, das Ganze etwas eleganter zu lösen.
\makeatletter
\renewbibmacro*{postnote}{%
\iffieldundef{postnote}
{}
{\ifcsundef{cbx@pagescited@list@\thefield{entrykey}}
{\global\cslet{cbx@pagescited@list@\thefield{entrykey}}\relax}
{}%
\ifcsundef{cbx@pagescited@count@\thefield{entrykey}}
{\expandafter\newcount\csname cbx@pagescited@count@\thefield{entrykey}\endcsname}
{}%
\listcsxadd{cbx@pagescited@list@\thefield{entrykey}}{\thefield{postnote}}%
\global\advance\csname cbx@pagescited@count@\thefield{entrykey}\endcsname\@ne
\mknumalph{\number\expandafter\csname cbx@pagescited@count@\thefield{entrykey}\endcsname}}}
\newcounter{cbx@pagescited@lab}
\renewbibmacro*{finentry}{%
%
\setunit{\bibpagespunct}%
\ifcsdef{cbx@pagescited@list@\thefield{entrykey}}
{\setcounter{cbx@pagescited@lab}{0}%
\renewcommand*{\do}[1]{%
\stepcounter{cbx@pagescited@lab}%
\printtext{%
\alph{cbx@pagescited@lab})\addspace
\mkpageprefix[pagination]{##1}}%
\setunit{\addcomma\space}}%
\dolistcsloop{cbx@pagescited@list@\thefield{entrykey}}}%
{}
%
\finentry}
\makeatother
Wir erstellen eine Liste cbx@pagescited@list@\thefield{entrykey}, in die wir einfach alle Postnotes reinstopfen. Statt der Postnote bekommen die Zitate einen Buchstaben dazu, der auf die spätere Bemerkung im Literaturverzeichnis verweist; dazu wird ein eintragsspezifischer Zähler cbx@pagescited@count@\thefield{entrykey} erstellt.
Schließlich werden die Seiten im immer aufgerufenen Makro finentry ausgegeben.
MWE
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=chem-angew,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\renewbibmacro*{postnote}{%
\iffieldundef{postnote}
{}
{\ifcsundef{cbx@pagescited@list@\thefield{entrykey}}
{\global\cslet{cbx@pagescited@list@\thefield{entrykey}}\relax}
{}%
\ifcsundef{cbx@pagescited@count@\thefield{entrykey}}
{\expandafter\newcount\csname cbx@pagescited@count@\thefield{entrykey}\endcsname}
{}%
\listcsxadd{cbx@pagescited@list@\thefield{entrykey}}{\thefield{postnote}}%
\global\advance\csname cbx@pagescited@count@\thefield{entrykey}\endcsname\@ne
\mknumalph{\number\expandafter\csname cbx@pagescited@count@\thefield{entrykey}\endcsname}}}
\newcounter{cbx@pagescited@lab}
\renewbibmacro*{finentry}{%
%
\setunit{\bibpagespunct}%
\ifcsdef{cbx@pagescited@list@\thefield{entrykey}}
{\setcounter{cbx@pagescited@lab}{0}%
\renewcommand*{\do}[1]{%
\stepcounter{cbx@pagescited@lab}%
\printtext{%
\alph{cbx@pagescited@lab})\addspace
\mkpageprefix[pagination]{##1}}%
\setunit{\addcomma\space}}%
\dolistcsloop{cbx@pagescited@list@\thefield{entrykey}}}%
{}
%
\finentry}
\makeatother
\begin{document}
Lorem \cite{sigfridsson} ipsum \cite[1]{cicero} dolor \cite{cicero} sit \cite[8]{cicero}
\printbibliography
\end{document}
Verfasst: Sa 10. Sep 2016, 10:28
von BlackyDee
Wow, da hast du dir ja richtig Mühe gemacht für mich -- vielen Dank! Das werde ich mal ausprobieren und schauen, ob und wie es funktioniert!
Vielen lieben Dank!