[LaTeX] [解决方案] 引用子图片

前言

如题,我用subfigure做了一个子图,即(a) (b) © 三张子图片放在一张图中,我现在想引用其中一张子图,结果却显示问号,如下图。这里展示解决方案。

在这里插入图片描述

问题复现

我的子图相关的代码片段:

\begin{subfigure}{1\linewidth}
            \label{fig:xxx}
            \lstinputlisting[language=diff,linewidth={1\linewidth},frame=tb,basicstyle=\footnotesize\ttfamily]{figs/patch.list}
            \caption{xxx}
        \end{subfigure}

引用相关的代码片段:

 As shown in Figure \ref{fig:xxx}, ......

出错原因:

我花了一些时间,一开始一直没找到问题。又是各种尝试,后来通过不断的尝试,慢慢接近真相,不断抽丝剥茧,终于找到原因。原因即为:\label{fig:xxx}的位置错了!应该放在\caption{xxx}前面或者里面。 (我感觉最好是放在里面。)

解决方案

1)优化一下,在\begin{document}前加入:

\usepackage{caption, subcaption}
%以下为给引用子图添加一个括号,看着舒服点
\renewcommand\thesubfigure{(\alph{subfigure})} 
\captionsetup[sub]{
  labelformat=simple
}

2)调整位置:

\begin{subfigure}{1\linewidth}
            \lstinputlisting[language=diff,linewidth={1\linewidth},frame=tb,basicstyle=\footnotesize\ttfamily]{figs/patch.list}
            \caption{\label{fig:xxx}xxx}
        \end{subfigure}

3)重新编译,效果如下:
在这里插入图片描述

可了。

小结

以上。

参考文献

也没什么参考文献,就检索latex ref subfigure 然后各种找参考的网页,以期能够给自己提供一些对问题的思考和启发。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值