Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемВиталий Васильев
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{total height=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= } чтобы задавать углы поворота в радианах.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.