子图参考布局

子图参考布局

我有以下工作示例

\documentclass{article}
\usepackage[subrefformat=parens,labelformat=parens]{subfig}

\begin{document}

\textbf{Error} This should say Fig. 1\textbf{a}, not \ref{sf1}

\begin{figure}
\centering
\subfloat[Subfig 1]{\label{sf1} Contents of the sub-figure}
\qquad
\subfloat[Subfig 2]{\label{sf2} Contents of the sub-figure}
\caption{\textbf{Error} This should only say \textbf{b}, not \ref{sf2}}
\label{fig}
\end{figure}
\end{document}

基本上我的问题就在上面的 MWE 中进行了说明。

  1. 当我在图片标题中引用子图时,我希望它只引用粗体
  2. 当我引用图形标题之外的子图时,我希望它引用图形编号+粗体

答案1

  1. 您可以使用命令\subref代替\ref。请注意,命令subref很脆弱,因此您必须在内部进行保护caption或使命令变得坚固。

  2. 使用\subref*


\documentclass{article}
\usepackage[labelformat=parens]{subfig}
\DeclareSubrefFormat{subbold}{#1\textbf{#2}}%for \subref*
\DeclareCaptionListOfFormat{subbold}{\textbf{#2}}%for subref
\captionsetup[subfloat]{labelfont={bf},listofformat=subbold,subrefformat=subbold}
\usepackage{etoolbox}
\robustify\subref
\begin{document}

\textbf{Error} This should say Fig. 1\textbf{a}, not \subref*{sf1}

\begin{figure}[!ht]
\centering
\subfloat[Subfig 1]{\label{sf1} Contents of the sub-figure}
\qquad
\subfloat[Subfig 2]{\label{sf2} Contents of the sub-figure}
\caption{\textbf{Error} This should only say \textbf{b}, not \subref{sf2}}
\label{fig}
\end{figure}
\end{document}

在此处输入图片描述

相关内容