Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ІТВС
Звіт
з лабораторної роботи №6
з дисципліни “Технічне редагування”
Редагування графічних об’єктів в LaTeX
Мета роботи – ознайомитись з основними принципами роботи з графічними об’єктами в LaTeX.
Теоретичні відомості
Псевдографіка
Псевдографіка створюється за допомогою оточення picture. На кожен псевдографічний об’єкт LaTeX повинен відвести в тексті певне місце (канву). Ці розміри задаються в круглих дужках через кому відразу після \begin{picture}, спочатку ширина, потім висота (команди, пов’язані з псевдографікою, – єдині в LaTeX, у яких у певних випадках обов’язковий аргумент ставиться не у фігурних дужках). Між дужками, комами і числами, що задають розміри псевдографічного об’єкту, не повинно бути пробілів. За замовчуванням ширина і висота псевдографічного об’єкту задаються в пунктах.
Щоб створити об’єкт на канві, використовується команда \put (x,y){<об’єкт>}, де (x, y) – координати об’єкта (початком координат вважається лівий нижній кут канви). У фігурних дужках – той об’єкт, який потрібно створити.
Напис у псевдографіці виводиться за допомогою команди \put (x, y){Текст}.
Крім тексту, у псевдографіці можна створювати відрізки, стрілки, окружності, кола та овали (прямокутники із закругленими кутами).
Відрізки задаються за допомогою команди \line. LaTeX треба повідомити нахил і розмір відрізка. Точка відрізка – його початок. Нахил відрізка задається парою цілих чисел, розташованих в круглих дужках через кому безпосередньо після \line. Відношення цих чисел має бути рівним кутовому коефіцієнту відрізка (тангенсу кута нахилу до горизонталі). Розмір відрізка задається в фігурних дужках після круглих дужок, в яких заданий нахил. Цей розмір, взагалі кажучи, – не його довжина, а довжина його проекції на горизонтальну вісь (крім випадків, коли відрізок вертикальний – тоді задається його довжина по вертикалі).
Довжину відрізка можна (якщо вона не дуже мала) можна задавати довільно, а ось нахил – ні. Кожне з цілих чисел, які задають нахил, не повинно перевершувати 6 по абсолютній величині, і, крім того, ці два числа не повинні мати спільних дільників, крім 1.
Стрілки задаються за допомогою команди \vector. Синтаксис цієї команди абсолютно такий же, як у команди \line: в круглих дужках пишеться пара чисел, що задає нахил стрілки, а потім у фігурних дужках параметр, що задає її розмір (довжина проекції на горизонтальну вісь, якщо стрілка не вертикальна, і довжина проекції на вертикальну вісь, якщо стрілка вертикальна). Відмінність від команди \line в тому, що множина можливих нахилів стрілок ще більш обмежена: цілі числа, що задають нахил, не повинні перевищувати 4 по абсолютній величині (і як і раніше не повинні мати спільних дільників). Точкою відліку стрілки є її початок.
Круг задається командою \circle, а коло – її варіантом із зірочкою \circle*. У цих команд єдиний аргумент – діаметр окружності або кола. За умовчанням діаметр задається в пунктах. Точкою відліку окружності або кола є центр.
Поряд колами, на псевдографічний об’єкт можна нанести також овал – прямокутник із закругленими кутами. Він задається командою \oval, аргументи якої – ширина і висота овалу. Ці аргументи задаються в круглих дужках через кому. Точка відліку овалу – його центр.
Крім того, можливі й неповні овали, що представляють собою половини або чверті від повних. Щоб створити неповний овал, необхідно треба команді \oval задати необов’язковий аргумент (у квадратних дужках, після обов’язкового). Для створення половини овалу цей аргумент має бути однією з таких літер: t – верхня; b – нижня половина; r – права; l – ліва половина.
Для створення чверті овалу необов’язковий аргумент команди \oval повинен бути поєднанням двох із цих букв (наприклад, tr для верхньої правої чверті). Точка відліку часткового овалу розташована там же, де точка відліку відповідного йому повного овалу.
Додаткові можливості псевдографіки
Для створення декількох регулярно розташованих псевдографічних об’єктів необхідно використати команду \multiput(x,y)(dx,dy){n} {об’єкт}. Тут x і y – координати першого з розміщуваних об’єктів (як і у звичайній команді \put), dx і dy – відстані, на які кожен наступний об’єкт буде зміщений відносно попереднього по горизонталі й вертикалі, n – кількість об’єктів, які треба розмістити, об’єкт – це, як і у команди \put, опис того, що ми розміщуємо на рисунку.
Вставка зображень з файлу
У пакеті graphicx (в преамбулі документа підключається як \usepackage {graphicx}) визначена команда \includegraphics[keyval-list]{file} для вставки в документ малюнка з графічного файлу file. Необов’язковий аргумент keyval-list може містити список ключів. Значення ключів задаються у вигляді key = value, а в списку вони перераховуються через кому. Команда \includegraphics не завершує абзац, тому дозволяє вставляти невеликі малюнки прямо всередину тексту. Вставлена картинка веде себе як один великий символ. Опції команди \includegraphics можна опустити, якщо ми хочемо вставити в документ малюнок у «натуральну» величину. LaTeX виділяє в документі під малюнок бокс, розмір якого відповідає розміру картинки в пікселах.
Вибір драйвера
При завантаження пакетів можна в необов’язковому аргументі команди \usepackage вказати драйвер або, іншими словами, програму, яка «розуміє» команди з цих пакетів. Драйвером за замовчуванням задано dvips. Програма dvips, яку написав Tomas Rokicki, переводить dvi-файл, отриманий після обробки LaTeX вхідного файлу, у файл, у якому документ описаний на мові PostScript. Рs-файл можна за допомогою програми GhostScript переглянути на екрані монітора і роздрукувати на звичайному принтері. Крім того, GhostScript вміє конвертувати ps-файл у файл формату PDF. Якщо ж ви створюєте документ у форматі PDF безпосередньо за допомогою pdfLATEX, то вам слід при завантаження пакетів вказувати у вигляді опції драйвер pdftex.
Імена файлів без розширення
Розширення файлу з малюнком у команді \includegraphics можна не вказувати, оскільки драйвер сам знає, які типи файлів він може обробити, а які ні. Для драйвера dvips це файли з розширенням eps, ps, eps.gz, ps.gz, eps.Z, а для драйвера pdftex: png, pdf, jpg, mps, tif.
Коли розширення файлу в команді \includegraphics не вказано, драйвер послідовно (зліва направо за списком) додає до імені файлу всі відомі йому розширення і шукає файл вже по повному імені. Пошук припиняється, як тільки знаходиться перший відповідний файл.
Пакет graphicx вводить декларацію
\DeclareGraphicsExtensions{ext-list}
яка дозволяє замість списку за замовчуванням задати свій власний список розширень, які драйвер буде додавати до імені файлу під час його пошуку. У ext-list розширення перераховуються через кому, причому перед назвою розширення ставиться крапка. Розширення використовуються в порядку їх перерахування до списку.
Драйвер dvips трактує всі файли з невідомими йому розширеннями як малюнки типу eps. Тому можна використовувати для своїх eps-файлів будь-які нестандартні розширення, наприклад, xyz.
За замовчуванням LaTeX шукає файли з малюнками в каталозі, в якому знаходиться вхідний файл. Декларація \graphicspath {dir-list} дозволяє розширити зону пошуку. В списку dir-list кожна з директорій розташовується у фігурних дужках. Якщо вказати, наприклад \graphicspath{images/}{d:/images/eps/}{d:/images/ pdf/} то LaTeX буде шукати файли з малюнками також у підкаталозі images поточного каталогу (де знаходиться вхідний файл) і в директоріях d:/images/eps та d:/images/pdf.
Зміна розміру малюнка в документі
Опишемо ключі команди \includegraphics, за допомогою яких можна задати розмір прямокутний області, виділеної для розміщення малюнка в документі.
Ключ width = length встановлює значення length (у будь-яких TeX одиницях) як ширини області, виділеної для розміщення малюнка. Ключі height = length і totalheight = length встановлюють значення length (у будь-яких TeX одиницях) в якості висоти (повної висоти) області, виділеної для розміщення малюнка. Ключ keepaspectratio забезпечує збереження відношення ширини до висоти самого малюнка, якщо задані значення ширини і висоти області, виділеної під малюнок, порушують це відношення. Видно, що в цьому прикладі розмір боксу, відведеного під малюнок, задається значенням ключа height. Ключ width просто ігнорується: інакше малюнок вийшов би за межі виділеної під нього області по вертикалі.Ключ scale = scale змінює «натуральний» розмір малюнка в scale разів.
Включення в документ частини малюнка
Ключі viewport = llx lly urx ury та trim = dl db dr du задають так звану видиму область малюнка. Саме під цю частину малюнка відводиться місце в документі. Тут llx, lly, urx і ury –це x-і y-координати (у будь-яких TeX одиницях) лівого нижнього і правого верхнього кутів видимої області малюнка відносно точки відліку, а dl, db, dr і du – це відстані (у будь-яких TeX одиницях) між лівими, нижніми, правими і верхніми межами видимої області малюнка і самого малюнка, відповідно. Від’ємні значення зміщення допустимі.
Ключ clip = boolean обрізає частину малюнка, що виходить за межі видимої області, якщо значення boolean дорівнює true (або просто вказано).
Поворот малюнка
Ключ angle = angle повертає малюнок на angle градусів проти годинникової стрілки. За замовчуванням вісь обертання проходить через точку відліку боксу.
Ключ origin = pos дозволяє вказати одне з 12 зумовлених положень осі обертання.
Положення осі по горизонталі задається однією з трьох букв: l (на лівій стороні боксу), c (по центру боксу) або r (на правій стороні боксу). Положення осі обертання по вертикалі задається однією з чотирьох букв: b (на нижній стороні боксу), B (на базовій лінії), c (по центру боксу) або t (на верхній стороні боксу). У результаті виходить такий список допустимих значень pos: lb, lB, l, lt, b, B, c, t, rb, rB, r, rt. Якщо вказана тільки одна літера, то другий передбачається c. Так, origin = lB відповідає обертанню навколо точки відліку, в origin = c – навколо центру.
Чорновий режим
На стадії підготовки документа можна використовувати ключ draft який вказує, що замість малюнка треба накреслити рамку і надрукувати всередині неї ім’я файлу з малюнком.
Чорновий режим зазвичай задається для всіх малюнків відразу опцією draft або в команді завантаження пакета, або в \documentclass. У цьому випадку ключем final в команді \includegraphics можна відзначити чорновий режим для деяких малюнків.
Плаваючі об’єкти
Мало просто помістити картинку в документі – її треба розмістити гарно і по можливості вона повинна це робити самостійно. Просто \includegraphics для цього не дуже підходить, оскільки розміщення регулюється виключно користувачем.
Для цієї мети в LaTeX є спеціальна сутність: плаваючий об’єкт (float). Якщо для цього об’єкта немає місця на поточній сторінці, то він переноситься на наступну.
Для розміщення картинок стандартні класи визначають плаваючий об’єкт як оточення figure.
Необов’язковим параметром оточенню figure можна передати допустимі способи розміщення плаваючого об’єкту:
h – по можливості тут же; t –у верхній частині сторінки, b –в нижній частині сторінки;
p – розмістити на окремій сторінці, де немає нічого крім плаваючих об’єктів.
Пріоритет для розміщення визначається порядком проходження букв. Якщо першою є літера h, то в разі невдачі LaTeX розміщує плаваючий об’єкт на наступній сторінці. Якщо ж першими йдуть літери t чи b, то розміщення організує на поточній сторінці.
Якщо дуже хочеться розмістити картинку, наприклад, внизу, то побажання можна підсилити за допомогою знаку оклику: [b!].
Управління плаваючими об’єктами.
Якщо LaTeX не справляється з розміщенням картинок, то він переносить їх на наступну сторінку. У якийсь момент може накопичитися ціла «купа» таких перенесених картинок і виникне необхідність у їх «насильницькому» виведення в якомусь певному місці. Для цього існує команда \clearpage.
Єдина проблема цієї команди в тому, що поточна сторінка на ній обривається. Щоб уникнути обриву можна скористатися пакетом afterpage, точніше однойменною командою з нього: \afterpage {\clearpage}.
Команда \afterpage відкладає виконання зазначених у ній інструкцій до кінця поточної сторінки.
Команда \suppressfloats повністю забороняє розміщення плаваючих об’єктів на поточній сторінці. Як необов’язковий параметр їй можна передати t або b – у цьому випадку заборона поширюється тільки на розміщення плаваючих об’єктів вгорі або внизу сторінки відповідно.
Групування картинок
Для зменшення кількості плаваючих об’єктів корисно розміщувати картинки групами. Наприклад, щоб розмістити дві картинки поруч можна застосувати команду \parbox чи оточення minipage:
\parbox [«позиціонування»]{«ширина»}{«текст»}
або
\begin{minipage}[«позиціонування»]{«ширина»}
текст
\end{minipage}
В обох випадках є обов’язковий параметр ширини за якою формується створюваний бокс і необов’язковий «позиціонування» – розташування сформованого боксу щодо базової лінії по вертикалі. Позиціонування може проводитися по центру (опція [c] – задана за замовчуванням), по верхній лінії ([t]) і по нижній лінії боксу ([b]). Шаблон для двох розташованих поруч малюнків може мати приблизно такий вигляд:
Використання команди \parbox чи оточення minipage залежить виключно від особистих вподобань. За допомогою них можна організувати і більш складні конструкції.
Картинки «в оборку»
Маленькі ілюстративні малюнки зручно робити «в оборку» з текстом, тобто текст повинен обтікати їх. Такі картинки розташовуються на зовнішній стороні сторінки, тобто ліворуч для парних і праворуч для непарних сторінок або у випадку одностороннього режиму друку.
Традиційно описуються два пакети для створення подібних малюнків: floatflt (\usepackage{floatflt}) і wrapfig (\usepackage{wrapfig}).
Floatflt більш автоматизований для розміщення картинок, але він так само частіше «ламається» при великому числі плаваючих об’єктів. Можливі навіть «втрати» картинок. Згадані пакети визначають оточення floatingfigure і wrapfigure, відповідно.
\ begin {floatingfigure} [«розміщення»] {«ширина»}
...
\ end {floatingfigure}
Необов’язковий параметр «розміщення» дозволяє змінити алгоритм розміщення картинки:
rflt – праворуч; lflt – зліва; vflt – зліва для парних і праворуч для непарних сторінок. \begin{wrapfigure}[«число рядків в оборку»]{«розмі-щення»}{«ширина»}
\end{wrapfigure}
На відміну від оточення floatingfigure wrapfigure вимагає визначити правила розміщення картинки. Доступні варіанти: праворуч ({r}), ліворуч ({l}), із зовнішнього боку сторінки ({i}) і з внутрішньої сторони сторінки ({o}). Якщо замість рядкових букв передати заголовні, то включається заборона на зсув по вертикалі – картинка повинна бути розміщена починаючи з того рядка абзацу, в якій вона була визначена.
Підписи до малюнків
Для додавання підпису до малюнка використовується команда \caption, яку можна використовувати тільки всередині плаваючих об’єктів. Як обов’язковий параметр передається текст підпису. При виведенні підпис центрується, якщо він досить малий. В іншому випадку підпис оформляється у вигляді абзацу. Текст підпису не повинен містити команд розриву рядка. Всі команди всередині підписи мають бути захищені за допомогою команди \protect\. Caption можна передати також необов’язковий параметр, який повинен представляти собою коротку версію підпису, що з’являється в автоматично створюваних списках. Оформлення підпису жорстко прив’язане до стилю документа.
При включенні опції \usepackage [ukrainian]{babel} перед підписом виводиться слово «Рис.» За яким йде автоматично обчислюваний порядковий номер зображення. Як роздільник між лічильником і підписом за замовчуванням використовується двокрапка. Для заміни двокрапки на точку в преамбулі достатньо набрати, наприклад, таке:
Крім традиційного розміщення підпису під картинками, підпис можна винести, наприклад на поля сторінки. Пакет mcaption (\usepackage {mcaption}) визначає оточення margincap:
Маніпуляції з боксами
Ключі команди \includegraphics дозволяють маніпулювати боксом, який містить лише сам малюнок. Пакет graphicx дозволяє будь-яку частину сторінки документа оформити у вигляді боксу і маніпулювати ним, повертаючи, розтягуючи або стискаючи його довільним чином.
Зміна розмірів боксу
Трансформація до зазначеного розміру.
Команда \resizebox{width}{height}{lr-text} поміщає текст lr-text в бокс і потім стискає або розтягує бокс разом із вмістом так, щоб його ширина і висота стали рівні width і height.
Зберегти відношення висоти до ширини боксу можна, вказавши як width або height знак оклику (!).
Команда \resizebox*{width}{totalheight}{lr-text} діє подібно команді \resizebox, але підганяє не висоту, а повну висоту боксу (сума висоти і глибини) до зазначеного розміру totalheight.
Трансформація за вказаним масштабом.
Команда \scalebox{h-scale}[v-scale]{lr-text} розташовує текст lr-text в боксі і потім змінює його ширину в h-scale раз і висоту в v-scale разів. Якщо опція v-scale відсутня, то відношення ширини до висоти боксу при трансформації блоку зберігається. При від’ємних значеннях аргументів відбувається дзеркальне відображення тексту. Команда \reflectbox {lr-text} еквівалентна \scalebox {-1}[1]{lr-text}, описаній вище.
Поворот блоку.
Команда \rotatebox [keyval-list]{angle}{lr-text} розташовує текст lr-text в боксі і повертає його на angle градусів проти годинникової стрілки. За замовчуванням бокс повертається щодо своєї точки відліку. Ключі keyval-list в необов’язковому аргументі команди \rotatebox дозволяють змінити положення осі, навколо якої повертається бокс, і одиницю виміру кута повороту. Ключі в списку перераховуються через кому і мають вигляд key = value. Ключ origin = pos дозволяє вказати одне з 12 стандартних положень осі обертання (рис.1). Довільне положення осі обертання можна задати за допомогою ключів x = dimen1, y = dimen2. Наприклад, якщо [keyval-list] має вигляд [x = 4mm, y = 3mm], то вісь обертання проходить через точку, яка зміщена відносно точки відліку боксу на 4 мм вздовж осі абсцис і на 3 мм вздовж осі ординат. У ключі units = number значення number відповідає повному обороту навколо осі. Так, за замовчуванням кут повороту вимірюється в градусах, що відповідає units = 360. Якщо задати units = 1, то для повороту на 90 градусів треба в першому обов’язковому аргументі команди вказати 0.25.
Порядок виконання роботи
Ознайомитись з основними принципами роботи з графікою в системі LaTeX.
Відкомпілювати наведені приклади в редакторі TexWorks.
Відповідно до індивідуального завдання, створити псевдографічні об’єкти на канві:
а) побудувати квадрат зі стороною А. Вписати в квадрат окружність з радіусом R.
б) створити декілька регулярно розташованих псевдографічних об’єктів;
в) створити напис за допомогою псевдографіки (текст – прізвище та група студента).
Відповідно до індивідуального завдання, вставити картинку з файлу створити під ним підрисунковий підпис.
Відповідно до індивідуального завдання, оформити текст у вигляді боксу (текст – прізвище та ім’я студента).
Індивідуальне завдання:
1) Псевдографічні об’єкти: а) A=110; R=80; б) кількість повторюваних елементів – 3; тип повторюваного елементу – відрізок.
2) Обтікання текстом зліва. Масштаб рисунку: 50%. Кут повороту рисунку: -15.
3) Масштаб боксу: 110%. Кут повороту боксу: -90о.
Текст LaTeX-файлу та відкомпільований LaTeX-файл
\documentclass{article}
\usepackage [cp1251]{inputenc}
\usepackage [ukrainian,russian]{babel}
\usepackage{color}
\usepackage {graphicx}
\title {Лабораторна робота №6}
\author {Студент гр. ВП-41 Сторож Олена}
\parindent = 1cm
\begin{document}
\begin{picture}(110,110)
\put(0,0){\line(1,0){110}}
\put(0,0){\line(0,1){110}}
\put(110,0){\line(0,1){110}}
\put(0,110){\line(1,0){110}}
\put(55,55){\circle{80}}
\end{picture}
\begin{picture}(100,50)
\multiput(40,40)(40,0){3} {\line(1,0){30}}
\end{picture}
\begin{picture}(110,40)
\put(10,15){Cторож Олена ВП-41}
\end{picture}
\begin{figure} [h]
\includegraphics[scale=0.5,angle=15] {300.jpg}
\caption{«Квітка»}\label {fig: metka}
\end{figure} Поряд з колами, на псевдографічний об’єкт можна нанести також овал – прямокутник із закругленими кутами.
Він задається командою \\oval, аргументи якої – ширина і висота овалу.
\par
\scalebox{1.1}{Cторож Олена ВП-41}
\rotatebox {-90}{Cторож Олена ВП-41}
\end{document}
Висновок: У цій лабораторній роботі я ознайомилась з основними принципами роботи з графічними об’єктами в LaTeX.