![將一組文字和圖像放置在同一匯出的 PDF 頁面上](https://rvso.com/image/254697/%E5%B0%87%E4%B8%80%E7%B5%84%E6%96%87%E5%AD%97%E5%92%8C%E5%9C%96%E5%83%8F%E6%94%BE%E7%BD%AE%E5%9C%A8%E5%90%8C%E4%B8%80%E5%8C%AF%E5%87%BA%E7%9A%84%20PDF%20%E9%A0%81%E9%9D%A2%E4%B8%8A.png)
我是 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}