![biblatex,添加类别](https://linux22.com/image/234987/biblatex%EF%BC%8C%E6%B7%BB%E5%8A%A0%E7%B1%BB%E5%88%AB.png)
我已在多个论坛询问过以下问题,但均未成功。
请考虑使用 biblatex 命令来定义类别并将类别分配给 .bib 条目:
\DeclareBibliographyCategory{AAA}
\addtocategory{AAA}{aaa}
我的问题是:有没有办法根据条目检索类别?例如\CatOfBook{aaa}
--> AAA 之类的方法?
我对 LaTeX 编程一无所知,但我怀疑您需要在 biblatex.sty 文件的某个位置添加新功能。我非常感谢任何提示,或者只是解释一下它有多难。
我认为我需要这个的更广泛的原因如下。我使用上面的分类命令来对我的参考书目进行分段,并且:
\printbibliography[heading=AAA,category=aaa]
结果就像
section AAA
Aut90 ----
Aut93b ----
section BBB
Aut92---
Aut93a --
(同一作者有多种不同类别的书籍)
我想要一种\cite
命令,使其输出类似的内容:
A-Aut90, B-Aut93a, A-Aut93b
。
我希望我已经清楚我的问题了
答案1
忘记我之前的消息。
Biblatex 已更新,正是我所寻找的。如果您感兴趣,请查看选项 prefixnumbers(已将选项 prefixnumbers 添加到 \printbibliography 2010-08-04;已将对 prefixnumbers 的支持添加到 bibliography style alphabetic 2011-01-05)。
对于您获得的输出类型,请查看 http://www.ctan.org/tex-archive/macros/latex/exptl/biblatex/doc/examples/19-alphabetic-prefixed.tex//.pdf
为了实现书目项目之间的交叉引用,我使用以下代码
\DeclareCiteCommand{\bbx@crossref}%
{}
{\ifsingletitle%
{\printtext[bibhyperref]{\printnames{labelname}}%
\setunit{\space}}%
{
\printtext[bibhyperref]{[%
\printfield[citetitle:book]{prefixnumber}%
\printfield{labelalpha}%
\printfield{extraalpha}]}
}}%
{}%
{}
并通过类似以下的方式重新声明 incollection 和 inbook 类型的驱动程序:
\DeclareBibliographyDriver{incollection}{%
......
\iffieldundef{crossref}%
{}
{\printtext{\setunit{\unspace}}
\printtext{\bbx@crossref{\thefield{crossref}}}%
\newunit\newblock
}
Biblatex 确实很棒!
欢迎评论我最良好的祝愿