收藏中的简称和交叉引用

收藏中的简称和交叉引用

使用 crossref 时我无法获取集合的简称(第一次引用后我需要它)。

该示例并不完全是最小的(至少对于参考书目而言),因为我不想清除可能影响问题的自定义设置

  % !BIB TS-program = biber
% !BIB program = biber
% !TEX encoding = UTF-8 Unicode
% !TeX TS-program = xelatexmk

\RequirePackage{filecontents}
\begin{filecontents}{pippo.bib}

@collection{Gag:Fil,
    Address = {Città del Vaticano},
    Date-Modified = {2018-06-08 17:40:35 +0000},
    Editor = {Mauro Gagliardi},
    Publisher = {Libreria Editrice Vaticana},
    Shorttitle = {Il Filioque},
    Title = {Il Filioque. A mille anni dal suo inserimento nel credo a Roma (1014-2014)},
    Year = {2015}}

@incollection{Oss:Mas,
    Author = {Carlo dell'Osso},
    Pages = {147-64},
    Crossref = {Gag:Fil},
    Title = {Il \textit{Filioque} in Massimo il Confessore}}


@incollection{Cip:Pro,
    Author = {Nello Cipriani},
    Pages = {99-116},
    Title = {La processione dello Spirito Santo in sant'Agostino},
    Crossref = {Gag:Fil}}

\end{filecontents}




\documentclass[A4, 11pt]{book}
\usepackage{fontspec}
\usepackage{polyglossia}                        % Per le sillabazioni
    \setmainlanguage{italian}

%%%%%%%%%%%%%%%%%%%COMANDI DI BILIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[autostyle,italian=guillemets]{csquotes}
\usepackage{xpatch}     
\usepackage[style=verbose-trad2,            
            language=italian,
            useprefix=true,                 
            citepages=omit,                 
            backend=biber,  
            ibidpage=true,
        ]{biblatex} 

\NewBibliographyString{ibidemloccit,ibidemnoloccit}
\DefineBibliographyStrings{italian}{%
     idem   = {Id\adddot},
    idemsm = {Id\adddot},
    idemsf = {Ead\adddot},
    idemsn = {Id\adddot},
    idempm = {Id\adddot},
    idempf = {Id\adddot},
    idempn = {Id\adddot},
    idempp = {Id\adddot},
  ibidemloccit   = {\mkbibemph{\autocap{i}bidem}},
  ibidemnoloccit = {Ivi},
}

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


%%%%%%%%%%%%%%%%%%%%%%%%%%%


\renewcommand*{\newunitpunct}{\addcomma\space}                              % Virgola tra le unità
\renewcommand*{\mkibid}{\emph}                                          % ibid, op cit e latinitates in enfatico

\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


\addbibresource{pippo.bib}


%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%

\begin{document}

I want the short title of the collection from the second citation on   \\

Cito la collezione\footcite{Gag:Fil}\\

Dopo cito il contributo nella collezione\footcite{Oss:Mas}\\

E infine un altro contributo nella medesima collezione\footcite{Cip:Pro}


\end{document}

答案1

不久前有一个类似的问题biblatex:避免冗余信息精彩的回答保罗·斯坦利将其变成一个包裹梅厄尔biblatex-opcit-booktitle)。

加载该包后你的 MWE 变成

\documentclass[a4paper,11pt]{book}
\usepackage{fontspec}
\usepackage{polyglossia}
    \setmainlanguage{italian}

\usepackage[autostyle,italian=guillemets]{csquotes}
\usepackage{xpatch}
\usepackage[style=verbose-trad2,
            useprefix=true,
            citepages=omit,
            backend=biber,
            ibidpage=true,
        ]{biblatex}
\usepackage{biblatex-opcit-booktitle}

\NewBibliographyString{ibidemloccit,ibidemnoloccit}
\DefineBibliographyStrings{italian}{%
    idem   = {Id\adddot},
    idemsm = {Id\adddot},
    idemsf = {Ead\adddot},
    idemsn = {Id\adddot},
    idempm = {Id\adddot},
    idempf = {Id\adddot},
    idempn = {Id\adddot},
    idempp = {Id\adddot},
  ibidemloccit   = {\mkbibemph{\autocap{i}bidem}},
  ibidemnoloccit = {Ivi},
}

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


\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\mkibid}{\emph}

\renewbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}%
    \setunit{\addspace}%
    \bibstring[\mkibid]{opcit}}}

    \DeclareFieldFormat[article, inbook, incollection, inproceedings]{citetitle}{\mkbibemph{#1}}

\begin{filecontents}[force]{\jobname.bib}
@collection{Gag:Fil,
    Address = {Città del Vaticano},
    Date-Modified = {2018-06-08 17:40:35 +0000},
    Editor = {Mauro Gagliardi},
    Publisher = {Libreria Editrice Vaticana},
    Shorttitle = {Il Filioque},
    Title = {Il Filioque. A mille anni dal suo inserimento nel credo a Roma (1014-2014)},
    Year = {2015}}
@incollection{Oss:Mas,
    Author = {Carlo dell'Osso},
    Pages = {147-64},
    Crossref = {Gag:Fil},
    Title = {Il \textit{Filioque} in Massimo il Confessore}}
@incollection{Cip:Pro,
    Author = {Nello Cipriani},
    Pages = {99-116},
    Title = {La processione dello Spirito Santo in sant'Agostino},
    Crossref = {Gag:Fil}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
I want the short title of the collection from the second citation on

Cito la collezione\footcite{Gag:Fil}

Dopo cito il contributo nella collezione\footcite{Oss:Mas}

E infine un altro contributo nella medesima collezione\footcite{Cip:Pro}

Cito la collezione\footcite{Gag:Fil}
\end{document}

1 Mauro Gagliardi,cur.,《和子篇》。他在罗马信仰中奉献了一千年(1014-2014),梵蒂冈城:梵蒂冈编辑书店,2015年。//2 卡洛·德尔奥索,《和子在忏悔弥撒中》,载于:《和子,一位神父》 di Mauro Gagliardi,引文,第 147–64 页。//3 Nello Cipriani,《圣奥古斯丁的圣灵游行》,载于《和子经》,Mauro Gagliardi 的牧师,引文,第 99–116 页.//4 Gagliardi,Il Filioque cit.

相关内容