biblatex conflict with showkeys package?

For a long time I wondered why biblatex did not typeset author names with \Citeauthor in upper case, until I finally could isolate the problem:

When the showkeys package is loaded, the name "von Beethoven" will be printed in lower case, even when using \Citeauthor, which should print it upper case. As soon as showkeys is disabled, it works perfectly well (the order of loading of both packages does not seem to matter), see example:

\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}

\usepackage{csquotes}

\bibliography{mybib4}

\begin{document}

citeauthor: \citeauthor{vonBeethoven2005}

Citeauthor: \Citeauthor{vonBeethoven2005}

\cite{vonBeethoven2005}

\nocite{*}
\printbibliography

\end{document}

-

This is what I would consider a status-by-design on the part of the showkeys package. Here's why:

Consider the construction of a citation by showkeys when in draft mode. It does two things, in the following order:

1. Prints the key associated with the BibTeX entry;

2. Typesets the author key in the current font.

The order here is important, since the provides two things. Firstly, the construction of the key is layered so that the output generated by showkeys could be partially obscured by the regular text. This is apparent when you zoom in on your MWE:

Note how the "B" of "von Beethoven" is set on top of the key vonBeethoven2005. This is captured in the showkeys package description:

... the ‘internal’ key is printed, without affecting the appearance of the rest of the text, so far as is possible ...

Secondly, if you first typeset the key in a zero-width box with a right overlap (\rlap), then you can typeset the actual bib entry text without having to worry about the spacing with regards to subsequent text. Again, using the above example, vonBeethoven2005 is set wider that "von Beethoven".

The drawback, of course, is that TeX is now asked to capitalize the first letter of the key, rather than the author, which is incorrect. Moreover, this key, since it's raised and "hidden" behind the text, is not set in a easily capitalized form when using \Citeauthor from biblatex.

My suggestion would be to use the draft mode during the initial stages of your document, and switch to final for the last phase of production. You will most likely so no effect in the output change.

-
thanks for your elaborate explanation. I don't have deep knowledge about what happens in TeX, so I'm not sure if I get this right: the reason for the missing capital V is that showkeys modifies the code of the citation and biblatex afterwards tries to capitalize the first letter of a command and not of the real author name? –  Martin Jan 7 '12 at 20:45
Concerning your suggestion: well, now as I know that this problem will be solved as soon as I deactivate showkeys, I'm sleeping much better. :-) The only drawback is: at the moment there are some "mis-spelled" Author names and during proofreading the drafts (printed with showkeys), this will confuse the readers. –  Martin Jan 7 '12 at 20:48
Yes, showkeys inserts the key before setting the actual author, making it "difficult" for TeX to capitalize via \Citeauthor. It would require rejigging in showkeys or some other showkeys accommodation within biblatex (which would require a load order preference of showkeys then biblatex, say) to correct for this. I'm not that familiar with it, so can't promise a correction. However, you could suggest this to the package author via email, unless someone else comes up with a definitive solution. –  Werner Jan 7 '12 at 23:46