V dnešním pokračování seriálu o grafice v sázecím systému TeX se zaměříme na grafické možnosti jazyka PostScript1 a na způsoby začlenění grafiky vytvořené v jazyce PostScript do TeXových dokumentů.
Jazyk PostScript je poměrně jednoduchý programovací jazyk s bohatými grafickými možnostmi. Byl vyvinut firmou Adobe za účelem popisu vzhledu textu, grafiky a bitových map na tištěné stránce (PostScript) nebo stránce zobrazované na obrazovce (Display PostScript). Popis stránky je nezávislý na používaném zařízení (tiskárně, obrazovce). Tato zařízení však musí být schopna interpretovat příkazy jazyka PostScript (většinou hardwarově vestavěným interpretem).
Některé možnosti a vlastnosti jazyka PostScript:
Tyto vlastnosti popisu a zobrazování stránek v jazyce PostScript spolu s otevřenou licenční politikou firmy Adobe způsobily masové rozšíření jazyka a vytvoření de facto standardu pro popis stránky.
Jazyk PostScript je přirovnáván k zásobníkovému jazyku Forth - používá postfixovou notaci pro zápis programů. Pro čtenářovu představu o příkazech a syntaxi jazyka uvádíme malý příklad postscriptového programu, jehož výstupem je "duhová koule":
/const 10 def /quadrant 4 def
-90 rotate
quadrant {
-100 0 translate
0 0 moveto
2 1 const {
100 const div mul
dup 0 exch
-180 180 arc
} for
100 0 translate
360 quadrant div rotate
} repeat
eofill
Většina dnešních interpretů již umí zpracovat normu jazyka zvanou Level II, která je oproti prvotní verzi jazyka z počátku osmdesátých let rozšířena o primitiva práce s barvou atd. Další nezávislá rozšíření mají interprety Display PostScriptu určeného pro interaktivní komunikaci s postscriptovým zařízením.
Obrázek 1: Tradiční model práce s PostScriptem
TeX jako takový žádné příkazy (primitiva) pro práci s PostScriptem nemá. Umožňuje však "vkládat" do .dvi souborů příkazy pro ovladače (drivery) výstupních zařízení příkazem \special. Tyto informace (například příkazy v jazyce PostScript) pak jsou zpracovány ovladačem či poslány na příslušné (třeba barevné) výstupní zařízení. Pro postscriptová zařízení existuje ovladač dvips2. Tradiční model práce je znázorněn na obrázku 1. Verzi pro Display PostScript znázorňuje obrázek 2.
Obrázek 2: Model práce s Display PostScriptem
Jednou z možností, jak využívat možností jazyka PostScript bez nutnosti jeho zvládnutí, jsou různé balíky (La)TeXových maker. Tato makra umožňují generování výše zmíněných příkazů \special pomocí standardního mechanismu vhodně volených maker.
Nejrozšířenějším takovým balíkem je balík s názvem pstricks. Autorem tohoto bohatě dokumentovaného balíku je Timothy van Zandt a jeho distribuční verzi pstricks.zip lze nalézt na ftp.muni.cz v adresáři pub/tex/styles/tvz.
Jako příklad používání těchto maker uveďme kód pro hlavičku tohoto článku v tištěné verzi Zpravodaje, tedy obrázky "Bomba" a "Nadpis":
\psset{unit=7pt}
\begin{pspicture}(-4,-4)(4,4)
\pscircle[fillcolor=gray,
fillstyle=solid]{4}
\rput{45}{\scaleboxto(6,0){PS\kern-1pt}}
\psellipse*(0,3.8)(1,.2)
\psellipse*(0,5.5)(1,.2)
\psframe*(-1,3.8)(1,5.5)
\psbezier(0,5.5)(0,7)(1,8)(3.5,8)
\multido{\r=-0+40}{9}
{\rput{\r}(3.5,8){\psline(0,0)(.4,0)}}
\end{pspicture}}}}
\psset{linestyle=none}\LARGE
\pstextpath[c]
{\psarcn(0,0){64pt}{180}{0}}{Petr Sojka}
\pstextpath[c]{\psarc(0,0){64pt}{180}{0}}%
{Grafika v~\TeX u (3)}
Pomocí těchto maker byly též vytvořeny obrázky 1 a 23.
Častá je situace, kdy obrázek vytvoříme specializovaným systémem v PostScriptu (jako tzv. Encapsulated PostScript, obsahující v poznámce rozměry obrázku) a chceme ho vložit do TeXového dokumentu. Maker toto umožňujících je celá řada, jmenujme alespoň epsf.sty či psfig.sty, obsažené většinou v distribuci postscriptových ovladačů. Na místě v TeXovém dokumentu, kde chceme obrázek umístit, vyvoláme obvykle makro s názvem souboru obsahujícím obrázek, případně se specifikací, na jakou výšku a šířku se má obrázek deformovat vůči svým standardním rozměrům.
Nejrozšířenější prohlížeče postscriptových souborů na obrazovce jsou produkty projektu GNU (viz článek L.Matysky ve Zpravodaji IV/2) Ghostscript a Ghostview, pod OS Unix jich existuje ještě několik (Pageview, Sunview). Tyto interprety jsou náročné na operační paměť; Ghostscript se dá provozovat i na počítačích PC pod operačním systémem MSDOS. Tímto programem můžete také konvertovat postscriptové soubory do tvaru vhodného pro tisk na různých nepostscriptových tiskárnách (jehličkových, laserových). Ghostscript najdete v ftp.muni.cz v adresáři pub/tex/gs. Ghostview je verze určená pro prohlížení PostScriptu na obrazovce s možnostmi obvyklými u TeXových ovladačů jako stránkování, zooming apod.
Jazyk PostScript rozhodně zaslouží pozornost a při koupi např. laserové tiskárny byste na něj neměli zapomenout. Pomocí vhodných maker umožní jednoduše integrovat grafiku do TeXových dokumentů.
Další informace o PostScriptu můžete najít v referenční příručce4, učebnici jazyka5, knize o programovacích technikách jazyka PostScript6 či popisu formátu7.
S přáním, aby se vám dařilo vytvářet grafiku v TeXových dokumentech na alespoň takové úrovni, na jaké jsou obsahově, se s vámi loučí autor.
1 | PostScript, Display PostScript, Adobe jsou ochranné známky firmy
Adobe Systems Incorporated.
... zpět do textu |
2 | ftp.muni.cz adresář pub/tex/drivers/dvips
... zpět do textu |
3 | Tento způsob je většinou rychlejší i bezpečnější, neboť při
programování v "čistém" PostScriptu je třeba dbát velké
obezřetnosti a opatrnosti a ladicí možnosti jsou omezené.
... zpět do textu |
4 | PostScript Language Reference Manual, Addison-Wesley 1990
... zpět do textu |
5 | PostScript Language Tutorial and Cookbook, Addison-Wesley 1990
... zpět do textu |
6 | PostScript Language Program Design, Addison-Wesley 1990
... zpět do textu |
7 | Adobe Type 1 Font Format, Addison-Wesley
... zpět do textu |