0

This is a subquestion to biblatex (verbose-trad2) - Initials in citations and full name in bibliography. The solution provided by the almighty Moewe in that question works perfectly fine when dealing with books and articles, but something strange happens when citing multiple contributions from the same collection or proceedings:

enter image description here

The quote of the second essays fully displays the author's name, instead of her initial and surname, as in the first citation from the same collection.

What I would like to obtain is: enter image description here

The solution should not affect the appearence of the items in the bibliography, wich is fine.

Unfortunately, my mastery of biblatex grows significantly slower than the number of new problems biblatex itself presents me. I feel however the need to design a style of mine as soon I'll be able to, as this thing is getting too messy.

A last word on the didactic value of these questions: I feel I'm learning very much from this forum. I see it not at all as a place for getting free code snippets: on the contrary I'm developing skills and knowledge I could never improve on my own. Thank you all.


MWE

\documentclass[11pt, twoside, openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage[italian]{babel}
\usepackage{slantsc}
\usepackage[autostyle,italian=guillemets]{csquotes} %per le citazioni (da approfondire)
\usepackage{xpatch} %patch delle macro
\usepackage[style=verbose-trad2,            
            language=italian,
            useprefix=true,                 
            citepages=omit,                 
            backend=biber, 
            ibidpage=true, %ibid solo se veramente idem
            sorting=nyt, %name year title
        ]{biblatex} 
%
\usepackage{biblatex-opcit-booktitle}
%
%queste tre linee di codice per la compatibilità del titolo corrente della bib. in sc
\defbibheading{sc-comp}[\bibname]{%
  \chapter*{#1}\markboth{#1}{}%
  \addcontentsline{toc}{chapter}{\bibname} %questo per far venire la bib. nel toc
}
%
\ExecuteBibliographyOptions{
                                               giveninits=false, 
                                               dashed=false, 
                                               dateabbrev=false
                                               }
\DeclareNameAlias{sortname}{last-first}
\NewBibliographyString{ibidemloccit,ibidemnoloccit}
\DefineBibliographyStrings{italian}{%
  bibliography = {Bibliografia},
  editor           = {a cura di},
  editors          = {a cura di},
  idem           = {\textsc{Id}\adddot},
  idemsf         ={\textsc{Ead}\adddot},
  ibidemloccit   = {\mkbibemph{\autocap{i}bid\adddot}},
  ibidemnoloccit = {\autocap{i}vi},
  and             = {\addcomma},%{\textendash}, %fa diventare la "e" per gli autori plurimi un trattino en
}
%
\DefineBibliographyExtras{italian}{\protected\def\bibrangedash{-}} %imposta trattino come separatore pagine invece di en-dash
%
\renewbibmacro*{publisher+location+date}{%
   \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addspace}
  \usebibmacro{date}%
 \printfield{edition}%
  \newunit}
%
%chiama id o ead in bibl. funziona con dashed=true
\renewcommand*{\bibnamedash}{\bibstring[\mkibid]{idem\thefield{gender}}}
%
%prima occorrenza nome aut. puntata
\renewbibmacro*{cite:full}{%
  \usebibmacro{cite:full:citepages}%
  \global\toggletrue{cbx:fullcite}%
  \printtext[bibhypertarget]{%
    \usedriver
      {\toggletrue{abx@bool@giveninits}%
       \DeclareNameAlias{sortname}{default}}
      {\thefield{entrytype}}}%
  \usebibmacro{shorthandintro}}
%
%questa mette l'edizione in apice
\DeclareFieldFormat{edition}{%
  \ifinteger{#1}
    {\textsuperscript{#1}}
    {#1\isdot\setunit{\addcomma\space}}}
%
%questa per togliere la prima occorrenza del numero di edizione
\newcommand{\replaceedition}[1]{%
  \xpatchbibdriver{#1}
    {\printfield{edition}%
     \newunit}
    {}%
    {}
    {\typeout{failed to patch driver #1}}
}
\replaceedition{book}
\replaceedition{collection}
\replaceedition{inbook}
\replaceedition{incollection}
\replaceedition{manual}
%
%questa stampa l'anno di edizione originale
\renewbibmacro*{date}{%
  \printdate
  \iffieldundef{origyear}{%
  }{%
    \setunit*{\addspace}%
    \printtext[parens]{ed. or. \printorigdate}%
  }%
}
%
% sostituisce "e" fra autori con virgola
\AtBeginBibliography{
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{}{}%
\addspace\addcomma\space}%
}

%volumi riviste
\renewbibmacro*{volume+number+eid}{%
 \setunit*{\addcomma\space}% 
  \printfield{volume}%
 %invece di \setunit*{\adddot}% 
  \setunit*{\addslash}% 
  \printfield{number}%
  }
%
\renewcommand*{\revsdnamepunct}{} %toglie virgola fra cognome e nome aut.
\renewcommand*{\intitlepunct}{\space} %toglie ":" dopo "in" dopo elementi in raccolte (art, inproc, incoll)
\renewcommand*{\newunitpunct}{\addcomma\space} %virgola fra aut. e titolo
\renewcommand*{\mkbibnamegiven}[1]{\textsc{#1}} %nome autore sc
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}} %particella autore sc
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}} %cognome autore sc
%
%
\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\usebibmacro{byeditor+othersstrg}%
     \setunit{\addspace}%
     \printnames[byeditor]{editor}%
     \clearname{editor}%
     \addspace}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}
%
 %toglie "in" dopo titoli art. (solo art.) in riviste
\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
%
\nocite{*} %stampa tutta la bibliografia, anche roba non citata nel testo
%
\DeclareFieldFormat{journaltitle}{\enquote{#1\isdot}} %nome rivista in tondo fra caporali (=enquote)
\DeclareFieldFormat[article]{title}{\textit{#1}} %titolo art. in corsivo
\DeclareFieldFormat[article]{citetitle}{\textit{#1}} %titolo art. in corsivo in cit.
\DeclareFieldFormat[article]{volume}{\textsc{#1}} %vol. in sc (per num. romani)
\DeclareFieldFormat[collection]{volume}{vol. \textsc{#1}} %vol. in sc per curatele
\DeclareFieldFormat[incollection]{title}{\textit{#1}} %nome art. in miscell. in corsivo
\DeclareFieldFormat[incollection]{citetitle}{\textit{#1}} %nome art. in miscell. in corsivo in cit.
\DeclareFieldFormat[inproceedings]{title}{\textit{#1}}%come sopra
\DeclareFieldFormat[inproceedings]{citetitle}{\textit{#1}}%come sopra
\DeclareFieldFormat{editortype}{\mkbibparens{#1}} %a cura di fra parentesi
\DeclareDelimFormat{editortypedelim}{\addspace} %toglie virgola prima di (a cura di)
%
%segue macro per impostare ibidem, ivi, id. in maniera corretta
\xpatchbibmacro{author}
  {\printnames{author}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
       {\usebibmacro{cite:idem}}
       {\printnames{author}}}
     {\printnames{author}}}
  {}{}
\xpatchbibmacro{bbx:editor}
  {\printnames{editor}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
        {\usebibmacro{cite:idem}}
        {\printnames{editor}}}
     {\printnames{editor}}}
  {}{}
\xpatchbibmacro{bbx:translator}
  {\printnames{translator}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
        {\usebibmacro{cite:idem}}
        {\printnames{translator}}}
     {\printnames{translator}}}
  {}{}

\renewbibmacro*{cite:ibid}{%
  \printtext{%
    \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
      \ifloccit
        {\bibstring[\mkibid]{ibidemloccit}%
         \global\toggletrue{cbx:loccit}}
        {\bibstring[\mkibid]{ibidemnoloccit}}}}}

\begin{filecontents}{\jobname.bib}
@collection{raonap,
editor = {Rao, Anna Maria}, 
title = {Napoli e il Mediterraneo nel Settecento. Scambi, immagini, istituzioni},
shorttitle = {Napoli e il Mediterraneo nel Settecento},
location = {Bari},
date = {2017},
gender = {sf},
} 

@incollection{aglietti,
author = {Aglietti, Marcella},
title = {Prerogative di Stato e conflitti giurisdizionali dalle carte di Giuseppe Bonechi, console toscano a Napoli (1765-1796)},
crossref = {raonap},
}

@incollection{carrino,
author = {Carrino, Annastella},
title = {Il Levante \emph{<<que tenemos a la puerta>>}. Progetti e pratiche del commercio mediterraneo nel Regno di Napoli di secondo Settecento},
crossref = {raonap},
}

@proceedings{occimed,
editor        = {Crocetti, Renzo},
title         = {La crescita economica dell’Occidente medievale. Un tema storico non ancora esaurito. \emph{Atti del venticinquesimo convegno internazionale di studi (Pistoia, 14-17 maggio 2015)}}, 
shorttitle = {La crescita economica dell'Occidente medievale},
date          = {2017},
location      = {Roma},
}

@inproceedings{feniello,
author = {Feniello, Amedeo}, 
title = {Mercati, mercanti, diritto mercantile in uno spazio di confine: il Mezzogiorno italiano (\textsc{ix}-\textsc{xii} secolo)},
crossref = {occimed},
}

@incollection{alba,
author = {Albanese, Maria Chiara},
title =  {Il concetto di dominio dei mari nel secolo \textsc{xviii}: la Regia Marina del Regno di Napoli e i barbareschi},
crossref = {occimed},
}
\end{filecontents}
\addbibresource{\jobname.bib}
%\addbibresource{biblatex-examples.bib}

\begin{document}
What I get:\\[1em]

\cite{aglietti} 

\cite{carrino}

\cite{aglietti} %second quote of same essay, correct

\cite{carrino} %same

\cite{feniello} %this and the next one show the behaviour of proceedings

\cite{alba}\\[2em]

What I want:\\[1em]

{\sc M. Aglietti}, \emph{Prerogative di Stato e conflitti giurisdizionali dalle carte di Giuseppe Bonechi, console toscano a Napoli (1765-1796)}, in {\sc A. M. Rao} (a cura di), \emph{Napoli e il Mediterraneo nel Settecento. Scambi, immagini, istituzioni}, Bari 2017

{\sc A. Carrino}, \emph{Il Levante \emph{<<que tenemos a la puerta>>}. Progetti e pratiche del commercio mediterraneo nel Regno di Napoli di secondo Settecento}, in {\sc Rao} (a cura di), \emph{Napoli e il Mediterraneo nel Settecento}, cit.
\printbibliography[heading=sc-comp] %bibliography, correct as well
\end{document}
1

biblatex-opcit-booktitle changes the default definition of the cite bibmacro from verbose-trad2 and introduces some more cases we need to care about.

You will also need to add \toggletrue{abx@bool@giveninits} to the macro related:info from biblatex-opcit-booktitle

\makeatletter
\renewbibmacro*{related:info}{%
  \usebibmacro{related:info:booktitle}%
  \usebibmacro{cite:full:citepages}%
  \printtext[bibhypertarget]{\usedriver%
    {\toggletrue{abx@bool@giveninits}%
     \DeclareNameAlias{sortname}{default}}%
    {inbook:rel:\blx@cbxfile}}%
}
\makeatother
2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.