![我如何引用由两幅图像(a)和(b)组成的图片,但文件中已经包含这两幅图像?](https://linux22.com/image/459768/%E6%88%91%E5%A6%82%E4%BD%95%E5%BC%95%E7%94%A8%E7%94%B1%E4%B8%A4%E5%B9%85%E5%9B%BE%E5%83%8F%EF%BC%88a%EF%BC%89%E5%92%8C%EF%BC%88b%EF%BC%89%E7%BB%84%E6%88%90%E7%9A%84%E5%9B%BE%E7%89%87%EF%BC%8C%E4%BD%86%E6%96%87%E4%BB%B6%E4%B8%AD%E5%B7%B2%E7%BB%8F%E5%8C%85%E5%90%AB%E8%BF%99%E4%B8%A4%E5%B9%85%E5%9B%BE%E5%83%8F%EF%BC%9F.png)
我需要文档中的一张图片,其中的一个文件中已经包含两张图片。我只需要在文本中将该图引用为图 1a 和图 1b。我尝试对包装执行此操作subfig
,但图像显示了 a 和 b 标签,它们也已打印在图像文件中。
文中引用的结果很好,我想删除该\subfloat
命令产生的a和b标签。
\documentclass{article}
\usepackage{subfig}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
\subfloat[\label{sub:1}]{}
\subfloat[\label{sub:2}]{}
\caption{General caption}
\label{fig:test}
\end{figure}
\cref{sub:1,sub:2}
\end{document}
答案1
另一个解决方案是使用包的机制subcaption
。它利用了这样一个事实:真正需要的是一种适当地增加计数器subfigure
两次的方法。这样做的一种方法是发出\caption
两次语句。另一种方法——这里追求的方法是执行两次低级\refstepcounter{subfigure}
指令。由于\refstepcounter
没有产生可见的输出,因此不需要做任何特殊的事情来“隐藏”空的子标题。
\documentclass{article}
\usepackage{subcaption,cleveref}
\begin{document}
\begin{figure}[h]
\begin{subfigure}{1sp}
\refstepcounter{subfigure}\label{sub:1}
\refstepcounter{subfigure}\label{sub:2}
\end{subfigure}
\caption{General caption}
\label{fig:test}
\end{figure}
\cref{sub:1,sub:2}
\end{document}
答案2
使用subcaption
并临时将 设置labelformat
为empty
两个\subcaptionbox
es,然后通过 按原样包含图像\includegraphics
:
\documentclass{article}
\usepackage{subcaption,graphicx}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
\captionsetup[subfigure]{labelformat=empty}%
\subcaptionbox{\label{sub:1}}{}%
\subcaptionbox{\label{sub:2}}{}%
\includegraphics[width=0.5\linewidth]{example-image}
\caption{General caption}
\label{fig:test}
\end{figure}
\cref{sub:1,sub:2}
\end{document}
另一个选择是包含原始图像的剪辑版本(使用adjustbox
,例如),然后使用标准子图包来呈现它们:
\documentclass{article}
\usepackage{subcaption}
\usepackage[export]{adjustbox}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
\setbox1=\hbox{\includegraphics{example-image}}% Capture image in box 1
% Trimming is: trim=<left> <bottom> <right> <top>
% Set an appropriate value for <bottom> to trim/clip out the embedded subfigure labels (a), (b)
\subcaptionbox{\label{sub:1}}[0.5\linewidth][c]{%
\includegraphics[trim=0pt 35pt \fpeval{0.5*\wd1}pt 0pt,clip,width=0.5\linewidth]{example-image}}%
\subcaptionbox{\label{sub:2}}[0.5\linewidth][c]{%
\includegraphics[trim=\fpeval{0.5*\wd1}pt 35pt 0pt 0pt,clip,width=0.5\linewidth]{example-image}}%
\caption{General caption}
\label{fig:test}
\end{figure}
\cref{sub:1,sub:2}
\end{document}
答案3
不要使用可选命令\subfloat
\documentclass{article}
\usepackage{subfig}
\usepackage{cleveref}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\subfloat{\label{sub:1}\includegraphics[width=0.2\textwidth]{example-image-a}}\qquad
\subfloat{\label{sub:2}\includegraphics[width=0.2\textwidth]{example-image-b}}
\caption{General caption}
\label{fig:test}
\end{figure}
\cref{sub:1,sub:2}
\end{document}