Работа в системе LaTeX



         

Еще раз о линейках - часть 2


На самом деле в предыдущем примере было бы лучше, если бы правый край выделенного абзаца шел вровень с правым краем остального текста. Чтобы добиться этого, надо первый аргумент команды \parbox не взять с потолка, а вычислить. Для этого нам понадобятся переменные со значением длины. Предполагая, что мы определили с помощью \newlength переменные \shirina и \raznost, сделаем вот что:

\begin{flushleft} \shirina=\textwidth \settowidth{\raznost}{\vrule\hspace{.5em}} \addtolength{\shirina}{-\raznost} \noindent\hbox{% \vrule\hspace{.5em}\parbox{\shirina}% {Иногда используется ... ... линейка.}} \end{flushleft}

Мы воспользовались командой \settowidth, чтобы найти размер, который занимает линейка вместе с пробелом. Кстати, если просто написать \hbox{\vrule\hspace{.5em}}, то на печати мы ничего не увидим (внутри \hbox'а никакого текста нет, так что высота и глубина линейки равна нулю и она тем самым невидима); однако же эта команда создаст пробел, величина которого равна 0.4pt плюс 0.5em. Заключительное замечание: поскольку {flushright}, как и всякое окружение, ограничивает группу, все наши манипуляции с параметрами \shirina и "\raznost" забудутся по выходе из этого окружения.




Содержание  Назад  Вперед