web-dev-qa-db-ja.com

ラテックスフローティングおよびテキストラップイメージ

画像が含まれたLaTeXドキュメントがあります。セクションと4つのサブセクションがあり、後者の3つはテキストのみを含み、最初のセクションはいくつかのものを含む説明環境を持っています。

右上に画像を配置し、すべてのテキストを適切に折り返したいです。

Wrapfigパッケージは列全体を取り去り(画像の下のテキストはそこに画像がない場合でも固定幅に折り返されます)、説明環境を左マージンを超えてプッシュし、floatfltパッケージは画像を希望する場所に正確に配置しますが、テキストは折り返されません。

最初のセクションの上にfloatflt/wrapfig環境があります(この方法で最適なイメージ配置が得られます)が、他のさまざまな場所に移動しても機能しません。

画像をテキストで囲む他の方法はありますか?

失敗のいくつかの例をここで見ることができます: http://drop.io/a3dbxte

17
Daniel Huckstep

wrapfigは私が見つけた最高のものですが、wrapfigコードは、ラップ先の段落の上に配置する必要があります。

\usepackage{wrapfig}

\begin{wrapfigure} \includegraphics... \end{wrapfigure}
This is the paragraph of text you want the figure to "wrap" into... etc etc.

Wrapfigコードをラップ先の段落の下に配置すると、明らかに次の段落にラップされ、望ましくない結果が生じます。

複数列のレイアウトを使用していると思わせる '列'についても触れていますが、おそらくwrapfigではうまく機能しません。

ラテックスについて特定の質問をするときは、最小限の実用的な例、つまり、問題を再現できるように十分なプリアンブルとボディコード/テキストを含める必要があります。

編集:ああ。どういう意味かわかります。 wrapfigはオプションの行の高さ引数を取ることができます:

\begin{wrapfigure}[line-height]{r}{width} 

ここで、line-heightは正の整数です。

あなたの解決策はおそらく次のようになります:

\begin{wrapfigure}[10]{r}{2.5in}
\centering
\includegraphics[width=2in]{governator.jpg}
\end{wrapfigure}

編集#2:wrapfig/floatflt +列挙、itemize =機能しない。パッケージは互いに互換性がありません。列挙、項目化などの環境での「ラップフィギュア」効果の場合、環境をミニページに配置し、グラフィックをミニページに配置してから、2つのミニページを並べて設定する必要があります。効果のあるもの(私はそれらを表形式の環境にも入れました):

\begin{tabular}{l l}
\begin{minipage}{0.5\textwidth}
\begin{enumerate}
\item
\end{enumerate}
\end{minipage}
&
\begin{minipage}{0.5\textwidth}
\includegraphics...
\end{minipage}
\end{tabular}
27
Mica

私はまったく同じ問題を抱えていました。 Wrapfigはその下の段落を想定しているため、空の段落を指定してください!

\begin{wrapfigure}{I}{0.5\textwidth}
\includegraphics[...]{...}
\end{wrapfigure}
\paragraph{}
\vspace*{-\parskip}

これは空の段落を与えて折り返しを快適にし、コンテンツをまったく変更しません(段落の\ parskipを考慮して負のvspace *を追加しました)。

8
Ryan

実験を行いましたが、wrapfigが\sectionコマンドとリスト環境に対応できないため、サンプルが失敗しました。あなたがwrapfigの周りにたくさんのテキストを置くだけならば、それはすべてうまくいきます。 \sectionまたは\begin{description}のいずれかを使用している場合、wrapfigは絶望的に混乱します。

\parshapeコマンドの束を手動で実行することをお勧めします。

3
Norman Ramsey

Enumerate/itemize/description環境でラップフィギュアを正しく機能させるには、ミニページに配置する必要があります。ミニページの幅を\ linewidthと同じにします。これは、使用可能なスペースに対して正しく計算されます。

\begin{enumerate}
  \item First.\\
  Lots of text.
  \item Second.\\
  \begin{minipage}{\linewidth}
    \begin{wrapfigure}[3]{r}{0.4\textwidth}
      \begin{center}
        \includegraphics[width=\linewidth]{Picture}
      \end{center}
    \end{wrapfigure}
    Lots of text.
  \end{minipage}
\end{enumerate}

これで、特別なトリックを実行しなくても問題なく動作するはずです。

2
ppareit