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
zamiastcentering
deklaracja? - Do użytku z
IEEEtran
,\g@addto@macro\@floatboxreset\centering
jest nieskuteczne, ponieważ\figure
ponownie definiuje\@floatboxreset
. Używametoolbox
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.
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ą
flushleft
iflushright
, a także polecenia\raggedright
i\raggedleft
center
w otoczeniufigure
! Zobacz Tabele i sekcje są w niewłaściwym miejscu . (Nie mówię, że Yiannis to zrobił)