floatrow 包、子图和交叉引用

floatrow 包、子图和交叉引用

我认为该问题尚未被提出。

这是我的问题:

我想要一个图中有多个子图。我最初使用了“subcaption”包,因为它是最新的。但似乎无法将子标题重新定位到图旁边(而不是图下方)。为此,我不得不使用“floatrow”包,它与“subcaption”包不兼容。

但是,当我在一般图题中交叉引用子图时,显示的不是“blabla (a)”,而是“blabla 1(a)”(1 是图号)。当我在同一个图中交叉引用时,我不想要图号!

非常感谢您的帮助!

\documentclass[10pt,a4paper]{report}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{floatrow}
\usepackage{subfig}
\usepackage[english]{babel} % for table, doesn't matter here
\usepackage{setspace}

\begin{document}

\begin{figure}[h]

  \sidesubfloat[]{\includegraphics[width=\linewidth,height = 5cm,keepaspectratio]{bigpicture1}\label{fig:sub_ref_1}}
  \\[10pt] 

  \sidesubfloat[]{\includegraphics[width=\linewidth,height = 5cm,keepaspectratio]{bigpicture2}\label{fig:sub_ref_2}}
\caption{I want to cross ref. Now I can only obtain that : \ref{fig:sub_ref_1}, and that : \ref{fig:sub_ref_2} }
\label{fig:fig_1_label}

 \end{figure}

 \end{document}

编译:

答案1

解决了 !

看来我的 TeX 发行版和/或操作系统有问题。让我们看看:对我有用的方法(MacOS 10.8.3,TeXshop 3.11)

\RequirePackage{lineno}
\documentclass[10pt,a4paper]{report}
\usepackage[demo]{graphicx}
\usepackage{floatrow}
% \usepackage{caption}
\usepackage{subfig}
\usepackage[english]{babel} % for table
\usepackage{setspace}


\begin{document}

\begin{figure}[h]

  \sidesubfloat[]{ \includegraphics[width=\linewidth,height = 5cm,keepaspectratio]{bigpicture1}\label{fig:sub_ref_1} }
  \\[10pt] 

  \sidesubfloat[]{ \includegraphics[width=\linewidth,height = 5cm,keepaspectratio]{bigpicture1}\label{fig:sub_ref_2} }

  \caption{I want to cross ref. Now I can only obtain that : \protect\subref{fig:sub_ref_1}, and that : \protect\subref{fig:sub_ref_2} }
  \label{fig:fig_1_label}

\end{figure}

\end{document}

所以我不得不

  • \protect\subref{...}而不是\ref{..}
  • 别写\usepackage{caption}

该解决方案实际上是另一个问题的导数:引用主标题中的子图(使用 \subfloat 和 \subref)

:)

相关内容