![エクスポートしたPDFページにテキストと画像のグループを配置する](https://rvso.com/image/254697/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%9FPDF%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%A8%E7%94%BB%E5%83%8F%E3%81%AE%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%82%92%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B.png)
私は Tex の初心者で、この質問はうまく書かれていないかもしれないので、もっとわかりやすく説明しようと思います。
私はリファレンス マニュアルを作成していますが、そこには、すべて同じ構造 (テキストの一部 (おそらく 1 つまたは 2 つの短い段落) と画像 (通常はスクリーンショット)) を持つ「ブロック」が多数あります。
ドキュメントを PDF にエクスポートするときに、出力が同じページに表示されるように、このようなブロックを定義できるようにしたいと思います。この「ブロック」が開始されると、現在のページに収まらず、半分しか埋められていないページがいくつかあることは承知しています。このような場合、ブロックは完全に次のページに配置されることを期待しています。
\begin{samepage}
私は、やそれに類するもの(この同じ Web でたくさん検索)を試してきました\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 段落)と 1 つの図を常に同じページに表示したいと思います。
これは実現可能でしょうか? 実際、発見したときには実現できたと思いました\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 フロートレイアウト、p 21)。
図の配置に関しては、LaTeX で図や表などのフロート環境の位置に影響を与えるにはどうすればよいでしょうか?(そして表や図を記載されている場所の近くに置く)。
これを 1 つのコマンドにまとめることも可能です。
\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}