- Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 8 mesi fa da .
-
Topic
-
Salve ancora,
In una personalizzazione che ridefinisce la classe @book, non so come avere la virgola prima della pagina citata.Il punto critico della ridefinizione è questo:
`\newunit\newblock
\usebibmacro{pageref}%
\newblock\nopunct%
\usebibmacro{series+number}%
\newunit\newblock
\usebibmacro{finentry}}`e questo è l’esempio funzionante (non può essere proprio “minimo” perché lo stile è stato modificato di brutto
`\begin{filecontents}{archivio.bib}
@book{Jor:Reg,
Address = {Paris},
Author = {Edouard Jordan},
Date-Added = {2014-05-19 18:33:57 +0200},
Date-Modified = {2014-05-19 18:45:30 +0200},
Publisher = {Ernest Thorin {\'E}diteur},
Title = {Les registres de Clement IV},
Volume = {I-II},
Year = {1893}}@article{Ana:Sum,
Date-Added = {2013-07-14 17:31:43 +0200},
Date-Modified = {2013-11-03 18:58:39 +0100},
Journal = {Analecta Augustiniana},
Pages = {349-356; 373-379; 401-404; 423-426; 466-473.},
Shorttitle = {Summarium bullarum},
Title = {Summarium bullarum de rebus Ordinis agentium, quae ante litteras circulares Rmi Gioia [25 martii 1747] in archivio generali Ordinis desiderabantur, sed in aliis eiusdem Ordinis archivis existebant},
Volume = {V},
Year = {1913-1914}}\end{filecontents}
%%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[twoside]{article}
\usepackage{polyglossia}
\setmainlanguage{italian}
\usepackage{fontspec}
\fontspec{New Aster LT Std}
\usepackage{xpatch} % Per customizzare Idem in Biblatex-verbose
%%%%%%%%%%%%%%%%%%%COMANDI DI BILIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ style=verbose-trad2, % Stile generale della bibliografia
language=italian,
useprefix=true, % Van, Von, etc.
firstinits=true, % Nomi puntati
backend=biber, % Compilare l'aux con texworks e biber (NON bibtex!)
]{biblatex}\DeclareFieldFormat[article, inbook, incollection, inproceedings]{title}{\mkbibemph{#1}} % Titolo in corsivo
\DeclareFieldFormat[article]{journaltitle}{\mkbibquote{#1}} % Titolo rivista tra virgolette a caporale
\DeclareFieldFormat[book, inbook, incollection, inproceedings]{volume}{#1} % Elimina “vol.”
\DeclareListFormat[article, book, inbook, incollection, inproceedings]{publisher}{} % Elimina il campo publisher (nota che pub è una list, non un field)\DeclareFieldFormat*[article]{postnote}{#1} % Elimina “p.” prima di postnote
\xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{article}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{} %Spiegazione: Se la voce è @article invece di \setunit{\postnotedelim} si usa \setunit{\addcolon\space}, come voluto. (toglie i due punti finali se non citi una pagina precisa)\renewcommand*{\newunitpunct}{\addcomma\space} % Virgola tra le unità
\renewcommand*{\mkibid}{\emph} % ibid, op cit e latinitates in enfatico
\renewcommand\mkbibnamelast[1]{\textsc{#1}} % Nomi in maiuscoletto
\renewcommand{\mkbibnamefirst}[1]{\textsc{#1}}
\renewcommand{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand{\mkbibnameaffix}[1]{\textsc{#1}}\renewcommand{\finalnamedelim}{\addcomma\space} % virgola al posto di “e” tra autori multipli
\renewcommand{\bibinitdelim}{} % annulla lo ~ di default tra le iniziali dei nomi\renewbibmacro{in:}{\bibstring{in}\space} % rimuove i due punti dopo “in”
%Ciò che segue è per far comparire idem correttamente
\xpatchbibmacro{author}{\printnames{author}}{\iffootnote{\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}{\usebibmacro{cite:idem}}{\printnames{author}}}{\printnames{author}}}{}{}
\xpatchbibmacro{editor}{\printnames{editor}}{\iffootnote{\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}{\usebibmacro{cite:idem}}{\printnames{editor}}}{\printnames{editor}}}{}{}
\xpatchbibmacro{translator}{\printnames{translator}}{\iffootnote{\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}{\usebibmacro{cite:idem}}{\printnames{translator}}}{\printnames{translator}}}{}{}\renewbibmacro*{cite:title}{% Ciò che segue è per avere lo shorttitle alla seconda citazione (funge solo in trad2)
\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\setunit{\addspace}%
\bibstring[\mkibid]{opcit}}}\renewbibmacro*{publisher+location+date}{% Publisher l'ho già reso vuoto a monte, quindi qui lo elimino
\printlist{location}%
\setunit*{\addspace}%
\usebibmacro{date}%
\newunit}\renewbibmacro*{series+number}{% % Questa è la macro usata da @book per trattare le serie:
\iffieldundef{series}{}{%
\printtext[parens]{\printfield{series}\addcomma%
\setunit*{\addspace}%
\printfield{number}}}%
\newunit}\DeclareBibliographyDriver{book}{% % Il driver @book è modificato per avere prima pub+loc+year e dopo ser+num
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\addsemicolon\space}\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\newunit\newblock
\usebibmacro{pageref}%
\newblock\nopunct%
\usebibmacro{series+number}%
\newunit\newblock
\usebibmacro{finentry}}\usepackage[autostyle=true]{csquotes} % Per citare in altre lingue
\addbibresource{archivio.bib}
%%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\selectlanguage{italian}Sembrerebbe che nella classe book manchi una virgola tra l'anno di edizione e la pagina citata: \cite[44]{Jor:Reg}
\end{document}
\endinput
`Ho provato a vedere se riuscivo a ridefinire la macro pageref ma è al di sopra delle mie possibilità. In pratica mi serve solo un condizionale: se c’è il pageref, allora mettici prima una virgola. Ma come si fa ?!?!
Grazie!
- Devi essere connesso per rispondere a questo topic.