我想在两列中排列 9 个子图(.png 文件)-第一列中有 5 个子图(a,b,c,d,e),第二列中有 4 个子图(f,g,h,i)-两列中的子图都填充相同量的垂直空间。
我目前尝试过的方法与(两个 Minipages,两次 itemize - 如何纠正对齐)。我没有使用 cmd,而是\begin{itemize}
尝试将子图堆叠在一起,如下所示:
\documentclass[journal]{IEEEtran}
\usepackage{multicol}
% *** GRAPHICS RELATED PACKAGES ***
%
\ifCLASSINFOpdf
\usepackage[pdftex]{graphicx}
% declare the path(s) where your graphic files are
\graphicspath{{images/}}
% and their extensions so you won't have to specify these with
% every instance of \includegraphics
\DeclareGraphicsExtensions{.pdf,.jpeg,.png}
% *** SUBFIGURE PACKAGES ***
\ifCLASSOPTIONcompsoc
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf{subfig}
\else
\usepackage[caption=false,font=footnotesize]{subfig}
\fi
% *** FLOAT PACKAGES ***
%
\usepackage{fixltx2e}
\begin{document}
\begin{figure*}
\begin{multicols}{2}
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(a).png}
\label{fig:a}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(b).png}
\label{fig:b}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(c).png}
\label{fig:c}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(d).png}
\label{fig:d}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(e).png}
\label{fig:e}
}
\columnbreak
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(f).png}
\label{fig:f}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(g).png}
\label{fig:g}
}
\\
\subfloat{
\includegraphics[width=0.45\textwidth]{IEEEtran/images/figure(h).png}
\label{fig:h}
}
\end{multicols}
\caption{dummy caption}
\end{figure*}
\end{document}
这似乎对单个列有效,尽管只对两个子图有效,之后第三、第四等子图会被“推”到下一列,而无需我指定。
当我像上面的代码一样添加所有 9 个子图时,编译后的文档根本不显示任何图像:
编辑:我正在使用 IEEE 为其交易期刊提供的模板。
答案1
不幸的是,您的问题没有提供一些重要信息(请参阅问题下方的评论)。您的图片似乎太大了,无法放在一页上。您需要相应地缩小它。
根据猜测,你可能正在寻找类似这样的内容:
我建议使用tabularx
而不是multicolumn
。使用它你可以更好地安排图像的位置。另外,不添加标题就给图像贴标签是没有意义的,所以我删除了它们:
\documentclass[demo]{IEEEtran}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{subfig}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{figure*}
\setkeys{Gin}{width=\linewidth,
height=0.45\linewidth,
keepaspectratio}
\begin{tabularx}{\linewidth}{@{} XX @{}}
\subfloat{\includegraphics{IEEEtran/images/figure(a).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(b).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(c).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(d).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(e).png}}
&
\subfloat{\includegraphics{IEEEtran/images/figure(f).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(g).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(h).png}}
\subfloat{\includegraphics{IEEEtran/images/figure(i).png}}
\end{tabularx}
\caption{dummy caption}
\end{figure*}
\end{document}
附录: 另一种可能性是将图像垂直居中定位在列中。在此示例中,为图像添加了子标题并为其添加了标签:
\documentclass[demo]{IEEEtran}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{subfig}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{figure*}
\renewcommand\tabularxcolumn[1]{m{#1}}
\setkeys{Gin}{width=\linewidth,
height=0.44\linewidth,
keepaspectratio}
\begin{tabularx}{\linewidth}{@{} XX @{}}
\subfloat[\label{fig:a}]{\includegraphics{IEEEtran/images/figure(a).png}}
\subfloat[\label{fig:b}]{\includegraphics{IEEEtran/images/figure(b).png}}
\subfloat[\label{fig:c}]{\includegraphics{IEEEtran/images/figure(c).png}}
\subfloat[\label{fig:d}]{\includegraphics{IEEEtran/images/figure(d).png}}
\subfloat[\label{fig:e}]{\includegraphics{IEEEtran/images/figure(e).png}}
&
\subfloat[\label{fig:f}]{\includegraphics{IEEEtran/images/figure(f).png}}
\subfloat[\label{fig:g}]{\includegraphics{IEEEtran/images/figure(g).png}}
\subfloat[\label{fig:h}]{\includegraphics{IEEEtran/images/figure(h).png}}
\subfloat[\label{fig:i}]{\includegraphics{IEEEtran/images/figure(i).png}}
\end{tabularx}
\caption{dummy caption}
\end{figure*}
\end{document}