Hvad er den rigtige måde at centrere figurer og tabeller på (figure
, table
)?
\begin{center} ... \end{center}
eller
\begin{centering} ... \end{centering}
Kommentarer
Svar
Den rigtige måde er
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
inde i en figure
-miljø vil resultere i (generelt uønsket) yderligere lodret plads.
Bemærk, at mens \centering
producerer korrekt afstand, tilføj denne kommando manuelt til hver figure
miljø (og til alle table
og skræddersyet float) er kedeligt og går imod ideen om at adskille indholdet af et dokument fra formatet . Endnu bedre måder er at føje følgende til din dokumentindledning (tak til egreg til tip):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
eller at indlæse floatrow
pakke, der gør det muligt at kontrollere retfærdiggørelsen af floatindhold fra præamblen (med objectset=centering
som standard).
Kommentarer
- Bemærk også, at
\centering
er en erklæring, ikke et miljø. At\begin{centering}
fungerer er en uheldig konsekvens af den måde, miljøer fungerer internt på LaTeX: Miljøet foo består i det væsentlige af to makroer\foo
og\endfoo
som kaldes af henholdsvis\begin{foo}
og\end{foo}
(sammen med nogle fejlkontrol, såsom korrekt indlejring). Men da\endfoo
kaldes via\csname endfoo\endcsname
, behøver den makro ikke ‘ t at eksistere . Dette betyder, at selv ting som$\begin{alpha}\end{alpha}$
fungerer (men bør naturligvis ikke bruges). - Der ‘ s også det mere esoteriske
\g@addto@macro\@floatboxreset\centering
som naturligvis skal foregå med\makeatletter
og efterfulgt af\makeatother
. - Tak for at nævne
floatrow
-pakken, der ser meget, meget kraftig ud (jeg skulle have fundet det før, nu ændre alle figur- / tabeldefinitioner i min afhandling vil være en del arbejde). Dokumentationen er dog så lang, og der er så mange konfigurationsmuligheder, at det vil være meget svært at finde ud af den bedste opsætning .. er der en vejledning med en ” anbefalet ” opsætning til en tosidet afhandling? 🙁 - @Villemoes Så hvorfor så mange LaTeX-redaktører bruger uddrag til indsætfigurer, der bruger
center
-miljøet i stedet forcentering
erklæring? - Til brug med
IEEEtran
er\g@addto@macro\@floatboxreset\centering
ineffektiv, da\figure
omdefinerer\@floatboxreset
. Jeg brugeretoolbox
og\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Svar
Dette er et (meget sent!) supplement til lockstep “svar , som bare giver en visuel demonstration af forskellen mellem brugen af \centering
og center
miljøet inden for figure
miljøer.
Hver side viser 2 figurer, en med \centering
og en med center
. Forskellene i afstand er resultatet af bestilling af de to figure
miljøer er forskellige roligt. På den første side anvendes \centering
først, og center
-miljøet er andet, mens denne rækkefølge på anden side vendes.
Resultaterne viser tydeligt upassende mellemrum for den nederste figur (første side) og den øverste figur (anden side) dvs. for hvilken figur der bruger center
i stedet for \centering
.
showframe
bruges til at vise det overordnede sidelayout.
kode > \ centrering < / kode > og < kode > center < / kode > miljø inde i < kode > figur < / kode > 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}
Sammenlign til sidst to sider med to figurer hver.Den første side indeholder tal, der bruger \centering
, mens den anden indeholder tal, der bruger center
miljøet.
\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
Da denne tråd fødte en lille misforståelse , vil jeg gerne tilføje en note.
Som de andre svar siger, center
miljø skal aldrig bruges inden for et figure
eller table
miljø , skal du bruge \centering
i stedet:
Men hvis dit bord eller billede ikke flyder, vil du gerne have dem nøjagtigt, hvor du placerer dem, dvs. de er ikke i et figure
eller et table
miljø kan du bruge et center
miljø uden problemer. Det svarer til et table
eller et figure
miljø med H
mulighed for float
pakke.
Hvis du vil tilføje en billedtekst, kan du bruge \captionof
fra \caption
pakke.
\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
- Hvad med at skubbe et bord eller en figur flushright?
- @BlackMild Der er
flushleft
ogflushright
miljøer samt\raggedright
og\raggedleft
kommandoer
center
-miljøet omkringfigure
-miljøet! Se Tabeller og sektioner bliver forkert placeret . (Ikke at jeg siger, at Yiannis gjorde dette)