Tre custom bibliografici che non vanno…

  • Creatore
    Topic
  • #106013
    Up
    0
    Down
    ::


    Salve a tutti,
    Ho tre problemi da risolvere che sono fuori dalla mia portata (ma ci sto lavorando…!!)

    1.
    Il primo è eliminare l’abbreviazione p./pp. dalle postnote nello stile verbose-trad2 che è stato un po’ rimaneggiato con l’aiuto di Ivan per adattarlo alle convenzioni di Analecta Augustiniana. In poche parole nell’esempio che riporto:

    G. Giubbini, Le competenze giurisdizionali del Governatore di Perugia (Sec. XV-XVIII), in «Archivi per la storia» IV (1991), pp. 169–178: p. 171.

    vorrei che apparisse così:

    G. Giubbini, Le competenze giurisdizionali del Governatore di Perugia (Sec. XV-XVIII), in «Archivi per la storia» IV (1991), pp. 169–178: 171.

    Per farlo si era prodotto questo codice:

    `\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)`

    Che tuttavia ora non produce più il risultato atteso.

    Questo l’esempio minimo funzionante:

    `\begin{filecontents}{archivio.bib}

    @article{Giu:Com,
    Author = {G. Giubbini},
    Date-Added = {2013-10-11 23:13:23 +0200},
    Date-Modified = {2013-11-03 15:40:40 +0100},
    Journal = {Archivi per la storia},
    Pages = {169-178},
    Shorttitle = {Le competenze giurisdizionali},
    Title = {Le competenze giurisdizionali del Governatore di Perugia (Sec. XV-XVIII)},
    Volume = {IV},
    Year = {1991}}

    @book{Vig:Com,
    Address = {Torino},
    Author = {Jean-Claude Maire Vigueur},
    Date-Added = {2016-01-06 11:37:18 +0000},
    Date-Modified = {2016-01-23 20:48:01 +0000},
    Number = {12},
    Publisher = {UTET libreria},
    Series = {Storia degli stati italiani dal Medioevo all'Unit{\`a}},
    Title = {Comuni e signorie in Umbria, Marche e Lazio},
    Year = {1987}}

    \end{filecontents}

    %%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
    \documentclass[twoside]{article}
    \usepackage{polyglossia}
    \setmainlanguage{italian}
    \setotherlanguage{latin}
    \setotherlanguages{english,french}
    \usepackage{xpatch}

    \usepackage[ style=verbose-trad2,
    language=italian,
    useprefix=true, % Van, Von, etc.
    firstinits=true, % Nomi puntati
    backend=biber,
    ]{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)

    \DeclareFieldFormat*[inproceedings]{postnote}{#1} % Stessa cosa di cui sopra ma per gli inproceedings
    \xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{inproceedings}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{}

    \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% %%% MODIFICA MIA!tolto il \nopunct per avere virgola prima della pagina
    \usebibmacro{series+number}%
    \newunit\newblock
    \usebibmacro{finentry}}

    \usepackage[]{csquotes} % Per stile di citazione bib in altre lingue. NB: era autostyle=true ma faceva impazzire i caporali in latino

    \addbibresource{archivio.bib}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{document}
    \selectlanguage{italian}
    Cito una prima volta un articolo, con pagina precisa\footcite[171]{Giu:Com}\\
    Citazione di un libro con serie: voglio la virgola dopo la serie\footcite[11]{Vig:Com}.\\
    Cita una seconda volta l'articolo, sempre con pagina precisa\footcite[171]{Giu:Com}\\
    Ripeto a stretto giro la stessa citazione\footcite[171]{Giu:Com}\\

    \end{document}
    `

    2.
    Il secondo problema lo trovo personalmente assurdo, ma la rivista pretende questo standard e come tale lo riporto.

    In pratica vorrebbero le latinitates in enfatico (e va bene) ma “cit.” in tondo. Io però riesco ad ottenere solo o tutto in enfatico o tutto in tondo. Come posso risolvere?

    3.
    Infine, dall’esempio si noterà che quando l’articolo va in seconda citazione (con shorttitle), il titolo non è più in italico, ma passa in tondo tra caporali (io lo vorrei sempre in italico senza caporali). Anche qui cosa è successo…?
    Help!

    Grazie,

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #106014
      Up
      0
      Down
      ::


      1) Aggiungi
      `\DeclareFieldFormat{postnote}{%
      \ifentrytype{article}{#1}{\mkpageprefix[pagination]{#1}}} `

      2) Modifica la macro ‘cite:title’ così:
      `\renewbibmacro*{cite:title}{%
      \printtext[bibhyperlink]{%
      \printfield[citetitle]{labeltitle}%
      \setunit{\addspace}%
      \bibstring{opcit}}}
      `

      3) Aggiungi:
      `\DeclareFieldFormat[article, inbook, incollection, inproceedings]{citetitle}{\mkbibemph{#1}} % Titolo in corsivo
      `

      Ciao
      Ivan

    • #106015
      Up
      0
      Down
      ::


      Grazie Ivan, provo tutto appena torno a casa!

    • #106016
      Up
      0
      Down
      ::


      Purtroppo c’è ancora qualcosa di storto.
      Ho provato a metterci mano, ma deve mancare ancora qualcosa.
      Ad esempio si veda la prima e l’ultima nota. Nel primo caso (un article) dopo i due punti c’è ancora “p./pp.”, nell’ultimo (incollection) non c’è “p./pp” ma c’è la virgola invece dei due punti.
      Se ci sono dele modifiche “seriali” da fare per ogni categoria e mi dai un input provo a farle da solo.
      Grazie!

      `\begin{filecontents}{archivio.bib}

      @article{Giu:Com,
      Author = {G. Giubbini},
      Date-Added = {2013-10-11 23:13:23 +0200},
      Date-Modified = {2013-11-03 15:40:40 +0100},
      Journal = {Archivi per la storia},
      Pages = {169-178},
      Shorttitle = {Le competenze giurisdizionali},
      Title = {Le competenze giurisdizionali del Governatore di Perugia (Sec. XV-XVIII)},
      Volume = {IV},
      Year = {1991}}

      @book{Vig:Com,
      Address = {Torino},
      Author = {Jean-Claude Maire Vigueur},
      Date-Added = {2016-01-06 11:37:18 +0000},
      Date-Modified = {2016-01-23 20:48:01 +0000},
      Number = {12},
      Publisher = {UTET libreria},
      Series = {Storia degli stati italiani dal Medioevo all'Unit{\`a}},
      Title = {Comuni e signorie in Umbria, Marche e Lazio},
      Year = {1987}}

      @incollection{Bis:Pro,
      Address = {Torino},
      Author = {Giuseppe Biscottini},
      Booktitle = {Novissimo digesto italiano},
      Date-Added = {2016-01-06 11:59:06 +0000},
      Date-Modified = {2016-01-23 21:21:33 +0000},
      Editor = {Antonio Azara AND Ernesto Eula},
      Pages = {238-242},
      Publisher = {UTET},
      Title = {Protesta},
      Volume = {XIV},
      Year = {1968}}

      \end{filecontents}

      %%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \documentclass[twoside]{article}
      \usepackage{polyglossia}
      \setmainlanguage{italian}
      \setotherlanguage{latin}
      \setotherlanguages{english,french}
      \usepackage{xpatch}

      \usepackage[ style=verbose-trad2,
      language=italian,
      useprefix=true, % Van, Von, etc.
      firstinits=true, % Nomi puntati
      backend=biber,
      ]{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)
      \DeclareFieldFormat{postnote}{% Segue da prima
      \ifentrytype{article}{#1}{\mkpageprefix[pagination]{#1}}}

      \DeclareFieldFormat*[inproceedings]{postnote}{#1} % Stessa cosa di cui sopra ma per gli inproceedings
      \xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{inproceedings}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{}
      \DeclareFieldFormat{postnote}{% Segue da prima
      \ifentrytype{inproceedings}{#1}{\mkpageprefix[pagination]{#1}}}

      \DeclareFieldFormat*[incollection]{postnote}{#1} % Stessa cosa di cui sopra ma per gli inproceedings
      \xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{inproceedings}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{}
      \DeclareFieldFormat{postnote}{% Segue da prima
      \ifentrytype{incollection}{#1}{\mkpageprefix[pagination]{#1}}}

      \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}}}

      \DeclareFieldFormat[article, inbook, incollection, inproceedings]{citetitle}{\mkbibemph{#1}} % e che resti in corsivo

      \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% %%% MODIFICA MIA!tolto il \nopunct per avere virgola prima della pagina
      \usebibmacro{series+number}%
      \newunit\newblock
      \usebibmacro{finentry}}

      \renewbibmacro*{cite:title}{% “cit” in tondo
      \printtext[bibhyperlink]{%
      \printfield[citetitle]{labeltitle}%
      \setunit{\addspace}%
      \bibstring{opcit}}}

      \usepackage[]{csquotes} % Per stile di citazione bib in altre lingue. NB: era autostyle=true ma faceva impazzire i caporali in latino

      \addbibresource{archivio.bib}

      %%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \begin{document}
      \selectlanguage{italian}
      Cito una prima volta un articolo, con pagina precisa\footcite[171]{Giu:Com}\\
      Citazione di un libro con serie: voglio la virgola dopo la serie\footcite[11]{Vig:Com}.\\
      Cita una seconda volta l'articolo, sempre con pagina precisa\footcite[171]{Giu:Com}\\
      Ripeto a stretto giro la stessa citazione\footcite[171]{Giu:Com}\\
      Cito una incollection, non voglio “pp” nelle postnote\footcite[238-239]{Bis:Pro}
      \end{document}
      `

    • #106017
      Up
      0
      Down
      ::


      Ci sono alcune definizioni in contraddizione tra loro. Ho commentato una parte di codice sostituita con una più breve e, si spera, coerente.
      (Nota modifiche alle righe 1 e 18).
      `
      % !TEX TS-program = XeLaTeX

      %%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \documentclass[twoside]{article}
      \usepackage{polyglossia}
      \setmainlanguage{italian}
      \setotherlanguage{latin}
      \setotherlanguages{english,french}
      \usepackage{xpatch}

      \usepackage[ style=verbose-trad2,
      language=italian,
      useprefix=true, % Van, Von, etc.
      firstinits=true, % Nomi puntati
      backend=biber,
      ]{biblatex}

      \usepackage{filecontents}
      \begin{filecontents}{archivio.bib}
      @article{Giu:Com,
      Author = {G. Giubbini},
      Date-Added = {2013-10-11 23:13:23 +0200},
      Date-Modified = {2013-11-03 15:40:40 +0100},
      Journal = {Archivi per la storia},
      Pages = {169-178},
      Shorttitle = {Le competenze giurisdizionali},
      Title = {Le competenze giurisdizionali del Governatore di Perugia (Sec. XV-XVIII)},
      Volume = {IV},
      Year = {1991}}

      @book{Vig:Com,
      Address = {Torino},
      Author = {Jean-Claude Maire Vigueur},
      Date-Added = {2016-01-06 11:37:18 +0000},
      Date-Modified = {2016-01-23 20:48:01 +0000},
      Number = {12},
      Publisher = {UTET libreria},
      Series = {Storia degli stati italiani dal Medioevo all'Unit{\`a}},
      Title = {Comuni e signorie in Umbria, Marche e Lazio},
      Year = {1987}}

      @incollection{Bis:Pro,
      Address = {Torino},
      Author = {Giuseppe Biscottini},
      Booktitle = {Novissimo digesto italiano},
      Date-Added = {2016-01-06 11:59:06 +0000},
      Date-Modified = {2016-01-23 21:21:33 +0000},
      Editor = {Antonio Azara AND Ernesto Eula},
      Pages = {238-242},
      Publisher = {UTET},
      Title = {Protesta},
      Volume = {XIV},
      Year = {1968}}

      \end{filecontents}

      \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)
      %\DeclareFieldFormat{postnote}{% Segue da prima
      % \ifentrytype{article}{#1}{\mkpageprefix[pagination]{#1}}}
      %
      %\DeclareFieldFormat*[inproceedings]{postnote}{#1} % Stessa cosa di cui sopra ma per gli inproceedings
      %\xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{inproceedings}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{}
      %\DeclareFieldFormat{postnote}{% Segue da prima
      % \ifentrytype{inproceedings}{#1}{\mkpageprefix[pagination]{#1}}}
      %
      %\DeclareFieldFormat*[incollection]{postnote}{#1} % Stessa cosa di cui sopra ma per gli inproceedings
      %\xpatchbibmacro{postnote}{\setunit{\postnotedelim}}{\ifentrytype{inproceedings}{\setunit{\addcolon\space}}{\setunit{\postnotedelim}}}{}{}
      %\DeclareFieldFormat{postnote}{% Segue da prima
      % \ifentrytype{incollection}{#1}{\mkpageprefix[pagination]{#1}}}

      \DeclareFieldFormat*[article,inproceedings,incollection]{postnote}{#1}

      \renewcommand*{\postnotedelim}{%
      \ifboolexpr{%
      test {\ifentrytype{article}}
      or
      test {\ifentrytype{inproceedings}}
      or
      test {\ifentrytype{incollection}}
      }%
      {\addcolon}
      {\addcomma}
      }

      \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}}}

      \DeclareFieldFormat[article, inbook, incollection, inproceedings]{citetitle}{\mkbibemph{#1}} % e che resti in corsivo

      \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% %%% MODIFICA MIA!tolto il \nopunct per avere virgola prima della pagina
      \usebibmacro{series+number}%
      \newunit\newblock
      \usebibmacro{finentry}}

      \renewbibmacro*{cite:title}{% “cit” in tondo
      \printtext[bibhyperlink]{%
      \printfield[citetitle]{labeltitle}%
      \setunit{\addspace}%
      \bibstring{opcit}}}

      \usepackage[]{csquotes} % Per stile di citazione bib in altre lingue. NB: era autostyle=true ma faceva impazzire i caporali in latino

      \addbibresource{archivio.bib}

      %%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \begin{document}
      \selectlanguage{italian}
      Cito una prima volta un articolo, con pagina precisa\footcite[171]{Giu:Com}\\
      Citazione di un libro con serie: voglio la virgola dopo la serie\footcite[11]{Vig:Com}.\\
      Cita una seconda volta l'articolo, sempre con pagina precisa\footcite[171]{Giu:Com}\\
      Ripeto a stretto giro la stessa citazione\footcite[171]{Giu:Com}\\
      Cito una incollection, non voglio “pp” nelle postnote\footcite[238-239]{Bis:Pro}
      \end{document}`

      Ciao
      Ivan

    • #106018
      Up
      0
      Down
      ::


      Grazie Ivan, ora il codice è molto più pulito (penso anche di aver capito il razionale)
      Manca solo una cosa. Nell’esempio con il tuo codice corretto, guarda la nota 3, che ora è:

      Giubbini, Le competenze giurisdizionali cit.: 171.

      Analecta lo vorrebbe

      Giubbini, Le competenze giurisdizionali cit., p. 171.

      Quindi virgola – “p./pp.” – spazio – numero di pagina.

      Un giorno imparerò a fare questa roba…:sad:

      Grazie

    • #106019
      Up
      0
      Down
      ::


      Ivan…. 🙁 🙁

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

Go to top