- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 3 anni, 10 mesi fa da .
-
Topic
-
Buongiorno a tutti,volevo formattare il campo [tt]addendum[/tt] tra parentesi tonde. Sbirciando nel codice di [tt]biblatex-philosophy[/tt] ho effettuato le seguenti modifiche, che penso siano corrette, visto che ottengo il risultato voluto senza messaggi di errore (in tal senso chiederei conferma a @ivan):
`
\renewbibmacro*{addendum+pubstate}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}
\newunit\newblock
\printfield{pubstate}%
\ifdefstring{\bbx@origfields}{none}{}{%
\newunit\newblock
\usebibmacro{origdata:book}}
\newunit\newblock
\usebibmacro{library}%
}\renewbibmacro*{addendum+pubstate:article-inbook-incoll}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}
\newunit\newblock
\printfield{pubstate}%
\ifdefstring{\bbx@origfields}{none}{}{%
\newunit\newblock
\usebibmacro{origdata:article-inbook}}
\newunit\newblock
\usebibmacro{library}%
}
`
Successivamente ho voluto compattare il codice tramite il comando [tt]\xpatchbibmacro[/tt] del pacchetto [tt]xpatch[/tt], ottenendo il seguente risultato:
`
\xpatchbibmacro{addendum+pubstate}{\printfield{addendum}}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}%
}{}{}\xpatchbibmacro{addendum+pubstate:article-inbook-incoll}{\printfield{addendum}}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}%
}{}{}
`
Di seguito un emc perfettamente funzionante:
`
% !TEX encoding = UTF-8 Unicode
% !TEX program = lualatex
% !BIB program = biber\begin{filecontents}[overwrite]{\jobname.bib}
@InBook{Weintraub2002,
author = {Weintraub, E. Roy},
booktitle = {Introduzione storica all'economia politica},
date = {2002},
title = {Contenuti e metodi della storia del pensiero economico del '900: una proposta},
shorttitle ={Contenuti e metodi},
addendum = {Saggio in Appendice},
bookauthor = {Parisi, Daniela},
location = {Bologna},
pages = {235-262},
publisher = {il Mulino},
}
\end{filecontents}\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands]{italian}
\usepackage[autostyle]{csquotes}
\usepackage[style=philosophy-classic]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{xpatch}\xpatchbibmacro{addendum+pubstate}{\printfield{addendum}}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}%
}{}{}\xpatchbibmacro{addendum+pubstate:article-inbook-incoll}{\printfield{addendum}}{%
\iffieldundef{addendum}{}{%
\setunit{\addspace}
\printtext[parens]{%
\printfield{addendum}}}%
}{}{}\begin{document}
\nocite{*}
\printbibliography
\end{document}
`
La voce bibliografica viene stampata nel seguente modo:Weintraub, E. Roy (2002), «Contenuti e metodi della storia del pensiero economico del ’900: una proposta», in Daniela Parisi, Introduzione storica all’economia politica, il Mulino, Bologna, p. 235-262 (Saggio in Appendice).
Dunque, la mia domanda: visto che il codice modificato è il medesimo sia per ma macro [tt]addendum+pubstate[/tt] che per la macro [tt]addendum+pubstate:article-inbook-incoll[/tt] (e così sarà anche per il codice sperimentale [tt]addendum+pubstate:juris[/tt]) c’è un modo per compattare ulteriormente il codice? Insomma: vi è la possibilità di modificare una stessa porzione di codice per un elenco di macro?
Grazie a chi vorrà ragionarci sù!
Matteo
- Devi essere connesso per rispondere a questo topic.