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
\centeringto 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\fooi\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ż\endfoojest 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
centerzamiastcenteringdeklaracja? - Do użytku z
IEEEtran,\g@addto@macro\@floatboxreset\centeringjest nieskuteczne, ponieważ\figureponownie definiuje\@floatboxreset. Używametoolboxi\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.
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.
\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:
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}
Komentarze
- Co powiesz na tabelę lub figurę flushleft i flushright?
- @BlackMild Istnieją
flushleftiflushright, a także polecenia\raggedrighti\raggedleft
centerw otoczeniufigure! Zobacz Tabele i sekcje są w niewłaściwym miejscu . (Nie mówię, że Yiannis to zrobił)