两幅图并排的标题问题

两幅图并排的标题问题

我搜索了两个小时,但一无所获。所以我希望有人能帮我解决这个问题。基本上我想将两个不同的图并排放置以节省报告中的空间。所以我不想在这里使用具有共同标题的子图。

我尝试使用 minipage 如下:

\begin{figure}[ht]
\begin{minipage}[b]{.5\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test1.png}
\caption{This is caption of test1.}
\label{fig:HOG_resolution}
\end{minipage}
\hfill
\begin{minipage}[b]{.4\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test2.png}
\caption{This caption for test 2 is longer than the caption in test1. It should spread on two lines}
\label{fig:block_overlap}
\end{minipage}
\end{figure}

我的图表显示正常,除了标题。第一个标题缺失,第二个标题显示在第一个标题的位置。 enter image description here

我的序言如下:

\documentclass[11pt]{report}

\usepackage{graphics}
\usepackage{graphicx}
\usepackage{caption}
\usepackage[caption=false]{subfig}
\usepackage{float}

\usepackage{multirow}
\restylefloat{figure}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.75cm, right=2.75cm]{geometry}

\usepackage[titles,subfigure]{tocloft}

\usepackage[bookmarks]{hyperref}

\lstnewenvironment{code}[1][]
  {\minipage{\linewidth} 
   \lstset{#1}}
  {\endminipage}

\newcommand{\myvec}[1]{\bf{#1}}
\newcommand{\mymtrx}[1]{\bf{#1}}

我也尝试过\captionof\caption你可能看到我\usepackage{caption}在序言中提到了),但它不起作用。我还使用包,subfig因为我也想并排创建子图,而且我没有遇到任何问题。

答案1

此代码演示了这个问题:

\documentclass{report}

\usepackage[demo]{graphicx}
\usepackage{float}

\restylefloat{figure}

\begin{document}

\begin{figure}[ht]
\begin{minipage}[b]{.5\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test1.png}
\caption{This is caption of test1.}
\end{minipage}
\hfill
\begin{minipage}[b]{.4\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test2.png}
\caption{This caption for test 2 is longer than the caption in test1. It should spread on two lines}
\end{minipage}
\end{figure}

\end{document}

序言的其余部分似乎没有受到牵连。

我不确定您还想要什么,但使用带星号的 \restylefloat 版本显然会告诉包不要管标题,这样您会得到两个标题而不是一个:

\documentclass{report}

\usepackage[demo]{graphicx}
\usepackage{float}

\restylefloat*{figure}

\begin{document}

\begin{figure}[ht]
\begin{minipage}[b]{.5\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test1.png}
\caption{This is caption of test1.}
\end{minipage}
\hfill
\begin{minipage}[b]{.4\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test2.png}
\caption{This caption for test 2 is longer than the caption in test1. It should spread on two lines}
\end{minipage}
\end{figure}

\end{document}

two captions

答案2

借助caption包,尝试进行更好的对齐。这里\newline根据较长标题的长度,向较短的标题添加了两个命令。

注意:但是使用 [t] 对齐可以产生相同的效果。

如果图形标题要左对齐,则只使用一个newline并添加

\captionsetup{labelsep=space,justification=justified,singlelinecheck=off}

将产生第二幅图像。(如果:想要 ,请删除labelsep=space。)

enter image description here

enter image description here

代码:

\documentclass[]{article}
\usepackage[margin=1in]{geometry}
\usepackage[demo]{graphicx}
\usepackage{caption}
\begin{document}

\begin{figure}[ht]
\begin{minipage}[b]{.45\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test1.png}
\caption{This is caption of test1.\newline\newline}
\label{fig:HOG_resolution}
\end{minipage}
\hfill
\begin{minipage}[b]{.45\textwidth}
\centering
\includegraphics[width=1\textwidth]{figs/test2.png}
\caption{This caption for test 2 is longer than the caption in test1. It should spread on two lines.}
\label{fig:block_overlap}
\end{minipage}
\end{figure}

\end{document}

答案3

cfr 的答案帮我解决了这个问题,尽管我使用了表格。我在这个问题上纠结了好长一段时间,添加\restylefloat*{table}解决了我遇到的并排表格(在两列环境中)无法渲染其中一个标题的问题。为了简洁起见,我在下面附上了表格的源代码。

\restylefloat*{table}
\begin{table*}
\parbox{.5\linewidth}{
\centering
\caption{Tabular 1.}
\label{tab:tabular1}
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
}
\hfill
\parbox{.5\linewidth}{
\centering
\caption{Tabular 2.}
\label{tab:tabular2}
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
}
\end{table*}

相关内容