虚拟子图标签,不改变任何标题格式

虚拟子图标签,不改变任何标题格式

我想使用聪明人引用图形内部的面板。因此,我设计了整个图形的外部乳胶带有标签Ab,... 用于不同的面板。为此,我需要一些带标签的虚拟子图。所以我做的是:

\documentclass[prl,twocolumn]{revtex4-2}

\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{cleveref}

\begin{document}
\maketitle

See \cref{fig:1:a}

\begin{figure}
    \begin{subfigure}{\textwidth} % this 'subfigure' env. has no visible content
        \refstepcounter{subfigure}\label{fig:1:a}
        \refstepcounter{subfigure}\label{fig:1:b}
    \end{subfigure}%
    \centering
    \includegraphics[width=.5\textwidth]{example-image}
    \caption{(a) First sub caption. (b) Second sub caption. And some more text}
    \label{fig:1}
\end{figure}

\end{document}

得出(缩放):

在此处输入图片描述

但问题是副标题更改标题的格式。为了完整起见,不包含subfigure和不包含副标题标题如下所示(放大):

在此处输入图片描述

由于我不会将子标题用于除虚拟标签之外的任何其他用途,所以我根本不想更改标题的格式。

所以我的问题很简单:如何在没有副标题包裹?

答案1

选项(1)用于 \captionsetup[figure]{...}恢复正确的格式。

d

    \documentclass[prl,twocolumn]{revtex4-2}

\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{cleveref}

\captionsetup[figure]{textfont=normalfont,singlelinecheck=off,justification=raggedright}% added <<<

\usepackage{kantlipsum}
\begin{document}
    \maketitle
    
    See \cref{fig:1a}
    
    \begin{figure}[ht]
        \begin{subfigure}{\textwidth} % this 'subfigure' env. has no visible content
            \refstepcounter{subfigure}\label{fig:1a}
            \refstepcounter{subfigure}\label{fig:1b}
        \end{subfigure}%
        \centering
        \includegraphics[width=\linewidth]{example-image}% use linewidth <<<
        %\caption{(a) First sub caption. (b) Second sub caption. And some more text}
            \caption{ (\protect\subref{fig:1a}) First sub caption.  (\protect\subref{fig:1b}) Second sub caption. And some more text}
        \label{fig:1}
    \end{figure}

    \kant[1-7]
\end{document}

或者(2)subcaption可以使用来代替它。(参见示例中subfig的 的用法)\subref{..}

C

\documentclass[prl,twocolumn]{revtex4-2}

\usepackage{graphicx}
\usepackage{subfig}
\usepackage{caption}
\usepackage{cleveref}

\usepackage{kantlipsum}

\captionsetup[figure]{textfont=normalfont,singlelinecheck=off,justification=raggedright}

\begin{document}
    \maketitle
    
    See \cref{fig:1a} and  subfigure~\subref{fig:1b}.   
    \begin{figure}[ht!]
        \subfloat{\label{fig:1a}}
        \subfloat{\label{fig:1b}}
        \centering
        \includegraphics[width=\linewidth]{FigureOne.pdf}
        \caption{ \protect\subref{fig:1a} First sub caption.  \protect\subref{fig:1b} Second sub caption. And some more text}
       \label{fig:1}
    \end{figure}
    
    \kant[1-7]
\end{document}

FigureOne.pdf由此文件生成。

%%file FigureOne.tex

\documentclass[preview, border=5pt]{standalone}
\usepackage{geometry}
\usepackage{subfig}
\usepackage{graphicx}
\begin{document}
    
    \begin{figure}
    \centering
    \subfloat[][]{\includegraphics[width=0.5\textwidth]{example-image-a}}\enspace
    \subfloat[][]{\includegraphics[width=0.5\textwidth]{example-image-b}}
\end{figure}    
\end{document}

答案2

@Simon Dispa 的回答 (2) 建议使用该subfig包。事实证明它有以下选项:

\usepackage[caption=false]{subfig}

根据手册,这是我需要的:

为了与修改标题的其他软件包兼容,并且标准标题包可能会干扰所需的布局,标题包有一个特殊选项,caption=false它可以加载内部组件(即“内核”caption3 包)而不修改命令\caption

事实上,在一个真实的例子中:

\documentclass[prl,twocolumn]{revtex4-2}

\usepackage{graphicx}
\usepackage[caption=false]{subfig}
\usepackage{cleveref}

\usepackage{kantlipsum}

\begin{document}
    \maketitle

    See \cref{fig:1a} and  subfigure~\subref{fig:1b}.
    \begin{figure}[ht!]
        \subfloat{\label{fig:1a}}
        \subfloat{\label{fig:1b}}
        \centering
        \includegraphics[width=\linewidth]{example-image}
        \caption{
            \protect\subref{fig:1a} First sub caption.
            \protect\subref{fig:1b} Second sub caption.
            \kant[8]}
       \label{fig:1}
    \end{figure}

    \kant[1-7]
\end{document}

结果正如我所期望的那样: 在此处输入图片描述

确实,没有subfig格式化也是一样的: 在此处输入图片描述

相关内容