将文本和图像组放在同一导出的 PDF 页面上

将文本和图像组放在同一导出的 PDF 页面上

我是 Tex 的新手,这个问题可能写得不太好,所以我会尝试更好地解释它。

我正在编写一本参考手册,其中有很多“块”,它们都具有相同的结构:一段文本(可能是一两段短段落),然后是一张图片(通常是屏幕截图)。

我希望能够定义这样一个块,这样当将文档导出为 PDF 时,输出将位于同一页上。我知道当这个“块”开始时,有些页面会半满,不适合当前页面。在这些情况下,我希望将块完全放在下一页。

我一直在玩和类似的东西(在同一个网站上搜索了很多),但没有成功。显然我做错了什么,或者采取了错误的方法来解决问题\begin{samepage}\begin{minipage}

看一下我的代码:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Phasellus leo ipsum, dictum non auctor quis, euismod vitae enim. Mauris varius.

\begin{figure}[h]
  \begin{center} \includegraphics[scale={0.7}]{IMG1} \end{center}
  \caption{Image caption}
  \label{fig:IMG1}
\end{figure}

我希望这段文字(2 个段落)和一个图形始终位于同一页。

这能实现吗?事实上,当我发现时,我以为我明白了\begin{minipage}!如果是这样的话,你能写下一个简短的代码来说明如何使用它吗?(记住我是新手,有些显而易见的事情现在对我来说并不那么明显)。

编辑:我会尝试@Werner 提示,但我已经使用 \newcommand 来缩短所有先前编写的 \begin{figure} 环境。如下所示:

\newcommand{\figureSF}[4]{
  \begin{figure}[h]
    \begin{center} \includegraphics[scale={#4}]{#1} \end{center}
    \caption{#2}
\label{#3}
\end{figure}
}

因此前面的代码就变成了:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Phasellus leo ipsum, dictum non auctor quis, euismod vitae enim. Mauris varius.

\figureSF{IMG1}{Image caption}{fig:IMG1}{0.7}

由于这个新命令只接受 4 个参数,有没有简单的方法可以修改它来处理您描述的情况?

答案1

看起来你正在写一堆文本,然后在这些文本之间有一些你想要“保持在一起”的“块”。为此,鉴于你目前已经figure为图像使用了环境,你可以在其中包含段落文本figure。TeX 并不关心环境中包含什么 - 它可以是一个表格、一个图像、一些文本等等。这是一个小例子:

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\lipsum[1-2]
\begin{figure}
  \hrulefill\par
  \lipsum[3-4]
  \centering\includegraphics[scale={0.7}]{IMG1}
  \caption{Some caption}\label{fig:label1}
  \hrulefill
\end{figure}
\lipsum[5-6]
\lipsum[7-8]
\begin{figure}
  \hrulefill\par
  \lipsum[9-10]
  \centering\includegraphics[scale={0.7}]{IMG2}
  \caption{Some other caption}\label{fig:label2}
  \hrulefill
\end{figure}
\lipsum[11-12]
\end{document}​

我在浮动“块”的上方和下方添加了一个\hrulefill,以清楚地显示文本内容与图像一起浮动。此外,还[demo]可以选择graphicx只是为了这个例子,因为我没有你提到/使用的图像。

请注意,所有与浮动相关的限制(和好处!)都适用于此用法。例如,允许在页面顶部/底部放置的文本/浮动部分等。有关更多信息,请参阅layouts包裹 文档(部分6 浮动布局,第 21 页)。

关于图形放置,请参见如何影响 LaTeX 中图形和表格等浮动环境的位置?(和将表格/图片放在靠近提及的地方)。

将其捆绑到单个命令中也是可能的:

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\newcommand{\figureSF}[5]{%
  \begin{figure}[ht]
    \hrulefill\par
    #1\par\bigskip
    \centering\includegraphics[scale=#5]{#2}
    \caption{#3}\label{#4}
    \hrulefill
  \end{figure}
}
\begin{document}
\lipsum[1-2]
\figureSF{\lipsum[3-4]}{IMG1}{Some caption}{fig:label1}{0.7}
\lipsum[5-6]
\lipsum[7-8]
\figureSF{\lipsum[9-10]}{IMG2}{Some other caption}{fig:label2}{0.7}
\lipsum[11-12]
\end{document}​

相关内容