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