我想知道如何破解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*
: