Автоматически вставлять абзац перед цитатами

Автоматически вставлять абзац перед цитатами

Для файла стиля я хотел бы автоматически генерировать абзац подтверждения / раздел текста перед ссылками (на основе некоторых параметров, установленных макросами, предоставленными пользователем). Подход должен работать как с , так bibtexи biblatex. Как это сделать?

При использовании 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уже имеет инфраструктуру для такого рода вставки, нет необходимости переопределять внутренние компоненты, чтобы сделать это. А именно, опция prenoteto \printbibliography, которая позволяет вам выбрать bibnote, определенный с помощью \defbibnote. Вы можете установить либо во время вызова, \printbibliographyлибо установить глобальные значения по умолчанию с помощью \DeclarePrintbibliographyDefaults, в зависимости от вашего фактического варианта использования. В этом примере я устанавливаю prenoteкак значение по умолчанию, а titlelocally, так как это кажется более разумным:

\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}

введите описание изображения здесь

Связанный контент