Problémám van, amikor sok ábra kérdéses. Néhány ábra hajlamos “körbejárni”, vagyis lenni egy bekezdéssel lejjebb, bár ezeket a bekezdés elé helyeztem. Az ábráim elhelyezéséhez kódot használok:
\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}
. Hogyan mondhatom el a latexnek, hogy TÉNYLEG azt a helyet akarom, hogy az alak legyen, függetlenül attól, hogy mennyi szóköz marad?
Megjegyzések
Válasz
A rövid válasz: használja a „ float ” csomagot, majd a [H]
opció az ábrádhoz.
\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{slike/visina8} \caption{Write some caption here}\label{visina8} \end{figure}
A hosszabb válasz: Az ábrák alapértelmezett viselkedése az lebegés, hogy a LaTeX megtalálja a legjobb módot a dokumentum elrendezésére és jobb megjelenésére. Ha megnézi, a könyveket gyakran így szedik. Tehát általában a legjobb dolog az, ha hagyod, hogy a LaTeX elvégezze a munkáját, és ne próbáld meg erőltetni az alakok elhelyezését bizonyos helyeken. Ez azt is jelenti, hogy kerülni kell az olyan kifejezések használatát, mint a „in the following figure:
”, amely megköveteli, hogy az ábra megadjon egy meghatározott helyet, és ehelyett használja a„ in Figure~\ref{..}
“szót, kihasználva a LaTeX kereszthivatkozásait.
Ha valamilyen okból valóban azt akarja, hogy egy adott alakot „ITT” helyezzen el, és ne oda, ahova a LaTeX fel akarja tenni, akkor használja a [H]
a „ float ” csomag opciója, amely alapvetően az úszó alakot szokásos nem lebegővé változtatja.
Ne feledje, hogy ha Ne akarjon caption
-t hozzáadni az alakjához, akkor egyáltalán nem kell használni a figure
környezetet! Kép beszúrásához használhatja a \includegraphics
parancsot a dokumentum bármely pontján.
Megjegyzések
- köszönöm amiért ezt tudomásul vette! Nem voltam ‘ tudatában a változásnak. Úgy tűnik, hogy a
H
nem ‘ csomagok nélkül működik, de afloat
betöltésével működik. AH
afloat
-ből megegyezik a!h
-vel? - nem A [! h] -t a legtöbb dokumentumosztály egyébként [! ht] -re változtatja. A h jelentése csak: itt, ha lehetséges, de nem abszolút itt. A ! lehetővé teszi a LaTeX számára, hogy minimalizálja az összes számlálót és hosszt, amelyek lebegő környezetre utalnak.
- köszönöm, nekem dolgozott! Általában hagyom, hogy a latex ott helyezze el, ahova akar, de néha egyszerűen szükségem van arra, ahova akarok.
- A nem nyomtatásra szánt dokumentumok esetében nincs ok arra, hogy megpróbálja menteni papír, ezért a szóköz nagy része nem ‘ ta probléma. Tehát ‘ sokkal jobb, ha az alak a leglogikusabb ponton tördeli a szöveget, nem pedig lebeg valahol másutt. Ezek a kínos konvenciók ugyanúgy fognak menni, mint a latin.
- Nem gondolom, hogy a szokásos gondok a helymegtakarítással kapcsolatosak, nem pedig stilikusan próbálják megtalálni a legjobbat. ábra, táblázat stb. elhelyezésének helye
Válasz
ne ne használjon lebegő környezetet, ha nem szeretné, hogy lebegjen.
\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}
vagy
\begin{center} \includegraphics[...]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{center}
Hozzászólások
- Szia @ Herbert – nagyon sok köszönetet mondok ezért a válaszért! Sosem értettem, hogy az
\begin{figure}
lebegő környezet – míg a\begin{minipage}
nem ! Problémám volt azzal, hogy képet akartam felvenni az oldal aljára w / text, és még[H]
sem segített; csak ez! Most helyettesítettem a következőt:minipage
afigure
– és éscaptionof
caption
– és végül megkapta, amit akartam !! Ezúton is nagyon köszönöm, éljenzés! - Miért használ egy
\makebox
? Nem ugyanúgy néz ki nélküle? - @Tobi: ha a kép nem nagyobb, mint
\textwidth
igen, akkor különben nem!\makebox
a képet szélességétől függetlenül központosítja - Ez nagyon hasznos volt; IMHO legyen ez az elfogadott válasz, mivel a vártnál jobban működik, mint a jelenleg elfogadott válasz.
Válasz
Az egyik megoldás, amelyet a többi válasz nem említ, és csak az engem választotta, az a, hogy \clearpage
Nincs szükség speciális csomagokra.
A \clearpage
arra kényszeríti, hogy a .tex
fájlban lévő összes alakja kinyomtatásra kerüljön, mielőtt folytatná a szöveget. Ez nagy fehér tereket hagyhat.
Számomra ez volt a legjobb megoldás, mert nem kellett módosítanom a formázást, és csak arról gondoskodott, hogy az összes ábrát kinyomtassák a következő szöveges bit előtt. A kérdésem a dokumentum része volt, sok ábrával és kevés szöveggel.
Megjegyzések
- Egyszerű és hatékony megoldás, köszönöm !!
Válasz
Mostantól a adjustbox
csomag használatával dobozos cuccait nem lebegő lebegő helyettesítővé alakíthatja a gombot. A felirat és a címke hozzáadható saját kulcsokkal, a előtt a nofloat
előtt. A center
kulcs központosításához használható. A függőleges szóköz hozzáadásához használja a vspace
gombot. Ennek a megoldásnak az az előnye, hogy a adjustbox
számos egyéb funkcióját is felhasználhatja a tartalom módosítására (min / max méretezés, keretezés stb.)
Ne feledje, hogy ha az ábra tartalma csak egy kép, akkor ugyanazokat a gombokat használhatja a \adjustbox
oldalon, és egysoros vonalat kap. Ha csak táblázatot szeretne, akkor ott van a tabular
kulcs a {adjustbox}
fájlhoz.
Ha később szeretné valódi úszóra változtassa, csak fordítsa a nofloat
elemet float
-re, és távolítsa el a vspace
kulcsot. adjustbox
a feliratot a table
s, az alján pedig a figure
seket helyezi el. Ez megváltoztatható a caption
helyett a captionbelow
vagy a captionabove
billentyűkkel. Az összes opciót lásd a adjustox
kézikönyvben.
Ha nem szeretné beírni a tartalmat, akkor továbbra is használhatja a adjustbox
csomagot, mivel ez biztosítja a {adjnofloat}{<type>}
környezet. Belsőleg használják a nofloat
kulcs végrehajtására. A felhasználók vagy újradefiniálhatják ezt a környezetet a nofloat
viselkedés megváltoztatásához, vagy javításához közvetlenül a környezetet. A környezet nagyon hasonló kódot használ, mint az Herberts válaszban .
Használati példák:
\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}
Az eredmény része:
Válasz
A [ht!]
használatával többet hangsúlyos az elhelyezéssel kapcsolatban. És ha azt szeretné, hogy a szöveg kövesse az ábrát, a korábbi kezdet helyett használjon \usepackage{parskip}
-t a preambulumában, és hagyjon szóközt a szóban forgó szöveg előtt.
Én is alkalmazok \vspace{}
vagy az ábra környezet előtt, hogy a szöveg és az ábra közötti teret manipulálhassa, hogy kiegyensúlyozottabb képet kapjon. Így nincs gondom, még a bonyolultabb multifigurájú környezeteknél is, amelyek \subfigure
-t alkalmaznak.
center
környezet, de a\centering
parancs az ábrákhoz. Lásd: Használjam a középpontot vagy a központozást az ábrákhoz és táblázatokhoz?\FloatBarrier
valahol az ábra és a bekezdés között. Arra kényszeríti a parancs előtt definiált összes ábrát, hogy az adott pont előtt megjelenjen a szövegben. A parancs használatához hozzá kell adnia az\usepackage{placeins}
preambulumot. Néha ezt nagyon hasznosnak találtam.