biblatex 与 showkeys 包冲突吗?

biblatex 与 showkeys 包冲突吗?

很长一段时间以来,我都在想为什么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。它按以下顺序执行两件事:

  1. 打印与 BibTeX 条目相关的键;

  2. author在当前字体中排版键。

这里的顺序很重要,因为 提供了两件事。首先,密钥的构造是分层的,因此 生成的输出showkeys可能会被常规文本部分遮挡。当您放大 MWE 时,这一点很明显:

enter image description here

请注意“von Beethoven”中的“B”是如何设置在键的顶部的vonBeethoven2005。这在包装描述中有所体现showkeys

...打印“内部”键,而不会尽可能影响其余文本的外观......

其次,如果您首先在具有右重叠 ( ) 的零宽度框中排版键\rlap,那么您可以排版实际的 bib 条目文本,而不必担心与后续文本的间距。再次使用上面的例子,vonBeethoven2005设置得比“von Beethoven”更宽。

当然,缺点是 TeX 现在要求将 的首字母大写key,而不是author,这是不正确的。此外,key由于 被凸起并“隐藏”在文本后面,因此在使用\Citeauthorfrom时无法将其设置为易于大写的形式biblatex

我的建议是draft在文档的初始阶段使用该模式,然后final在制作的最后阶段切换到。您很可能不会看到输出更改的任何效果。

相关内容