很长一段时间以来,我都在想为什么biblatex
不把作者名字排版成大写\Citeauthor
,直到最后我终于找出了问题所在:
加载软件包时showkeys
,名称“von Beethoven”将以小写形式打印,即使使用\Citeauthor
,也应将其大写打印。一旦showkeys
禁用 ,它就可以完美运行(两个软件包的加载顺序似乎无关紧要),请参见示例:
\documentclass{scrbook}
\begin{filecontents*}{mybib4.bib}
@MISC{Volkmann,
author = {Volkmann, Albert},
title = {title},
year = {2005},
}
@MISC{vonBeethoven2005,
author = {von Beethoven, Ludwig},
title = {title},
year = {2005},
}
@MISC{Caesar,
author = {Caesar, Gaius J.},
title = {title},
year = {2005},
}
\end{filecontents*}
\usepackage[color, draft]{showkeys} %Einblenden der Referenznamen in den Arbeitsversionen
\renewcommand*\showkeyslabelformat[1]{\fbox{\normalfont\tiny\ttfamily#1}}
\definecolor{refkey}{cmyk}{0.26,0,0.76,0}%{gray}{0.5}
\definecolor{labelkey}{cmyk}{0.26,0,0.76,0}%{gray}{0.5}
\definecolor{grau}{gray}{0.5}
\usepackage[natbib=true, style=numeric-comp, backend=bibtex8, defernumbers, useprefix, maxnames=99, maxcitenames=3]{biblatex} % f¸r bessere Literaturverzeichnisse
\renewcommand{\bibfont}{\normalfont\small}
\renewcommand\multicitedelim{\addsemicolon\space}
\usepackage{csquotes}
\bibliography{mybib4}
\begin{document}
citeauthor: \citeauthor{vonBeethoven2005}
Citeauthor: \Citeauthor{vonBeethoven2005}
\cite{vonBeethoven2005}
\nocite{*}
\printbibliography
\end{document}
答案1
我认为这就是showkeys
包裹. 原因如下:
showkeys
考虑在模式下构建引用draft
。它按以下顺序执行两件事:
打印与 BibTeX 条目相关的键;
author
在当前字体中排版键。
这里的顺序很重要,因为 提供了两件事。首先,密钥的构造是分层的,因此 生成的输出showkeys
可能会被常规文本部分遮挡。当您放大 MWE 时,这一点很明显:
请注意“von Beethoven”中的“B”是如何设置在键的顶部的vonBeethoven2005
。这在包装描述中有所体现showkeys
:
...打印“内部”键,而不会尽可能影响其余文本的外观......
其次,如果您首先在具有右重叠 ( ) 的零宽度框中排版键\rlap
,那么您可以排版实际的 bib 条目文本,而不必担心与后续文本的间距。再次使用上面的例子,vonBeethoven2005
设置得比“von Beethoven”更宽。
当然,缺点是 TeX 现在要求将 的首字母大写key
,而不是author
,这是不正确的。此外,key
由于 被凸起并“隐藏”在文本后面,因此在使用\Citeauthor
from时无法将其设置为易于大写的形式biblatex
。
我的建议是draft
在文档的初始阶段使用该模式,然后final
在制作的最后阶段切换到。您很可能不会看到输出更改的任何效果。