我在 2x2 矩阵中有 4 个子图,其中左侧的图是宽度不同的图例,右侧的图是宽度相等的图。我希望第一列的图左对齐,右侧的图居中。
我正在使用 Memoir 类。这是 MWE:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\begin{figure}
\centering
\subbottom[]{%
\includegraphics[width=0.5\linewidth]{example-image-a}}
\subbottom[Fig. B]{%
\includegraphics[width=0.4\linewidth]{example-image-b}}
\subbottom[]{%
\includegraphics[width=0.3\linewidth]{example-image-a}}
\subbottom[Fig. B]{%
\includegraphics[width=0.4\linewidth]{example-image-b}}
\caption{Left-align the `A's and center the `B's}
\end{figure}
\end{document}
奖金: 删除标签 (a) 和 (c),并将标签 (b) 和 (d) 分别重新编号为 (a) 和 (c)。
另外一个选择将在图形环境中使用 minipages,但如果我这样做,图形将重新编号。这种情况的 MWE:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\begin{figure}
\centering
\begin{minipage}{\linewidth}
\begin{minipage}{0.3\linewidth}
\includegraphics[width=0.5\linewidth]{example-image-a}
\end{minipage}
\begin{minipage}{0.6\linewidth}
\includegraphics[width=0.4\linewidth]{example-image-b}
\end{minipage}
\caption{This is a very very very long caption for figure 1}
\vspace*{5mm}
\begin{minipage}{0.3\linewidth}
\includegraphics[width=0.3\linewidth]{example-image-a}
\end{minipage}
\begin{minipage}{0.6\linewidth}
\includegraphics[width=0.4\linewidth]{example-image-b}
\end{minipage}
\caption{This is a very very very long caption for figure 2}
\end{minipage}
\caption{Outer caption}
\end{figure}
\end{document}
看看它们是如何而不是Figure 0.3(a)
和的Figure 0.3(b)
,它们被编号为独立的图形而不是子图。
请告诉我如何解决这个问题。
谢谢,卡维
答案1
楼主可能不感兴趣,因为这是一个老问题了。不过我也遇到过同样的问题,所以我必须找到解决办法。
原始发帖者所建议的解决方案{minipage}
在一定程度上是可行的,我们可以删除子标签 (a) 和 (c),将第一列数字左对齐,并将第二列数字居中。MWE:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\begin{figure}
\centering
\begin{minipage}{.5\linewidth}
\includegraphics[width=\linewidth]{example-image-a}
\includegraphics[width=0.6\linewidth]{example-image-a}
\end{minipage}\hfill
\begin{minipage}{.4\linewidth}
\centering
\subbottom[Fig. B]{%
\includegraphics[width=\linewidth]{example-image-b}}
\subbottom[]{%
\includegraphics[width=\linewidth]{example-image-b}}
\end{minipage}
\caption{Left-align the `A's and center the `B's}
\end{figure}
\end{document}
但是 A 和 B 不是垂直对齐的......
为了获得 OP 想要的第一行和第二行 v 居中、第一列左对齐和第二列居中的对齐,我们可以使用环境{tabular}
以及valign
引入的选项ajustbox
:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage[export]{adjustbox}% http://ctan.org/pkg/graphicx
\newsubfloat{figure}% Allow subfloats in figure environment
\begin{document}
\begin{figure}
\centering
\begin{tabular}{lc}
\includegraphics[width=.5\linewidth,valign=c]{example-image-a} &\subbottom[Fig. B]{%
\includegraphics[width=.4\linewidth,valign=c]{example-image-b}}\\
\includegraphics[width=0.3\linewidth,valign=c]{example-image-a} &\subbottom[]{%
\includegraphics[width=.4\linewidth,valign=c]{example-image-b}}\\
\end{tabular}
\caption{Left-align the `A's and center the `B's}
\end{figure}
\end{document}