TWO related links may be help...
我觉得使用floatrow
以及subcaption
宏包提供的类似capbesideposition={left,top}
的位置控制命令会更好,但到饭点了...有缘再尝试,也建议你尝试并自答。
P.S. 提问以及编辑务必使用markdown的代码块样式,不然会被吞掉\
....
还有一个小问题,提供代码应该提供完整代码以减少潜在的回答者的工作量,同时照片请使用example-image
(这是TL自带的mwe
宏包里的.pdf
图片),不然在别人电脑上无法编译你的"聚焦1c.png".
Edit 2025-03-03 15:41
我更新了一份答案,你的评论区中提到的:
貌似是和subfigrue
包冲突了?
属于可能的宏包冲突问题,你如果不提供最小工作示例,没有人能预料到你的代码又调用了什么其他宏包,你必须用一个最短的文档进行测试,试图找到冲突的宏包,不建议在长篇的论文中测试。
实际上参照这个solution,并不需要调用已经过时的subfig
宏包,你提供的信息非常有限。
\documentclass{ctexart}
\usepackage{geometry}
\usepackage{floatrow}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{hyperref}
\renewcommand\thesubfigure{\alph{subfigure}}
\begin{document}
我要索引子图AA\ref{sfig:testa}啊啊啊啊,我还要索引子图BB\ref{sfig:testb}啊啊啊啊啊,我最后还要索引子图BB\ref{sfig:testc}啊啊啊啊。我最后还要索引整个图片\ref{fig:test}啊啊啊啊。
\begin{figure}
\floatsetup[subfigure]{%
style=plain,%
heightadjust=object,%
capbesideposition={left,top},%
capbesidesep=columnsep,%
}
\ffigbox[\FBwidth]
{%
\useFCwidth%
\begin{subfloatrow}[3]%
\fcapside[\FBwidth]%
{\caption{}\label{sfig:testa}}
{\includegraphics[width=4cm]{example-image-a}}
\fcapside[\FBwidth]%
{\caption{}\label{sfig:testb}}
{\includegraphics[width=4cm]{example-image-b}}
\fcapside[\FBwidth]%
{\caption{}\label{sfig:testc}}
{\includegraphics[width=4cm]{example-image-c}}
\end{subfloatrow}%
}
{\caption{A figure with three subfigures}\label{fig:test}}
\end{figure}
\end{document}
另附MWE定义:
问 子图编号怎么能简单的出现在左上角