Hva er riktig måte å sentrere figurer og tabeller på (figure
, table
)?
\begin{center} ... \end{center}
eller
\begin{centering} ... \end{centering}
Kommentarer
Svar
Den riktige måten er
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
inne i en figure
-miljø vil resultere i (generelt uønsket) ekstra loddrett plass.
Merk at mens \centering
produserer riktig avstand, legger du denne kommandoen manuelt til hver figure
miljø (og til alle table
og skreddersydde flyt) er kjedelig og går imot ideen om å skille innholdet i et dokument fra formatet . Enda bedre måter er å legge til følgende i dokumentinnledningen (takk til egreg for tipset):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
eller å laste inn floatrow
pakke som gjør det mulig å kontrollere rettferdiggjørelsen av flyteinnhold fra innledningen (med objectset=centering
standard).
Kommentarer
- Vær også oppmerksom på at
\centering
er en erklæring, ikke et miljø. At\begin{centering}
fungerer er en uheldig konsekvens av måten miljøer fungerer internt i LaTeX: Miljøet foo består i hovedsak av to makroer\foo
og\endfoo
som kalles av henholdsvis\begin{foo}
og\end{foo}
(sammen med noen feilkontroll, for eksempel riktig hekkende). Men siden\endfoo
kalles via\csname endfoo\endcsname
, må den makroen ikke ‘ t eksistere . Dette betyr at selv ting som$\begin{alpha}\end{alpha}$
fungerer (men bør selvfølgelig ikke brukes). - Der ‘ s også den mer esoteriske
\g@addto@macro\@floatboxreset\centering
som selvfølgelig skal innledes med\makeatletter
og etterfulgt av\makeatother
. - Takk for at du nevner
floatrow
-pakken som ser veldig, veldig kraftig ut (jeg burde ha funnet det før, nå endret alle figur- / tabelldefinisjoner i oppgaven min vil være ganske mye arbeid). Dokumentasjonen er imidlertid så lang, og det er så mange konfigurasjonsmuligheter at det vil være veldig vanskelig å finne ut det beste oppsettet .. er det en veiledning med en » anbefalt » oppsett for en tosidig avhandling? 🙁 - @Villemoes Så hvorfor så mange LaTeX-redaktører bruker utdrag for å sette inn figurer som bruker
center
-miljøet i stedet forcentering
erklæring? - For bruk med
IEEEtran
, er\g@addto@macro\@floatboxreset\centering
ineffektiv siden\figure
omdefinerer\@floatboxreset
. Jeg brukeretoolbox
og\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Svar
Dette er et (veldig sent!) supplement til lockstep sitt svar som bare gir en visuell demonstrasjon av forskjellen mellom bruken av \centering
og center
miljøet i figure
miljøer.
Hver side viser to figurer, en som bruker \centering
og en som bruker center
. Forskjellene i avstand er resultatet av at de to figure
miljøene er forskjellige rently. På første side brukes \centering
først, og center
miljøet på andre, mens på den andre siden blir denne rekkefølgen omvendt.
Resultatene viser tydelig upassende avstand for den nedre figuren (første side) og den øvre figuren (andre side) dvs. for hvilken figur som bruker center
i stedet for \centering
.
showframe
brukes til å vise det generelle sidelayoutet.
kode > \ sentrering < / kode > og < kode > sentrum < / kode > miljø inne i < kode > figur < / kode > miljøer
\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}
Til slutt kan du sammenligne to sider med to figurer hver.Den første siden inneholder figurer som bruker \centering
, mens den andre inneholder figurer som bruker center
-miljøet.
\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}
Svar
Siden denne tråden fødte litt misforståelse , vil jeg legge til et notat.
Som de andre svarene sier, center
miljø skal aldri brukes i et figure
eller table
miljø , bør du bruke \centering
i stedet:
Men hvis tabellen eller bildet ikke flyter, vil du gjerne ha dem akkurat der du setter dem, dvs. de er i et figure
eller et table
-miljø, kan du bruke et center
miljø uten problemer. Det tilsvarer et table
eller et figure
-miljø med H
-alternativet for float
pakke.
Hvis du vil legge til en billedtekst, kan du bruke \captionof
fra \caption
pakke.
\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}
Kommentarer
- Hva med flushleft og flushright et bord eller en figur?
- @BlackMild Det er
flushleft
ogflushright
miljøer, samt\raggedright
og\raggedleft
kommandoer
center
miljøet rundtfigure
miljøet! Se Tabeller og seksjoner blir feilplassert . (Ikke det jeg sier Yiannis gjorde dette)