我目前有一份使用 bibtopic 管理多个参考书目的文档。我使用 unsrt,但想通过在前面添加一个字母来区分多个参考书目。这意味着,参考书目 A 的参考文献应引用为 [A01],而参考书目 B 的参考文献应引用为 [B01]。
我知道在 multibib 中使用 \newcites 可以实现类似的功能,但是我需要在本文档中使用 bibtopic,但无法在此包中找到相应的功能。有人有想法吗?我考虑过制作不同的 bst,但无法让它发挥作用,所以希望有人知道更简单的解决方案。
谢谢!
编辑:根据要求,提供一个可编译的示例(pdflatex 将通知您在某个文件上运行 bibtex,然后再次重新运行 pdflatex)。请参阅下面的示例 bib 文件。
\documentclass{scrbook}
\usepackage{bibtopic}
\begin{document}
Cite some: \cite{smit54} \cite{colu92}. (All references are printed anyways due to btPrintAll.)
\begin{btSect}{bibfile1}
\btPrintAll
\end{btSect}
---Just a separator for the two bibliographies.---
\begin{btSect}{bibfile2}
\btPrintAll
\end{btSect}
\end{document}
目前数据库中的参考文献在两个部分中都看起来像 [01]。我希望第一部分中的参考文献显示为 [A01](数字增加),第二部分中的参考文献显示为 [B02](数字增加)。Bibfile1.bib 可能看起来像这样(取自 aguplus 包)
@ARTICLE{smit54,
AUTHOR = {J. G. Smith and H. K. Weston},
TITLE = {Nothing Particular in this Year's History},
YEAR = {1954},
JOURNAL = {J. Geophys. Res.},
VOLUME = {2},
PAGES = {14-15}
}
和 bibfile2.bib 因此
@BOOK{colu92,
AUTHOR = {Christopher Columbus},
TITLE = {How {I} Discovered {America}},
YEAR = {1492},
PUBLISHER = {Hispanic Press},
ADDRESS = {Barcelona}
}
答案1
请注意,这只是部分解决方案。其他人可以想出更好的解决方案。您可以使用该bibtopicprefix
包。但是,我找不到自定义引用以获得所需编号的方法。
\documentclass{scrbook}
\usepackage[sectcntreset]{bibtopic}
\usepackage{bibtopicprefix}
\begin{document}
Cite some: \cite{smit54}, \cite{smit55}, \cite{colu92}.
\begin{btSect}{bibfile1}
\renewcommand{\bibprefix}{A}
\btPrintAll
\end{btSect}
---Just a separator for the two bibliographies.---
\begin{btSect}{bibfile2}
\renewcommand{\bibprefix}{B}
\btPrintAll
\end{btSect}
\end{document}
我强烈建议使用multibib
更灵活、更易于定制的软件包。如果您阅读bibtopic
手册,您会发现存在各种问题、错误和限制(第 4 和 5 节)。另请参阅 multibib 软件包的第 4 节以获取评论。