我必须使用参考书目条目来首次引用来源。此参考书目字符串包含几个冒号,但遗憾的是在脚注中看不到。以下最小示例应该是该问题的展示。
\documentclass{article}
\usepackage[german]{babel}
\usepackage{csquotes}
% Bibliography database
\begin{filecontents}{\jobname.bib}
@book{Knu86,
author = {Knuth, Donald E.},
year = {1986},
title = {The \TeX book},
publisher = {publisher},
location = {location},
}
\end{filecontents}
% Biblography style
\begin{filecontents}{\jobname.bbx}
\ProvidesFile{\jobname.bbx}
\RequireBibliographyStyle{standard}
\renewcommand*{\newblockpunct}{\addcolon\space}
\DeclareBibliographyDriver{book}{
\usebibmacro{bibindex}%
\usebibmacro{author}
\addspace
\printfield[parens]{year}
\newblock
\printfield{title}
\newunit
\printlist{location}
\newblock
\printlist{publisher}
}
\endinput
\end{filecontents}
% Citation style
\begin{filecontents}{\jobname.cbx}
\ProvidesFile{\jobname.cbx}
\RequireCitationStyle{verbose}
\renewbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\printtext[bibhypertarget]
{ \usedriver{}{\thefield{entrytype}}}
}
\endinput
\end{filecontents}
\usepackage[backend=bibtex8,citestyle=\jobname,bibstyle=\jobname]{biblatex}
\ExecuteBibliographyOptions{citepages=omit,citetracker=true,labelyear}
\bibliography{\jobname}
\begin{document}
\null\vfill\noindent
Filler text \footcite[85]{Knu86}.
\printbibliography
\end{document}
为什么参考书目没有完全复制?我的第一个猜测是该\newblockpunct
命令只有在参考书目样式下才能正确执行。但我如何将其转换为引用样式?
答案1
完整引用由 生成\usedriver
,其内部定义调用:
\let\newblock\relax
为了避免这种情况,您可以在序言中添加以下内容。
\makeatletter
\patchcmd{\blx@imc@usedriver}{\let\newblock\relax}{}{}{}
\makeatother
但是块分隔符\newblockpunct
旨在分隔参考书目条目的较大部分。默认值对应于选项block
设置指定的某种形式的空格。在您的自定义驱动程序中,您可能最好使用\setunit{\addcolon\space}
。