'cleveref' 包和图片旁边的标题

'cleveref' 包和图片旁边的标题

我曾使用“cleveref”包处理大型文档。它包含大量 (tikz) 图形,并使用了“scrreprt”类。

\documentclass[a4paper, onecolumn, twoside, openright, titlepage, DIV=calc, BCOR=1cm, headinclude=false,footinclude=false, draft, captions=topbeside]{scrreprt}

我想将图片标题放在页面的外边距。为此,我尝试使用“floatrow”包和“captionbeside”环境。

KOMA-Script 和侧注:如何格式化侧面(边距)标题及其标题标签?

'cleveref' 之后无法再识别图形和表格的标签。我猜想这与某种改变的“标签”有关,但我找不到解决方案。

您能给我一些关于如何解决这个问题的建议吗?

基督徒。

编辑:我添加了这个例子:

\documentclass[captions=topbeside]{scrreprt}

\usepackage{graphicx}
\usepackage{cleveref}

\begin{document}
\begin{figure}[!htb]
\begin{captionbeside}{caption1}
[o]{\includegraphics[width=3cm]{example-image-a}}
\end{captionbeside}\label{fig:fig_1}
\end{figure}

\begin{figure}[!htb]
\begin{captionbeside}{caption2}
[o]{\includegraphics[width=3cm]{example-image-a}}
\end{captionbeside}\caption{caption2}\label{fig:fig_2}
\end{figure}

\begin{figure}[!htb]
\includegraphics[width=3cm]{example-image-a}
\caption{caption3}\label{fig:fig_3}
\end{figure}

\cref{fig:fig_1}, \cref{fig:fig_2}, \cref{fig:fig_3}.
\end{document}

答案1

在标题参数中设置标签对我来说是有用的:

\begin{captionbeside}
  {caption1\label{fig:fig_1}}

这是一个双面的示例,但我不确定图片和标题应该如何定位:

\documentclass
  [
    captions=topbeside,
    twoside
  ]
  {scrreprt}
%\providecommand*\Ifthispageodd{\ifthispageodd}% needed up to and including KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif

\usepackage{graphicx}
\usepackage{cleveref}

\usepackage{etoolbox}
\BeforeBeginEnvironment{captionbeside}{%
  \setcapindent*{0pt}%
  \Ifthispageodd
    {\addtokomafont{caption}{\raggedright}}
    {\addtokomafont{caption}{\raggedleft}}%
}


\usepackage{lipsum}% dummy text
%\usepackage{showframe}% shows the page layout

\begin{document}
\chapter{A chapter}
\lipsum[1]
\begin{figure}[htb]
  \setcapindent*{0pt}
  \begin{captionbeside}
    {caption1\label{fig:fig_1}}
    [o]
    [\dimexpr\textwidth+\marginparwidth+\marginparsep\relax]
    [0pt]*
    \raisebox
      {\dimexpr\ht\strutbox-\totalheight\relax}
      {\makebox
        [\textwidth]
        [c]
        {\includegraphics[width=3cm]{example-image-a}%
      }%
    }
  \end{captionbeside}
\end{figure}

\begin{figure}[!htb]
\begin{captionbeside}
  {caption2\label{fig:fig_2}}
  [o]
  \includegraphics[width=3cm]{example-image-a}
\end{captionbeside}
\end{figure}


\cref{fig:fig_1}, \cref{fig:fig_2}, \cref{fig:fig_3}.

\clearpage
\lipsum[1]
\begin{figure}[htb]
  \setcapindent*{0pt}
  \begin{captionbeside}
    {caption1\label{fig:fig_3}}
    [o]
    [\dimexpr\textwidth+\marginparwidth+\marginparsep\relax]
    [0pt]*
    \raisebox
      {\dimexpr\ht\strutbox-\totalheight\relax}
      {\makebox
        [\textwidth]
        [c]
        {\includegraphics[width=3cm]{example-image-a}%
      }%
    }
  \end{captionbeside}
\end{figure}
\end{document}

请注意\Ifthispageodd可能需要两次运行。

结果:

在此处输入图片描述

在此处输入图片描述

相关内容