Wie können Abbildungen und Tabellen richtig zentriert werden (figure
, table
)?
\begin{center} ... \end{center}
oder
\begin{centering} ... \end{centering}
Kommentare
- Setzen Sie die
center
-Umgebung auf keinen Fall um diefigure
-Umgebung! Siehe Tabellen und Abschnitte werden verlegt . (Nicht, dass ich sage, dass Yiannis dies getan hat)
Antwort
Der richtige Weg ist
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
innerhalb einer figure
-Umgebung führt zu (im Allgemeinen unerwünschtem) zusätzlichem vertikalem Raum.
Beachten Sie, dass \centering
den richtigen Abstand erzeugt, indem Sie diesen Befehl manuell zu jedem figure
-Umgebung (und für jede table
und benutzerdefinierte float) ist langwierig und widerspricht der Idee, den Inhalt eines Dokuments vom Format zu trennen . Noch besser ist es, Ihrer Dokumentpräambel Folgendes hinzuzufügen (danke an egreg für den Tipp):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
oder die floatrow
Paket, mit dem die Ausrichtung von Float-Inhalten aus der Präambel gesteuert werden kann (mit objectset=centering
als Standard).
Kommentare
- Beachten Sie auch, dass
\centering
eine Deklaration ist, keine Umgebung. Dass\begin{centering}
funktioniert, ist eine unglückliche Folge der internen Arbeitsweise von Umgebungen in LaTeX: Die Umgebung foo besteht im Wesentlichen aus zwei Makros\foo
und\endfoo
, die von\begin{foo}
bzw.\end{foo}
aufgerufen werden (zusammen mit einigen Fehlerprüfungen, wie z richtige Verschachtelung). Da jedoch\endfoo
über\csname endfoo\endcsname
aufgerufen wird, muss dieses Makro ‚ nicht tatsächlich existieren . Dies bedeutet, dass auch Dinge wie$\begin{alpha}\end{alpha}$
funktionieren (sollten aber natürlich nicht verwendet werden). - Dort ‚ s auch das esoterischere
\g@addto@macro\@floatboxreset\centering
, dem natürlich\makeatletter
und\makeatother
. - Vielen Dank, dass Sie das Paket
floatrow
erwähnt haben, das sehr, sehr leistungsfähig aussieht (das hätte ich vorher finden müssen, wenn Sie jetzt alle Definitionen von Abbildungen / Tabellen in geändert haben meine These wird ziemlich viel Arbeit sein). Die Dokumentation ist jedoch so lang und es gibt so viele Konfigurationsmöglichkeiten, dass es sehr schwierig sein wird, das beste Setup zu finden. Gibt es eine Anleitung mit einem “ empfohlen “ Setup für eine zweiseitige Arbeit? 🙁 - @Villemoes Warum also so viele LaTeX-Editoren Snippets zum Einfügen von Figuren verwenden, die noch die
center
-Umgebung anstelle dercentering
Deklaration? - Bei Verwendung mit
IEEEtran
ist\g@addto@macro\@floatboxreset\centering
unwirksam, da\figure
definiert\@floatboxreset
neu. Ich verwendeetoolbox
und\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Antwort
Dies ist eine (sehr späte!) Ergänzung zu Antwort von lockstep , die nur eine visuelle Demonstration des Unterschieds zwischen der Verwendung von \centering
und der Umgebung center
bietet figure
Umgebungen.
Jede Seite zeigt zwei Abbildungen, eine mit \centering
und eine mit center
. Die Unterschiede im Abstand sind das Ergebnis der Bestellung der beiden figure
-Umgebungen unterschiedlich mietend. Auf der ersten Seite wird zuerst \centering
und dann die Umgebung center
verwendet, während auf der zweiten Seite diese Reihenfolge umgekehrt ist.
Die Ergebnisse zeigen deutlich einen unangemessenen Abstand für die untere Abbildung (erste Seite) und die obere Abbildung (zweite Seite), dh für jede Abbildung, die center
anstelle von \centering
.
showframe
wird verwendet, um das gesamte Seitenlayout anzuzeigen.
code > \ centering < / code > und < code > center < / code > Umgebung in < Code > Abbildung < / code > Umgebungen
\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}
Vergleichen Sie abschließend zwei Seiten mit jeweils zwei Abbildungen.Die erste Seite enthält Abbildungen, die \centering
verwenden, während die zweite Abbildung Abbildungen enthält, die die Umgebung center
verwenden.
\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}
Antwort
Da dieser Thread ein kleines Missverständnis hervorgebracht hat, möchte ich eine Notiz hinzufügen.
Wie die anderen Antworten sagen, center
Umgebung sollte niemals verwendet werden In einer figure
oder table
Umgebung sollten Sie \centering
stattdessen:
Wenn Ihre Tabelle oder Ihr Bild jedoch nicht schwebt, möchten Sie sie genau dort haben, wo Sie sie abgelegt haben, dh sie sind nicht In einer figure
oder einer table
-Umgebung können Sie eine center
Umgebung ohne Probleme. Dies entspricht einer table
oder einer figure
-Umgebung mit der Option H
von float
-Paket.
Wenn Sie eine Beschriftung hinzufügen möchten, können Sie \captionof
von 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}
Kommentare
- Wie wäre es mit Flushleft und Flushright einer Tabelle oder einer Figur?
- @BlackMild Es gibt
flushleft
undflushright
-Umgebungen sowie die Befehle\raggedright
und\raggedleft