我在一页上用 minipage 绘制了六个图形,但使用 subfloat 和 minipage 环境来满足期刊要求存在一些限制。问题是图形的顶部和底部前后留有大量空间。我能够使用来删除顶部的空间,\vspace{}
但现在底部有空间,而 latex 无法在此空间上放置文本。我该如何在此空间上放置文本。我的文章基于双栏格式。
\begin{figure*}[]
\vspace{-5.1cm}
\begin{minipage}{\columnwidth}
\centering
\subfloat[This is Fig 1]{ \label{fig:1} \includegraphics[width=\columnwidth]{1.eps} }
\subfloat[This is Fig 2]{ \label{fig:2} \includegraphics[width=6.3cm,height=4.5cm]{2.eps} }\hfill
\subfloat[This is Fig 3]{ \label{fig:3} \includegraphics[width=\columnwidth,keepaspectratio]{3.eps} }
\subfloat[This is Fig 4]{ \label{fig:4} \includegraphics[width=6.3cm,height=4.5cm]{4.eps} } \hfill
\subfloat[This is Fig 5]{ \label{fig:5} \includegraphics[width=\columnwidth]{5.eps}}
\subfloat[This is Fig 6]{ \label{fig:6} \includegraphics[width=6.3cm,height=4.5cm]{6.eps} }
\end{minipage}%
\caption[.]{Test values.}
\label{fig:test}
\end{figure*}
编辑
这是在页面顶部和底部产生空白的代码。如果我在开始图后使用 vskip,则顶部空白会被删除,但底部空白处仍不会放置文本。当使用日志模板在单独的 tex 文件上生成 MWE 时,不会显示空白。在我的文档中,我遇到了这个问题。日志的格式是双列,文档类是ccjnl
。
\documentclass{ccjnl}% Journal template Do not delete this line
\usepackage{multirow}
\begin{document}
\begin{figure*}[]
%\vspace{-5.1cm}
%\begin{minipage}{\columnwidth}
\centering
\subfloat[First]{ \label{fig:1} \includegraphics[width=\columnwidth]{figures/first.png} }
\subfloat[Second]{ \label{fig:2} \includegraphics[width=6.3cm,height=4.5cm]{figures/second.png} }\hfill
\subfloat[Third]{ \label{fig:3} \includegraphics[width=\columnwidth,keepaspectratio]{figures/third.png} }
\subfloat[Fourth]{ \label{fig:4} \includegraphics[width=6.3cm,height=4.5cm]{figures/fourth.png} } \hfill
\subfloat[Fifth]{ \label{fig:5} \includegraphics[width=\columnwidth]{figures/fifth.png}}
\subfloat[Sixth.]{ \label{fig:6}
\includegraphics[width=6.3cm,height=4.5cm]{figures/sixth.png} }
%\end{minipage}%
\caption[.]{\textcolor{red}{The caption spans in two lines. It is a double column template. using vskip after begin figure the top white space is reduced but still text not appearing in the bottom blank space}}
\label{fig:slotFreeNFree2}
\end{figure*}
The caption spans in two lines. It is a double column template. using vskip after begin figure the top white space is reduced but still text not appearing in the bottom blank space. the text goes to the next page so this extra blank space to be utilized. typesetting is not done this way.
\end{document}
答案1
由于您没有提供可以重现您的问题的 MWE(最小工作示例),因此很难说出您的问题是什么以及是什么原因造成的。
反正:
- 使用
minipage
是多余的。 - 图像宽度之和可以大于
\textwidth
,因此它们不能按所需的位置放置在页面上。 - 使用
figure*
您有两列文档,其中图形应跨越两列。它始终出现在从其插入文本点开始的下一页上。 - 在下一页中,
figure*
如果未使用位置选项,则位于页面顶部,如果它占用的页面空间少于 30%,否则它将使用整个页面。要使其位于页面顶部并带有后续文本,您需要添加到figure*
位置选项[t]
。
编辑:
- 或者在序言中插入命令
\renewcommand{\dblfloatpagefraction}{.66}
如果我假设图像的宽度相等,则以下 MWE 给出的结果没有任何不必要的空白:
(红线表示页面布局)
\documentclass[twocolumn]{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%
\usepackage{lipsum} % for dummy text
%---------------------------------------------------------------%
\usepackage[demo]{graphicx}
\usepackage{subfig}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure*}[t] % <---
\setkeys{Gin}{width=0.3\linewidth}
\subfloat[This is Fig 1 \label{fig:1}]{\includegraphics{1.eps}}\hfill%
\subfloat[This is Fig 2 \label{fig:2}]{\includegraphics[height=4.5cm]{2.eps}}\hfill%
\subfloat[This is Fig 3 \label{fig:3}]{\includegraphics[keepaspectratio]{3.eps}}
\subfloat[This is Fig 4 \label{fig:4}]{\includegraphics[height=4.5cm]{4.eps}}\hfill%
\subfloat[This is Fig 5 \label{fig:5}]{\includegraphics{5.eps}}\hfill%
\subfloat[This is Fig 6 \label{fig:6}]{\includegraphics[height=4.5cm]{6.eps}}
\caption{Test values.}
\label{fig:test}
\end{figure*}
\lipsum[2-9]
\end{document}
\end{minipage}%
\caption{Test values.}
\label{fig:test}
\end{figure*}
\end{document}
附录:
subfig
您可以使用宏来代替subfloat
包,定义在subcaption
包版本 1.3 或最新版本中定义的一样。在这种情况下,您需要在标题中插入保护标签。- 以下 MWE 不使用图形位置选项,而是
\renewcommand{\dblfloatpagefraction}{.66}
在文档序言中插入命令
\documentclass[twocolumn]{article}
\usepackage{lipsum} % for dummy text
\usepackage[demo]{graphicx}
\usepackage[skip=1ex]{subcaption}
\renewcommand{\dblfloatpagefraction}{.66} % added
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure*} % <--- no position options
\setkeys{Gin}{width=0.3\linewidth}
\subfloat[This is Fig 1 \protect\label{fig:1}]{\includegraphics{1.eps}}\hfill%
\subfloat[This is Fig 2 \protect\label{fig:2}]{\includegraphics[height=4.5cm]{2.eps}}\hfill%
\subfloat[This is Fig 3 \protect\label{fig:3}]{\includegraphics[keepaspectratio]{3.eps}}
\medskip
\subfloat[This is Fig 4 \protect\label{fig:4}]{\includegraphics[height=4.5cm]{4.eps}}\hfill%
\subfloat[This is Fig 5 \protect\label{fig:5}]{\includegraphics{5.eps}}\hfill%
\subfloat[This is Fig 6 \protect\label{fig:6}]{\includegraphics[height=4.5cm]{6.eps}}
\caption{Test values.}
\label{fig:test}
\end{figure*}
\lipsum[2-12]
\end{document}