我正在尝试模仿我的朋友在他的博士论文中使用的“手工完成”的参考风格,并且我认为反向引用可能是一个很好的点睛之笔。
不幸的是,由于这是语言学,有些作者有一些多卷文集,按卷引用,但参考书目只有整个文集。
说到点子上了。编译后,文件:
\documentclass{article}
\usepackage[backend=biber,style=verbose-trad2,backref]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@mvbook{AuthorAll,
author = {Prolific Author},
volumes = {1--1000},
title = {Collected Works},
editor = {Tireless Editor}
}
@book{Author1,
crossref = {AuthorAll},
title = {Collected Works. Vol.~1. Poems part 1},
options = {skipbib=true}
}
@book{Author2,
crossref = {AuthorAll},
title = {Collected Works. Vol.~2. Poems part 2},
options = {skipbib=true}
}
@book{Author3,
crossref = {AuthorAll},
title = {Collected Works. Vol.~3. Poems part 3},
options = {skipbib=true}
}
and so on...
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
\cite[11]{Author1}\clearpage
\cite[22]{Author2}\clearpage
\cite[33]{Author3}\clearpage
\printbibliography
\end{document}
将为您提供一个仅包含一项的参考列表,即与 AuthorAll 对应的项。此项是否可以引用对 Author1、Author2、Author3 项的所有引用(在本例中为第 1-3 页)?
答案1
AuthorAll
一个简单的解决方案是仅使用和朋友进行引用\volcite
。这些引用命令对卷号有一个强制参数:
\volcite[<prenote>]{<volume number>}[<pages>]{<key>}
这会生成与 相同的输出\cite
,但后记<pages>
前面有文本。和、和等也<volume string> <volume number>
存在类似的结果。\pvolcite
\parencite
\tvolcite
\textcite
或者,您可以使用\AtEveryCitekey
钩子和一些内部构件来为交叉引用条目生成反向引用。
\documentclass{article}
\usepackage[backend=biber,style=verbose-trad2,backref]{biblatex}
\usepackage[colorlinks]{hyperref}
\makeatletter
\AtEveryCitekey{%
\ifboolexpr{
test {\iftoggle{blx@skipbib}}
and
not test {\iffieldundef{crossref}}
}
{\blx@backref{\thefield{crossref}}}
{}}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@mvbook{AuthorAll,
author = {Prolific Author},
volumes = {1--1000},
title = {Collected Works},
editor = {Tireless Editor}}
@book{Author1,
crossref = {AuthorAll},
title = {Collected Works. Vol.~1. Poems part 1},
options = {skipbib=true}}
@book{Author2,
crossref = {AuthorAll},
title = {Collected Works. Vol.~2. Poems part 2},
options = {skipbib=true}}
@book{Author3,
crossref = {AuthorAll},
title = {Collected Works. Vol.~3. Poems part 3},
options = {skipbib=true}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\volcite{1}[11]{AuthorAll}\clearpage
\cite[11]{Author1}\clearpage
\cite[22]{Author2}\clearpage
\cite[33]{Author3}\clearpage
\printbibliography
\end{document}