如何仅更改子标题的编号样式

如何仅更改子标题的编号样式

这个问题与更改标题的计数器样式。但这里我也想使用子字幕。

我想为字幕创建我的风格。\DeclareCaptionFormat有三个选项。从第 29 页字幕包文档

\DeclareCaptionFormat{myStyle}{#1 #2 #3}

#1 表示标题标签,#2 表示分隔符,#3 表示文本。那么为什么子图没有被分隔,而是包含在 #2 中呢?

以下是 MWE:

\documentclass{beamer}

\usepackage[persian]{babel}
\usepackage[compatibility=false]{caption}

\setbeamertemplate{caption}[numbered]

%\DeclareCaptionLabelFormat{rlnumber}{#1 \LR{#2}\bothIfSecond{-}{\roman{ContinuedFloat}}}
\DeclareCaptionLabelFormat{rlnumber}{#1 \LR{#2}\bothIfSecond{-}{\arabic{ContinuedFloat}}}

\captionsetup{labelformat=rlnumber}

\setmainfont[Script=Arabic]{XB Zar}
\setsansfont[Script=Arabic,Numbers=Arabic]{XB Zar}

\begin{document}

\begin{frame}
    \setcounter{figure}{9}
    \begin{figure}\ContinuedFloat*
        \caption{شکل \LR{1-10}}
    \end{figure}
    \begin{figure}\ContinuedFloat
        \caption{شکل \LR{2-10}}
    \end{figure}

    \begin{figure}
        \caption{شکل \LR{11}}
    \end{figure}

    \begin{figure}
        \caption{شکل \LR{12}}
    \end{figure}

\end{frame}

\end{document}

有两种方法可以解决这个问题。第一种方法是,如果我能声明不要使用0子标题,那么一切都会解决。第二种方法是将子标题和标题分开。

当然,如果我不使用 counterstyle\arabic并将其替换为\roman一切就可以了

子字幕-RL

另一个英语的 MWE,在文章类中从左到右:

\documentclass{article} 
    \usepackage{caption} 
    \DeclareCaptionLabelFormat{rlnumber}{#1 \bf{#2}\bothIfSecond{-}{\arabic{ContinuedFloat}}}
        \captionsetup{labelformat=rlnumber}   
\begin{document}
        \setcounter{figure}{9}

        \begin{figure}\ContinuedFloat*
            \caption{I want it to be Figure 10-\bf{1}}
        \end{figure}

        \begin{figure}\ContinuedFloat
            \caption{I want it to be Figure 10-\huge{2}}
        \end{figure}

        \begin{figure}
            \caption{I want it to be Figure 11}
        \end{figure}

        \begin{figure}
            \caption{I want it to be Figure 12}
        \end{figure} 
\end{document}

答案1

如果您想要为连续浮点数设置不同的样式,请使用其自己的格式进行设置:

\documentclass{article}
    \usepackage{caption}
    \DeclareCaptionLabelFormat{rlnumber}{#1 \bf{#2}}
    \DeclareCaptionLabelFormat{continued}{#1 #2-\arabic{ContinuedFloat}}
    \captionsetup{labelformat=rlnumber}
    \captionsetup[ContinuedFloat]{labelformat=continued}
\begin{document}
        \setcounter{figure}{9}

        \begin{figure}\ContinuedFloat*
            \caption{I want it to be Figure 10-\bf{1}}
        \end{figure}

        \begin{figure}\ContinuedFloat
            \caption{I want it to be Figure 10-\huge{2}}
        \end{figure}

        \begin{figure}
            \caption{I want it to be Figure 11}
        \end{figure}

        \begin{figure}
            \caption{I want it to be Figure 12}
        \end{figure}
\end{document}

答案2

现在,您正在更改文档中所有标题的标题格式。 在您的情况下,\captionsetup[subfigure]{}\captionsetup[sub]{}不起作用,因为它们适用于真正的子图,而不是连续的浮点数(56 秒后,我[ContinuedFloat]从上面的 Ulrike 的回答中找到了它 :-))。 因此,我只需在每次出现时添加标题重新定义\ContinuedFloat。 如果您没有太多这样的情况,这可能是可行的。

% arara: pdflatex

\documentclass{article} 
\usepackage{caption} 
\DeclareCaptionLabelFormat{first}{#1 #2\bothIfSecond{-}{\textbf{\arabic{ContinuedFloat}}}}
\DeclareCaptionLabelFormat{continued}{#1 #2-\huge\arabic{ContinuedFloat}}
\begin{document}
    \setcounter{figure}{9}

    \begin{figure}\ContinuedFloat*
        \captionsetup{labelformat=first}   
        \caption{I want it to be Figure 10-\textbf{1}}
    \end{figure}

    \begin{figure}\ContinuedFloat
        \captionsetup{labelformat=continued}
        \caption{I want it to be Figure 10-\huge{2}}
    \end{figure}

    \begin{figure}
        \caption{I want it to be Figure 11}
    \end{figure}

    \begin{figure}
        \caption{I want it to be Figure 12}
    \end{figure} 
\end{document}

相关内容