如何强制两个数字在 LaTeX 中保持在同一页面上?

Posted

技术标签:

【中文标题】如何强制两个数字在 LaTeX 中保持在同一页面上?【英文标题】:How to force two figures to stay on the same page in LaTeX? 【发布时间】:2010-12-19 19:17:38 【问题描述】:

我有两张图片要在页面上显示为数字。每个都占用了不到一半的可用空间,因此该页面上的任何其他内容都没有太多空间,但我知道两个数字都有足够的空间。我试图用 [ht] 和 [hb] 放置数字,同时使用 [h] 和 [ht] 但我仍然无法将这两个图像放在同一页面上,而是它们之间至少有几个段落。

如何强制这两个数字保持在同一页面上?

【问题讨论】:

最近在 TeX.SX 上提出了一个类似的问题,我相信使用 \afterpage 命令的 answer 是最好的答案。 【参考方案1】:

您可以将两个图形放在一个图形环境中。例如:

\beginfigure[p]
\centering
\includegraphicsfig1
\captionCaption 1
\includegraphicsfig2
\captionCaption 2
\endfigure

每个标题都会生成一个单独的数字编号。

【讨论】:

这是一个值得记住的好答案:)。从来没想过,但它看起来很干净:)。 另一种可能性是 subfigure 包和图形环境中的命令,例如\subfloat[Caption]\includegraphicsfile 看来你不能\标记两个不同的数字独立,虽然 更改了“正确答案”标志,因为这似乎是最好的。 @Mulone - 如果您将\label 放在\caption 环境中,您似乎可以。【参考方案2】:

如果你想拥有相同主题的图片,你可以使用subfigure 包和构造:

\beginfigure
 \subfigure[first image]\includegraphicsimage\labelfirst
 \subfigure[second image]\includegraphicsimage\labelsecond
 \captionmain caption\labelmain_label
\endfigure

例如,如果您想将两张不同的图片放在一起,您可以使用:

\beginfigure
 \beginminipage.5\textwidth
  \includegraphicsimage
  \captionfirst
 \endminipage
 \beginminipage.5\textwidth
  \includegraphicsimage
  \captionsecond
 \endminipage
\endfigure

对于列中的图像,您将在源中包含 [1] [2] [3] [4],但它看起来像

[1] [3]

[2] [4]。

【讨论】:

你也可以在这里使用 Jerred Russel 提到的构造:***.com/questions/1673942/latex-table-positioning Point is in using float package。【参考方案3】:

我在尝试混合数字和文本时遇到了这个问题。对我有用的是没有“!”的“H”选项。选项。 \beginfigure[H] 'H' 试图强制数字恰好位于您在代码中放置的位置。 这需要您包括 \usepackagefloat

选项解释here

【讨论】:

是的,float 包绝对是这里的正确答案。我经常感叹使用 !符号,就像在\beginfigure[h!] 中一样,在TeX 中也可以重写为\please,因为编译器仍然只是自己决定将图像放在哪里。这次它只是对你眨眼,而不是无视你。 float 包将确保它做你想做的事。【参考方案4】:

如果您希望它们都在同一个页面上,并且它们基本上都会占据整个页面,那么最好的办法是告诉 LaTeX 将它们都放在自己的页面上!

\beginfigure[p]

如果页面上有两个图形,而它们上方或下方只有几行文字,可能会违反合理的排版原则(例如,丑陋)。


顺便说一句,[!h] 起作用的原因是因为它告诉 LaTeX 覆盖其通常的限制,即在带有文本的页面上应该为浮动分配多少空间。如上所述,存在限制是有原因的。这并不是说它们可以有所放松。请参阅FAQ。

【讨论】:

更准确地说,[p] 只告诉编译器将它们放在只有浮动的页面上。这可能会也可能不会导致这两个图的页面分开,具体取决于它们的大小。【参考方案5】:

尝试添加!,例如[h!].

【讨论】:

不行,latex会用[ht]代替,然后继续把图放在单独的页面上。 在 Wiley 期刊模板中工作。【参考方案6】:

先尝试 [h!],否则你会以丑陋的方式做到这一点。

LateX 在放置具有此类约束的图像时有点困难,因为它自己管理放置。如果我想在那个地方有一个人物,我通常会做类似|:

text in front of image here

 \newpage 
 \figure1 
 \figure2

text after images here

我知道这可能不是正确的方法,但它就像一个魅力:)。

//编辑

如果您想在页面顶部添加一些文本,您也可以这样做,但只需使用 /clearpage。当然,您也可以将它们缩放得更小一点,这样就不会再发生了。也许看不见的空白比你想象的要大一些,我总是尝试缩小我的图像,直到它们出现在同一页面上,只是为了确定没有像 1% 的重叠只是让所有这些都不需要.

【讨论】:

谢谢,[h!] 成功了!我赞成你的回答,因为即使在这种情况下我不需要它,“丑陋的方式”似乎也是一个好东西。【参考方案7】:

尝试使用float 包,然后为您的身材使用[H] 选项。

\usepackagefloat

...

\beginfigure[H]
\centering
\includegraphicsfig1
\captionWrite some caption here\labelfig1
\endfigure

正如这个有见地的答案已经建议的那样!

https://tex.stackexchange.com/questions/8625/force-figure-placement-in-text

【讨论】:

以上是关于如何强制两个数字在 LaTeX 中保持在同一页面上?的主要内容,如果未能解决你的问题,请参考以下文章

LATEX强制放置表格图片在固定的位置

如何更改会话数据并保持在同一页面上?

React - 即使刷新了如何保持在同一页面上?

Symfony SecurityBundle:注销后如何保持在同一页面上?

Django - 如何在不刷新页面的情况下保持在同一页面上?

如何使用 Aurelia 通过单击内部锚链接保持在同一页面上?