我有一份文档,其中每一章都充当参考部分并重置参考计数器。我知道我可以在每章末尾打印单独的参考书目,但我想将它们全部放在文档末尾。例如,如果我有三个章节 A、B、C,我希望文档看起来像:
第一章
...
B章
...
第三章
...
参考书目
第一章
[1]
[2]
...
B章
[1]
[2]
...
第三章
[1]
[2]
...
我的 LaTeX 文档看起来像这样
\usepackage[style=numeric,backend=biber,refsection=chapter]{biblatex}
\addbibresource{mydocument.bib}
\begin{document}
\chapter{A}
... some text here and some \cite{} commands...
\chapter{B}
... some text here and some \cite{} commands...
\chapter{C}
... some text here and some \cite{} commands...
% This will only produce the bibliography for chapter C
% What I'd like to have here is something that will produce
% Bibliography
% Chapter A
% ...
% Chapter B
% ...
% Chapter B
% ...
\printbibliography
\end{document}
有任何想法吗?
答案1
biblatex
满足您的需求。您可以使用:
\bibbysection
文档对此的描述如下:
此命令会自动循环遍历所有参考部分。这相当于
\printbibliography
为每个部分都发出一个命令,但还有一个额外的好处,就是可以自动跳过没有参考的部分。
根据您的描述,您可能还想要选项defernumbers=true
,但是在没有可编译代码的情况下很难说更多。
为了获得每个参考书目章节的具体标题,如评论中所要求的那样,你必须详细说明:
\documentclass{book}
\usepackage[style=numeric,backend=biber,refsection=chapter,defernumbers=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\chapter{A}
\cite{herrmann}
\cite{kastenholz}
\chapter{B}
\cite{sigfridsson}
\chapter{C}
\cite{massa}
\printbibheading
\printbibliography[section=1,heading=subbibliography,title={References for chapter A}]
\printbibliography[section=2,heading=subbibliography,title={References for chapter B}]
\printbibliography[section=3,heading=subbibliography,title={References for chapter C}]
\end{document}
达到相同目的的更自动化、更简短的替代方案是(由@moewe 提供):
\documentclass{book}
\usepackage[style=numeric,backend=biber,refsection=chapter,defernumbers=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibheading{bibbysubsect}{\section*{References for Chapter \ref{blx:refsection\therefsection}}}
\begin{document}
\chapter{A}
\label{blx:refsection\therefsection}
\cite{herrmann}
\cite{kastenholz}
\chapter{B}
\label{blx:refsection\therefsection}
\cite{sigfridsson}
\chapter{C}
\label{blx:refsection\therefsection}
\cite{massa}
\printbibheading
\bibbysection[heading=bibbysubsect]
\end{document}