我之前很少使用 LaTeX,昨晚才安装了 TeX live 2012。现在我的一个文档项目由于以下代码片段而停止编译:
\chapter{List of publications}
\begin{refsection}[Publications]
\defbibheading{empty}{%
\markboth{Publications}{Publications}
}
\printbibliography[heading=empty,maxnames=15,minnames=15]
\end{refsection}
看来maxnames
和minnames
现在已被删除printbibliography
。如何在不更改全局设置的情况下修复此问题?谢谢。
该片段是对 biblatex 的一种创新使用,用于列出我的出版物。它以前与 biblatex 1.4c 一起使用。它应该显示该特定章节的完整作者列表。
编辑:遗憾的是,我用英语很难解释我的问题。它涉及 biblatex 的复杂使用,而不是使用 maxnames 或 minnames 或 printbibliography,这些在手册中有清楚的解释。
答案1
这基本上是不可能的,可能只适用于 biblatex <2.0,因为它没有能力拥有多个\printbibliography
具有不同排序的功能。maxnames/minnames 会影响 biber 所做的许多事情,例如标签生成、排序、名称哈希等。因此,破解它\setcounter
几乎肯定不会达到你想要的效果,因为这只会影响 biblatex 方面的事情。也许如果你能给出你正在尝试做的确切事情的 MWE,我们可以看看是否可以使用可用的选项来完成。如果有未处理的用例,我愿意接受增强。
答案2
maxnames
和minnames
是文档序言的合法选项。这些选项在手册的第节中进行了描述3.1.2.1 一般规定引入了以下内容:
以下选项可在可选参数以及
\usepackage
配置文件和文档前言中使用。
允许的选项\printbibliography
在部分中列出3.6.2 参考书目。在那里你找不到该选项,maxnames
也没有minnames
。
Fazit:maxnames
并且minnames
存在,但仅存在于序言中。
黑客:你可以设置\setcounter{maxnames}{15}
和\setcounter{minnames}{15}
。
下面是一个例子(没有引用):
\documentclass{article}
\usepackage[maxnames=1,minnames=1]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtBeginBibliography{\setcounter{maxnames}{10}}
\begin{document}
\cite{companion}
\defbibheading{empty}{%
\markboth{Publications}{Publications}
}
\printbibliography[heading=empty]
\end{document}