Mám použít vycentrování nebo centrování na figurky a stoly?

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ám etoolbox 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.

ilustrace rozdílů mezi

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.

Další srovnání

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

zde zadejte popis obrázku

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} 

zde zadejte popis obrázku sem zadejte popis obrázku

Komentáře

  • Co třeba flushleft a flushright stůl nebo obrázek?
  • @BlackMild Existují flushleft a flushright prostředí, stejně jako \raggedright a \raggedleft příkazy

Napsat komentář

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