Care este modul corect de a centra cifrele și tabelele (figure
, table
)?
\begin{center} ... \end{center}
sau
\begin{centering} ... \end{centering}
Comentarii
Răspunde
Modul corect este
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
în interiorul unui figure
mediul va avea ca rezultat spațiu vertical suplimentar (în general nedorit).
Rețineți că, în timp ce \centering
produce spațiere adecvată, adăugând manual această comandă la fiecare figure
(și pentru fiecare table
și float personalizat) este plictisitor și se opune ideii de a separa conținutul unui document de format . Modalități și mai bune sunt să adăugați următoarele în preambulul documentului (mulțumită lui egreg pentru sfat):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
sau să încărcați floatrow
pachet care permite controlul justificării conținutului plutitor din preambul (cu objectset=centering
ca implicit).
Comentarii
- De asemenea, rețineți că
\centering
este o declarație, nu un mediu. Funcționarea\begin{centering}
este o consecință nefericită a modului în care mediile funcționează intern în LaTeX: mediul foo constă în esență din două macro-uri\foo
și\endfoo
care sunt numite de\begin{foo}
și respectiv\end{foo}
(împreună cu unele verificări de erori, cum ar fi cuibărire adecvată). Însă, deoarece\endfoo
este apelat prin\csname endfoo\endcsname
, această macrocomandă nu ‘ trebuie să existe . Aceasta înseamnă că chiar și lucruri precum$\begin{alpha}\end{alpha}$
funcționează (dar, desigur, nu ar trebui să fie utilizate). - Acolo ‘ s, de asemenea, mai esoteric
\g@addto@macro\@floatboxreset\centering
care, desigur, ar trebui să fie precedat de\makeatletter
și urmat de\makeatother
. - Vă mulțumim că ați menționat pachetul
floatrow
care arată foarte, foarte puternic (ar fi trebuit să constat că înainte, schimbând acum toate definițiile figurii / tabelului în teza mea va fi destul de o lucrare). Cu toate acestea, documentația este atât de lungă și există atât de multe posibilități de configurare, încât va fi foarte greu să vă dați seama de cea mai bună configurare .. există un tutorial cu un ” recomandat ” configurare pentru o teză cu două pagini? 🙁 - @Villemoes Deci, de ce atât de mulți editori LaTeX folosesc fragmente pentru inserarea figurilor care folosesc încă mediul
center
în loc decentering
declarație? - Pentru utilizare cu
IEEEtran
,\g@addto@macro\@floatboxreset\centering
este ineficient, deoarece\figure
redefinește\@floatboxreset
. Folosescetoolbox
și\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Răspuns
Acesta este un supliment (foarte târziu!) la lockstep „s , care oferă doar o demonstrație vizuală a diferenței dintre utilizarea \centering
și mediul center
figure
medii.
Fiecare pagină prezintă 2 cifre, una folosind \centering
și una folosind center
. Diferențele de spațiu sunt rezultatul ordonării celor două medii figure
liniștit. Pe prima pagină, \centering
este utilizat mai întâi și mediul center
în al doilea rând, în timp ce pe a doua pagină, această ordine este inversată. p>
Rezultatele arată clar spațierea inadecvată pentru figura inferioară (prima pagină) și cea superioară (a doua pagină), adică pentru oricare dintre cifre care folosește center
în loc de \centering
.
showframe
este utilizat pentru a afișa aspectul general al paginii.
cod > \ centering < / code > și < cod > centru < / code > mediu din interiorul < cod > figura < / code > medii
\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}
În cele din urmă, comparați două pagini cu două cifre fiecare.Prima pagină include cifre care utilizează \centering
, în timp ce a doua include cifre care utilizează mediul 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}
Răspuns
Deoarece acest fir a dat naștere o mică neînțelegere , aș dori să adaug o notă.
După cum spun celelalte răspunsuri, center
mediul nu ar trebui niciodată să nu fie utilizat într-un figure
sau table
mediu , ar trebui să utilizați \centering
în schimb:
Dar dacă tabelul sau imaginea dvs. nu plutesc, adică ați dori să le aveți exact acolo unde le-ați pus, adică nu sunt într-un mediu figure
sau într-un mediu table
, puteți utiliza un fără probleme. Este echivalent cu un mediu table
sau cu un mediu figure
cu opțiunea H
a float
.
Dacă doriți să adăugați o subtitrare, puteți utiliza \captionof
de la \caption
pachet.
\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}
Comentarii
- Ce zici de flushleft și flushright un tabel sau o figură?
- @BlackMild Există
flushleft
șiflushright
medii, precum și comenzile\raggedright
și\raggedleft
center
în jurul mediuluifigure
! Consultați Tabelele și secțiunile sunt pierdute . (Nu că aș spune că Yiannis a făcut asta)