Мне нужно использовать определенный файл .bst, и поэтому я ограничен использованием простого BibTeX.
Есть ли способ получить что-то эквивалентное BibLaTeX \fullcite
в этой ситуации?
решение1
Для моей настройки пакет bibentry (см.Как процитировать одну библиографическую запись полностью в основном тексте?) не сработало. Я бы получил одну из этих ошибок или предупреждений:
! Package natbib Error: Bibliography not compatible with author-year citations.
pdfTeX warning ext4: destination with the same identifier name{cite.xxxx2015}
has been already used, duplicate ignored
Однако для своих целей я смог воспользоваться тем, что записи библиографии следуют шаблону \bibitem[LABEL]{CITEKEY} BIBLIOGRAPHYENTRY\par
. Поскольку мне был нужен отрывок из библиографии, которую я определил
\documentclass{scrreprt}
\usepackage{pgffor}
\begin{document}
\makeatletter
\newcommand{\filterbib}[1]{
% Requires enumitem package.
\nocite{#1}% ensure that the entries are in the bibliography.
\def\bibitem[##1]##2##3\par{
\edef\fb@keyA{##2}
\foreach \fb@keyB in {#1}{
\ifx\fb@keyA\fb@keyB \item ##3\fi
}
}
\begingroup
\renewenvironment{thebibliography}[1]{
\itemize
}{\enditemize}
\InputIfFileExists{\jobname.bbl}{}{%
\PackageWarning{kdb:backmatter}{No file \jobname.bbl}%
}%
\endgroup
}
\filterbib{Adles2008prb,Eisenthal2006,Bauer2015}
\bibliographystyle{draftabbrev}
\bibliography{library}
\end{document}
Решение грубое, но работает. Некоторые ограничения:
- Ссылки всегда добавляются в основную библиографию.
- Ссылки всегда имеют тот же порядок, что и в библиографии (намеренно).
- Отсутствие проверки на недействительные ключи, хотя \nociteдолженпозаботьтесь об этом.
- Зависит от форматирования файла .bbl: например, если между последней цитатой и \end{thebibliography} нет пустой строки, то произойдет сбой.