НОУ ІНТУІТ, Лекція, Додаток Б
PostScript-малюнки
Якщо ви використовуєте програму dvips , з'являється можливість з'єднувати набраний у програмі TeX текст із малюнками PostScript. (Саме в такий спосіб був підготовлений цей додаток.) Ось як це робиться.
Насамперед, треба підключити стильовий пакет graphicx з опцією dvips . Остання літера в назві пакета саме x; існує варіант цього пакета, що називається graphics, але він трохи відрізняється від описуваного нами. Для підключення пакету graphicx із опцією dvips слід написати в преамбулі
Потім треба підготувати малюнок у вигляді PostScript-файлу. Точніше, потрібний спеціальний тип PostScript-файлів, який називається Encapsulated PostScript (традиційне розширення: .eps). Такі файли призначені для включення до інших файлів, і тому підпорядковуються додатковим обмеженням (наприклад, там не повинно бути кількох сторінок).
Тут includegraphics - команда (визначена в пакеті graphicx), а її аргумент - ім'я файлу з малюнком. Команда \includegraphics має багато необов'язкових параметрів. Наприклад, картинку з текстом "Це рядок (string)!" ми включили зі збільшенням у два рази, сказавши
Можна також повернути малюнок (скажімо, на ), написавши
З погляду TeX'а фрагмент \includegraphics[. ] поводиться як блок. Його розміри беруться з самого файлу, що включається (з рядка BoundingBox, де одиницею вимірювання є дюйма, а чотири числа означають ліву, нижню, праву і верхню координати; шириною блоку вважається різниця між правою і лівою, а висотою — між верхньою і нижньою координатами). В принципі можна вручну такий рядок додати (якщо чомусь виготовлений вами PostScript файл не містить) або виправити (якщовказані там числа вас не влаштовують).
Але того ж ефекту можна досягти і засобами \TeX'а, використовуючи команди \vbox і \hbox . Ось, наприклад, як була поміщена мальована літера "В" на початок одного з розділів:
Горизонтальні розміри літери ми не змінювали, а вертикальний розмір і положення регулювали (13mm і -7mm були підібрані; команда \ vss означає нескінченно стисливий та розтяжний клей, що використовується у вертикальному режимі). Сам файл було отримано скануванням ілюстрації з книги А.Г.Шицгала „Український друкарський шрифт”; ця ілюстрація, у свою чергу, є відтворенням фрагмента з "Остромирового Євангелія" (рукописної книги XI століття). Подрисуночная підпис (яку можна було зробити звичайним способом, з допомогою \caption ), природно, у разі було б недоречна.
Якщо документ (або пакет) вказує опцію draft (іншими словами, слово draft присутнє серед необов'язкових аргументів), то замість PostScript-рисунків, включених за допомогою \includegraphics , друкуватиметься прямокутник того ж розміру з назвою PostScript-файлу. (Це може заощадити час та барвник у принтері.)
Сказаного достатньо, щоб включати малюнки до статей і книг. Але все ж таки корисно розуміти більш конкретно, що відбувається в цьому місці в dvi-файлі. Він не включає опис малюнка. Зате він включає спеціальну вказівку (конструкція special), яку програма dvips інтерпретує як необхідність включити в це місце тексту фрагмент із PostScript-файлу, вказаного поруч зі special. Тим самим програма dvips потребує не тільки dvi-файлу, але і PostScript-файлах малюнків. (До речі, вони потрібні і LaTeX'у, хоча з них він читає лише рядок BoundingBox, щоб визначити розмір блоку.) Зате готовий PostScript-файл (що видається програмою dvips) вже самодостатній; всі необхідні малюнки включені в нього і більше жодних файлів не треба.
Підкреслимо ще раз обставину, яку уважний читач уже зрозумів: використання PostScript-малюнків виходить за рамки офіційного стандарту TeX'а, тому можуть існувати (і існують) dvi-драйвери, які просто ігнорують відповідні конструкції special. При використанні малюнків не буде видно. На щастя, програма dvips стала одним з найпопулярніших dvi-драйверів, і для неї можна сміливо використовувати пакет graphicx.
Насамкінець повернемося до вихідного питання: як же включити малюнок у текст? Ми знаємо, як включити PostScript-файл, але як отримати цей файл? Якщо малюнок сканується, такий файл можна отримати за допомогою програм обробки зображень. Ми вже коротко згадали про них, говорячи про автографа Колмогорова; всі згадані програми є в системах типу UNIX, але і в Microsoft Windows для цього є засоби, зокрема, програми, що входять до комплекту MiKTeX вільно розповсюджуються, див.
Важливо мати на увазі, що малюнок у форматі .eps має деякий розмір в абсолютних одиницях довжини (у його заголовку вказані координати Bounding Box, при цьому одиниця прийнята рівною дюйма). З іншого боку, малюнки в растрових форматах зазвичай мають розміри, що вимірюються в точках. Тому при їх перетворенні на .eps є свавілля: розмір точки може бути взятий будь-яким. Під час друку .eps-файлу (у складі тексту) на принтері відбувається зворотне перетворення , оскільки принтер насправді друкує чорні і білі точки, і підсумкове перетворення зводиться до масштабування растрового малюнка (з неминучою у своїй інтерполяцією, якщо коефіцієнт масштабування не дорівнює ).Зауважимо, що коефіцієнт масштабування пропорційний значенню параметра scale у команді \includegraphics.
Крім того, якщо вихідний малюнок був напівтоновим (про кольорові ми не говоримо, там все ще складніше), то в якийсь момент він повинен бути тим чи іншим способом перетворений на чорні та білі точки (більшість принтерів вміє друкувати лише їх). Це може робитися і в принтері, і до нього (в інтерпретатор Ghostscript); крім того, можна не довіряти цим механізмам і намагатися від початку перетворити напівтоновий малюнок в двоколірний, наприклад, за допомогою програми pgmtopbm . Який із цих численних варіантів дасть під час друку найкращі результати, залежить від конкретної ситуації. (Ще складніше вибрати найкращий спосіб, якщо готується оригінал-макет для друкарні.)
Підготуємо файл exampl5.mp такого змісту: