Re: Usare campo bibliografico non standard con biblatex

#88247
Up
0
Down
::


Ho risolto con questa risposta su TeX.StackExchange: http://tex.stackexchange.com/a/65403/31416. Il passaggio che mi mancava era il seguente: per prima cosa bisogna mappare il nuovo campo a uno dei campi personalizzati ([tt]usera[/tt], [tt]userb[/tt], …., e gli altri campi elencati nel paragrafo 2.2.4 (Custom Fields) del manuale di biblatex usando qualcosa come
`\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=NUOVOCAMPO,fieldtarget=usera]
}
}
}`
La sintassi del comando [tt]\DeclareSourcemap[/tt] è descritta nel paragrafo 4.5.2 (Dynamic Modification of Data) del manuale di biblatex. Per il resto basta definire il formato del campo [tt]usera[/tt] (o qualsiasi altro campo scelto come corrispondente del [tt]NUOVOCAMPO[/tt]) con il comando [tt]\DeclareFieldFormat{usera}{…}[/tt] se il formato sarà diverso dal semplice [tt]#1[/tt] e infine stampare il campo [tt]usera[/tt] con [tt]\printfield{usera}[/tt] in un driver o in una macro utilizzata nei driver. Nota: [tt]\DeclareSourcemap[/tt] richiede biber come backend.

Esempio precedente corretto e funzionante:
`\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{papers.bib}

@Article{Mattaj1993,
author = {I W Mattaj},
title = {RNA recognition: a family matter?},
journal = {Cell},
year = {1993},
volume = {73},
number = {5},
pages = {837-40},
pmid = {8500177},
}
\end{filecontents}

\usepackage[style=authoryear,hyperref=true,backend=biber]{biblatex}
\bibliography{papers}

\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=pmid,fieldtarget=usera]
}
}
}

\DeclareFieldFormat{usera}{PubMed\addcolon\space
\ifhyperref
{\href{http://www.ncbi.nlm.nih.gov/pubmed/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}

\DeclareBibliographyDriver{article}{%
\usebibmacro{author/editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\usebibmacro{journal+issuetitle}%
\setunit{\bibpagespunct}%
\printfield{pages}%
\newunit\newblock
\printfield{usera}%
\usebibmacro{finentry}}
\renewcommand*{\finentrypunct}{}

\usepackage{hyperref}

\begin{document}
\nocite{*}
\printbibliography
\end{document}`

Go to top