在引用前自动插入段落

在引用前自动插入段落

对于样式文件,我想在引用之前自动生成致谢段落/文本部分(基于用户提供的宏设置的一些选项)。该方法应该适用于和bibtexbiblatex如何做到这一点?

当使用 bibtex 时,我可以通过以下方式实现此目的thebibliography

\BeforeBeginEnvironment{thebibliography}{%
  \section{Acknowledgements}%
  Example text.%
}

这不适用于 biblatex。我尝试过修补\printbibliography

\pretocmd\printbibliography{%
  \section{Acknowledgements}%
  Example text.%
}{}{}%

但这不起作用。有没有简单/优雅的解决方案?

++++ 更新以提供 MWE

抱歉没有提供 MWE。假设有一个 template.bib 包含一个引用:

@article{RSA78,
  author    = {Ronald L. Rivest and Adi Shamir and Leonard M. Adleman},
  title     = {A Method for Obtaining Digital Signatures and Public-Key Cryptosystems},
  pages     = {120--126},
  year      = {1978},
  journal   = {Communications of the ACM},
  volume    = {21},
  number    = {2},
  publisher = {ACM New York, NY, USA},
  doi       = {10.1145/359340.359342},
}

然后我想在显示参考文献之前自动插入一个段落/部分(无需作者在其终端修改命令)。这是一个 MWE:

\documentclass{article}
\begin{document}
This is an example citation~\cite{RSA78}.
\bibliographystyle{alphaurl}
\bibliography{template}
\end{document}

当使用 Bibtex 时,我可以使用以下方法实现此目的:

\documentclass{article}
\usepackage{etoolbox}

\BeforeBeginEnvironment{thebibliography}{%
  \section*{Acknowledgements}%
  Section text.%
}

\begin{document}
This is an example citation~\cite{RSA78}.
\bibliographystyle{alphaurl}
\bibliography{template}
\end{document}

如何使用 biblatex / biber 做到这一点?MWE:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{template.bib}
\begin{document}
This is an example citation~\cite{RSA78}.
\printbibliography
\end{document}

使用注释选项并\printbibliography不能达到我想要的效果。

答案1

biblatex已经有了这种插入的基础架构,因此无需重新定义内部结构即可。即,选项prenote\printbibliography允许您选择用定义的 bibnote \defbibnote。您可以在调用时设置\printbibliography,也可以使用设置全局默认值\DeclarePrintbibliographyDefaults,具体取决于您的实际用例。在示例中,我将设置prenote为默认值,并将设置title为本地默认值,因为这似乎更有意义:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{template.bib}
\defbibnote{myprenote}{Section text.}
\DeclarePrintbibliographyDefaults{prenote=myprenote}
\begin{document}
This is an example citation~\cite{RSA78}.
\printbibliography[title=Acknowledgements]
\end{document}

在此处输入图片描述

编辑:正如评论中澄清的那样(但评论后来被编辑了……),实际上想要的是标题本身之前的内容。为此,您可以设置\defbibheading

\documentclass{article}
\usepackage{biblatex}
\addbibresource{template.bib}
\defbibheading{myheading}[\bibname]{%
  \section*{Acknowledgements}%
  Section text.%
  \section*{#1}%
  \markboth{#1}{#1}}
\DeclarePrintbibliographyDefaults{heading=myheading}
\begin{document}
This is an example citation~\cite{RSA78}.
\printbibliography
\end{document}

在此处输入图片描述

相关内容