Preciso usar um determinado arquivo .bst e, portanto, estou restrito a usar BibTeX simples.
Existe algum método para obter algo equivalente ao BibLaTeX \fullcite
nesta situação?
Responder1
Para minha configuração, o pacote bibentry (vejaComo citar um bibentry completo no corpo do texto?) não funcionou. Eu receberia um destes erros ou avisos:
! 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
Para meus propósitos, entretanto, consegui explorar o fato de que as entradas da bibliografia seguem o padrão \bibitem[LABEL]{CITEKEY} BIBLIOGRAPHYENTRY\par
. Como o que eu precisava era de um trecho da bibliografia que defini
\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}
A solução é difícil, mas funciona. Algumas limitações:
- As citações são sempre acrescentadas à bibliografia principal.
- As citações seguem sempre a mesma ordem da bibliografia (intencional).
- Falta de verificação de chaves inválidas, embora o \nocitedevecuide disso.
- Depende da formatação do arquivo .bbl: Por exemplo, se não houver nenhuma linha vazia entre a última citação e a \end{thebibliography}, ele irá falhar.