Jaký je správný způsob vycentrování čísel a tabulek (figure
, table
)?
\begin{center} ... \end{center}
nebo
\begin{centering} ... \end{centering}
Komentáře
Odpověď
Správný způsob je
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
uvnitř figure
Prostředí způsobí (obecně nežádoucí) další vertikální prostor.
Všimněte si, že zatímco \centering
vytváří správné mezery, ručně přidá tento příkaz do každého figure
prostředí (a na každý table
a na zakázku vyrobený float) je zdlouhavé a jde proti myšlence oddělit obsah dokumentu od formátu . Ještě lepší způsoby je přidat do preambule dokumentu následující (díky tipu egreg):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
nebo načíst floatrow
balíček, který umožňuje řídit zarovnání obsahu float z preambule (s objectset=centering
as výchozí).
Komentáře
- Upozorňujeme, že
\centering
je deklarace, nikoli prostředí. To, že\begin{centering}
funguje, je nešťastným důsledkem způsobu, jakým prostředí interně funguje v LaTeXu: Prostředí foo se v zásadě skládá ze dvou maker\foo
a\endfoo
, které volají\begin{foo}
a\end{foo}
(spolu s kontrolou chyb, například správné hnízdění). Ale protože\endfoo
se volá přes\csname endfoo\endcsname
, toto makro ve skutečnosti nemusí existovat ‚ . To znamená, že fungují i věci jako$\begin{alpha}\end{alpha}$
(neměly by se samozřejmě používat). - Tam ‚ je také esoteričtější
\g@addto@macro\@floatboxreset\centering
, které by samozřejmě měla předcházet\makeatletter
a za kterou by měl následovat\makeatother
. - Děkujeme za zmínku o balíčku
floatrow
, který vypadá velmi, velmi mocně (měl jsem to zjistit dříve, nyní měnit všechny definice obrázků / tabulek v moje práce bude docela nějaká práce). Dokumentace je však tak dlouhá a existuje tolik možností konfigurace, že bude velmi těžké přijít na to nejlepší nastavení .. existuje návod s “ doporučeným “ nastavení dvoustranné práce? 🙁 - @Villemoes Proč tolik editorů LaTeXu používá úryvky pro vkládání obrázků, které místo toho používají
center
prostředícentering
prohlášení? - Pro použití s
IEEEtran
je\g@addto@macro\@floatboxreset\centering
neúčinný, protože\figure
předefinuje\@floatboxreset
. Používámetoolbox
a\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Odpověď
Toto je (velmi pozdě!) doplněk k odpověď lockstepu , která pouze nabízí vizuální ukázku rozdílu mezi použitím \centering
a center
prostředí v rámci figure
prostředí.
Každá stránka zobrazuje 2 číslice, jedna používá \centering
a druhá používá center
. Rozdíly v rozestupu jsou výsledkem uspořádání dvou figure
prostředí odlišných rentálně. Na první stránce je \centering
použito jako první a prostředí center
druhé, zatímco na druhé stránce je toto pořadí obráceno.
Výsledky jasně ukazují nevhodné mezery mezi dolním obrázkem (první stránka) a horním obrázkem (druhá stránka), tj. pro kterýkoli obrázek používá center
místo \centering
.
showframe
se používá k zobrazení celkového rozložení stránky.
kód > \ centering < / code > a < kód > centrum < / code > prostředí uvnitř < kódu > obrázek < / code > prostředí
\documentclass{article} \usepackage{graphicx,showframe,kantlipsum} \begin{document} \kant[1] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[2] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[3] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[4] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \end{document}
Nakonec porovnejte dvě stránky se dvěma číslicemi.První stránka obsahuje obrázky, které používají \centering
, zatímco druhá obsahuje obrázky, které používají prostředí center
.
\documentclass{article} \usepackage{graphicx,showframe,kantlipsum} \begin{document} \kant[1] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[2] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[3] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[4] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \end{document}
Odpověď
Protože toto vlákno způsobilo malé nedorozumění , chtěl bych přidat poznámku.
Jak říkají ostatní odpovědi, center
prostředí by se nemělo nikdy používat v figure
nebo table
prostředí byste měli použít \centering
místo:
Pokud ale váš stůl nebo obrázek neplouží, měli byste je mít přesně tam, kam je umístíte, tj. nejsou v prostředí figure
nebo table
můžete použít center
prostředí bez problémů. Je ekvivalentem table
nebo prostředí figure
s H
možností float
balíček.
Pokud chcete přidat titulek, můžete použít \captionof
z \caption
balíček.
\documentclass{article} \usepackage{graphicx} \usepackage{booktabs} \usepackage{caption} \captionsetup[table]{position=above} \usepackage{float} \begin{document} You can use \texttt{center} environments here, because they are not within a floating one: \begin{center} \captionof{table}{A non-floating table within a \texttt{center} environment} \begin{tabular}{cc} \toprule Ducks & Lions \\ \midrule 1 & 2 \\ \bottomrule \end{tabular} \end{center} \begin{center} \includegraphics[width=.5\linewidth]{example-image-a} \captionof{figure}{A non-floating figure within a \texttt{center} environment} \end{center} They are equivalent to a \texttt{table} or \texttt{figure} environment with the \texttt{H} option of \texttt{float} package: \begin{table}[H] \centering \caption{A non-floating table with \texttt{H} option} \begin{tabular}{cc} \toprule Ducks & Lions \\ \midrule 1 & 2 \\ \bottomrule \end{tabular} \end{table} \begin{figure}[H] \centering \includegraphics[width=.5\linewidth]{example-image-a} \caption{A non-floating figure with \texttt{H} option} \end{figure} Just to show the also the lists works: \listoftables \listoffigures \end{document}
Komentáře
- Co třeba flushleft a flushright stůl nebo obrázek?
- @BlackMild Existují
flushleft
aflushright
prostředí, stejně jako\raggedright
a\raggedleft
příkazy
center
kolem prostředífigure
! Viz Tabulky a oddíly jsou nesprávně umístěny . (Ne že bych řekl, že to Yiannis udělal)