我正在尝试将两个 TiKz 图片并排放置在一个双列文档 (IEEEtrans 样式) 中。我研究过各种解决方案,但每个声称将图形并排放置的解决方案都只能将图一个放在另一个上方:
目前我正在尝试使用以下subfigure
环境:
\documentclass[letterpaper, 10 pt, conference]{ieeeconf}
\IEEEoverridecommandlockouts
\overrideIEEEmargins
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{algorithm}
\usepackage{algorithmic}
\newcommand{\tsc}[1]{\textsuperscript{#1}}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
decorations.pathreplacing,decorations.pathmorphing,shapes,%
matrix,shapes.symbols}
\pgfplotsset{
tick label style={font=\tiny}, %axis numbers font size
label style={font=\small}, %axis labels font size
legend style={font=\tiny}
}
\begin{figure}
\centering
\begin{subfigure}[t]{0.48\textwidth}
\centering
%\input{figs/roc_curve.tikz}
\resizebox{0.5\linewidth}{!}{\input{figs/roc.tikz}}
\caption{Caption A}
\label{fig:A}
\end{subfigure}
\begin{subfigure}[b]{0.48\textwidth}
\centering
%\input{figs/roc_curve.tikz}
\resizebox{0.5\linewidth}{!}{\input{figs/roc.tikz}}
\caption{Caption B}
\label{fig:B}
\end{subfigure}
\caption{ROC curve of failure detection;}
\label{fig:roc_curve}
\end{figure}
(...)
\end{document}
究竟是什么原因导致这些图只能垂直对齐?
答案1
您必须使用\linewidth
或\columnwidth
代替\textwidth
\begin{subfigure}[b]{0.48\textwidth}
两处均如此。\textwidth
是包括两列在内的整个文本的宽度。有关\linewidth
和的详细信息,\textwidth
请参阅对此答案。
\documentclass[letterpaper,10 pt,conference]{ieeeconf}
\usepackage{graphicx,subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[b]{0.48\linewidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-a}
\caption{Caption A}
\label{fig:A}
\end{subfigure}
\begin{subfigure}[b]{0.48\linewidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-b}
\caption{Caption B}
\label{fig:B}
\end{subfigure}
\caption{ROC curve of failure detection;}
\label{fig:roc_curve}
\end{figure}
(...)
\end{document}
我已经使用[b]
两个subfigure
s 来正确对齐它们。
答案2
如果您想将两个图形并排放置在一列上,Harish 的解决方案就是您所需要的。但是如果您想将两个图形都放置在两列上,则必须使用环境figure*
。当您使用文档时twocolumn
,figure
和table
环境与一列一样宽,而figure*
和table*
使用两列。
下一个示例显示了这些差异。第一个示例取自 Harish 的答案,第二个示例使用figure*
。
\documentclass[letterpaper,10 pt,conference]{ieeeconf}
\usepackage{graphicx,subcaption}
\usepackage{lipsum}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[b]{0.48\linewidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-a}
\caption{Caption A}
\label{fig:A}
\end{subfigure}
\begin{subfigure}[b]{0.48\linewidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-b}
\caption{Caption B}
\label{fig:B}
\end{subfigure}
\caption{ROC curve of failure detection;}
\label{fig:roc_curve}
\end{figure}
\lipsum
\begin{figure*}
\centering
\begin{subfigure}[b]{\columnwidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-a}
\caption{Caption A}
\label{fig:A}
\end{subfigure}
\hfill
\begin{subfigure}[b]{\columnwidth} %% or \columnwidth
\centering
\includegraphics[width=\linewidth]{example-image-b}
\caption{Caption B}
\label{fig:B}
\end{subfigure}
\caption{ROC curve of failure detection;}
\label{fig:roc_curve}
\end{figure*}
\lipsum
\end{document}