【问题标题】:Is there a way to get LaTeX to place figures in the same page as a reference to that figure?有没有办法让 LaTeX 将图形放在同一页面中作为对该图形的引用?
【发布时间】:2010-10-01 17:12:05
【问题描述】:

我正在使用 LaTeX 和 figure 环境。

我非常熟悉该环境的参数:[htbp],并且我通常也熟悉 LaTeX 默认采用的策略来决定每个图形的放置位置。例如,将图形放在页面的顶部或底部。

我想知道是否有我可以提供的包、宏或一些命令,这样如果我有一个单列文档并且我主要有一个对图的文本引用,那么该图是否更有可能被放置在参考文献的同一页中?

例如,假设我有一个很长的段落,中间有一个 \ref{FIG:X}。渲染时,一些段落出现在分页符之前,而一些出现在分页符之后。我还可以将 figure 命令放置在整个段落之前和之后的某个位置。有没有办法让它实际放置在与实际参考相同的页面中?

【问题讨论】:

标签: latex figures


【解决方案1】:

我不想听起来消极,但有时如果没有大量“人为”调整分页符,您想要的几乎是不可能的。

如果标注自然落在页面底部附近,而图形落在下一页上,则将图形向后移动一页可能会使标注向前移动。

我会建议(尽可能,并取决于数字的确切大小):

  • 用 [t] (或 [h] 如果必须的话)放置数字
  • 将数字尽可能靠近“正确”的位置([t] 和 [h] 不同)
  • 使用 \input 包含来自不同文件的数字,这将使您在进行最终调整时更容易移动它们

根据我的经验,这会占用大量非可用时间 (:-)


在回复 Jon 的评论时,我认为这是一个固有的难题,因为 LaTeX 的人并不懒散。您可能喜欢阅读Frank Mittelbach's paper

【讨论】:

  • 我同意。因此,我想知道是否有办法自动执行此操作。如果我想手动修改我的论文的格式并获得可怕的结果,我会使用 Word :)
  • 很高兴知道我们并不孤单。另一方面,我无法确定这是否是一个固有的难题,或者浮动算法是否设计不当。我的猜测是后者。 :-(
  • @Uri:是的。不过,我并不是真的提议修修补补;只是当文档准备好发布以调整图形和标注的相对位置时的最后一次传递。你可以用 LaTeX 做到这一点并期待好的结果,而 Word 会打破你。
  • @Jon: ~"disparating" - 不要对自己太苛刻。在一个 99% 的东西都是垃圾的世界里,这是一个合理的猜测,尽管可能并不完全知情。
【解决方案2】:

是的,将 float 包包含在文档顶部,并将 H(大写 H)作为数字说明符:

\usepackage{float}

\begin{figure}[H]
.
.
.
\end{figure}

【讨论】:

    【解决方案3】:

    您可以随时添加“!”进入您的浮动选项。这样,latex 会非常努力地将图形放置在您想要的位置(我主要使用 [h!tb]),从而扩展了正常的排版规则。

    我找到了另一个解决方案:
    使用float-包。通过这种方式,您可以将人物放置在希望它们出现的位置。

    【讨论】:

      【解决方案4】:

      我通过始终在浮动(例如数字)上使用[h] 选项来解决这个问题,这样它们(大部分)就可以放在我放置它们的地方。然后当我查看最终草稿时,我通过在 LaTeX 源中移动它来调整浮动的位置。通常这意味着在引用它的段落周围移动它。有时我需要在适当的位置添加分页符。

      我发现在 LaTeX 中浮动的默认位置是合理的,但几乎总是需要手动调整才能使这样的事情恰到好处。 (有时,当有大量的花车和脚注时,不可能每件事都是完美的。)

      memoir 类的manual 有一些关于 LaTeX 如何放置浮点数的好信息以及一些关于操作算法的建议。

      【讨论】:

      • [h] 的问题是它经常被忽略,并且它没有考虑上下文(例如参考)位置。我经常会遇到这样一种情况,即把它放在段落之后或之后总是把它放在与参考不同的行中......
      • 是的。我倾向于对最终草案(通常更早)进行相当多的修改,以获得我想要的表格和数字。所以我不是自动放置算法的忠实拥护者,[h] 是我所知道的避免它移动东西的最好方法。但是,我不倾向于拥有大型文档。
      • 衷心赞同你提到的“回忆录”
      【解决方案5】:

      如果你想在你的所有人物上强制这种行为尝试

      ...
      \usepackage{float}
      \floatplacement{figure}{H}
      ...
      

      【讨论】:

        【解决方案6】:

        也许这会对你有所帮助?

        \begin{center}
        \includegraphics[scale=0.5]{picture_name}
        \end{center}    
        

        我认为当你的人物跑掉时最好使用图形命令。

        【讨论】:

          【解决方案7】:

          我有一些有用的 cmets。因为我对人物的位置有类似的问题。 我使用了包“wrapfig”,它可以让数字被文本包裹起来。 类似的东西

          ...
          \usepackage{wrapfig}
          \usepackage{graphicx}
          ...
          \begin{wrapfigure}{r}{53pt}
          \includegraphics[width=53pt]{cone.pdf}
          \end{wrapfigure}
          

          在选项中{r} 表示从右侧放置图形。 {l} 可用于左侧。

          【讨论】:

            【解决方案8】:
            \setcounter{topnumber}{2}
            \setcounter{bottomnumber}{2}
            \setcounter{totalnumber}{4}
            \renewcommand{\topfraction}{0.85}
            \renewcommand{\bottomfraction}{0.85}
            \renewcommand{\textfraction}{0.15}
            \renewcommand{\floatpagefraction}{0.7}
            

            http://robjhyndman.com/researchtips/latex-floats/

            【讨论】:

              【解决方案9】:

              我发现对此有帮助的一种方法是使用\include{file_with_tex_figure_commands}

              不是输入)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2010-10-27
                • 1970-01-01
                • 1970-01-01
                • 2012-03-09
                • 1970-01-01
                • 2021-10-21
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多