\"/
\"/ \"/    

Grafika v TeXu (3)

Petr Sojka, ÚVT MU
Ročník IV - číslo 3, leden 1994
Citace: P. Sojka. Grafika v TeXu (3). Zpravodaj ÚVT MU. ISSN 1212-0901, 1994, roč. IV, č. 3, s. 15-17.
Tematické zařazení: Typografie, počítačová sazba
Článek je součástí seriálu Grafika v TeXu
 předchozí článek | následující článek 

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ů.

PostScript

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.

Tradiční model práce s PostScriptem
Obrázek 1: Tradiční model práce s PostScriptem

Integrace do TeXu

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.

Model práce s Display PostScriptem
Obrázek 2: Model práce s Display PostScriptem

Makra pro práci s 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.

Makra pstricks

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":

"Bomba"

\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}}}}

"Nadpis"

\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.

Makra pro vkládání EPS

Č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.

Prohlížení postscriptových souborů

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.

Závěr

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.

setting
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
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011