我有 2 个地块,每个地块又有 4 个地块,我按照 MWE 中所示进行标记。代码已修改(关联),使得图题为:
图 1:(a)-(d) XYZ 和 (e)-(h) PQR
但这样做会使正文中的子图引用混乱。我只得到子图标签(即 a、b、...h),而没有图号。如何获取多个子引用而不影响其他子引用?
平均能量损失
\documentclass{article}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage[subrefformat=parens,labelformat=parens]{subfig}
\usepackage{cleveref}
\makeatletter
\renewcommand\p@subfigure{} % no figure-number prefixes in cross-refs to subfigures
\makeatother
\crefformat{subfigure}{(#2#1#3)}
\crefrangeformat{subfigure}{(#3#1#4)--(#5#2#6)}
\begin{document}
\lipsum[1]
\begin{figure}
\centering
\subfloat{\label{fig_top_1}}\subfloat{\label{fig_top_2}}
\subfloat{\label{fig_top_3}}\subfloat{\label{fig_top_4}}
\includegraphics[width=70mm,height=30mm]{example-image-a}
\subfloat{\label{fig_bot_1}}\subfloat{\label{fig_bot_2}}
\subfloat{\label{fig_bot_3}}\subfloat{\label{fig_bot_4}}
\includegraphics[width=70mm,height=30mm]{example-image-b}
\caption{\cref{fig_top_1,fig_top_2,fig_top_3,fig_top_4} XYZ and
\crefrange{fig_bot_1}{fig_bot_4} PQR}
\label{fig_top_bot}
\end{figure}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris \cref{fig_bot_3}. Nam arcu libero, nonummy eget, consectetuer id,
vulputate a, magna. Donec vehicula augue eu neque Fig.~\ref{fig_bot_3}. Pellentesque
habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas
Fig.~\subref*{fig_bot_3}.
\end{document}
如果我注释以下语句,它就可以正常工作。但我需要该图的多个子引用才能正常工作。
\makeatletter
\renewcommand\p@subfigure{} % no figure-number prefixes in cross-refs to subfigures
\makeatother
\crefformat{subfigure}{(#2#1#3)}
\crefrangeformat{subfigure}{(#3#1#4)--(#5#2#6)}
输出
输出(注释语句)
答案1
我可以做到这一点,但不能使用 cleveref。
\subref{name}
AUX 文件显示和使用的替代定义 \subref*{name}
也可以通过\ref{sub@name}
和 来访问\pageref{sub@name}
。也许更熟悉 cleveref 的人可以让它与这些引用一起工作。
\documentclass{article}
\usepackage{lipsum}
\usepackage{graphicx}
%\usepackage{cleveref}
\usepackage{hyperref}
\usepackage[subrefformat=parens,labelformat=parens]{subfig}
\begin{document}
\listoffigures
\begin{figure}
\centering
\subfloat{\label{fig_top_1}\strut}\subfloat{\label{fig_top_2}\strut}
\subfloat{\label{fig_top_3}\strut}\subfloat{\label{fig_top_4}\strut}
\includegraphics[width=70mm,height=30mm]{example-image-a}
\subfloat{\label{fig_bot_1}\strut}\subfloat{\label{fig_bot_2}\strut}
\subfloat{\label{fig_bot_3}\strut}\subfloat{\label{fig_bot_4}\strut}
\includegraphics[width=70mm,height=30mm]{example-image-b}
\caption[\ref*{sub@fig_top_1}--\ref*{sub@fig_top_4} XYZ and
\ref*{sub@fig_bot_1}--\ref*{sub@fig_bot_4} PQR]%
{\subref{fig_top_1}--\subref{fig_top_4} XYZ and
\subref{fig_bot_1}--\subref{fig_bot_4} PQR}
\label{fig_top_bot}
\end{figure}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris \subref{fig_bot_3}. Nam arcu libero, nonummy eget, consectetuer id,
vulputate a, magna. Donec vehicula augue eu neque Fig.~\ref{fig_bot_3}. Pellentesque
habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas
Fig.~\subref*{fig_bot_3}.
\end{document}