Mám problém, když jde o hodně čísel. Některé postavy mají tendenci „létat kolem“, tj. Být o odstavec níže, i když jsem je umístil před tento odstavec. K umisťování svých čísel používám kód:

\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} 

. Jak mohu říct latexu, že SKUTEČNĚ chci postavu na tomto konkrétním místě, bez ohledu na to, kolik mezer zbude?

Komentáře

  • Sidenote: Nepoužívejte ‚ center prostředí, ale \centering příkaz pro obrázky. Viz Mám použít vycentrování nebo centrování pro obrázky a tabulky?
  • Chcete-li definitivně umístit odstavec za obrázek, použijte příkaz \FloatBarrier někde mezi číslem a odstavcem. Vynutí všechny obrázky definované před příkazem k vykreslení před tímto bodem v textu. Chcete-li použít příkaz, budete muset do preambule přidat \usepackage{placeins}. Někdy mi to připadá velmi užitečné.

Odpověď

Krátká odpověď: použijte balíček „ float “ a poté [H] možnost pro vaši postavu.

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

Delší odpověď: Výchozí chování obrázků je float, aby LaTeX mohl najít nejlepší způsob, jak je uspořádat do dokumentu a vypadat lépe. Pokud se na to podíváte, takhle jsou knihy často vysázeny. Nejlepším řešením tedy obvykle je nechat LaTeX dělat svoji práci a nezkoušet vynucovat umisťování postav na konkrétní místa. To také znamená, že byste se měli vyhnout používání frází jako „ “, která vyžaduje, aby byl údaj nastaven na konkrétní místo, a místo toho použijte„ in Figure~\ref{..} „, přičemž využijete křížové odkazy LaTeXu.

Pokud z nějakého důvodu opravdu chcete, aby byla nějaká konkrétní figura umístěna „ZDE“, a ne tam, kam ji chce LaTeX umístit, použijte [H] možnost balíčku „ float „, která v zásadě promění plovoucí postavu v běžný neploutový.

Upozorňujeme, že pokud nechcete do své postavy přidat caption, pak prostředí figure vůbec nemusíte používat! K vložení obrázku můžete kamkoli do dokumentu použít příkaz \includegraphics.

Komentáře

  • díky za zmínku o tom! Nebyl jsem si ‚ vědom této změny. Zdá se, že H nefunguje ‚ bez balíčků, ale načítá float. Je H z float stejný jako !h?
  • ne „[! h] je u většiny tříd dokumentů stejně změněn na [! ht]. A význam h je pouze: zde, pokud je to možné, ale ne absolutně zde. The! umožňuje LaTeXu minimalizovat všechny čítače a délky, které odkazují na plovoucí prostředí.
  • děkuji, fungovalo to pro mě! Obvykle nechám latex umístit tam, kam chce, ale někdy jednoduše potřebuji to, kam chci.
  • U dokumentů, které nejsou určeny k tisku, není důvod zkoušet a ukládat papír, takže velké plochy mezer nejsou problémem ‚ ta. ‚ Je tedy mnohem lepší mít postavu rozbíjející text v nejlogičtějším bodě, než se vznášet někde jinde. Tyto nepříjemné konvence budou probíhat stejně jako latina.
  • Nemyslím si, že obvyklé obavy jsou spíše o úsporu místa než o stylistické snahy najít to nejlepší.
  • místo, kam umístit figurku, stůl atd.

Odpovědět

ne ne použijte plovoucí prostředí, pokud jej nechcete plavat.

\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} 

nebo

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

Komentáře

  • Ahoj @Herbert – za tuto odpověď MNOHO děkuji! Nikdy předtím jsem nepochopil, že \begin{figure} je plovoucí prostředí – zatímco \begin{minipage} není ! Měl jsem problém s požadavkem zahrnout obrázek na konec stránky s textem a nepomohlo ani [H]; pouze toto! Právě jsem nahradil minipage pro figure a captionof pro caption – a konečně dostal to, co jsem chtěl !! Ještě jednou děkuji, na zdraví!
  • Proč používáte \makebox? Nevypadá to bez něj stejně?
  • @Tobi: pokud obrázek není větší než \textwidth ano, jinak ne!\makebox vycentruje obrázek nezávisle na jeho šířce
  • To bylo velmi užitečné; IMHO by to měla být přijatá odpověď, protože funguje více tak, jak se očekává, jak je aktuálně přijímaná.

Odpověď

Jedno z řešení, které nezmiňuje žádná z dalších odpovědí, které mě právě vyřešily, je použití \clearpage

Nejsou potřeba žádné speciální balíčky.

\clearpage vynutí všechny obrázky nad ním v souboru .tex, které budou vytištěny, než bude pokračovat v textu. To může zanechat velká bílá místa.

Pro mě to bylo nejlepší řešení, protože jsem nemusel měnit žádné formátování a jen jsem se ujistil, že všechny obrázky byly vytištěny před dalším bitem textu. Moje otázka byla součástí dokumentu se spoustou obrázků a málo textu.

Komentáře

  • Jednoduché a efektivní řešení, díky !!

Odpověď

Nyní můžete pomocí balíčku adjustbox proměnit své zabalené věci v plovoucí náhradu za použití klíč. Titulek a štítek lze přidat pomocí vlastních klíčů před nofloat. Ke centrování lze použít klíč center. Chcete-li přidat svislý prostor, použijte klávesu vspace. Výhodou tohoto řešení je, že k úpravě obsahu můžete použít také všechny ostatní funkce adjustbox (minimální / maximální měřítko, rámování atd.)

Upozorňujeme, že pokud je obsah figury pouze jedním obrázkem, můžete použít stejné klíče na \adjustbox a získat jednorázovou linku. Pokud vše, co chcete, je tabulka, pak existuje tabular klíč pro {adjustbox}.

Pokud později budete chtít změňte jej na skutečný plovák, stačí otočit nofloat na float a odebrat klíč vspace. adjustbox umístí titulek nahoře na table s a na spodní na figure s. To lze změnit pomocí kláves captionbelow nebo captionabove namísto caption. Všechny možnosti najdete v příručce adjustox.

Pokud obsah nechcete označit rámečkem, můžete stále použít balíček adjustbox, který poskytuje {adjnofloat}{<type>} prostředí. Používá se interně k implementaci klíče nofloat. Uživatelé mohou toto prostředí předefinovat a změnit chování nofloat nebo použít prostředí přímo. Prostředí používá kód velmi podobný jako v Herbertsově odpovědi .


Příklady použití:

\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} 

Část výsledku:

zde zadejte popis obrázku

Odpověď

Chcete-li být více, použijte [ht!] důrazně na umístění. A pokud chcete, aby text sledoval obrázek, namísto začátku použijte \usepackage{parskip} ve své preambuli a před dotyčným textem ponechejte mezeru.

Zaměstnávám také \vspace{} nebo před prostředím obrázku, aby bylo možné manipulovat s prostorem mezi textem a obrázkem, aby byl vyváženější vzhled. Tímto způsobem nemám žádné problémy, a to ani ve složitějších vícefunkčních prostředích využívajících \subfigure.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *