Mam problem, gdy kwestionuje się wiele liczb. Niektóre figury mają tendencję do „latania”, to znaczy są akapitami poniżej, chociaż umieściłem je przed tym akapitem. Używam kodu:

\begin{figure}[ht] \begin{center} \advance\leftskip-3cm \advance\rightskip-3cm \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8} \caption{} \label{visina8} \end{center}\end{figure} 

do umieszczania moich figurek. Jak mogę powiedzieć lateksowi, że NAPRAWDĘ chcę, aby figura znajdowała się w tym konkretnym miejscu, bez względu na to, ile pozostanie spacji?

Komentarze

  • Uwaga dodatkowa: nie ' nie używaj center, ale polecenie \centering dla liczb. Zobacz Czy powinienem używać środkowania lub środkowania dla rysunków i tabel?
  • Aby definitywnie umieścić akapit po rysunku, użyj polecenia \FloatBarrier gdzieś pomiędzy rysunkiem a akapitem. Zmusza wszystkie figury zdefiniowane przed poleceniem do renderowania przed tym punktem w tekście. Aby użyć polecenia, musisz dodać \usepackage{placeins} w preambule. Czasami uważam to za bardzo przydatne.

Odpowiedź

Krótka odpowiedź: użyj pakietu „ float ”, a następnie [H] opcja dla twojej figury.

\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{slike/visina8} \caption{Write some caption here}\label{visina8} \end{figure} 

Dłuższa odpowiedź: Domyślnym zachowaniem liczb jest unoszenie się, aby LaTeX mógł znaleźć najlepszy sposób na ułożenie ich w dokumencie i poprawienie ich wyglądu. Jeśli spojrzysz, tak często składa się książki. Dlatego zazwyczaj najlepiej jest po prostu pozwolić LaTeXowi wykonać swoją pracę i nie próbować wymuszać umieszczania figur w określonych miejscach. Oznacza to również, że należy unikać używania wyrażeń takich jak „in the following figure: ”, co wymaga ustawienia określonej lokalizacji na rysunku i zamiast tego użyj„ in Figure~\ref{..} ”, korzystając z odsyłaczy LaTeX.

Jeśli z jakiegoś powodu naprawdę chcesz, aby jakaś konkretna figura została umieszczona „TUTAJ”, a nie tam, gdzie LaTeX chce ją umieścić, użyj [H] opcja pakietu „ float ”, która w zasadzie zamienia pływającą figurę w zwykłą niepływającą.

Zwróć też uwagę, że jeśli nie chcesz dodawać caption do swojej figury, więc nie musisz w ogóle używać środowiska figure! Możesz użyć polecenia \includegraphics w dowolnym miejscu w dokumencie, aby wstawić obraz.

Komentarze

  • dzięki za zauważenie tego! Nie ' nie wiedziałem o zmianie. H nie ' Wydaje się, że nie działa bez żadnych pakietów, ale ładuje się float. Czy H from float to to samo co !h?
  • nie , [! h] i tak jest zmieniane przez większość klas dokumentów na [! ht]. A znaczenie h jest tylko: tutaj, jeśli to możliwe, ale nie tutaj. The! pozwala LaTeX na zminimalizowanie wszystkich liczników i długości, które odnoszą się do środowisk pływających.
  • Dzięki, pracował dla mnie! Zwykle pozwalam lateksowi umieszczać go tam, gdzie chce, ale czasami po prostu potrzebuję go tam, gdzie chcę.
  • W przypadku dokumentów, które nie mają być drukowane, nie ma powodu, aby próbować zapisywać papier, więc duże obszary białych znaków nie są ' problemem. Dlatego ' znacznie lepiej jest, gdy liczba łamie tekst w najbardziej logicznym miejscu, zamiast unosić się w innym miejscu. Te niezręczne konwencje będą przebiegać tak samo jak łacina.
  • Nie ' nie sądzę, że zwykłe obawy dotyczą oszczędzania miejsca, a nie stylistycznego szukania najlepszego miejsce, gdzie umieścić figurę, tabelę itp.

Odpowiedź

rób nie użyj środowiska pływającego, jeśli nie chcesz, aby było pływające.

