Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

15 Sep '13, 14:06

cgnieder's gravatar image

cgnieder
22.1k253463

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. Bibliographie. 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}}` 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
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

15 Sep '13, 14:06

cgnieder's gravatar image

cgnieder
22.1k253463

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
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

14 Sep '13, 17:27

cgnieder's gravatar image

cgnieder
22.1k253463

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×