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\foooch\endfoosom kallas av\begin{foo}respektive\end{foo}(tillsammans med viss felkontroll, t.ex. ordentligt häckande). Men eftersom\endfookallas 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\centeringsom naturligtvis bör föregås av\makeatletteroch följt av\makeatother. - Tack för att du nämnde
floatrowpaketet 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örcenteringdeklaration? - För användning med
IEEEtranär\g@addto@macro\@floatboxreset\centeringineffektiv eftersom\figureomdefinierar\@floatboxreset. Jag använderetoolboxoch\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.
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.
\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:
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}
Kommentarer
- Vad sägs om att spola vänster och spola ett bord eller en figur?
- @ BlackMild Det finns
flushleftochflushrightmiljöer samt\raggedrightoch\raggedleftkommandon
center-miljön runtfigure-miljön! Se Tabeller och avsnitt blir felplacerade . (Inte för att jag säger att Yiannis gjorde det här)