使用 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}