1 / 19

Лекция 11

Лекция 11. ТеХ и Постскрипт. Ящики (boxes — боксы ).

loman
Download Presentation

Лекция 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 11 ТеХ и Постскрипт

  2. Ящики (boxes —боксы) • Я вам раньше не говорил о еще одном типе данных и о переменных такого типа. Это box. Обычный перевод – бокс. Это слово использовали авторы TROFF при своем подходе к набору формул, и Кнут заметив замечательные свойства этого понятия сделал его основным. • В ТеХе бокс определяется как «двумерный объект прямоугольной формы, умеющий три измерения – ширину, высоту и глубину. У бокса есть базовая линия и точка привязки, все это видно на рисунке, взятом из книги «Все о ТеХе».

  3. Типичный бокс с его размерами

  4. Действия с боксами • Боксы можно группировать вместе, составляя новые боксы. Два основных типа группируемых боксов — горизонтальные и вертикальные. • Команда \hboxопределяет горизонтальный бокс, в котором все внутренние боксы выстраиваются непосредственно друг за другом по их базовой линии. • Горизонтальные боксы собирают вместе в вертикальный бокс или \vbox. Например, (это все цитата из Кнута) • \vbox{\hbox{Две строки}\hbox{набора.}} • При обычном наборе ТеХ сам формирует горизонтальные и вертикальные боксы и создает из них страницу, которая также помещается в бокс, — системный бокс.

  5. Действия с боксами (еще) • Боксы можно группировать при группировке сдвигать по вертикали и по горизонтали. • Вот как выглядит содержимое команды \TeXдля известного логотипа системы ТеХ • \hbox{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X} • Кроме появившихся здесь команд \kernдля горизонтального сдвига и \lowerдля опускания бокcа, есть еще, конечно, команда \raiseдля поднимания бокса. • Системные боксы — это боксовые регистры, имеющие номера от 0 до 255, ими нужно пользоваться очень осторожно, так как их ТеХ использует для своей работы. Рекомендуется формировать новый бокс в \box0 (командой \setbox0) и тут же его использовать.

  6. Повторное использование бокса • В ЛаТеХе есть возможность вводить переменные типа бокс, которым можно присваивать значения, а потом вставлять их в текст (не форматируя заново их содержимое). • Вот эти команды • \newsavebox{mybox) • \savebox{mybox}[40pt]{Опять то же самое!} % l-r text • \sbox{mybox}{Опять то же самое! } % l-r-text • \usebox{mybox} • Более сложный вариант использования сохраняемого текста дает процедура (обстановка)lrtext. Например, • \begin{lrtext}{mybox} Опять \verb|ТО ЖЕ| самое \end{lrtext}

  7. Средства для набора алгоритмов • Я рассказывал уже о задаче такого набора алгоритмов, чтобы каждый пункт алгоритма имел нужный отступ, а весь алгоритм был бы отчеркнул слева вертикальной чертой. • Необходимые макросы были написаны и использованы при наборе книги Д.Гасфилда «Строки, деревья etc.» по инициативе редактора книги О.М.Рощиненко, так что названия макросов начитаются с ОМ. • Сначала мы посмотрим на макросы в рабочей форме.

  8. Средства для набора алгоритмов (2) • \newlength{\OMW}\newlength{\OMw}\newlength{\OMh} • \newlength{\OMH}\newlength{\OMd} • \newcommand{\OMbx}[3][0pt]{\setlength{\OMw}{\linewidth}% • \addtolength{\OMw}{-5pt}\setlength{\OMW}{\OMw}% • \addtolength{\OMW}{-#2}% • \settoheight{\OMh}{\makebox{\begin{minipage}[b]{\OMW}#3\end{minipage}}}% • \setlength{\OMH}{\OMh}\addtolength{\OMH}{7pt}\addtolength{\OMH}{#1}% • \setlength{\OMd}{-#1}\addtolength{\OMd}{-4pt}% • \noindent\raisebox{\OMd}[\OMh][#1]{\rule{0.2pt}{\OMH}}\rule{4.9pt}{0pt}% • \makebox[\OMw][r]{\begin{minipage}[b]{\OMW}#3\end{minipage}}\\[#1]} • \newcommand{\kusu}[2][0pt]{\OMbx[#1]{8pt}{#2}} • \newcommand{\ktab}[2][0pt]{\OMbx[#1]{34pt}{#2}} • \newcommand{\ktabi}[2][0pt]{\OMbx[#1]{50pt}{#2}}

  9. Средства для набора алгоритмов (3) • \newlength{\OMW} % Ширина набираемого текста • \newlength{\OMw} % Ширина текста с отступом • \newlength{\OMh} % Чистая высота набора • \newlength{\OMH} % Внешняя высота набора • \newlength{\OMd} % Спуск набора от базовой линии • \newcommand{\OMbx}[3][0pt]{% основная команда • % #1 - ExtraH доп. верт. пробел • % #2 - Woffset гориз. отступ • % #2 - Text набираемый текст • \setlength{\OMw}{\linewidth} • \addtolength{\OMw}{-5pt}% OMw := linewidth - 5pt • \setlength{\OMW}{\OMw} • \addtolength{\OMW}{-#2}% OMW := OMw - Woffset • \settoheight{\OMh} • {\makebox{\begin{minipage}[b]{\OMW}#3\end{minipage}}} • % OMh := высота бокса ширины OMW с нужным текстом, • % выровненного по основанию

  10. Средства для набора алгоритмов (4) • \newcommand{\OMbx}[3][0pt]{% основная команда • . . . . . . . . • \setlength{\OMH}{\OMh} • \addtolength{\OMH}{7pt} • \addtolength{\OMH}{#1}% OMH := OMh + 7pt + ExtraH • \setlength{\OMd}{-#1} • \addtolength{\OMd}{-4pt} OMd := -ExtraH - 4pt • \noindent% начался вывод текста • \raisebox{\OMd}[\OMh][#1]{% • \rule{0.2pt}{\OMH}} % вертикальная линейка • \rule{4.9pt}{0pt} % стандартный отступ после нее • \makebox[\OMw][r] • {\begin{minipage}[b]{\OMW}#3\end{minipage} • % нужный текст в такой же министранице, как раньше, • % она помещается в ящик ширины OMw с центровкой по • % правому краю. • }\\[#1]} % перевод строки с доп. пробелом ExtraH

  11. Средства для набора алгоритмов (5) • \newcommand{\kusu}[2][0pt]{\OMbx[#1]{8pt}{#2}} • \newcommand{\ktab}[2][0pt]{\OMbx[#1]{34pt}{#2}} • \newcommand{\ktabi}[2][0pt]{\OMbx[#1]{50pt}{#2}} • \kusu{begin}[2pt] • \ktab{вычислить $m$ и $n$;} • \ktab{разместить и заполнить нулями матрицу $m\times n$;} • \ktab{в цикле по $k$ begin} • \ktabi{вычислить $i$ и $j$, соответствующие $k$;} • \ktabi{увеличить элемент $a[i,j]$ на единицу;} • \ktab{end;} • \kusu{end;}

  12. Графические пакеты • Теперь перейдем к вставке графики в ТеХ-овский текст. Для вставки используются специальные пакеты. • Сейчас больше всего рекомендуется пакетgraphicx(до него использовались пакетыgraphicsиepsfig). • Этот пакет вводит некоторые новые возможности манипулирования с боксами, которые нам будут хорошо понятны после знакомства с ПостСкриптом.

  13. Манипуляции с боксами в пакете • Возможны следующие команды: • \rotatebox{angle}{lr-text} • \scalebox{h-scale}[v-scale]{lr-text} • \reflectbox{lr-text} == \scalebox{-1}[1]{lr-text} • \resizebox{width}{height}{lr-text} • Это соответственно поворот бокса на заданный угол, масштабирование бокса (и его зеркальное отражение — как частный случай), а также масштабирование до заданного размера. • Все эти действия можно выполнять отдельно, но они включены и в главную команду пакета в качестве факультативных параметров.

  14. Команда включения графического файла • Это на самом деле две команды • \includegraphics[keyval-list]{gr-file} • \includegraphics*[keyval-list]{gr-file} • Второй вариант отличается от первого тем, что к списку ключей автоматически добавляется ключ clip. • Список ключей очень богат, он состоит из разделяемых запятыми записей об отдельных ключах. Порядок задания ключей учитывается при исполнении. • Каждая запись включает имя ключа, за которым может следовать знак равенства и значение или набор значений. Например, возможны два варианта для ключа, ограничивающего изображаемую часть рисунка его «законной территорией»: • clip • clip=true

  15. Ключи поворота и масштабирования • scale=1.5—гомотетичное изменение с заданным масштабом • width=0.7\totalwidth—подгонка ширины под заданную • heigth=50mm —подгонка высоты бокса под заданную. • totalheight —для полной высоты • keepaspectratio—для соблюдения пропорций при подгонке • angle=10—угол поворота против часовой стрелки (по умолчанию в градусах). • origin=c—Точка, вокруг которой производится поворот. • Возможные значения этого ключа изображены на рисунке на следующем слайде.

  16. Позиции точки поворота • В квадратных скобках написаны возможные значения ключа origin для центра поворота картинки

  17. Порядок задания ключей • \includegraphics{angle=90,totalheight=0.45in]{box.eps} \includegraphics{totalheight=0.45in, angle=90]{box.eps} • От порядка задания ключей зависит результат. Вот пример

  18. Ключи ограничивающего бокса • bb=0 0 1in 2in—весь ограничивающий бокс (левый нижний угол, потом правый верхний) • bbllx, bblly, bbrux, bbruy—параметры по отдельности • natwidth, natheigth —натуральные размеры рисунка. • trim=1mm 5mm 3mm 12mm —отрезание полей рисунка • viewport=10pt 20pt 72pt 72pt—вырезание видимой части из определенного ограничивающего бокса • draft=true—черновой режим импортирования, заменяющий рисунок рамкой по размерам ограничивающего бокса.

  19. Глобальная установка ключей • Для глобальной установки ключей в командах \rotateboxи \includegraphics можно воспользоваться командой • \setkeys{operation}{keyval-list} • где operationпринимает значения • Grot —при задании параметров \rotatebox • Gin —при задании параметров \includegraphics • Например, • \setkeys{Gin}{draft=true,width=0.5\textwidth} • или • \setkeys{Grot}{units=6.28318} • чтобы задавать углы поворота в радианах.

More Related