Eigenes bibentry field definieren
Ich versuche seit geraumer Zeit, mir einen _bibliography driver_ für Pakete zu definieren. Das mache ich mit `biblatex` mit `biber` als Backend. Im großen und ganzen bin ich mit dem Ergebnis, dass ihr unten sehen könnt, zufrieden. Was mir aber nicht gelingen will, ist, ein neues Feld `maintainer` zu definieren. Oder genauer: es ist definiert, weder `biblatex` noch `biber` beschweren sich, aber die Information landet nicht in der Bibliograpie. Ich habe den Verdacht, dass ich noch eine passende `source map` definieren muss, aber ehrlich gesagt werde ich aus dem entsprechenden Teil der `biblatex`-Dokumentation nicht recht schlau, trotz einiger Beispiele, die dort gegeben sind.
\documentclass{article}
\usepackage{filecontents}
\usepackage[backend=biber,style=alphabetic]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
@package{chngcntr,
title = {chngcntr} ,
subtitle = {Changing counter properties} ,
author = {Peter Wilson} ,
maintainer = {Will Robertson} ,
date = {2009-09-02} ,
version = {1.0a} ,
url = {http://mirror.ctan.org/macros/latex/contrib/chngcntr}
}
\end{filecontents}
\DeclareBibliographyDriver{package}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\addcomma\addspace}%
\usebibmacro{maintainer}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\printfield{version}%
\setunit{\addcomma\addspace}%
\usebibmacro{date}%
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\usebibmacro{finentry}%
}
\newbibmacro*{maintainer}{%
\printnames{maintainer}%
\printfield{maintainer}%
}
\DeclareNameAlias{maintainer}{default}
\DeclareIndexNameAlias{maintainer}{default}
\DeclareNameFormat{maintainer}{#1}
\DeclareFieldFormat[package]{title}{{\packageformat#1}}
% this doesn not seem to have any effect:
\DeclareFieldFormat[package]{subtitle}{\mkbibemph{#1}}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=maintainer, fieldtarget=author]
}
}
}
\newcommand*\packageformat{\sffamily}
\begin{document}
See~\cite{chngcntr}
\printbibliography
\end{document}
![alt text][1]
----------
Bonusfrage: wieso hat `\DeclareFieldFormat[package]{subtitle}{\mkbibemph{#1}` `\DeclareFieldFormat[package]{subtitle}{\mkbibemph{#1}}` keinen Effekt? Statt dessen wird das Format für `title` verwendet. `\DeclareFieldFormat[package]{title}{{\packageformat#1}}` funktioniert wunderbar. Offenbar wird `subtitle` einfach als Teil von `title` gesetzt, was gut und logisch ist. Dennoch hätte ich erwartet, dass die Formatierung sich ändern ließe.
[1]: http://texwelt.de/wissen/upfiles/biblatex.png