\usepackage{caption} ... \noindent% \begin{minipage}{\linewidth}% to keep image and caption on one page \makebox[\linewidth]{% to center the image \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{minipage} 

lub

\begin{center} \includegraphics[...]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{center} 

Komentarze

  • Cześć @Herbert – bardzo dziękuję za tę odpowiedź! Nigdy wcześniej nie rozumiałem, że \begin{figure} to środowisko pływające – podczas gdy \begin{minipage} nie ! Miałem problem z chęcią umieszczenia obrazu na dole strony z tekstem, a nawet [H] nie pomogło; tylko to! Właśnie wymieniłem minipage na figure i captionof na caption – i wreszcie dostałem to, czego chciałem !! Jeszcze raz wielkie dzięki, okrzyki!
  • Dlaczego używasz \makebox? Czy bez niego nie wygląda tak samo?
  • @Tobi: jeśli obraz nie jest większy niż \textwidth tak, w przeciwnym razie nie!\makebox wyśrodkowuje obraz niezależnie od jego szerokości
  • To było bardzo pomocne; IMHO to powinna być zaakceptowana odpowiedź, ponieważ działa bardziej zgodnie z oczekiwaniami, jak obecnie akceptowana.

Odpowiedź

Jednym z rozwiązań niewymienionych w żadnej z odpowiedzi, które właśnie mnie rozwiązały, jest użycie \clearpage

Nie są potrzebne żadne specjalne pakiety.

\clearpage wymusza wydrukowanie wszystkich cyfr nad nim w pliku .tex przed kontynuowaniem tekstu. Może to spowodować pozostawienie dużych białych przestrzeni.

Dla mnie to było najlepsze rozwiązanie, ponieważ nie musiałem zmieniać żadnego formatowania i po prostu upewniłem się, że wszystkie figury zostały wydrukowane przed kolejnym fragmentem tekstu. Mój problem był częścią dokumentu, zawierającą dużo rysunków i niewiele tekstu.

Komentarze

  • Proste i skuteczne rozwiązanie, dzięki !!

Odpowiedź

Możesz teraz użyć pakietu adjustbox, aby zamienić swoje zapakowane rzeczy w niepływający element zastępczy za pomocą nofloat=<type>. Podpis i etykietę można dodać za pomocą własnych kluczy, przed nofloat. Do wyśrodkowania można użyć klucza center. Aby dodać spację w pionie, użyj klawisza vspace. To rozwiązanie ma tę zaletę, że możesz również użyć wszystkich wielu innych funkcji adjustbox do modyfikowania treści (skalowanie min / max, kadrowanie itp.)

Zauważ, że jeśli zawartość rysunku to tylko pojedynczy obraz, możesz po prostu użyć tych samych klawiszy na \adjustbox i uzyskać jednolinijkowy. Jeśli chcesz tylko tabelaryczne, to jest klucz tabular dla {adjustbox}.

Jeśli chcesz później zmień go na prawdziwy zmiennoprzecinkowy, po prostu zmień nofloat na float i usuń klucz vspace. adjustbox umieszcza podpis na górze dla table si i na dole dla figure s. Można to zmienić za pomocą klawiszy captionbelow lub captionabove zamiast caption. Wszystkie opcje znajdziesz w instrukcji adjustox.

Jeśli nie chcesz umieszczać treści w ramkach, nadal możesz użyć pakietu adjustbox, ponieważ zawiera on {adjnofloat}{<type>}. Jest używany wewnętrznie do implementacji klucza nofloat. Użytkownicy mogą przedefiniować to środowisko, aby zmienić lub załatać zachowanie nofloat lub użyć bezpośrednio do środowiska. Środowisko używa kodu bardzo podobnego jak w odpowiedzi Herbertsa .


Przykłady użycia:

\documentclass{article} \usepackage{blindtext}% for example text here only \usepackage{adjustbox} \begin{document} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount} % maybe other stuff \includegraphics[width=\textwidth]{example-image}% example only, could also be \adjustimage % maybe other stuff \end{adjustbox} \blindtext % For simple images, a one liner is enough \adjustimage{width=\textwidth,center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount}{example-image} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} % maybe other stuff \begin{tabular}{lll} some & tabular & is\\ also & possible & with this \\ \end{tabular} % maybe other stuff \end{adjustbox} \blindtext % For just a tabular: \begin{adjustbox}{tabular=lll,center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} some & tabular & is\\ also & possible & with this \\ \end{adjustbox} \blindtext \end{document} 

Część wyniku:

tutaj wprowadź opis obrazu

Odpowiedź

Użyj [ht!], aby być bardziej z naciskiem na umieszczanie. Jeśli chcesz, aby tekst podążał za rysunkiem, zamiast zaczynać przed nim, zastosuj \usepackage{parskip} w preambule i zostaw spację przed odpowiednim tekstem.

Zatrudniam również \vspace{} lub przed środowiskiem rysunku, aby manipulować odstępem między tekstem a rysunkiem, aby uzyskać bardziej zrównoważony wygląd. W ten sposób nie mam żadnych problemów, nawet w bardziej złożonych środowiskach z wieloma figurami, w których używa się \subfigure.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *