我想要做的是引用subcaptions
/ subfloats
,但没有子元素。
从头开始就可以。
通常你会label
向每个想要引用的元素添加一个。例如:
\begin{figure} [h]
\subfloat[]{
\includegraphics[width=0.28\textwidth]
{example-image-a}\label{f1a}}
\subfloat[text 2]{
\includegraphics[width=0.28\textwidth]
{example-image-b}\label{f1b}}
\subfloat[]{
\includegraphics[width=0.28\textwidth]
{example-image-c}\label{f1c}}
\captionof{figure}[]{long text 1}
\label{f1all}
\end{figure}
您可以像这样引用:
See fig~\ref{f1a}, fig~\ref{f1b} and fig~\ref{f1c}.
工作正常并显示类似这样的内容(如果\usepackage{hyperref}
使用的话):
但是我遇到过这种情况,图像文件本身包含不同的“子”图像(由于各种原因无法拆分),但图像上已经有文本,如 、(a)
和(b)
。(c)
我想以与上述示例类似的方式引用它。例如,使用此代码:
\begin{figure} [h]
\subfloat{
\includegraphics[width=0.5\textwidth]
{example-image}}
\captionof{figure}[]{long text 2}
\label{f2}
\end{figure}
以及这样的引用:
See fig~\ref{f2}a, fig~\ref{f2}b and fig~\ref{f2}c.
当然,这些字母没有包含在链接框中(因为它们不在标签中\ref
),如下所示:
我现在的问题是:有没有办法将字母添加到链接文本中,这样就没有人会看到差异了?(当然链接目标应该位于图像中的任何位置[就像正常行为一样],并且任何字母都不应该有所不同。)
这是我的完整工作MWE:
\documentclass{report}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{hyperref}
\begin{document}
\begin{figure} [h]
\subfloat[]{
\includegraphics[width=0.28\textwidth]
{example-image-a}\label{f1a}}
\subfloat[text 2]{
\includegraphics[width=0.28\textwidth]
{example-image-b}\label{f1b}}
\subfloat[]{
\includegraphics[width=0.28\textwidth]
{example-image-c}\label{f1c}}
\captionof{figure}[]{long text 1}
\label{f1all}
\end{figure}
Referencing in the text like: See fig~\ref{f1a}, fig~\ref{f1b} and fig~\ref{f1c}.
\begin{figure} [h]
\subfloat{
\includegraphics[width=0.5\textwidth]
{example-image}}
\captionof{figure}[]{long text 2}
\label{f2}
\end{figure}
Referencing in the text like: See fig~\ref{f2}a, fig~\ref{f2}b and fig~\ref{f2}c.
\end{document}
答案1
使用我的第二种方法和 fakecounter,你可以用这个来创建你需要的东西:
\documentclass{report}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{hyperref}
\newcounter{fakecounter}[figure]
\renewcommand*{\thefakecounter}{\thefigure\alph{fakecounter}}
\newcommand*\sublabel[1]{\refstepcounter{fakecounter}\label{#1}}
\begin{document}
\begin{figure} [h]
\subfloat{
\includegraphics[width=0.5\textwidth]
{example-image}}
\caption[]{long text 2}
\label{f2}
\sublabel{f2a}
\sublabel{f2b}
\sublabel{f2c}
\end{figure}
Also see fig~\ref{f2a}, fig~\ref{f2b} and fig~\ref{f2c}.
\begin{figure} [h]
\subfloat{
\includegraphics[width=0.5\textwidth]
{example-image}}
\caption[]{long text 2}
\label{f3}
\sublabel{f3a}
\sublabel{f3b}
\sublabel{f3c}
\end{figure}
Also see fig~\ref{f3a}, fig~\ref{f3b} and fig~\ref{f3c}.
\end{document}