Ska jag använda centrering eller centrering för figurer och tabeller?

Vad är rätt sätt att centrera figurer och tabeller (figure, table)?

\begin{center} ... \end{center} 

eller

\begin{centering} ... \end{centering} 

Kommentarer

Svar

Det rätta sättet är

\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure} 

\begin{center}\end{center} inuti en figure -miljön kommer att resultera i (i allmänhet oönskad) ytterligare vertikalt utrymme.

Observera att medan \centering producerar rätt avstånd, lägger man manuellt till detta kommando i varje figure miljö (och till alla table och skräddarsydda flottör) är tråkigt och strider mot idén att separera innehållet i ett dokument från formatet . Ännu bättre sätt är att lägga till följande i dokumentinledningen (tack till egreg för tipset):

\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother 

eller att ladda floatrow paket som gör det möjligt att styra motiveringen av flottörinnehåll från ingressen (med objectset=centering som standard).

Kommentarer

  • Observera också att \centering är en deklaration, inte en miljö. Att \begin{centering} fungerar är en olycklig konsekvens av hur miljöer fungerar internt i LaTeX: Miljön foo består i huvudsak av två makron \foo och \endfoo som kallas av \begin{foo} respektive \end{foo} (tillsammans med viss felkontroll, t.ex. ordentligt häckande). Men eftersom \endfoo kallas via \csname endfoo\endcsname, behöver det makrot faktiskt inte ’ . Det betyder att även saker som $\begin{alpha}\end{alpha}$ fungerar (men ska naturligtvis inte användas).
  • Det ’ s också den mer esoteriska \g@addto@macro\@floatboxreset\centering som naturligtvis bör föregås av \makeatletter och följt av \makeatother.
  • Tack för att du nämnde floatrow paketet som ser väldigt, väldigt kraftfullt ut (jag borde ha funnit det tidigare, nu ändrar alla figur- / tabelldefinitioner i min avhandling kommer att vara en hel del arbete). Dokumentationen är dock så lång och det finns så många konfigurationsmöjligheter att det blir väldigt svårt att räkna ut den bästa inställningen .. Finns det en vägledning med en ” rekommenderas ” inställning för en dubbelsidig avhandling? 🙁
  • @Villemoes Så varför så många LaTeX-redaktörer använder utdrag för infoga siffror som ändå använder center -miljön istället för centering deklaration?
  • För användning med IEEEtran är \g@addto@macro\@floatboxreset\centering ineffektiv eftersom \figure omdefinierar \@floatboxreset. Jag använder etoolbox och \patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}.

Svar

Detta är ett (mycket sent!) tillägg till lockstep ”svar som bara erbjuder en visuell demonstration av skillnaden mellan användningen av \centering och center -miljön inom figure miljöer.

Varje sida visar två siffror, en med \centering och en med center. Skillnaderna i avstånd är resultatet av att de två figure -miljöerna är olika försiktigt. På den första sidan används \centering först och center -miljön andra, medan på andra sidan är denna ordning omvänd.

Resultaten visar tydligt olämpligt avstånd för den nedre siffran (första sidan) och den övre figuren (andra sidan) dvs. för vilken figur som helst använder center snarare än \centering.

showframe används för att visa den övergripande sidlayouten.

illustration av skillnader mellan

kod > \ centrering < / kod > och < kod > center < / kod > miljö inuti < kod > figur < / kod > miljöer

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

Jämför slutligen två sidor med två siffror vardera.Den första sidan innehåller siffror som använder \centering, medan den andra innehåller siffror som använder center -miljön.

Ytterligare jämförelser

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

Svar

Eftersom denna tråd födde lite missförstånd , skulle jag vilja lägga till en anteckning.

Som de andra svaren säger, center miljö bör aldrig användas inom en figure eller table -miljö , bör du använda \centering istället:

ange bildbeskrivning här

Men om din tabell eller bild inte är flytande, så vill du ha dem exakt där du placerar dem, dvs de är inte inom en figure eller en table -miljö kan du använda en center miljö utan problem. Det motsvarar en table eller en figure -miljö med H -alternativet för float paket.

Om du vill lägga till en bildtext kan du använda \captionof från \caption -paket.

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

ange bildbeskrivning här ange bildbeskrivning här

Kommentarer

  • Vad sägs om att spola vänster och spola ett bord eller en figur?
  • @ BlackMild Det finns flushleft och flushright miljöer samt \raggedright och \raggedleft kommandon

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *