我需要使用給定的 .bst 文件,因此我只能使用純 BibTeX。
\fullcite
在這種情況下,有什麼方法可以得到與 BibLaTeX 等效的東西嗎?
答案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} 之間沒有空白行,則會失敗。