使 cleveref 能够处理 makenote 旁注中的数字

使 cleveref 能够处理 makenote 旁注中的数字

我经常想在页边空白处添加一个小图来说明正文中的某个观点。

为此,我将 scrlayer-notcolumn 与 komascript 结合使用。特别是\makenote*宏,因为它非常强大,例如,如果使用 tikz 创建图像,则需要它。

我还使用了captionof标题包,以便在浮点数之外添加标题。

我正在使用 cleveref 来引用数字。

我的图片和标题显示正常。但是,当我将 放入\Cref{fig:myfig}中的标签时makenote,它不起作用,只显示??。但是普通的\ref可以正常工作

示例代码:

\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{cleveref}



\begin{document}

\section{start}

Do not forget  to consider the image in \Cref{fig:foo} or \Cref{fig:bar}.
Or more plainly Figure \ref{fig:foo} or Figure \ref{fig:bar}

\begin{minipage}{\textwidth}
    \includegraphics{dummy}
    \captionof{figure}{Here is the inline figure caption}
    \label{fig:foo}
\end{minipage}

\makenote*{
    \includegraphics{dummy}
    \captionof{figure}{Here is the side figure caption}
    \label{fig:bar}
}
\end{document}

输出(使用 pdflatex 构建 2 次之后): 输出注意??标记

答案1

scrlayer-notecolumn\label在命令之后恢复\makenote到加载包后找到的版本,这是\label-cleveref更改之前的版本 - 这样,cleveref就无法将交叉引用信息写入文件.aux,也不会存储自己的标签版本;也\cref找不到\Cref任何有用的东西来处理和显示??

一个可能的(也许是最快的)解决方案是加载scrlayer-notecolumn cleveref,使其成为少数需要最后加载的软件包之一。

\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{cleveref}
\usepackage{scrlayer-notecolumn}




\begin{document}

\section{start}

Do not forget  to consider the image in \Cref{fig:foo} or \Cref{fig:bar}.
Or more plainly Figure \ref{fig:foo} or Figure \ref{fig:bar}

\begin{minipage}{\textwidth}
    \includegraphics{dummy}
    \captionof{figure}{Here is the inline figure caption}
    \label{fig:foo}
\end{minipage}

\makenote*{
    \includegraphics{dummy}
    \captionof{figure}{Here is the side figure caption}
    \label{fig:bar}
}
\end{document}

在此处输入图片描述

相关内容