2009-11-04 11 views
8

Zmagałem się z tym. Chciałem wstawić obraz i umieścić go w pobliżu tekstu, który go omawia, ale powinien zawierać tekst na tej stronie zawijającej/płynący wokół obrazu.Jak poprawnie wstawić obraz/figurę i czy tekst "płynie dookoła" obrazu/rysunku w lateksie?

Obraz przekonwertowałem na format eps. Początkowo próbowałem użyć środowiska rysunku (\ begin {figure} ...), ale to tylko umieściło obraz u góry lub u dołu strony bez żadnego tekstu obok niego, pozostawiając dużą część strony pustą.

Zrobiłem trochę kopania w sieci i zidentyfikowałem pakiet "wrapfig", wydawało się prawdopodobne rozwiązanie, ale dostaję serię błędów, a obraz pojawia się na końcu dokumentu.

Błędy:


Package wrapfig Warning: wrapfigure used inside a conflicting environment on input line 297. 
Package wrapfig Warning: Stationary wrapfigure forced to float on input line 303. 
Package wrapfig Warning: Stationary wrapfigure forced to float on input line 306. 

Która trwa kilka wierszy.

Dziwne jest to, że jeden raz, po kompilacji, obraz pojawił się dokładnie tam, gdzie chciałem, a potem w następnym nie.

[Dodano minutę lub tak później] Kod lateksowej mam obecnie:

\begin{wrapfigure}{r}{0.2\textwidth}[h] 
    \begin{center} 
    \includegraphics[width=0.18\textwidth]{vec-perp.eps} 
    \end{center} 
    \caption{A} 
\end{wrapfigure} 

Odpowiedz

6

wrapfigure nie potrzebuje [H] specyfikator.

trzeba zawierać pakiet wrapfigure w swojej preambule:

\usepackage{wrapfig} 

następnie zawiesić połączenie wrapfigure powyższy tekst, który ma zawinąć w coś takiego:

\begin{wrapfigure}{r or l}{width/height} \centering \includegraphics[width/height]{graphic.filename} \caption{foo} \end{wrapfigure} 

realnym świecie przykład:

\begin{wrapfigure}{r}{1.5in} 
\centering 
\includegraphics[width=1.5in]{smile.jpg} 
\end{wrapfigure} 
+0

Dobra uwaga na temat [h]. Masz rację, wszystko co robiłem to umieszczenie [h] w moim dokumencie. :) – Iain

4

Właśnie przejrzałem mój dokument, komentując go w sekcjach, mając nadzieję znaleźć środowisko, na które narzekało ... w trakcie tego procesu wprowadziłem niezamierzoną pustą linię, której wcześniej nie miałem. Najwyraźniej środowisko, na które narzekało, było środowiskiem przed figurą. Nie miałem pustej linii między poprzednią częścią, która była środowiskiem itemize.

... więc to, na przykład, jest 'uszkodzony':

 

    Ingredients for the Banana-Grape Bread Recipe 
    \begin{itemize} 
     \item Bananas 
     \item Grapes 
     \item Eggs 
    \end{itemize} 
    \begin{wrapfigure}{r}{0.2\textwidth} 
     \centering 
     \includegraphics[width=0.18\textwidth]{bangrape.eps} 
     \caption{BananaGrape Bread} 
    \end{wrapfigure} 
 

I wstawienie pustego wiersza:

 

    \end{itemize} 

    \begin{wrapfigure}{r}{0.2\textwidth} 
 

czyści się moje problemy. Po drodze nauczyłem się różnych rzeczy, yay! Z drugiej strony jestem prawie pewien, że nie mam jeszcze jasnego zrozumienia środowisk. Czas na lekturę, myślę.

+0

Odpowiadając na moje własne pytanie nie jest faux pas, prawda? To trochę dziwne. – Iain

+0

Być może jedyną wadą lateksu są makro-starcia, takie jak te, z którymi się zetknąłeś. Wrapfig i środowisko enumerate/itemize nie współpracują ze sobą w ogóle. Udzielenie odpowiedzi na własne pytanie nie jest straszne, ale dzięki zamieszczonemu powyżej fragmentowi kodu jest mało prawdopodobne, aby ktokolwiek był w stanie odpowiedzieć na twoje pytanie.Dystrybucje LaTeX (TeXLive, MikTeX, itp.) Są bardzo podobne do przeglądarek internetowych i CSS, ponieważ niektóre z nich będą interpretować nieco inaczej. Jeśli kiedykolwiek trafisz na listę mailingową z lateksu, zawsze będą ci mówić, żeby zapewnić minimalne środowisko pracy, a ja ... – Mica

+0

... myślę, że byłby to doskonały pomysł również na SO. Minimalne środowisko pracy to wystarczająco dużo kodu (w tym preambuły), aby zilustrować problem, który masz. Zdarza się, że podczas konstruowania MWE rozwiążesz swój własny problem. – Mica