按标题和副标题构建参考书目

按标题和副标题构建参考书目

在我的参考书目中,我需要两个类别:主要来源和次要来源。第一类需要细分为手稿和已出版作品。

因此,我想我可以使用以下代码:

\printbibheading
    \printbibliography[keyword={Manuscripts}, heading=subbibliography, title={Manuscripts}]
    \printbibliography[keyword={Primary Source}, heading=subbibliography, title={Primary Sources}]
    \printbibliography[keyword={Secondary Source}, heading=subbibliography, title={Secondary Sources}]

然而,这给了我三个类别,但我希望只有两个,并且第一个被细分。换句话说,我需要这样的东西:

\printbibliography[keyword={Manuscripts},
    heading=subbibliography,
    title={Primary Sources},
    subtitle={Manuscripts}]  %% subtitle={...}

答案1

好吧,您可以执行以下操作将两个分段命令合并为一个\defbibheading

\documentclass[12pt]{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibheading{multilevel}{% 
  \section*{Primary Sources}
  \subsection*{Manuscripts}}

\begin{document}                                                             
\nocite{knuth:ct}
\printbibliography[heading=multilevel]
\end{document}

一个更完整的例子是:

\documentclass[12pt]{article}

\usepackage[backend=biber,style=authortitle]{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibheading{multilevel}{%
  \section*{Primary Sources}
  \subsection*{Manuscripts}}

\defbibheading{published}{%
  \subsection*{Published Works}}

\defbibheading{secondary}{%
  \section*{Secondary Sources}}

\DeclareBibliographyCategory{mss}
\DeclareBibliographyCategory{pri}
\DeclareBibliographyCategory{sec}

\addtocategory{mss}{knurth:ct}
\addtocategory{pri}{knuth:ct:a}
\addtocategory{sec}{knuth:ct:b}

\begin{document}

\nocite{knuth:ct,knuth:ct:a,knuth:ct:b}

\printbibliography[heading=multilevel, notcategory={pri}, notcategory={sec}]
% \printbibliography[heading=multilevel, category={mss}]
\printbibliography[heading=published,  category={pri}]
\printbibliography[heading=secondary,  category={sec}]

\end{document}

但是由于某种原因,如果您使用三个参考书目类别,它就无法正常工作,尽管如果您使用 ... 它会起作用。notcategory但是,只要您的文件条目具有适当的字段,它就可以使用三个不同的keyword(例如keyword={mss},,, )正常工作。(不幸的是,随附的只有两个类别:主要和次要。)keyword={pri}keyword={sec}.bibkeywordsbiblatex-examples.bibbiblatexkeywords

在此处输入图片描述

答案2

四年后,我终于找到了解决方案,因为我也遇到过类似的问题,但找到了更好的解决方案。Biblatex 3.5 可以稍微改进一下解决方案。摘自手册:

\defbibheading{姓名}[标题][代码}

此命令定义参考书目标题。姓名是在选择标题时传递给 \printbibliography 或 \printbibheading 和 \printbiblist 的标题选项的标识符。代码应为生成完整标题的 LaTeX 代码,包括页眉和目录中的条目(如果需要)。如果使用 title 选项调用 \printbibliography 或 \printbiblist,则标题将作为 #1 传递给标题定义。如果没有,则由可选的标题参数作为 #1 传递。标题参数通常是 \bibname、\refname 或 \biblistname(参见 § 4.9.2.1)。

好吧,这不是很清楚,但它的意思是你可以编写一个宏来生成书目标题。在上述情况下,可以执行以下操作:

\defbibheading{firstlevel}[]{%
    \section*{#1}
    \addcontentsline{toc}{section}{#1}}

\defbibheading{secondlevel}[]{%
    \subsection*{#1}
    \addcontentsline{toc}{subsection}{#1}}
(...)
    \section*{Primary Sources}
    \addcontentsline{toc}{section}{Primary Sources}
    \printbibliography[keyword=published, heading=secondlevel, title={Published Works}]
    \printbibliography[keyword=manuscripts, heading=secondlevel, title={Manuscripts}]

    \printbibliography[keyword=secondary, heading=firstlevel, title = {Secondary Sources}]

您仍然需要显式调用来创建第二部分;也许 LateX 大师可以改进代码定义以避免这种情况。但我认为这个解决方案更简洁。

答案3

我知道,我可以用这样的东西:

\printbibheading
    \section*{Primary Sources}
        \subsection*{Manuscripts}
    \printbibliography[keyword={Manuscripts}, heading=none]
        \subsection*{Published Works}
    \printbibliography[keyword={Primary Source}, heading=none]
    \section*{Secondary Sources}
    \printbibliography[keyword={Secondary Source}, heading=none]

然而,也许还有其他更优雅的解决方案。

相关内容