Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 4014 / 1341 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 5:

Псевдорисунки

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Аннотация: Изучив эту лекцию, Вы познакомитесь со средствами LaTeX'а для создания псевдорисунков, научитесь оформлять и размещать их на странице.

Когда создавался TeX, а начиналось это в 1978 году, компьютерная графика была развита слабо. Поэтому операция по включению в текст рисунков в виде графических файлов в TeX'е не стандартизирована: TeX допускает импорт графического файла в текст с помощью команды \special, в аргументе которой содержится информация об импортируемом файле, но способ задания этой информации зависит от используемых dvi-драйверов, что снижает переносимость TeX'овских файлов. Чтобы как-то сгладить это неудобство, создатель LaTeX'а Лесли Лэмпорт предусмотрел возможность создания примитивных рисунков, состоящих из прямых и наклонных (с ограниченным репертуаром наклонов) линий, стрелок и окружностей (в принципе можно также рисовать кривые более или менее произвольной формы). В этой лекции мы расскажем, как создавать такие "псевдорисунки".

Средства LaTeX , описываемые в этой лекции, при профессиональной подготовке оригинал-макетов применяются редко: гораздо удобнее пользоваться PostScript-графикой. См. приложение Б.

Создание псевдорисунка и размещение на нем объектов

Псевдорисунки создаются с помощью окружения {picture}. Изучение этого окружения удобно начать с примера.

\begin{picture}(110,50)
\put(55,15){Стрелка}
\put(55,15){\vector(-2,1){40}}
\put(0,0){\line(1,0){20}}
\put(0,0){\line(0,1){20}}
\end{picture}
\begin{picture}(110,50)
\put(55,15){Стрелка}
\put(55,15){\vector(-2,1){40}}
\put(0,0){\line(1,0){20}}
\put(0,0){\line(0,1){20}}
\end{picture}

Разберем исходный текст, создавший этот рисунок: стрелку с надписью и уголок. На каждый псевдорисунок LaTeX должен отвести в тексте определенное место (после чего сам рисунок вполне может и выйти за пределы отведенного места: все зависит от того, что и где вы будете " рисовать"). Эти размеры задаются в круглых скобках через запятую немедленно после \begin{picture}, сначала ширина, затем высота (команды, связанные с псевдорисунками, - единственные в LaTeX'е, у которых в определенных случаях обязательный аргумент ставится не в фигурных скобках). Между скобками, запятой и числами, задающими размеры псевдорисунка, не должно быть пробелов (помните, что конец строки также воспринимается TeX'ом как пробел; если переноса на другую строку не избежать, воспользуйтесь знаком % для устранения получающегося пробела). По умолчанию ширина и высота псевдорисунка, и вообще все относящиеся к псевдорисункам размеры, задаются в пунктах (так и сделано в нашем примере). Можно указать любую единицу измерения размеров, относящихся к псевдорисункам: для этого надо изменить значение параметра \unitlength и далее по поводу параметров, являющихся длинами): если мы хотим, чтобы длины измерялись в миллиметрах, надо написать в преамбуле

\unitlength=1mm

(но не просто mm!). Размеры могут быть не только целыми, но и дробными числами, в которых нужно использовать десятичную точку (но не запятую).

Итак, место на псевдорисунок выделено. Чтобы поместить что-то на этот псевдорисунок, используется команда \put (внутри окружения {picture} писать текст "просто так" не следует). После \put в круглых скобках через запятую следуют координаты того объекта, который мы размещаем на псевдорисунке (сначала абсцисса, затем ордината; началом координат по умолчанию считается левый нижний угол псевдорисунка), а затем, без пробела, в фигурных скобках, — тот объект, который надо нанести. Для первой из наших команд \put этот объект был просто текстом, и соответственно в фигурных скобках только этот текст и был; для остальных трех команд, размещавших на рисунке стрелку и два отрезка, в фигурных скобках помещается нечто более сложное: описание этой стрелки и отрезков. В следующем разделе мы разберем, как такие описания устроены. Кстати, уголок в приведенном выше примере — не что иное, как левый нижний угол псевдорисунка (точка с координатами (0,0)}).

Когда мы говорили о координатах объекта, имелись в виду координаты так называемой "точки отсчета" на этом объекте. Если объект — текст, то точка отсчета — его левый нижний угол. Иногда при размещении текста удобней задать координаты его правого, а не левого нижнего угла. Чтобы так сделать, можно воспользоваться командой \llap с одним аргументом — текстом, чья точка отсчета будет в правом нижнем углу. В следующем примере точка отсчета "полужирной" кошки будет в левом нижнем углу, а "рубленой" — в правом нижнем.

\begin{picture}(110,40)
\put(82,20){\textbf{Кошка}}
\put(80,20){\llap{\textsf{Кошка}}}
\end{picture}
\begin{verbatim}
\begin{picture}(110,40)
\put(82,20){\textbf{Кошка}}
\put(80,20){\llap{\textsf{Кошка}}}
\end{picture}

Точка отсчета стрелки — ее начало. Когда пойдет речь о других объектах, размещаемых на псевдорисунке, мы будем указывать, где расположены их точки отсчета.

Еще несколько общих правил, относящихся к окружению {picture}. Во-первых, внутри этого окружения не должно быть пустых строк. Во-вторых, необходимо сказать о том, как окружение {picture} взаимодействует с окружающим текстом. Весь псевдорисунок, порождаемый этим окружением, рассматривается TeX'ом как одна большая буква, ширина и высота которой заданы в скобках через запятую после \begin{picture}, так что если окружение {picture} встретилось в середине абзаца, эта "буква" будет помещена в строку, причем соседние строки раздвинутся, чтобы она поместилась. Если это не то, чего вы хотите, — начинайте окружение {picture} между абзацами (после пустой строки или команды \par). Можно также поместить окружение {picture} внутри окружения наподобие {flushright} или {center} — при этом LaTeX автоматически установит разумные интервалы между псевдорисунком и окружающим текстом. Совершенно безбоязненно можно помещать окружение {picture} внутри "плавающего" окружения {figure} или {table}.

Если вы оформляете псевдорисунок как рисунок в оборку с помощью окружения {wrapfigure} (при подключенном пакете {wrapfig} ) то ширину рисунка, которую, как вы помните, необходимо задать во втором обязательном аргументе окружения {wrapfigure}, можно задать как кратное параметра \unitlength. Например, если псевдорисунок начинается с

\begin{picture}(50,43)

то окружение {wrapfigure} надо начать как-нибудь так:

\begin{wrapfigure}{o}{50\unitlength}

Кроме текста, на псевдорисунках можно размещать отрезки, стрелки, окружности, круги и овалы (прямоугольники с закругленными углами). Далее мы опишем, как задавать эти объекты.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров