子图编号怎么能简单的出现在左上角

发布于 2025-03-03 11:13:23
\begin{figure}[h]
    \centering
    \subfloat[]{
        \includegraphics[width=0.3\linewidth]{figures/第一章/聚焦1a.png}}
    \subfloat[]{
        \includegraphics[width=0.3\linewidth]{figures/第一章/聚焦1b.png}}
    \subfloat[]{
        \includegraphics[width=0.29\linewidth]{figures/第一章/聚焦1c.png}} 
    \caption[光纤超透镜光镊]{单模光纤顶部制造的光纤尖端透镜的示意图以及扫描电子显微镜图。}
\end{figure}

1740971203949.png

\begin{figure}[h]
    \centering
    \begin{minipage}[t]{0.33\linewidth}
    \begin{minipage}[t]{0.15\linewidth}
    \centering\vspace{-3.5\linewidth}  (a)      % 编号显示在左侧
    \end{minipage}%
    \begin{minipage}[t]{0.85\linewidth}
    \includegraphics[width=\linewidth]{figures/第一章/聚焦1a.png}
    \end{minipage}
    \end{minipage}%
    \hfill
    \begin{minipage}[t]{0.33\linewidth}
    \begin{minipage}[t]{0.15\linewidth}
    \centering \vspace{-3.5\linewidth}(b)      % 编号显示在左侧
    \end{minipage}%
    \begin{minipage}[t]{0.85\linewidth}
    \includegraphics[width=\linewidth]{figures/第一章/聚焦1b.png}
    \end{minipage}
    \end{minipage}%
    \hfill
    \begin{minipage}[t]{0.33\linewidth}
    \begin{minipage}[t]{0.15\linewidth}
    \centering\vspace{-3.5\linewidth} (c)      % 编号显示在左侧
    \end{minipage}%
    \begin{minipage}[t]{0.85\linewidth}
    \includegraphics[width=\linewidth]{figures/第一章/聚焦1c.png}
    \end{minipage}
    \end{minipage}
    \caption[光纤超透镜光镊]{单模光纤顶部制造的光纤尖端透镜的示意图以及扫描电子显微镜图。}
    \label{fig:example}
\end{figure}

1740971203949.png
我想要图二的效果,有更加简单的方法吗?必须要用\vspace{-3.5\linewidth},显得有点麻烦,如果不设置\vspace{-3.5\linewidth}c就会在图片的左下角

查看更多

关注者
0
被浏览
149
1 个回答
Sagittarius Rover
Sagittarius Rover 23小时前
我要成为Typst糕手/(ㄒoㄒ)/~~

TWO related links may be help...

https://tex.stackexchange.com/questions/225910/how-to-add-left-top-aligned-letter-to-latex-subcaption-figure

https://tex.stackexchange.com/questions/232095/how-can-i-write-a-subcaption-on-top-of-figure-using-subfigure-package-but-onl

我觉得使用floatrow以及subcaption宏包提供的类似capbesideposition={left,top}的位置控制命令会更好,但到饭点了...有缘再尝试,也建议你尝试并自答。

image.png

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}

image.png

另附MWE定义:
image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览