Soll ich für Abbildungen und Tabellen die Mitte oder Zentrierung verwenden?

Wie können Abbildungen und Tabellen richtig zentriert werden (figure, table)?

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

oder

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

Kommentare

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 der centering Deklaration?
  • Bei Verwendung mit IEEEtran ist \g@addto@macro\@floatboxreset\centering unwirksam, da \figure definiert \@floatboxreset neu. Ich verwende etoolbox 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.

Darstellung der Unterschiede zwischen

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.

Weitere Vergleiche

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

Geben Sie hier die Bildbeschreibung ein

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} 

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein.

Kommentare

  • Wie wäre es mit Flushleft und Flushright einer Tabelle oder einer Figur?
  • @BlackMild Es gibt flushleft und flushright -Umgebungen sowie die Befehle \raggedright und \raggedleft

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.