PS obrazek jako font

Zdenek Wagner - Ustav chemickych procesu AV wagner at cesnet.cz
Fri Jun 30 13:53:37 CEST 2000


On Fri, 30 Jun 2000, Pavel Calabek wrote:

>   Dobry den,
>
> Mam takovy dotaz: Lze TeX presvedcit, aby s nejakym boxem
> pracoval
> jako s informacemi ulozenymi ve fontu, tj. aby se v .dvi souboru
> (staci v naslednem .ps souboru) popis boxu objevil pouze jednou
> na dalsich
> mistech by se objevil pouze odkaz?
>
> Mam postscriptovy obrazek, ktery v textu pouzivam jako piktogram,
> tj. pocet
> vyskytu se pocita na nekolik desitek. Pri tomto zpusobu pouziti
> mi vysledny
> .ps soubor narusta nad pozadovanou velikost, protoze do kazdeho
> mista, kde
> tento obrazek uziji se mi vlozi cely jeho popis. Vyse uvedena
> konstrukce
> by tenot problem snad vyresila. Ma nekdo nejkou inspiraci (pokud
> by se jednalo
> o postscritovy kod, prosil bych podrobneji), jak to udelat?
>
Tento problem jsem resil nejen pro zmenseni PS souboru, ale i pro rychlost
tisku, kdyz se mi stejny obrazek pri rozliseni 600 dpi vkladal 1500krat.
Idea byla takova, ze jsem z obrazku udelal PS makro a do dokumentu jsem
vkladal jiny EPS, ktery mel stejny BoundingBox a pouze volal prislusne
makro. Jeho kod byl tedy:

mypicture begin picture end

Pokud je obrazek vektorovy, neni to problem, jen se musi nejak pojmenovat
a vlozit do "def". Bude to tedy vypadat zhruba takto:

/mypicture 100 dict def
mypicture begin

% Takove radky obvykle jiz EPS soubory maji

Dale nasleduji ruzne pomocne definice, pak bude

/picture {
  % prikazy pro nakresleni obrazku vcetne transformaci
} def
end

Trosku potiz je v pripade, ze mate bitmapovy obrazek generovany pomoci
prikazu image, imagemask a/nebo colorimage. Ty maji obvykle jako zdroj
string, ktery je hned za prislusnym operatorem v aktualnim souboru a pro
nacteni se pouzije currentfile. Kdyz takto mechanicky vytvorite makro,
skonci to postscriptovou chybou. Musite tedy celou bitmapu ulozit do
stringu a jako zdroj napsat proceduru, ktera bere data ze stringu
ulozeneho v pameti. Teoreticky lze data vlozit do jednoho stringu a poslat
cely obrazek najednou. Mam vyzkouseno, ze ghostscript v OS/2 to bez
problemu snese i v pripade hodne velkeho obrazku, ale PS tiskarny vetsinou
zkrachuji na nedostatek pameti. Resil jsem to tak, ze jsem vytvoril pole
stringu a kazdy string obsahoval jeden radek. Asi je tezke vymyslet jeden
obecny vseobecne pouzitelny kod, protoze kazdy program vytvori EPS trosku
jinak. Spise je vhodne podivat se na zacatek vygenerovaneho kodu a
odhadnout, jak nejlepe naskladat obrazek do stringu a jak udelat makro pro
vlastni tisk.

> Dekuji
>
> calabek
>
>

Zdenek Wagner
e-mail: wagner at mbox.cesnet.cz  or  wagner at icpf.cas.cz

see also http://www.icpf.cas.cz/wagner/
         http://members.xoom.com/z_wagner/




More information about the csTeX mailing list