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
\centeringje 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\fooa\endfoo, které volají\begin{foo}a\end{foo}(spolu s kontrolou chyb, například správné hnízdění). Ale protože\endfoose 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\makeatlettera 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í
centerprostředícenteringprohlášení? - Pro použití s
IEEEtranje\g@addto@macro\@floatboxreset\centeringneúčinný, protože\figurepředefinuje\@floatboxreset. Používámetoolboxa\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í
flushleftaflushrightprostředí, stejně jako\raggedrighta\raggedleftpříkazy
centerkolem prostředífigure! Viz Tabulky a oddíly jsou nesprávně umístěny . (Ne že bych řekl, že to Yiannis udělal)