如何确保图像和内容的顺序正确?

如何确保图像和内容的顺序正确?

我有几个大图要插入到文章中,但是,跳转Content-Part-2到图的前面(代码中的Figure-1& Figure-2),而 位于 的末尾Content-Part-1。代码如下所示:

\section{Content-Part-1}
  ~Some content~

\begin{figure}[htbp]
  \centering
  \includegraphics[bb=0 0 769 607, scale=0.45]{figure/fig01.png}
  \caption{Figure-1 description}
\end{figure}

\begin{figure}[htbp]
  \centering
  \includegraphics[bb=0 0 770 569, scale=0.45]{figure/fig02.png}
  \caption{Figure-2 description}
\end{figure}

\section{Content-Part-2}
  ~Some content~

输出:

Content-Part-1
Content-Part-2
Figure-1
Figure-2

所需的一个如下:

Content-Part-1
Figure-1
Figure-2
Content-Part-2

我怎样才能使它们按正确的顺序排列(只在数字后面制作内容,而不是\newpage)?


编辑:我尝试使用hh!等,但仍然不起作用,没有任何变化。:(

顺便说一句,我给出了一个最小的工作示例这里,因为有几张图片。


梅威瑟:

\documentclass{article}
\usepackage{CJKutf8}

% Package & settings for graphic
\usepackage[pdftex]{graphicx}
\graphicspath{./figure/}
\DeclareGraphicsExtensions{.png,.jpg,.jpeg,.pdf}

\title{Title}
\author{Author names}

\begin{document}
\begin{CJK}{UTF8}{gbsn}
  \maketitle
  \bibliographystyle{unsrtnat}
  \setcitestyle{super, square, aysep={}, yysep={;}}

  \begin{abstract}
    ~abstract content~
  \end{abstract}

  \newpage
  \section{Introduction}
    通常,为了能够使用为不同业务流程设计的组件,往往会在已有的模块基础上进一步构建成大型应用。而使用面向服务的方法不仅能够规范交互性,而且在事务处理过程中提供了更大的灵活性。因此,一个面向服务的架构必须把重心放在如何描述和组织服务上,以支持动态性、自动查找和使用性。如果服务变得越来越复杂,那么基本的“请求-响应”机制就会变得难以运用了。一些中期甚至长期的服务需要一个合适的功能,以实现分别为用户和响应的服务(或者两个服务)之间建立一个异步通信。而Web的消息通知服务正满足以上这些需求。Web服务是自包含的、模块化的服务应用,它可以通过网络描述、发布、定位,以及调用。从简单的“请求-响应”处理到完整的业务流程的交互,Web服务均采用封装的事务功能。

    我们提出的服务架构所采用的新型LBS基础核心服务是基于Web服务构建的,从而克服了平台依赖性、系统封闭性,以及分布式计算环境等带来的限制。

  \section{A Section}
    开发的客户端经过在有线和无线的环境下测试。客户端平台为PDA(Microsoft WindowsCE,iPAQ5550)和WIPI手机(WIPI,SamSung X9300,Arm9,4MB)。

  \begin{figure}[htbp]
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig01.png}
    \caption{figure 01}
  \end{figure}

  \begin{figure}[htbp]
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig02.png}
    \caption{figure 02}
  \end{figure}

  \begin{figure}[htbp]
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig03.png}
    \caption{figure 03}
  \end{figure}

  \section{Conclusion}
    本论文中提出的LBS基本核心Web服务克服了平台的依赖性,同时提高了分布式计算性能。该基本核心服务不依赖服务器平台,不会因为服务器平台的不同而需重新架构。并且由于采用Web服务系统架构,客户端的开发并不会受限于编程语言。

\end{CJK}
\end{document}

答案1

如果您不希望(全部或部分)图像被视为浮动对象(这意味着您将对文档的最终布局负全部责任),则不要使用该figure环境。您可以使用minipages 和或包\captionof提供的命令为非浮动图像提供标题:captioncapt-of

\documentclass{article}
\usepackage{CJKutf8}

% Package & settings for graphic
\usepackage[demo]{graphicx}
\graphicspath{./figure/}
\DeclareGraphicsExtensions{.png,.jpg,.jpeg,.pdf}
\usepackage{caption}

