Books:Советы по вёрстке

Материал из ALT Linux Wiki

Версия от 09:15, 4 сентября 2008; KirillMaslinsky (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Советы по вёрстке в LaTeX

Центровка иллюстраций

> > Кстати, на будущее: не стоит использовать \centerline{ }
> > внутри figure для центровки иллюстраций. В таких случаях
> > следует использовать декларацию \centering
> 
> Причины можно назвать? А то я весьма к \centerline{} привык :)

\centerline{} помещает материал в \hbox с клеем внутри(*), а \centering настраивает параметры абзаца на центрованную печать материала(**). Т.е. используя \centerline вы центруете только аргумент (причём туда нельзя поместить ничего, что не лезет в \hbox, например, абзац), а используя \centering -- центруете весь материал внутри данной группы. Применительно к иллюстрациям (внутри окружения figure) в общем случае требуется именно центрировать весь материал внутри окружения, поэтому уместнее использовать \centering. Кроме того, это позволит избежать ошибок, если \centerline окажется случайно не в отдельном абзаце, а к нему "прилипнет" какой-то другой материал.


Ниже выдержки из latex.ltx (стандартные LaTeX'овские определения):

(*)
    4811 \def\centerline#1{\@@line{\hss#1\hss}}
 
    4808 \def\@@line{\hb@xt@\hsize}
 
    557 \def\hb@xt@{\hbox to}
 
(**)
    3924 \def\centering{%
    3925   \let\\\@centercr
    3926   \rightskip\@flushglue\leftskip\@flushglue
    3927   \parindent\z@\parfillskip\z@skip}
 
    3917 \def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
    3918        \par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
    3919 \def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
    3920     [\@icentercr\ignorespaces}
    3921 \def\@icentercr[#1]{\vskip #1\ignorespaces}
 
    833 \newskip\@flushglue \@flushglue = 0pt plus 1fil
 
Личные инструменты