思路如下:通常,\fullcite
只需通过调用 即可打印完整的参考书目条目\usedriver
。在我的风格中,我添加了隐藏和 biblatex-fiwi
之类的选项。目前,此选项适用于 参考书目条目 和 的结果。foreword
afterword
\fullcite
我希望能够区分 和 的结果\printbibliography
。\fullcite
但由于\fullcite
依赖于 相同的机制\printbibliography
,这很棘手。我需要一个测试来告诉我我们当前是否在命令内\cite
。这样我就可以添加\fullcite
-only 选项。
据我所知,不存在此类测试。
答案1
有什么问题吗\ifbibliography
(详情请参阅手册第 4.6.2 节)?
\documentclass{article}
\usepackage{biblatex}
\renewbibmacro{begentry}{\ifbibliography{}{\clearname{foreword}}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
foreword = {Buthor, B.},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\fullcite{A01}
\printbibliography
\end{document}
答案2
我不思考有一个内置的方法可以做到这一点[更新:错误]:至少,如果有的话,我不知道[不幸的是,这一部分不是:请参阅 Lockstep 的答案以了解正确的方法]。
我认为最简单的方法是\AtBeginBibliography
。选项包括:设置某种可在驱动程序中测试的切换开关,并指示它是在参考书目环境中调用的 [这是不必要的,因为已经提供了一个],或者设置一个驱动程序别名来触发该点,这样你就可以有效地替换该驱动程序\fullcite
“看到”的驱动程序替换为另一个仅在参考书目中生效的驱动程序[我认为这仍是一种可行的选择,如果有很多事情需要改变,这可能是明智的]。