我想在图片列表中打印我使用的图像的来源。因此我尝试将 \cite 命令添加到 \caption 的可选参数中。
这似乎工作正常,但如果所引用的来源没有在文档的其他任何地方引用(例如维基百科图像)那么它只会在图表列表中打印引用键而不是引用本身。
这是一个最小的工作示例。取消注释注释行,它将在图表列表中显示正确的引用。
我还附加了两张图片来展示这两个结果。
如果需要任何信息,请评论。
// 编辑以澄清问题
\documentclass{article}
\usepackage{filecontents}
\usepackage[demo]{graphicx}
\usepackage{url}
\usepackage[backend=biber,style=authoryear]{biblatex}
\begin{filecontents*}{test.bib}
@misc{test.2016,
author = {{Test Author}},
title = {Test Title},
year = {2016}
}
\end{filecontents*}
\addbibresource{test.bib}
\begin{document}
% Comment out the following line and it breaks
% Test content \cite{test.2016}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{testimage}
\caption[Source: \cite{test.2016}]{My Caption}
\end{figure}
\listoffigures
\end{document}
答案1
在文档biblatex
你会发现在§4.11.5浮标和 TOC/LOT/LOF 中的追踪器
如果在浮动体中给出引文(通常在图表或表格的标题中),学术反向引用(如“ibidem”)或基于页面跟踪器的反向引用将变得模棱两可,因为浮动体是(物理和逻辑上)位于文本流之外的对象,因此此类引用的逻辑不太适用于它们。为了避免任何此类歧义,所有浮动体中的引文和页面跟踪器都暂时禁用。此外,这些跟踪器以及反向引用跟踪器(
backref
)在目录、图表列表和表格列表中都暂时禁用。
显然,biblatex
它甚至更进一步:通过设置citerequest
为 false,它部分禁用了引用。如果您下次引用该项目,则这不是问题。
你可以用以下方法解决这个问题
\AtEndPreamble{%
\addtocontents{toc}{%
\booltrue{citerequest}\relax}%
\addtocontents{lof}{%
\booltrue{citerequest}\relax}%
\addtocontents{lot}{%
\booltrue{citerequest}\relax}}
请注意,如果您不希望 LOF/LOT/... 计算引用顺序,这可能会导致数字样式出现一些问题。它还可能导致其他严重依赖引用跟踪和顺序的样式出现问题。
数学家协会
\documentclass{article}
\usepackage{filecontents}
\usepackage[demo]{graphicx}
\usepackage{url}
\usepackage[backend=biber,style=authoryear]{biblatex}
\begin{filecontents*}{\jobname.bib}
@misc{test.2016,
author = {{Test Author}},
title = {Test Title},
year = {2016}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\AtEndPreamble{%
\addtocontents{toc}{%
\booltrue{citerequest}\relax}%
\addtocontents{lof}{%
\booltrue{citerequest}\relax}%
\addtocontents{lot}{%
\booltrue{citerequest}\relax}}
\begin{document}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{testimage}
\caption[Source: \cite{test.2016}]{My Caption}
\end{figure}
\listoffigures
\end{document}
给出