\fullcite 替代方案,当需要使用 bst 文件时?

\fullcite 替代方案,当需要使用 bst 文件时?

我需要使用给定的 .bst 文件,因此我只能使用纯 BibTeX。

\fullcite在这种情况下,是否有某种方法可以获得与 BibLaTeX 相当的东西?

答案1

对于我的设置,bibentry 包(参见如何在正文中完整引用一个 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} 之间没有空行,则会失败。

相关内容