我想知道是否有可能通过修补bibunits
来模仿 bibtopic 功能(即多个可过滤的书目命令)
\putbib
我认为如果我可以应用过滤器,那么可能会有复制的方法
\def\bu@bibdata{\jobname}
\AtBeginDocument{%
\iflabelstoglobalaux
\else
\let\orig@bibliography\bibliography
\def\bibliography#1{%
\if@filesw
\immediate\openout\@bibunitaux bu.aux
\immediate\write\@mainaux{\string\@input{bu.aux}}%
\fi
\orig@bibliography{#1}%
\if@filesw
\immediate\closeout\@bibunitaux
\fi
}%
\fi
\let\std@bibliography\bibliography
}
这个问题之所以如此复杂/难以解决,是因为文档结构过于庞大:
- 在文档的前言中,有一个出版物列表(这曾经是一个 bibunit,但现在必须分解为期刊论文和摘要)所以 bibunit 的这个要求就是我开始研究 bibtopics 的原因,但我也在这里提出了一个平行的问题(我可以修补 bibunits \putbib 以便我可以生成单独的参考文献组吗?)以防重新编程 \putbib 更为实用。
- 第一部分是其自己的 IEEE bibunit(章节级参考书目)。
- 第二部分是它自己的 IEEE bibunit(部分级参考书目 - 章节自由部分)。
- 第三部分有两个 bibunit(每章一个),第二个 bibunit 需要自定义引用样式和 bst 文件,这是我通过合并 nature 和 IEEE bst 文件自己编写的。正是这个风格独特、呈现方式独特的章节让我无法使用 biblatex 和 refsections。
- 最后一部分有自己的 bibunit(章节级别)
我不能使用下面的结构,因为它不允许我使用 IEEE 排序,根据定义它不能。
我已经阅读了软件包文档,希望我可以重新定义一个基于putbib
限制的新命令,类似于 splitbib(与 bibunits 不兼容)。
\documentclass{article}
\usepackage{bibtopic}
\usepackage[numbers,square,comma,sort&compress,nonamebreak]{natbib}
\begin{document}
\begin{btUnit}
\section{Testing}
Let’s cite all the journal papers \cite{A, B}; and abstracts: \cite{C, D}.
\citet{A}
\begin{btSect}[IEEEtranNSB]{Journals}
\section*{References from journals}
\btPrintCited
\end{btSect}
\begin{btSect}{Abstracts}
\section*{Abstracts from conferences}
\btPrintCited
\end{btSect}
\end{btUnit}
\begin{btUnit}
\section{2 test}
Let’s cite all the journal papers \cite{A, B}; and abstracts: \cite{C, D}.
\begin{btSect}[IEEEtranNSB]{Journals,Abstracts,CombinedBibFile}
\section*{All references}
\btPrintCited
\end{btSect}
\end{btUnit}
\end{document}