重新声明 fineentry 会导致在文档开头打印点

重新声明 fineentry 会导致在文档开头打印点

作为我的后续老问题“如何在输出格式中打印参考书目条目的内部ID以引用文件?”我现在决定不使用内部 ID,而是使用特殊字段@moewe建议我,这是默认声明。

这是一个示例文档:

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=numeric, backend=biber]{biblatex}

\DeclareFieldFormat{file}{\texttt{#1}}
\renewbibmacro*{finentry}{\newunit\newblock\printfield{file}\finentrypunct}

\addbibresource{biblatex-examples.bib}


\begin{document}
\autocite{sigfridsson,worman,geer,nussbaum}
\printbibliography
\end{document}

不幸的是,只需改变要打印的字段entrykey 来自原始答案,出现file了奇怪的额外点。

当你实际使用文件字段时,你会注意到它们出现在跟随以下条目的参考书目条目的前面不要已设置文件条目。(此外,如您在上例中所见,第一个条目似乎被排除了。)

即使你删除了\finentrypunct(我不想这么做,但为了调试,我还是删除了),它们仍然在那里。所以我不知道这个点在哪里在前的条目来自。

答案1

我认为另一个答案中有拼写错误。条目不应以此结尾,\finentrypunct而应以此结尾\finentry

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=numeric, backend=biber]{biblatex}

\DeclareFieldFormat{file}{\texttt{#1}}

\renewbibmacro*{finentry}{\newunit\newblock\printfield{file}\finentry}

\addbibresource{biblatex-examples.bib}


\begin{document}
\autocite{sigfridsson,worman,geer,nussbaum}
\printbibliography
\end{document}

相关内容