![Platzieren Sie eine Gruppe aus Text und Bild auf derselben exportierten PDF-Seite.](https://rvso.com/image/254697/Platzieren%20Sie%20eine%20Gruppe%20aus%20Text%20und%20Bild%20auf%20derselben%20exportierten%20PDF-Seite..png)
Ich bin neu bei Tex und diese Frage ist vielleicht nicht gut formuliert, deshalb werde ich versuchen, es besser zu erklären.
Ich schreibe ein Referenzhandbuch, das aus vielen „Blöcken“ besteht, die alle die gleiche Struktur haben: ein Textstück (vielleicht ein oder zwei kurze Absätze) und dann ein Bild (normalerweise ein Screenshot).
Ich möchte einen solchen Block so definieren können, dass beim Exportieren des Dokuments in PDF die Ausgabe auf derselben Seite erfolgt. Mir ist bewusst, dass einige Seiten halb gefüllt sein werden, wenn dieser „Block“ beginnt und nicht auf die aktuelle Seite passt. In diesen Fällen erwarte ich, dass der Block vollständig auf der nächsten Seite platziert wird.
Ich habe mit und ähnlichen Dingen herumgespielt (und viel im selben Web gesucht), aber ohne Erfolg. Offensichtlich mache ich etwas falsch oder wähle einen falschen Ansatz zur Lösung des Problems \begin{samepage}
.\begin{minipage}
Schauen Sie sich meinen Code an:
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}
Ich möchte, dass dieser gesamte Textteil (2 Absätze) und eine Abbildung immer auf derselben Seite stehen.
Kann das erreicht werden? Tatsächlich dachte ich, ich hätte es geschafft, als ich es entdeckte \begin{minipage}
! Wenn das der Fall ist, können Sie bitte einen kurzen Code aufschreiben, der zeigt, wie man es benutzt? (Denken Sie daran, ich bin ein Neuling und einige offensichtliche Dinge sind für mich im Moment nicht so offensichtlich).
Bearbeiten:Ich werde den Tipp von @Werner ausprobieren, aber ich verwende bereits einen \new-Befehl, um die gesamte zuvor geschriebene \begin{figure}-Umgebung zu verkürzen. So:
\newcommand{\figureSF}[4]{
\begin{figure}[h]
\begin{center} \includegraphics[scale={#4}]{#1} \end{center}
\caption{#2}
\label{#3}
\end{figure}
}
Der vorherige Codeabschnitt wird also zu:
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}
Da dieser neue Befehl nur 4 Parameter akzeptiert, gibt es eine einfache Möglichkeit, ihn zu ändern, um die von Ihnen beschriebene Situation zu behandeln?
Antwort1
Es scheint, als würden Sie eine Menge Text schreiben und dazwischen gibt es diese „Blöcke“, die Sie „zusammenhalten“ möchten. Da Sie derzeit bereits eine figure
Umgebung für das Bild verwenden, können Sie den Absatztext in Ihre Umgebung aufnehmen figure
. TeX ist es egal, was die Umgebung enthält – es könnte eine Tabelle, ein Bild, Text oder was auch immer sein. Hier ist ein kleines Beispiel:
\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}
Ich habe \hrulefill
über und unter dem schwebenden "Block" einen hinzugefügt, um deutlich zu machen, dass der Textinhalt mit dem Bild schwebt. Außerdem gibt es die [demo]
Möglichkeit ,graphicx
dient nur diesem Beispiel, da ich die von Ihnen erwähnten/verwendeten Bilder nicht habe.
Beachten Sie, dass alle Float-bezogenen Einschränkungen (und Vorteile!) für diese Verwendung gelten. Beispielsweise der zulässige Text-/Float-Anteil am oberen/unteren Rand einer Seite usw. Weitere Informationen hierzu finden Sie imlayouts
Paket Dokumentation(Abschnitt6 Float-Layouts, S. 21).
Zur Platzierung der Figuren sieheWie kann man die Position von Float-Umgebungen wie Abbildung und Tabelle in LaTeX beeinflussen?(UndTabellen/Abbildungen in der Nähe der Stelle platzieren, an der sie erwähnt werden).
Auch die Bündelung in einem einzigen Befehl ist möglich:
\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}