%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ten plik jest cz�ci� pakietu MPATTERN
%
% Autor: Piotr Bolek
% wersja: 0.5 (Jun 25, 2001)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Opis
====

Pakiet MPATTERN s�u�y do definiowania i u�ywania wype�nie� wzorkowych
w programie MetaPost. W pakiecie wykorzystywana jest dost�pna w j�zyku
PostScript Level 2 Wzorkowa Przestrze� Kolor�w (Pattern Color Space).

Zawarto��:
- mpattern.mp: makra dla programu MetaPost s�u��ce do  definiowania
 i u�ywania wzork�w.
- README: kr�tki opis po angielsku.
- README.PL: kr�tki opis po polsku.
- test.mp, test.tex, test.ps: przyk�ady u�ycia.

Spos�b u�ycia
=============

W pliku �r�d�owym nale�y na pocz�tku w��czy� poleceniem input plik
mpattern.mp, a nast�pnie przetworzy� plik standardowym programem
mpost.

Interfejs u�ytkownika
=====================

Definiowanie wzorku
--------------------

Wzorki s� definiowane przy u�yciu konstrukcji:

beginpattern(<nazwa_wzorku>);
..
endpattern;

Parametr <nazwa_wzorku> jest nazw�, kt�ra s�u�y do identyfikacji
wzorku. Nazwa ta mo�e zawiera� litery i znaki podkre�lenia ,,_'', ale
nie mo�e zawiera� cyfr. NIE nale�y podawa� tej nazwy w cudzys�owach.

W definicji wzorku (w dowolnym miejscu mi�dzy beginpattern a
endpattern) mo�na poda� dodatkowe polecenia:
- patternbbox(<pair>,<pair>)
- patternbbox((<numeric>,<numeric>,<numeric>,<numeric>)
 Jawne podanie wsp�rz�dnych prostok�ta ograniczaj�cego kom�rk� wzorka

- patternxstep(<numeric>)
- patternystep(<numeric>)
- patternstep(<numeric>,<numeric>)
- patternstep(<pair>)
 Odst�py mi�dzy kom�rkami wzorka

- patterntransform(<transform>)
 Modyfikacja kszta�tu kom�rki wzorka

- patterncolor(0<= <numeric> <= 1)
 Jawne podanie koloru zwi�zanego z danym wzorkiem

Ka�dy wzorek jest tymczasowo zapisywany jako rysunek o du�ym numerze
(domy�lnie 999), ale je�li u�ytkownik wykorzysta ten numer do swojego
rysunku, to dla wzorku b�dzie u�yty najwi�kszy wolny numer mniejszy od
999.

U�ywanie wzorku
---------------

Do wykorzystania zdefiniowanego wzorku s�u�y makro dzia�aj�ce jak
operator dwuargumentowy (primary) withpattern. Spos�b u�ycie jest
nast�puj�cy:

<�cie�ka> withpattern <nazwa_wzorku>;

gdzie <�cie�ka> jest dowolnym wyra�eniem okre�laj�cym zamkni�t�
�cie�k�, a <nazwa_wzorku> jest nazw� podan� w definicji wzorku.

Przyk�ad
--------

Oto kod s�u��cy do narysowania dw�ch k�ek wype�nionych r�nymi
szachownicami.

input mpattern;

beginpattern(checker);
d:=4mm;
fill unitsquare scaled d;
fill unitsquare scaled d shifted (d,d);
patternbbox(0,0,2d,2d);
endpattern;

beginpattern(rotated_checker);
fill unitsquare scaled 4mm rotated 45 withcolor .7white;
endpattern;

beginfig(11);
path p;
z1=(1cm,1cm);
p=fullcircle scaled 3cm;
fill p withpattern checker;
unfill p shifted z1;
fill p shifted z1 withpattern rotated_checker;
endfig;

Zasady rozpowszechniania
========================

Pakiet MPATTERN jest dobrem wsp�lnym (ang. ,,public domain''). W
przypadku modyfikacji lub redystrybucji pakietu mo�na stosowa� dowoln�
aktualn� licencj� GPL.

Problemy
========

06-2001: Mog� by� problemy z wype�nianiem wzorkami napis�w. Aktualne
        rozwi�zanie jest prowizoryczne.

Zmiany
======

06-2001: Dzi�ki inspiracji tutorialem Piotra Strzelczyka na
        konferencji BachoTeX'2001 wyeliminowana zosta�a konieczno��
        postprocesingu z wykorzystaniem Perla. Podmiana kolor�w na
        wzorki jest obecnie realizowana z wykorzystaniem s�ownik�w na
        poziomie PostScriptu.

Kontakt z autorem
=================

e-mail: [email protected]