
У меня есть среда подрисунков, использующая пакет floatrow, и я хотел бы ссылаться на каждый рисунок на панели по отдельности в своем абзаце следующим образом:
рисунок (3а) и рисунок (3б), но почему-то не работает, когда я вызываю команду \subref
.
мой полный код:
\documentclass[12pt,reqno]{report}
\begin{document}
\usepackage{graphicx}
\usepackage{floatrow}
\floatsetup[figure]{subcapbesideposition=top}
\usepackage{graphicx}
\usepackage[label font=bf,
labelformat=simple]{subfig}
\usepackage{caption}
\begin{figure}[H]
\renewcommand\thesubfigure{\Alph{subfigure}}
\setlength{\labelsep}{2mm}
\centering
\sidesubfloat[ \label{fig:mHCN2_dime}]%
{
\includegraphics[width=0.4\textwidth]{figs/Fig_edited_figure_A_in_panel.png}\label{fig:a}%
}
\hfill
\sidesubfloat[ \label{fig:non-swapped_mHCN2}]%
{
\includegraphics[width=0.4\textwidth]{figs/mHCN2_cAMP_hidden_rotated_90_non-swapped_packing.png}\label{fig:a}%
}
\caption{Structure of the channel tetramer in the ligand-free state, viewed parallel to the membrane (A) or from the extracellular side (B). Each subunit is shown in a different color. Gray bars represent approximate boundaries of the membrane bilayer.}
\label{fig:mHCN2}
\end{figure}
\end{document}
решение1
Это обеспечивает subcaption
совместимую версию \sidesubfloat
.
Сложность в том, что подпись (даже \captiontext
) всегда заполняет отведенное ей пространство, поэтому нам нужно сначала измерить необходимое пространство, имитируя его.
\documentclass[12pt]{report}
\usepackage{graphicx}
\usepackage{subcaption}
\newcommand{\sidesubfloat}[2][\empty]% #1 = caption and \label (optional}, #2 image
{\begin{subcaptiongroup}
\refstepcounter{subfigure}% get width of caption
\sbox0{(\thesubfigure)~#1~}% assumed format
\addtocounter{subfigure}{-1}%
\sbox1{#2}% get width of image
\dimen0=\dimexpr \linewidth-\wd1\relax
\ifdim\dimen0>\wd0
\dimen0=\wd0
\fi
\setbox2=\vbox{\hsize=\dimen0\caption{#1}}%
\raisebox{\dimexpr \abovecaptionskip+\ht1-\ht2}[\ht1]{\usebox2}#2
\end{subcaptiongroup}}
\begin{document}
\begin{figure}[ht]
\renewcommand\thesubfigure{\Alph{subfigure}}
\setlength{\labelsep}{2mm}
\centering
\sidesubfloat[ \label{fig:mHCN2_dime}]%
{
\includegraphics[width=0.4\textwidth]{example-image-a}\label{fig:a}%
}
\hfill
\sidesubfloat[ \label{fig:non-swapped_mHCN2}]%
{
\includegraphics[width=0.4\textwidth]{example-image-b}\label{fig:b}%
}
\caption{Structure of the channel tetramer in the ligand-free state, viewed parallel to the membrane (A) or from the extracellular side (B). Each subunit is shown in a different color. Gray bars represent approximate boundaries of the membrane bilayer.}
\label{fig:mHCN2}
\end{figure}
\subref{fig:mHCN2_dime} \subref{fig:a}
\subref{fig:non-swapped_mHCN2} \subref{fig:b}
\ref{fig:mHCN2_dime} \ref{fig:a}
\ref{fig:non-swapped_mHCN2} \ref{fig:b}
\end{document}
решение2
Используйте \ref{fig:a}
and \ref{fig:b}
(отсутствует в вашем коде).
\documentclass[12pt]{report}
\usepackage{floatrow}
\floatsetup[figure]{subcapbesideposition=top}
\usepackage{graphicx}
\usepackage[label font=bf, labelformat=simple]{subfig}
\usepackage{caption}
\begin{document}
\begin{figure}[H]
\renewcommand\thesubfigure{\Alph{subfigure}}
\setlength{\labelsep}{2mm}
\centering
\sidesubfloat[ \label{fig:mHCN2_dime}]%
{
\includegraphics[width=0.4\textwidth]{example-image-a}\label{fig:a}%
}
\hfill
\sidesubfloat[ \label{fig:non-swapped_mHCN2}]%
{
\includegraphics[width=0.4\textwidth]{example-image-b}\label{fig:b}%
}
\caption{Structure of the channel tetramer in the ligand-free state, viewed parallel to the membrane (A) or from the extracellular side (B). Each subunit is shown in a different color. Gray bars represent approximate boundaries of the membrane bilayer.}
\label{fig:mHCN2}
\end{figure}
See subfigures~\ref{fig:a} and \ref{fig:b}.
\end{document}