如何对嵌套子图使用不同的编号样式?

如何对嵌套子图使用不同的编号样式?

我想显示一个演示 3 个案例的图。案例 1 和案例 2 分别使用单个图像显示。但案例 3 需要 3 幅图像。我使用了嵌套子图,如下所示:但是标题为 (a)、(b)、(d)、(e)、(f)。我想为每个案例提供标题 (a)、(b) 和 (c),并为案例 3 中的每个图像提供标题 (i)、(ii)、(iii)。这怎么可能?谢谢。

\begin{figure}[H]
\centering
\subfigure[ ]{
\includegraphics[width=110px,height=85px]
{images/case1.eps}
\label{fig:case1}
}
\subfigure[ ]{
\includegraphics[width=110px,height=85px]
{images/case2.eps}
\label{fig:case2}
}
\subfigure[]{
\subfigure[]{
\includegraphics[width=70px,height=60px]
{images/case3a.eps}}
\subfigure[]{
\includegraphics[width=70px,height=60px]
{images/case3b.eps}}
\subfigure[]{
\includegraphics[width=70px,height=60px]
{images/case3c.eps}}
}\

我也尝试添加\thesubfigure\addtocounter按照链接: 使用子标题为嵌套子图添加字幕 它为 3 个子图生成了标题 (a)、(b)、(c)。但它为案例 3 中的所有 3 个子子图都给出了 (d)。

\begin{figure}[H]
\centering
\subfigure[ ]{
\includegraphics[width=110px,height=85px]
{images/case1.eps}
\label{fig:case1}
}
\subfigure[ ]{
\includegraphics[width=110px,height=85px]
{images/case2.eps}
\label{fig:case2}
}
\subfigure[]{
\subfigure[]{
\renewcommand\thesubfigure{\alph{subfigure}1}
\includegraphics[width=70px,height=60px]
{images/case3a.eps}}
\subfigure[]{
\addtocounter{subfigure}{-1}
\renewcommand\thesubfigure{\alph{subfigure}2}
\includegraphics[width=70px,height=60px]
{images/case3b.eps}}
\subfigure[]{
\addtocounter{subfigure}{-1}
\renewcommand\thesubfigure{\alph{subfigure}3}
\includegraphics[width=70px,height=60px]
{images/case3c.eps}}
\addtocounter{subfigure}{-1}
}

答案1

您似乎使用了该subfigure包,其编号方式与链接的问题略有不同。

\documentclass{article}

\usepackage[demo]{graphicx}
\usepackage{subfigure}
\usepackage[colorlinks]{hyperref}

\begin{document}

\begin{figure}[ht]
\centering
\subfigure[ ]{
  \includegraphics[width=110px,height=85px]
  {images/case1}
  \label{fig:case1}
}
\subfigure[ ]{
  \includegraphics[width=110px,height=85px]
  {images/case2}
  \label{fig:case2}
}
\subfigure[]{
  \setcounter{subfigure}{0}
  \renewcommand\thesubfigure{(\roman{subfigure})}
  \subfigure[]{
    \includegraphics[width=70px,height=60px]
    {images/case3a}}
  \subfigure[]{
    \includegraphics[width=70px,height=60px]
    {images/case3b}}
  \subfigure[]{
    \includegraphics[width=70px,height=60px]
    {images/case3c}}
  \label{fig:case3}
}
\caption{Main Figure}\label{fig}
\end{figure}

\ref{fig}, \ref{fig:case1}, \ref{fig:case2}, \ref{fig:case3}
\end{document}

示例输出

要使所有图形都位于一行中,请注释尾随行结束。然后,您可以将前两个子图标题拉得更深,以将它们与第三个子图标题对齐。这可以通过增加来实现\subfigcapskip

\documentclass[a4paper,10pt]{article}

\usepackage[demo]{graphicx}
\usepackage{calc}
\usepackage{subfigure}
\usepackage[colorlinks]{hyperref}
\newlength{\addcapskip}%

\begin{document}

\begin{figure}[ht]
\centering
  \setlength{\addcapskip}{\subfigcapskip+9.5pt+\subfigbottomskip}%
  \addtolength{\subfigcapskip}{\addcapskip}%
  \subfigure[ ]{%
  \includegraphics[width=110px,height=85px]
  {images/case1}%
  \label{fig:case1}%
}%
\subfigure[ ]{%
  \includegraphics[width=110px,height=85px]
  {images/case2}%
  \label{fig:case2}%
}%
\addtolength{\subfigcapskip}{-\addcapskip}%
\subfigure[ ]{%
  \setcounter{subfigure}{0}%
  \renewcommand\thesubfigure{(\roman{subfigure})}%
  \subfigure[]{%
    \includegraphics[width=70px,height=60px]
    {images/case3a}}%
  \subfigure[]{%
    \includegraphics[width=70px,height=60px]
    {images/case3b}}%
  \subfigure[]{%
    \includegraphics[width=70px,height=60px]
    {images/case3c}}%
  \label{fig:case3}%
}%
\caption{Main Figure}\label{fig}
\end{figure}

\ref{fig}, \ref{fig:case1}, \ref{fig:case2}, \ref{fig:case3}
\end{document}

输出连续的数字

最后要说的是:subfigure软件包已被 软件包取代subfig ,并且两者都不再维护。目前,您的最佳选择是 软件包subcaption。因此,如果这是一个新项目,请考虑切换您的工具。

相关内容