结合 refcontext 和 bibbysection

结合 refcontext 和 bibbysection

因为我有大量的文献资料来源(也为了清楚起见),我选择使用 命令 为各个章节使用单独的(印刷的)参考书目biblatex\bibbysection因为我对这个解决方案不是 100% 确信,所以我尝试(出于好奇)使用章节号为文内引用添加前缀,结果例如 [1.1]。如果我在章节内使用,这种方法很好用,\printbibliography但使用 就不行了\bibbysection

所以请帮助我(了解)这里缺少什么。提前谢谢。

\documentclass{scrbook}
\usepackage{blindtext}
\usepackage[backend=biber, refsection=chapter, defernumbers=true, style=numeric]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @book{Knuth.1986,
        author = {Knuth, Donald E.},
        year = {1986},
        title = {The \TeX book},
    }   
    @article{Einstein.1923,
        author = {Einstein, Albert},
        year = {1923},
        title = {Grundgedanken und Probleme der Relativitätstheorie},
    }
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareRefcontext{myContext}{labelprefix=\therchapter.}

\begin{document}
%\begin{refcontext}[labelprefix=\thechapter.]{altContext}

\chapter{Ch 1}
\newrefcontext{myContext}
\blindtext \cite{Knuth.1986} \cite{Einstein.1923}
%\printbibliography[heading=subbibliography,section=\therefsection]

\chapter{Ch 2}
\newrefcontext{myContext}
\blindtext \cite{Einstein.1923}
%\printbibliography[heading=subbibliography,section=\therefsection]


\bibbysection
%\end{refcontext}
\end{document}

答案1

biblatex通常会将条目分配给上次打印的引用上下文。但在\bibbysection这种情况下,这并不奏效,因为命令可能在所需的引用上下文之外调用。(在Biblatex:对 André Miede 博士撰写的“ClassicThesis”的双重引用(在章节末尾和文档末尾均有引用)) 我没有找到能够产生所需结果的 refcontext 分配命令组合,但由于您只想在引用前加上章节编号,所以我们实际上可以绕过整个refcontext过程并直接注入章节编号。

\documentclass{scrbook}
\usepackage{blindtext}
\usepackage[backend=biber, refsection=chapter, defernumbers=true, style=numeric]{biblatex}

\usepackage{refcount}

\makeatletter
\AtDataInput{%
  \blx@bbl@fieldedef{labelprefix}{\getrefnumber{refsection:\therefsection}}%
  \csuse\blx@bbl@data
  \iftoggle{blx@skipbib}
    {}
    {\ifundef\abx@field@shorthand
       {\blx@bbl@labelnumberwidth@numeric{}}
       {}}}
\makeatother

\DeclareFieldFormat{labelprefix}{#1.}

\addbibresource{biblatex-examples.bib}

\begin{document}
\chapter{Ch 1}
\blindtext \cite{nussbaum} \cite{sigfridsson}

\chapter{Ch 2}
\blindtext \cite{sigfridsson}

\printbibheading[title=Complete \bibname]
\bibbysection[heading=none]
\end{document}

完整的参考书目。

相关内容