我是 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}