Czy powinienem używać środka czy wyśrodkowania dla rycin i tabel?

Jaki jest prawidłowy sposób wyśrodkowania liczb i tabel (figure, table)?

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

lub

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

Komentarze

Odpowiedź

Prawidłowy sposób to

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

\begin{center}\end{center} wewnątrz figure spowoduje (generalnie niepożądane) dodatkowe odstępy w pionie.

Zauważ, że podczas gdy \centering tworzy odpowiednie odstępy, ręcznie dodaje to polecenie do każdego figure środowisko (i do każdego table i niestandardowego pływaka) jest żmudne i jest sprzeczne z ideą oddzielania treści dokumentu od formatu . Jeszcze lepszym sposobem jest dodanie następujących elementów do preambuły dokumentu (dzięki egreg za wskazówkę):

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

lub załadowanie floatrow , który umożliwia kontrolę justowania zawartości typu float z preambuły (z objectset=centering jako domyślnie).

Komentarze

  • Należy również pamiętać, że \centering to deklaracja, a nie środowisko. To, że \begin{centering} działa, jest niefortunną konsekwencją wewnętrznego działania środowisk w LaTeX: środowisko foo zasadniczo składa się z dwóch makr \foo i \endfoo, które są wywoływane odpowiednio przez \begin{foo} i \end{foo} (wraz z pewnymi sprawdzeniami błędów, takimi jak prawidłowe zagnieżdżenie). Ale ponieważ \endfoo jest wywoływane przez \csname endfoo\endcsname, to makro w rzeczywistości ' nie musi istnieć . Oznacza to, że nawet takie rzeczy jak $\begin{alpha}\end{alpha}$ działają (ale oczywiście nie powinny być używane).
  • Tam ' jest też bardziej ezoteryczny \g@addto@macro\@floatboxreset\centering, który oczywiście powinien być poprzedzony przez \makeatletter, a po nim \makeatother.
  • Dziękuję za wspomnienie o pakiecie floatrow, który wygląda bardzo, bardzo potężnie (powinienem to znaleźć wcześniej, teraz zmieniając wszystkie definicje figur / tabel w moja praca dyplomowa będzie wymagała sporo pracy). Jednak dokumentacja jest tak długa i istnieje tak wiele możliwości konfiguracji, że bardzo trudno będzie znaleźć najlepszą konfigurację… czy istnieje przewodnik z ” zalecanymi ” konfigurujesz dwustronicową pracę magisterską? 🙁
  • @Villemoes Dlaczego więc tak wielu redaktorów LaTeXa używa fragmentów do wstawiania liczb, które używają jeszcze środowiska center zamiast centering deklaracja?
  • Do użytku z IEEEtran, \g@addto@macro\@floatboxreset\centering jest nieskuteczne, ponieważ \figure ponownie definiuje \@floatboxreset. Używam etoolbox i \patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}.

Odpowiedź

To jest (bardzo późne!) uzupełnienie do lockstep ”, która przedstawia tylko wizualną demonstrację różnicy między używaniem \centering a center w figure środowisk.

Każda strona przedstawia 2 cyfry, jedną używającą \centering, a drugą center. Różnice w odstępach są wynikiem uporządkowania dwóch figure środowisk rently. Na pierwszej stronie \centering jest używane jako pierwsze, a center jako drugie, podczas gdy na drugiej stronie kolejność ta jest odwrócona.

Wyniki wyraźnie pokazują niewłaściwe odstępy między dolną cyfrą (pierwsza strona) i górną cyfrą (druga strona), tj. dla którejkolwiek figury używa się center zamiast \centering.

showframe służy do pokazania ogólnego układu strony.

ilustracja różnic między

code > \ centering < / code > i < code > center < / code > środowisko wewnątrz < kod > figura < / code > środowiska

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

Na koniec porównaj dwie strony zawierające po dwie cyfry.Pierwsza strona zawiera ryciny wykorzystujące \centering, a druga zawiera ryciny wykorzystujące środowisko center.

Dalsze porównania

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

Odpowiedź

Ponieważ z tego wątku zrodziło się małe nieporozumienie , chciałbym dodać uwagę.

Jak mówią inne odpowiedzi: center środowisko nigdy nie powinno być używane w figure lub table środowisku , należy użyć \centering zamiast tego:

tutaj wprowadź opis obrazu

Ale jeśli twoja tabela lub obraz nie są ruchome, to znaczy, że chciałbyś mieć je dokładnie tam, gdzie je umieścisz, tj. nie w figure lub table środowisku, możesz użyć center bez problemów. Jest odpowiednikiem środowiska table lub figure z opcją H float pakiet.

Jeśli chcesz dodać podpis, możesz użyć \captionof z \caption pakiet.

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

tutaj wprowadź opis obrazu tutaj wprowadź opis obrazu

Komentarze

  • Co powiesz na tabelę lub figurę flushleft i flushright?
  • @BlackMild Istnieją flushleft i flushright, a także polecenia \raggedright i \raggedleft

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *