von KOMA » Fr 8. Mai 2009, 10:09
Dank Dominiks vollständigem Minimalbeispiel kann ich Dir folgenden Vorschlag machen:
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{article1,
author = {Nachname, Vorname},
title = {Titel des Zeitschriftenartikels},
journal = {Zeitschrift 1},
year = {2006},
volume = {6},
pages = {19--75},
keywords = {lit1}
}
@ARTICLE{article2,
author = {Nachname, Vorname},
title = {Titel des Zeitschriftenartikels},
journal = {Zeitschrift 2},
year = {2006},
volume = {6},
pages = {19--75},
keywords = {lit1}
}
@BOOK{book1,
author = {Buchautor, Hans-Wilhelm},
title = {Irgendein Buch 1},
address = {Buch am Wald},
year = {2000},
keywords = {lit2}
}
@BOOK{book2,
author = {Buchautor, Hans-Wilhelm},
title = {Irgendein Buch 2},
address = {Buch am Wald},
year = {2000},
keywords = {lit2}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
% style=authortitle
]{biblatex}
\bibliography{\jobname}
\defbibheading{lit1}{\section*{Literatur 1}}
\defbibheading{lit2}{\section*{Literatur 2}}
% Jetzt wird es haarig
\makeatletter
\newcommand*{\orig@blx@bbl@keyw}{}
\let\orig@blx@bbl@keyw\blx@bbl@keyw
\newcounter{lit@lit1}\@namedef{thelit@lit1}{I-\arabic{lit@lit1}}
\newcounter{lit@lit2}\@namedef{thelit@lit2}{II-\arabic{lit@lit2}}
\renewcommand*{\blx@bbl@keyw}[1]{%
\stepcounter{lit@#1}%
\begingroup
\edef\@tempa{%
\noexpand\endgroup
\noexpand\field{shorthand}{\@nameuse{thelit@#1}}%
\noexpand\field{label}{\@nameuse{thelit@#1}}%
}
\@tempa
\orig@blx@bbl@keyw{#1}%
}
\makeatother
\begin{document}
\cite{article1,article2,book1,book2}
\printbibliography[keyword=lit1,heading=lit1]
\printbibliography[keyword=lit2,heading=lit2]
\end{document}
Der Trick dabei ist, \keyw so umzudefinieren, dass es die beiden Felder label und shorthand selbst setzt und dabei für jedes Einzelliteraturverzeichnis die Nummerierung selbst fortschreibt. Dazu werden die beiden Zähler lit@lit1 und lit@lit2 mit deren Ausgabemakros \thelit@lit1 und \thelit@lit2 verwendet.
Ob der \edef-Trick zum setzen der beiden Felder wirklich notwendig ist, habe ich nicht getestet. Mit dem Trick sollte man jedenfalls auf der sicheren Seite sein.
\@namedef und \@nameuse werden hier übrigens verwendet, weil in den keys Zeichen vorkommen, die in Makronamen normalerweise nicht vorkommen dürfen.
Dank Dominiks vollständigem Minimalbeispiel kann ich Dir folgenden Vorschlag machen:
[code]\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{article1,
author = {Nachname, Vorname},
title = {Titel des Zeitschriftenartikels},
journal = {Zeitschrift 1},
year = {2006},
volume = {6},
pages = {19--75},
keywords = {lit1}
}
@ARTICLE{article2,
author = {Nachname, Vorname},
title = {Titel des Zeitschriftenartikels},
journal = {Zeitschrift 2},
year = {2006},
volume = {6},
pages = {19--75},
keywords = {lit1}
}
@BOOK{book1,
author = {Buchautor, Hans-Wilhelm},
title = {Irgendein Buch 1},
address = {Buch am Wald},
year = {2000},
keywords = {lit2}
}
@BOOK{book2,
author = {Buchautor, Hans-Wilhelm},
title = {Irgendein Buch 2},
address = {Buch am Wald},
year = {2000},
keywords = {lit2}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}
\usepackage[
% style=authortitle
]{biblatex}
\bibliography{\jobname}
\defbibheading{lit1}{\section*{Literatur 1}}
\defbibheading{lit2}{\section*{Literatur 2}}
% Jetzt wird es haarig
\makeatletter
\newcommand*{\orig@blx@bbl@keyw}{}
\let\orig@blx@bbl@keyw\blx@bbl@keyw
\newcounter{lit@lit1}\@namedef{thelit@lit1}{I-\arabic{lit@lit1}}
\newcounter{lit@lit2}\@namedef{thelit@lit2}{II-\arabic{lit@lit2}}
\renewcommand*{\blx@bbl@keyw}[1]{%
\stepcounter{lit@#1}%
\begingroup
\edef\@tempa{%
\noexpand\endgroup
\noexpand\field{shorthand}{\@nameuse{thelit@#1}}%
\noexpand\field{label}{\@nameuse{thelit@#1}}%
}
\@tempa
\orig@blx@bbl@keyw{#1}%
}
\makeatother
\begin{document}
\cite{article1,article2,book1,book2}
\printbibliography[keyword=lit1,heading=lit1]
\printbibliography[keyword=lit2,heading=lit2]
\end{document}[/code]
Der Trick dabei ist, \keyw so umzudefinieren, dass es die beiden Felder label und shorthand selbst setzt und dabei für jedes Einzelliteraturverzeichnis die Nummerierung selbst fortschreibt. Dazu werden die beiden Zähler lit@lit1 und lit@lit2 mit deren Ausgabemakros \thelit@lit1 und \thelit@lit2 verwendet.
Ob der \edef-Trick zum setzen der beiden Felder wirklich notwendig ist, habe ich nicht getestet. Mit dem Trick sollte man jedenfalls auf der sicheren Seite sein.
\@namedef und \@nameuse werden hier übrigens verwendet, weil in den keys Zeichen vorkommen, die in Makronamen normalerweise nicht vorkommen dürfen.