Biblatex: domanda facile (per chi lo sa fare!)

  • Creatore
    Topic
  • #99335
    Up
    0
    Down
    ::


    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!

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #99336
      Up
      0
      Down
      ::

      Teodoro Studita” post=98871e questo è l’esempio funzionante

      Funzionante forse solo sul tuo computer, se usi fontspec assicurati di caricare un font sicuramente disponibile su tutti i computer, oppure eviti di specificare forzatamente dei font e siamo tutti più contenti. E comunque l’esempio poteva essere reso mooolto più minimale, basta ridefinire il driver [tt]book[/tt] con la modifica che tu stesso hai identificato.

      Il problema va via se togli il [tt]\nopunct[/tt], ma opterei per un difetto nello stile [tt]verbose-trad2[/tt], se al suo posto si usa lo stile [tt]authortitle[/tt] sul quale è basato (e si sostituisce [tt]\renewcommand*{\mkibid}{\emph}[/tt] con [tt]\newcommand*{\mkibid}{\emph}[/tt]) il problema non si presenta proprio anche in presenza di [tt]\nopunct[/tt] (che dovrebbe avere effetto sull’elemento successivo, non il precedente).

    • #99337
      Up
      0
      Down
      ::

      Teodoro Studita” post=98871Salve 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!

      Se con pagina citata intendi, come credo, quella inserita nelle esempio sopra nel campo postnote, ovvero 44, allora senza dubbio pageref non c’entra nulla. Credo che quel \xpatchbibmacro{postnote} abbia creato qualche problema. Probabilmente se ridefinisci il formato di postnote anche per la voce @book risolvi il problema, ma dovrei controllare meglio la macro postnote… (Scusa ma sono con l’iPad e non riesco a fare più di tanto 😉 )

      Ciao
      Ivan

    • #99338
      Up
      0
      Down
      ::

      ivan” post=98879

      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!

      Se con pagina citata intendi, come credo, quella inserita nelle esempio sopra nel campo postnote, ovvero 44, allora senza dubbio pageref non c’entra nulla. Credo che quel \xpatchbibmacro{postnote} abbia creato qualche problema. Probabilmente se ridefinisci il formato di postnote anche per la voce @book risolvi il problema, ma dovrei controllare meglio la macro postnote… (Scusa ma sono con l’iPad e non riesco a fare più di tanto 😉 )

      Ciao
      Ivan

      Neanche io ora ho un computer sotto mano ma mi pare che il problema ci fosse anche solo con la ridefinizione del driver book, come ho scritto nel messaggio precedente (o forse non ho compreso il tuo suggerimento a correggere postnote anche per book?)

    • #99339
      Up
      0
      Down
      ::


      Hai ragione, il problema è quel \nopunct che non dovrebbe esserci.

      Ciao
      Ivan

    • #99340
      Up
      0
      Down
      ::

      ivan” post=98891Hai ragione, il problema è quel \nopunct che non dovrebbe esserci.

      Ciao
      Ivan

      Ok, ma la descrizione di [tt]\nopunct[/tt] recita

      Adds an internal marker which will cause the next punctuation command to print nothing.

      com’è che con il tuo stile sparisce la punteggiatura prima di quel punto?

Visualizzazione 4 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top