当有大量图表需要处理时,我会遇到一个问题。有些图表往往会“飞来飞去”,也就是说,它们会成为下面的一个段落,尽管我把它们放在了该段落之前。我使用的代码:
\begin{figure}[ht]
\begin{center}
\advance\leftskip-3cm
\advance\rightskip-3cm
\includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}
\caption{}
\label{visina8}
\end{center}\end{figure}
放置我的图形。我怎样才能告诉 latex 我真的想要将图形放在那个特定位置,无论留下多少空白?
答案1
简短的回答是:使用 ”漂浮”包,然后[H]
为您的身材选择选项。
\usepackage{float}
...
\begin{figure}[H]
\centering
\includegraphics{slike/visina8}
\caption{Write some caption here}\label{visina8}
\end{figure}
较长的答案是:图形的默认行为是浮动,这样 LaTeX 就可以找到在文档中排列它们的最佳方式,使其看起来更好。如果你仔细观察,就会发现书籍通常都是这样排版的。因此,通常最好的做法就是让 LaTeX 完成工作,不要试图强制将图形放置在特定位置。这也意味着你应该避免使用诸如“ ”之类的短语in the following figure:
,因为这要求将图形设置在特定位置,而应该使用“ in Figure~\ref{..}
”,以利用 LaTeX 的交叉引用功能。
如果出于某种原因你真的想要将某个特定图形放置在“此处”,而不是 LaTeX 想要放置的位置,则使用[H]
“漂浮”包基本上将浮动图形变成了常规的非浮动图形。
还要注意,如果你不想在图形中添加,那么你根本caption
不需要使用环境!你可以在文档中的任何位置使用该命令插入图像。figure
\includegraphics
答案2
做不是如果您不想让它浮动,请使用浮动环境。
\usepackage{caption}
...
\noindent%
\begin{minipage}{\linewidth}% to keep image and caption on one page
\makebox[\linewidth]{% to center the image
\includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}}
\captionof{figure}{...}\label{visina8}% only if needed
\end{minipage}
或者
\begin{center}
\includegraphics[...]{slike/visina8}}
\captionof{figure}{...}\label{visina8}% only if needed
\end{center}
答案3
另一个解决方案是使用其他答案中没有提到的解决方案\clearpage
不需要任何特殊包裹。
\clearpage
.tex
强制打印文件中位于其上方的所有图形,然后再继续显示文本。这可能会留下较大的空白。
对我来说,这是最好的解决方案,因为我不需要更改任何格式,它只是确保所有数字都打印在下一段文本之前。我的问题是文档的一部分包含大量数字而文本不多。
答案4
用来[ht!]
更加强调位置。并且,如果您希望文本跟随图形,而不是在图形之前开始,请\usepackage{parskip}
在序言中使用,并在相关文本前留出空格。
我还在图形环境之前使用\vspace{}
或\vspace*{}
,以便操纵文本和图形之间的空间,从而获得更平衡的外观。这样,我就不会遇到任何麻烦,即使在使用 的更复杂的多图形环境中也是如此\subfigure
。