0

I am using classicthesis and I am trying to put publication titles into section titles. However, when I use \citefield or similar commands within a section command, I cannot use the same reference anymore anywhere else with citefield or citep. The reason seems to be that the section command somehow converts the BibTeX key into lower case. When I try to use citefield (or citep) anywhere else, I get the following error:

BibTeX Case mismatch error between cite keys bentley99a and Bentley99a : \citation{bentley99a

In my original project, I have a rather large .bib file where no BibTeX key is lower case, so I am trying to find a way to keep the section command from lower-casing the BibTeX key that I pass it. I tried to define a new command which I hoped would expand the publication title like this:

\newcommand\includepub[1]{%
  \edef\temptitle{\citefield{#1}{title}}
  \section{\temptitle} \label{sec:pub-#1}
  ...%
}

However, the issue still occurs when using, e.g., \includepub{Bentley99a}. How can I pass the raw publication title to the section command so that it does not use a lower-case version of the BibTeX key? Alternatively, how can I get the section command to not modify the BibTeX key that is processed?

Note for reproducing: Use the classicthesis style with all of its files, change the BibTeX key of the first publication from bentley:1999 to Bentley99a and put \section{\citefield{Bentley99a}{title}} and \citefield{Bentley99a}{title} anywhere into any of the chapters. I tried to reproduce the issue without classicthesis with several combinations of packages and options, but failed to do so, unfortunately. I can share a full MWE on Overleaf if desired.

2
  • It would be great if you could share an MWE, but please don't share an Overleaf link, make the MWE so small that you can included the code directly in the question. (classicthesis is on CTAN, so that shouldn't be an issue.)
    – moewe
    Jan 25 '20 at 14:52
  • @moewe: I tried to isolate a MWE, but did not succeed. Using only classicthesis.sty, biblatex, hyperref and all of the respective settings, the issue cannot be reproduced. At the moment, I can only reproduce it with the full classicthesis template with all of its files. Jan 25 '20 at 15:02
1

You can try to protect the entry with \NoCaseChange but be aware that this also prevent the title to be printed in lower case small caps. Imho it would be easier not to use the \citation command here and to type the title directly.

\documentclass{article}
\usepackage{classicthesis}
\usepackage{biblatex}
\addbibresource{bib.bib}

\begin{document}

\section{\protect\NoCaseChange{\citefield{Entry}{title}}}

\citefield{Entry}{title}

\end{document}

enter image description here

2
  • This works in principle, but a change of the headings is an undesired side effect. Is there any other workaround to force the expansion of the title before the section command? Jan 25 '20 at 16:20
  • 1
    No, biblatex commands are not expandable. Even without the additional problem with your uppercase entry key it wouldn't work. You would need a special font which has only lowercase letters to get this working. It is certainly less trouble to simply write the title directly. Jan 25 '20 at 16:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.