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
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
. JeH
zfloat
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 nahradilminipage
profigure
– acaptionof
procaption
– 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:
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
.
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?\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é.