章节标题中的 BibTeX 键值问题

章节标题中的 BibTeX 键值问题

我正在使用classicthesis并尝试将出版物标题放入section标题中。但是,当我\citefield在命令中使用 或 类似命令时section,我无法在其他任何地方使用citefield或来使用相同的参考citep。原因似乎是该section命令以某种方式将 BibTeX 键转换为小写。当我尝试在其他地方使用citefield(或citep)时,我收到以下错误:

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

在我的原始项目中,我有一个相当大的 .bib 文件,其中没有 BibTeX 键是小写的,因此我试图找到一种方法来阻止命令将section我传递给它的 BibTeX 键小写。我试图定义一个新命令,希望它能够像这样扩展出版物标题:

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

但是,使用时仍会出现此问题,例如\includepub{Bentley99a}。如何将原始出版物标题传递给section命令,以便它不使用 BibTeX 键的小写版本?或者,如何让命令section不修改处理的 BibTeX 键?

重现注意事项:使用该classicthesis样式及其所有文件,将第一个出版物的 BibTeX 键从 更改为 ,bentley:1999并将Bentley99a\section{\citefield{Bentley99a}{title}}放入\citefield{Bentley99a}{title}任何章节的任意位置。我尝试classicthesis使用几种软件包和选项组合重现该问题,但不幸的是失败了。如果需要,我可以在 Overleaf 上分享完整的 MWE。

答案1

您可以尝试使用 来保护条目,\NoCaseChange但请注意,这也会阻止以小写字母打印标题。我认为,在这里不使用 \citation 命令并直接输入标题会更容易。

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

\begin{document}

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

\citefield{Entry}{title}

\end{document}

在此处输入图片描述

相关内容