更改 subfig \subfref 格式

更改 subfig \subfref 格式

我想知道如何破解subfig才能改变的格式\subref。当前格式,当subfig用初始化时listofformat=parens会产生类似 4.5(b) 的输出。我想在 4.5 和 (b) 之间添加一个空格。

我知道文档subfig说可以定义新格式, \DeclareSubrefFormat{hkeyword valuei}{hcodei}但我还没有真正让它发挥作用。

有人能给出如何改变格式的例子吗?

答案1

该选项listofformat控制在图表/表格列表中排版子浮点数的方式以及命令生成的字符串的实际格式\subref。要更改此格式,您必须使用 声明新格式\DeclareCaptionListOfFormat,然后在 中使用此新格式\captionsetup。在命令的第二个参数中\DeclareCaptionListOfFormat#1表示浮点数,#2表示子浮点数。因此,要获取 LoF/LoT 中浮点数和子浮点数之间的空格,并且在使用 时\subref,您必须执行以下操作:

\documentclass{book}
\usepackage[demo]{graphicx}
\usepackage[lofdepth]{subfig}

\DeclareCaptionListOfFormat{myparens}{#1~(#2)}
\captionsetup[subfloat]{listofformat=myparens,listofnumwidth=4em}

\begin{document}
\listoffigures

\chapter{Test Chapter}
\section{Test Section}

\subref{fig:sub1}
\begin{figure}
  \centering
  \subfloat[Text 1 In Toc][Text 1 in document\label{fig:sub1}]{\includegraphics[width=3cm]{name1}}\qquad
  \subfloat[Text 2 In Toc][Text 2 in document\label{fig:sub2}]{\includegraphics[width=3cm]{name2}}
  \caption{test}
\end{figure}


\end{document}

以下是获得的数据列表:

在此处输入图片描述

以及文档的一个片段,显示了由以下方式产生的输出\subref

在此处输入图片描述

如果您只想更改\subref*与子浮点数关联的字符串的排版方式(请注意星号),而不影响 Lof/Lot 中的条目,则必须使用 声明新格式\DeclareSubrefFormat,然后在 中使用此格式\captionsetup。在 的第二个参数中,您\DeclareSubrefFormat可以使用#1(与浮点数关联的字符串)、#2(与子浮点数关联的字符串)、#3(浮点计数器的值)y #4(与子浮点数关联的计数器的值)。一个小例子在浮点数和子浮点数之间产生一个空格:

\documentclass{book}
\usepackage[demo]{graphicx}
\usepackage[lofdepth]{subfig}

\DeclareSubrefFormat{myparens}{#1~(#2)}
\captionsetup[subfloat]{subrefformat=myparens}

\begin{document}
\listoffigures

\chapter{Test Chapter}
\section{Test Section}

\subref*{fig:sub1}
\begin{figure}
  \centering
  \subfloat[Text 1 In Toc][Text 1 in document\label{fig:sub1}]{\includegraphics[width=3cm]{name1}}\qquad
  \subfloat[Text 2 In Toc][Text 2 in document\label{fig:sub2}]{\includegraphics[width=3cm]{name2}}
  \caption{test}
\end{figure}

\end{document}

现在 LoF 看起来像这样:

在此处输入图片描述

以及显示输出的片段\subref*

在此处输入图片描述

相关内容