\title{Title}
\author{Author names}

\begin{document}
\begin{CJK}{UTF8}{gbsn}
  \maketitle
  \bibliographystyle{unsrtnat}
  %\setcitestyle{super, square, aysep={}, yysep={;}}

  \begin{abstract}
    ~abstract content~
  \end{abstract}

  \newpage
  \section{Introduction}
    通常,为了能够使用为不同业务流程设计的组件,往往会在已有的模块基础上进一步构建成大型应用。而使用面向服务的方法不仅能够规范交互性,而且在事务处理过程中提供了更大的灵活性。因此,一个面向服务的架构必须把重心放在如何描述和组织服务上,以支持动态性、自动查找和使用性。如果服务变得越来越复杂,那么基本的“请求-响应”机制就会变得难以运用了。一些中期甚至长期的服务需要一个合适的功能,以实现分别为用户和响应的服务(或者两个服务)之间建立一个异步通信。而Web的消息通知服务正满足以上这些需求。Web服务是自包含的、模块化的服务应用,它可以通过网络描述、发布、定位,以及调用。从简单的“请求-响应”处理到完整的业务流程的交互,Web服务均采用封装的事务功能。

    我们提出的服务架构所采用的新型LBS基础核心服务是基于Web服务构建的,从而克服了平台依赖性、系统封闭性,以及分布式计算环境等带来的限制。

  \section{A Section}
    开发的客户端经过在有线和无线的环境下测试。客户端平台为PDA(Microsoft WindowsCE,iPAQ5550)和WIPI手机(WIPI,SamSung X9300,Arm9,4MB)。

  \noindent\begin{minipage}{\textwidth}
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig01.png}
    \captionof{figure}{figure 01}
  \end{minipage}

  \noindent\begin{minipage}{\textwidth}
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig02.png}
    \captionof{figure}{figure 02}
  \end{minipage}

  \noindent\begin{minipage}{\textwidth}
    \centering
    \includegraphics[bb=0 0 750 500, scale=0.45]{figure/fig03.png}
    \captionof{figure}{figure 03}
  \end{minipage}

  \section{Conclusion}
    本论文中提出的LBS基本核心Web服务克服了平台的依赖性,同时提高了分布式计算性能。该基本核心服务不依赖服务器平台,不会因为服务器平台的不同而需重新架构。并且由于采用Web服务系统架构,客户端的开发并不会受限于编程语言。

\end{CJK}
\end{document}

我使用了demo选项来graphicx使我的示例代码可供所有人编译(用黑色矩形替换实际图像);不是在实际代码中使用此选项。

答案2

LaTeX 图形/表格是浮动环境,它们可能并不总是出现在您期望的位置。如果您将所有浮动元素放置在文档中指定的位置,那么您很快就会得到页面底部有大量空白的页面(因为图形不适合那里,必须移动到下一页)。

为了解决这个问题,LaTeX 会将浮动元素离散地移动到相邻的“美观”位置。但这并不是全部,因为 LaTeX 允许您使用可选参数控制浮动元素的位置,该参数可以由tbph(或子组合)的任意组合组成。这些字母的含义如下:

  • t:尝试将浮动元素放在页面顶部;
  • b:尝试将浮动元素放在页面底部;
  • p:尝试将浮动元素放在仅具有浮动元素的页面上;
  • h:尝试将浮点数放在这里。

可选参数的默认值是tbp,LaTeX 将尝试按以下顺序使用可选参数(位置说明符)中的字母。它将使用与浮动的“合适”位置相对应的第一个字母(LaTeX 认为是合适的)。

位置说明符中的字母顺序无关紧要,但h如果指定了,LaTeX 将始终尝试先进行放置。

您可以!在字母前面添加一个,以使 LaTeX 更加努力地使用相应的放置类型。

最后,我本可以列出一些让你将浮动元素“真正地放在这儿”的软件包,但我不会这么做。在我看来,将浮动元素“真正地放在这儿”是个坏主意,因为这种做法很快就会导致输出效果不佳,你很快就会被迫编辑文档来修复这个问题,从文档维护的角度来看,这不是好事。经过一些练习,你可以让你的浮动元素在输出文档中浮动到正确的位置。

相关内容