%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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(); ... endpattern; Parametr 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(,) - patternbbox((,,,) Jawne podanie współrzędnych prostokąta ograniczającego komórkę wzorka - patternxstep() - patternystep() - patternstep(,) - patternstep() Odstępy między komórkami wzorka - patterntransform() Modyfikacja kształtu komórki wzorka - patterncolor(0<= <= 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 ; gdzie <ścieżka> jest dowolnym wyrażeniem określającym zamkniętą ścieżkę, a 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: P.Bolek@gust.org.pl