texlive[60671] Master/texmf-dist: pst-fill (2oct21)

commits+karl at tug.org commits+karl at tug.org
Sat Oct 2 00:02:17 CEST 2021


Revision: 60671
          http://tug.org/svn/texlive?view=revision&revision=60671
Author:   karl
Date:     2021-10-02 00:02:17 +0200 (Sat, 02 Oct 2021)
Log Message:
-----------
pst-fill (2oct21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/pst-fill/Changes
    trunk/Master/texmf-dist/doc/generic/pst-fill/README
    trunk/Master/texmf-dist/tex/generic/pst-fill/pst-fill.tex
    trunk/Master/texmf-dist/tex/latex/pst-fill/pst-fill.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.bib
    trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill.pdf
    trunk/Master/texmf-dist/source/generic/pst-fill/

Modified: trunk/Master/texmf-dist/doc/generic/pst-fill/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fill/Changes	2021-10-01 22:01:38 UTC (rev 60670)
+++ trunk/Master/texmf-dist/doc/generic/pst-fill/Changes	2021-10-01 22:02:17 UTC (rev 60671)
@@ -1,4 +1,6 @@
 pst-fill.sty --------
 
+
 pst-fill.tex --------
+1.02 2021-10-01  make it run under lualatex
 1.01 2007-03-10  bugfix for incomplete ifx (hv)

Modified: trunk/Master/texmf-dist/doc/generic/pst-fill/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fill/README	2021-10-01 22:01:38 UTC (rev 60670)
+++ trunk/Master/texmf-dist/doc/generic/pst-fill/README	2021-10-01 22:02:17 UTC (rev 60671)
@@ -1,21 +1,9 @@
 pst-fill: tiling and filing of areas and characters
 
+pst-fill.sty - The latex file
+pst-fill.tex - The tex file
+pst-fill-doc.pdf - The documentation, generated from the docstrip file
 
-pst-fill.dtx - The dtx file
-pst-fill.ins - The ins file
-pst-fill.pdf - The documentation, generated from the docstrip file
-
-to get the sty, the tex and the pdf file, run the Makefile or alternative
-
-latex pst-fill.ins
-latex pst-fill.dtx
-makeindex -s gind.ist pst-fill
-makeindex -s gglo.ist -o pst-fill.gls pst-fill.glo
-latex pst-fill.dtx
-dvips pst-fill.dvi
-ps2pdf pst-fill.ps
-
-
 This version of pst-fill uses the extended version of the keyval 
 package. So be sure that you 
 - have installed xkeyval with the special pst-xkey.tex
@@ -23,7 +11,10 @@
 - do not load another package after pst-fill, which loads
   the old keyval.sty or pst-key.tex
 
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
 
 
 --
-Herbert Voss 2006-11-06
+hvoss at tug.org
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.bib	2021-10-01 22:02:17 UTC (rev 60671)
@@ -0,0 +1,168 @@
+ at STRING{tugboat	= {TUGboat} }
+ at STRING{beiprogramm	= {{\TeX}-Beiprogramm} }
+ at STRING{bretter	= {Bretter, die die Welt bedeuten} }
+ at STRING{dtk		= {{D}ie {\TeX}nische {K}om{\"o}die} }
+ at STRING{editorial	= {Editorial} }
+ at STRING{fremdebuehne	= {Von fremden B{\"u}hnen} }
+ at STRING{fundus		= {Aus dem Fundus} }
+ at STRING{hinterbuehne	= {Hinter der B{\"u}hne} }
+ at STRING{leserbrief	= {Leserbrief(e)} }
+ at STRING{magazin	= {Magazin} }
+ at STRING{rezension	= {Rezensionen} }
+ at STRING{schonimmer	= {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} }
+ at STRING{theaterkasse	= {Von der Theaterkasse} }
+ at STRING{theatertage	= {{\TeX}-Theatertage} }
+
+ at manual{PostScript95,
+author= {Adobe Systems~Incorporated},
+title = {PostScript Language Reference Manual}, 
+publisher = {Addison-Wesley},
+edition=2,
+date ={1995}
+}
+
+ at article{Bolek98,
+author={Piotr Bolek}, 
+title={\MP{} and patterns}, 
+journal = tugboat, 
+volume=19,
+number=3, 
+pages= {276--283}, 
+date = {1998-09},
+}
+%
+ at article{MLgraphTSI,
+author={Emmanuel Chailloux and Guy Cousineau and Ascánder Suárez},
+title={Programmation fonctionnelle de graphismes pour la production
+d'illustrations techniques}, 
+journal={Technique et science informatique},
+volume=15, 
+number=7, 
+pages={977--1007},
+date= {1996},
+}
+%
+ at book{Deledicq97,
+author={André Deledicq}, 
+title={Le monde des pavages}, 
+Publisher={ACL Editions}, 
+date={1997},
+}
+%
+ at article{EsperetGirou98,
+author={Philippe Esperet and Denis Girou},
+title={Coloriage du pavage dit de Truchet}, 
+journal={Cahiers GUTenberg}, 
+Number=31,
+pages={ 5--18}, 
+date={1998-12},
+}
+
+ at article{Girou94,
+  author	= {Denis Girou},
+  title		= {Pr\'esentation de {PST}ricks},
+  journal	= {Cahier {GUT}enberg},
+  year		= 1994,
+  volume	= {16},
+  month		= apr,
+  pages		= {21-70},
+}
+
+ at book{LGC97,
+author	= {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
+  title		= {The {\LaTeX} {G}raphics {C}ompanion},
+  publisher	= {{Addison-Wesley Publishing Company}},
+  edition	= {2},
+  year		= {2007},
+  location	= {Boston, Mass.}
+}
+
+ at book{GS87,
+author={Branko Grünbaum and Geoffrey Shephard},
+title= {Tilings and Patterns}, 
+publisher={Freeman and Company},
+date={1987},
+}
+ at book{Hoenig97,
+author= {Alan Hoenig}, 
+title= {\TeX{} Unbound: \LaTeX{} \& \TeX{}},
+subtitle={Strategies, Fonts, Graphics, and More}, 
+publisher={Oxford University Press}, 
+date={1997},
+}
+%
+ at ctan{XYpic,
+title = {The Xypic package},
+subtitle = {Flexible diagramming macros},
+author = {Rose, Kristoffer H. and Moore, Ross},
+url = {https://ctan.org/pkg/xypic},
+urldate = {2021-09-30}, 
+date = {},
+version = {3.8.9},
+}
+%
+ at article{LAAN96,
+author= {Kees van der Laan},
+title= {Paradigms: Just a little bit of PostScript},
+journal={MAPS}, 
+volume =17, 
+pages = {137--150}, 
+date = {1996},
+}
+%
+ at article{LAAN97,
+author= {Kees van der Laan},
+title= {Tiling in PostScript and \MF{} -- Escher's
+wink},
+journal={MAPS}, 
+volume =19,
+number=2, 
+pages = {39--67}, 
+date = {1997},
+}
+
+ at ctan{vanZandt93,
+  Title          = {PSTricks -- {\PS} macros for {G}eneric \TeX},
+  author         = {Timothy Van Zandt and Herbert Voß} ,
+  date           = 2016,
+  url	= {http://PSTricks.tug.org/},
+  urldate={2016-04-18},
+}
+%
+ at article{vanZandtGirou94,
+  author	= {Timothy Van Zandt and Denis Girou},
+  title		= {Inside PSTricks},
+  journal	= {TUGboat},
+  year		= {1994},
+  volume	= {15},
+  month		= sep,
+  pages		= {239--246}
+}
+
+%
+ at Book{voss07,
+  author	= {Herbert Vo\ss{}},
+  title		= {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+  edition	= {7},
+  publisher	= {DANTE and Lehmanns Media},
+  year		= {2016},
+  location	= {Heidelberg and Berlin}
+}
+
+ at Book{PSTricksE,
+  author	= {Herbert Vo\ss{}},
+  title		= {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX},
+  edition	= {1},
+  publisher	= {UIT},
+  year		= {2011},
+  location	= {Cambridge -- UK}
+}
+%
+ at jornal{Wang65,
+author= {Hao Wang}, 
+title={Games, Logic and Computers}, 
+jpurnal={Scientific American}, 
+pages={98--106}, 
+date ={1965-11},
+}
+


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf	2021-10-01 22:01:38 UTC (rev 60670)
+++ trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf	2021-10-01 22:02:17 UTC (rev 60671)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.tex	2021-10-01 22:02:17 UTC (rev 60671)
@@ -0,0 +1,1238 @@
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+%% $Id: pst-fill-doc.tex 293 2021-10-01 11:24:25Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,
+   headings=small, headinclude=false,footinclude=false,oneside]{pst-doc}
+
+\usepackage{hvlogos,hvextern}
+\usepackage{pstricks,pst-grad}
+\usepackage{pst-text,pst-node}
+\usepackage[tiling]{pst-fill}
+
+\input random.tex
+
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\makeatletter
+\newcommand\acro[1]{\textsc{#1}\@}
+\def\CTAN{\acro{CTAN}}
+\let\texttub\textsl              % % redefined in other situations
+\def\TUB{\texttub{TUGboat}}
+\def\TUG{\TeX\ \UG}
+\def\tug{\acro{TUG}}
+\def\UG{Users Group}
+\newcommand\CTANdirectory[1]{\expandafter\urldef\csname CTAN@#1\endcsname\path}
+\newcommand\CTANfile[1]{\expandafter\urldef\csname CTAN@#1\endcsname\path}
+\newcommand\CTANref[1]{\expandafter\@setref\csname CTAN@#1\endcsname\relax{#1}}
+\makeatother
+\CTANdirectory{mpattern}{graphics/metapost/macros/mpattern}
+\CTANdirectory{pstricks}{graphics/pstricks}
+\CTANdirectory{pst-fill.sty}{graphics/pstricks/latex/pst-fill.sty}
+\CTANdirectory{pst-fill}{graphics/pstricks/generic/pst-fill.tex}
+\CTANdirectory{Roegel}{graphics/metapost/contrib/macros/truchet}
+\CTANdirectory{xypic}{macros/generic/diagrams/xypic}
+%
+\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8}
+\definecolor{LightBlue}   {rgb}{0.8,0.85,0.95}
+\definecolor{PaleGreen}   {rgb}{0.88,1,0.88}
+\definecolor{PeachPuff}   {rgb}{1.0,0.85,0.73}
+%
+\newcommand{\FillPackage}{\texttt{`pst-fill'}}
+\newcommand{\XYpic}{%
+  \leavevmode\hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}}
+\psset{dimen=middle}
+%
+% % Translation in PSTricks from the one drawn by Emmanuel Chailloux and
+% % Guy Cousineau for the MLgraph system
+% % (see /ftp.ens.fr:/pub/unix/lang/MLgraph/version-2.1/MLgraph-refman.ps.gz)
+% % The kangaroo itself is reproduce from an original picture from Raoul Raba
+ \newcommand{\DimX}{2.47}
+ \newcommand{\DimY}{4.8}
+ \newcommand{\DimXDivTwo}{1.235}
+%
+ \newcommand\KangarooItself[1]{%
+ \pspolygon[fillstyle=solid,fillcolor=#1]%
+  (52.5,68)(55,72.5)(55.8,76.5)(56.8,79.8)(58.2,83)(60,85.8)(61.5,86.5)
+ (64,87)(66,87.5)(67.8,87.3)(70,87)(71.5,87.3)(73,88)(74.7,88.5)
+ (76,90.3)(77,91.5)(72.8,93.8)(69,96)(64.5,99)(59.4,103)(56.2,106.3)
+ (53,110.5)(49.5,115.5)(47.2,119.9)(45.7,126)(43.2,123)(41.5,121)(37.5,125)
+ (37,122.5)(36.8,120)(37,117)(37.6,113.5)(38.6,110)(40,106.3)(42,102.3)
+  (43.5,99.5)(45,97)(46.2,94)(46.8,91.7)(47.2,88)(47,83.5)(46.3,80.8)
+  (45.3,78.5)(42.5,76.5)(39.5,75.8)(36,75.9)(33,75.9)(29,76.2)(26,77)
+  (22.3,77.5)(18,78.4)(12.8,79.3)(8.6,80)(5.5,80.3)(3,80.5)(0,80)
+  (-5.2,78.5)(-9,76.3)(-11.2,74.8)(-13,72.5)(-16.5,68)(-16.5,68)(-19.5,62.5)
+  (-22,58)(-25.5,53)(-29,48.5)(-32.5,45)(-36,42)(-39,39.5)(-44,37)
+  (-49,35)(-51,34)(-53.5,34.5)(-55.5,36)(-56.5,38)(-56.5,40.5)(-55,41.5)
+  (-53.5,41)(-51.5,41)(-50.5,43)(-50.5,44.5)(-51,47)(-51.5,47.2)(-56.5,47)
+  (-58.5,46.5)(-60,44.7)(-62,42.3)(-63,39.5)(-63.5,36.3)(-63.5,33)(-63.1,29.5)
+  (-61.5,26)(-58,23.6)(-54,22.2)(-50.7,22)(-47.5,22)(-44.5,22.3)(-41,23.5)
+  (-36.8,25.8)(-33,28)(-28.5,31)(-23.4,35)(-20.2,38.3)(-17,42.5)(-13.5,47.5)
+  (-11.2,51.9)(-9.7,58)(-7.2,55)(-5.5,53)(-1.5,57)(-1,54.5)(-0.8,52)
+  (-1,49)(-1.6,45.5)(-2.6,42)(-4,38.3)(-6,34.3)(-7.5,31.5)(-9,29)
+  (-10.2,26)(-10.8,23.7)(-11.2,20)(-11,15.5)(-10.3,12.8)(-9.3,10.5)(-6.5,8.5)
+  (-3.5,7.8)(0,7.9)(3,7.9)(7,8.2)(10,9)(13.7,9.5)(18,10.4)
+  (23.2,11.3)(27.4,12)(30.5,12.3)(33,12.5)(36,12)(41.2,10.5)(45,8.3)
+  (47.2,6.8)(49,4.5)(52.5,0)(50,4.5)(49.2,8.5)(48.2,11.8)(46.8,15)
+  (45,17.8)(43.5,18.5)(41,19)(39,19.5)(37.2,19.3)(35,19)(33.5,19.3)
+  (32,20)(30.3,20.5)(29,22.3)(28,23.5)(28,23.5)(24.5,22.3)(21.5,22)
+  (18.3,22)(15,22.2)(11,23.6)(7.5,26)(5.9,29.5)(5.5,33)(5.5,36.3)
+  (6,39.5)(7,42.3)(9,44.7)(10.5,46.5)(12.5,47)(17.5,47.2)(18,47)
+  (18.5,44.5)(18.5,43)(17.5,41)(15.5,41)(14,41.5)(12.5,40.5)(12.5,38)
+  (13.5,36)(15.5,34.5)(18,34)(20,35)(25,37)(30,39.5)(33,42)
+  (36.5,45)(40,48.5)(43.5,53)(47,58)(49.5,62.5)(52.5,68)
+ \pscircle*[linecolor=white](58.2,98.3){2\psxunit}
+\pscircle*(58.2,97.3){\psxunit}
+% Mouth
+\psline(71.5,88)(70,89.3)(68.5,90.3)(67,91.9)%
+% Tear
+\psline(42,121)(45,118)(47,115.3)(48.5,112.7)(50,110)(51.8,106.5)
+      (52.5,103.7)(53,100.5)%
+\pspolygon(41.2,115.8)(43.2,114.7)(45,112.5)(47,109.8)(48,107)(49.5,104.2)%
+      (50.5,101.6)(51,98.5)(47.7,100.6)(46,102.2)(44.8,104)(43.5,106)
+      (42.5,108)(41.7,110.5)(41,113.2)}
+%
+\newcommand\Kangaroo[1]{%
+  \begin{pspicture}(\DimX,\DimY)
+  \psset{unit=0.035278cm}%
+  \KangarooItself{#1}%
+  \end{pspicture}}
+%
+\newcommand\KangarooPstChart[1]{{%
+  \psset{xunit=0.006784,yunit=0.00735,linewidth=0.01}%
+  \begin{pspicture}(-65.5,0)(82,126)%
+    \KangarooItself{#1}%
+  \end{pspicture}}}
+%
+%
+% For the possible index and changes log
+\setlength{\columnseprule}{0.6pt}
+%
+% Beginning of the documentation itself
+\title{\texttt{pst-fill}\\A PSTricks package for filling and tiling areas}
+%\author{Timothy Van Zandt\thanks{\protect\url{tvz at econ.insead.fr}. (documentation by
+\author{Timothy Van Zandt\\Denis Girou\\ Herbert Voß}
+%
+%\date{\shortstack{\today --- Version 1.00\\
+%                 {\small Documentation revised \today}}}
+
+\addbibresource{\jobname.bib}
+
+\begin{document}
+\settitle
+\tableofcontents
+%
+\begin{abstract}
+ \FillPackage{} is a PSTricks \cite{vanZandt93},\cite{Girou94},\cite{vanZandtGirou94}, 
+\cite{Hoenig97},\cite{LGC97} 
+package to draw easily
+ various kinds of filling and tiling of areas. It is also a good example of
+ the great power and flexibility of PSTricks, as in fact it is a very short
+ program (it body is around 200~lines long) but nevertheless really powerful.
+
+ It was written in 1994 by Timothy \textsc{van Zandt} but
+ publicly available only in PSTricks 97 and without any documentation.
+ We describe here the version \emph{97 patch 2} of December 12, 1997, which
+ is the original one modified by myself to manage \emph{tilings} in the
+ so-called \emph{automatic} mode. This article would like to serve both of
+ reference manual and of user's guide.
+%
+This package is available on \CTAN{} in the
+ \texttt{graphics/pstricks} directory (files \texttt{latex/pst-fill.sty} and
+ \texttt{generic/pst-fill.tex}).
+\end{abstract}
+%
+\section{Introduction}
+
+ Here we will refer as \emph{filling} as the operation which consist to fill
+a defined area by a pattern (or a composition of patterns). We will refer as
+\emph{tiling} as the operation which consist to do the same thing, but with
+the control of the starting point, which is here the upper left corner.
+The pattern is positioned relatively to this point. This make an essential
+difference between the two modes, as without control of the starting point we
+can't draw \emph{tilings} (sometimes  called \emph{tesselations}) as used in
+many fields of Art and Science%
+\footnote{For an extensive presentation of tilings, in their history and usage
+in many fields, see the reference book \cite{GS87}.
+
+In the \TeX{} world, few work was done on tilings. You can look at the
+\emph{tile} extension of the \XYpic{} package \cite{XYpic}, at the articles of
+Kees \textsc{van der Laan} \cite[paragraph 7]{LAAN96} (the tiling was in
+fact directly done in PostScript) and \cite{LAAN97}, at the \MP{} program
+(available on \path{CTAN:graphics/metapost/contrib/macros/truchet}) by Denis \textsc{Roegel} for the
+\textsc{Truchet} contest in 1995 \cite{EsperetGirou98} and at the \MP{}
+package \cite{Bolek98} to draw patterns, which have a strong connection with
+tilings.}
+
+Nevertheless, as tilings are a wide and difficult field in mathematics, this
+package is limited to simple ones, mainly \emph{monohedral} tilings with one
+prototile (which can be composite, see section \ref{sec:KindTiles}). With some
+experience and wiliness we can do more and obtained easily rather
+sophisticated results, but obviously hyperbolic tilings like the famous
+\textsc{Escher} ones or aperiodic tilings like the \textsc{Penrose} ones are
+not in the capabilities of this package. For more complex needs, we must used
+low level and more painfull technics, with the basic \cs{multido}
+and \cs{multirput} macros.
+
+
+\newcommand\Square{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}}
+\newcommand\Tiling[2][]{%
+ \begin{pspicture}#2
+     \psframe[fillstyle=boxfill,#1]#2
+\end{pspicture}}
+
+
+\section{Package history and description of it two different modes}
+%
+ As already said, this package was written in 1994 by Timothy \textsc{van
+Zandt}. Two modes were defined, called respectively \emph{manual} and
+\emph{automatic}. For both, the pattern is generated on contiguous positions in
+a rather large area which include the region to fill, later cut to the
+required dimensions by clipping mechanism. In the first mode, the pattern is
+explicitely inserted in the PostScript file each time. In the second one, the
+result is the same but with an unique explicit insertion of the pattern and a
+repetition done by PostScript. Nevertheless, in this method, the control of
+the starting point was loosed, so it allowed only to \emph{fill} a region and
+not to \emph{tile} it.
+
+Between the two modes, \emph{tiling} and filling is a difference: for filling the current point
+is taken into account and two identical objects in a line may differ in the output.
+
+\pstFillSetDefaults
+  See the difference between the two modes, \emph{tiling}:
+{\psset{unit=0.5}
+ \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}}
+ \begin{pspicture}(3,3.3)
+   \psframe[fillstyle=boxfill](3,3)
+ \end{pspicture}
+}
+and \emph{filling}:
+{%
+\makeatletter
+\pst at def{BoxFill}<%
+  gsave
+    gsave \tx at STV CM grestore dtransform CM idtransform
+    abs /h ED abs /w ED
+    pathbbox
+    h div round 2 add cvi /y2 ED
+    w div round 2 add cvi /x2 ED
+    h div round 2 sub cvi /y1 ED
+    w div round 2 sub cvi /x1 ED
+    /y2 y2 y1 sub def
+    /x2 x2 x1 sub def
+    CP
+    y1 h mul sub neg /y1 ED
+    x1 w mul sub neg /x1 ED
+    clip
+    y2 {
+      /x x1 def
+      x2 {
+        save CP x y1 T moveto Box restore
+        /x x w add def
+      } repeat
+      /y1 y1 h add def
+    } repeat
+  currentpoint currentfont grestore setfont moveto>
+ \makeatother
+%
+ \psset{unit=0.5}
+ \psboxfill{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}}
+ \begin{pspicture}(3,3.3)
+   \psframe[fillstyle=boxfill](3,3)
+ \end{pspicture}
+ or
+ \begin{pspicture}(3,3.3)
+   \psframe[fillstyle=boxfill](3,3)
+ \end{pspicture}
+}
+as we can see that initial position is arbitrary and dependent of
+the current point.
+
+
+It's clear that usage of filling is very restrictive comparing to tiling,
+as desired effects required very often the possibility to control the starting 
+point. So, this mode was of limited interest, but unfortunately the
+\emph{manual} one has the very big disadvantage to require very huge amounts
+of ressources, mainly in disk space and consequently in printing time.
+A small tiling can require sometimes several megabytes in \emph{manual} mode!
+So, it was very often not really usable in practice.
+
+It is why I modified the code, to allow tilings in \emph{automatic} mode,
+controlling in this mode too the starting point. And most of the time, that is
+to say if some special options are not used, the tiling is done exactly in the
+region described, which make it faster. So there is no more reason to use the
+\emph{manual} mode, apart very special cases where \emph{automatic} one cannot
+work, as explained later -- currently, I know only one case.
+
+ To load this modified \emph{automatic} mode, with \LaTeX{} use
+simply:\newline 
+\verb+\usepackage[tiling]{pst-fill}+\newline
+and in plain \TeX{} after:\newline
+\verb+\input{pst-fill}+\newline
+add the following definition:\newline
+\verb+\def\PstTiling{1}+
+
+To obtain the original behaviour, just don't use the \emph{tiling} optional
+keyword at loading.
+
+Take care than in \emph{tiling} mode, I introduce also some other changes.
+First I define aliases on some parameter names for consistancy (all specific
+parameters will begin by the \texttt{fill} prefix in this case) and I change
+some default values, which were not well adapted for tilings (\Lkeyword{fillsep}
+is set to 0 and as explained \Lkeyword{fillsize} set to \Lkeyval{auto}). I rename 
+\Lkeyword{fillcycle} to \Lkeyword{fillcyclex}. I also restore normal way so that
+the frame of the area is drawn and all line (\Lkeyword{linestyle},
+\Lkeyword{linecolor}, \texttt{doubleline}, etc.) parameters are now active (but
+there are not in non \emph{tiling} mode). And I also introduce new parameters
+to control the tilings (see below).
+
+ \textbf{In all the following examples, we will consider only the
+\Lkeyword{tiling} mode.}
+%
+ To do a tiling, we have just to define the pattern with the
+\Lcs{psboxfill} macro and to use the new \Lkeyword{fillstyle}
+\Lkeyval{boxfill}.
+%
+ Note that tilings are drawn from left to right and top to bottom, which can
+have an importance in some circonstances.
+%
+ PostScript programmers can be also interested to know that, even in the
+\emph{automatic} mode, the iterations of the pattern are managed directly by
+the PostScript code of the package which used only PostScript Level 1
+operators. The special ones introduced in Level 2 for drawing of patterns
+\cite[section 4.9]{PostScript95} are not used.
+%
+ And first, for conveniance, we define a simple \Lcs{Tiling} macro, which
+will simplify our examples:
+%
+\begin{verbatim}
+ \newcommand{\Tiling}[2][]{%
+   \begin{pspicture}#2
+       \psframe[fillstyle=boxfill,#1]#2
+   \end{pspicture}}
+\end{verbatim}
+%
+\subsection{Parameters}
+%
+ There are \textbf{14} specific parameters available to change the way the
+filling/tiling is defined, and one debugging option.
+%
+\begin{description}
+ \item [\Lkeyword{fillangle} (real)\hfill :] the value of the rotation
+ applied to the patterns (\emph{Default:~0}).
+\end{description}
+%
+\pstFillSetDefaults
+%
+  In this case, we must force the tiling area to be notably larger than the
+area to cover, to be sure that the defined area will be covered after rotation.
+\begin{LTXexample}[width=4cm,pos=l]
+\newcommand\Cross{\begin{pspicture}(1,1)
+  \psline[linecolor=red,dimen=middle](0,0.5)(1,0.5)
+  \psline[linecolor=blue,dimen=middle](0.5,0)(0.5,1) 
+\end{pspicture}}
+\psset{unit=0.5cm}
+\psboxfill{\Cross}
+\Tiling[fillangle=0]{(3,3)} \\[2pt]
+\Tiling[fillangle=45]{(3,3)}\\[2pt]
+\Tiling[fillangle=-60]{(3,3)}
+\end{LTXexample}
+
+
+\begin{description}
+  \item[\Lkeyword{fillsepx} (real$\|$dim) :] value of the horizontal
+  separation between consecutive patterns (\emph{Default:~0 for
+  tilings\footnote{This option is not part of the original package 
+  and is available only if the
+  \texttt{tiling} keyword is used when loading the package.} , 2pt otherwise}). 
+  \item [\Lkeyword{fillsepy} (real$\|$dim)\hfill :] value of the vertical
+  separation between consecutive patterns (\emph{Default:~0 for
+  ti\-lings\footnote{ebd.}, 2pt otherwise}).
+%\addtocounter{footnote}{-1}
+  \item [\Lkeyword{fillsep} (real$\|$dim)\hfill :] value of horizontal and
+  vertical separations between consecutive patterns (\emph{Default:~0 for
+  tilings\footnote{ebd.}, 2pt otherwise}).
+\end{description}
+
+  These values can be negative, which allow the tiles to overlap.
+
+\begin{LTXexample}[width=\linewidth]
+\psset{unit=0.5cm}
+\psboxfill{\Square}
+\Tiling[fillsepx=2mm]{(3,3)} \quad
+\Tiling[fillsepy=1mm]{(3,3)} \quad
+\Tiling[fillsep=0.5]{(3,3)}  \quad
+\Tiling[fillsep=-0.5]{(3,3)}
+\end{LTXexample}
+
+
+
+
+\begin{description}
+  \item [\Lkeyword{fillcyclex}\footnotemark\ (integer)\hfill :] Shift
+  coefficient applied to each row (\emph{Default:~0}).
+  \footnote{It was \texttt{fillcycle} in the original version.}
+  \item [\Lkeyword{fillcycley}\footnotemark\ (integer)\hfill :] Same thing for
+  columns (\emph{Default:~0}).
+  \item [\Lkeyword{fillcycle}\footnote{ebd.} (integer)\hfill :] Allow to fix
+  both \Lkeyword{fillcyclex} and \Lkeyword{fillcycley} directly to the same value
+  (\emph{Default:~0}).
+\end{description}
+
+  For instance, if \Lkeyword{fillcyclex} is 2, the second row of patterns will
+be horizontally shifted by a factor of $\frac{1}{2}=0.5$, and by a factor of
+0.333 if \Lkeyword{fillcyclex} is 3, etc.). These values can be negative.
+
+\begin{LTXexample}[width=\linewidth]
+\psset{unit=0.5}
+\psboxfill{\Square}
+\newcommand\TilingA[1]{\Tiling[fillcyclex=#1]{(3,3)}}
+\TilingA{0} \TilingA{1} \quad
+\TilingA{2} \TilingA{3}\quad
+\TilingA{4} \TilingA{5}\quad
+\TilingA{6} \TilingA{-3}\\[3mm]
+\Tiling[fillcycley=2]{(3,3)}\quad
+\Tiling[fillcycley=3]{(3,3)}\quad
+\Tiling[fillcycley=-3]{(3,3)}\quad
+\Tiling[fillcycle=2]{(3,3)}
+\end{LTXexample}
+
+\begin{description}
+  \item [\Lkeyword{fillmovex}\footnotemark\ (real$\|$dim)\hfill :] value of the
+  horizontal moves between consecutive patterns (\emph{Default:~0}).
+  \item [\Lkeyword{fillmovey}\footnotemark\ (real$\|$dim)\hfill :] value of the
+  vertical moves between consecutive patterns (\emph{Default:~0}).
+  \item [\Lkeyword{fillmove}\footnotemark\ (real$\|$dim)\hfill :] value of
+  horizontal and vertical moves between consecutive patterns
+  (\emph{Default:~0}).
+\end{description}
+
+  These parameters allow the patterns to overlap and to draw some special
+kinds of tilings. They are implemented only for the \emph{automatic} and
+\emph{tiling} modes and their values can be negative.
+
+  In some cases, the effect of these parameters will be the same that with the 
+\texttt{fillcycle?} ones, but you can see that it is not true for some other
+values.
+
+\begin{LTXexample}
+\psset{unit=0.5}
+\psboxfill{\Square}
+\Tiling[fillmovex=0.5]{(3,3)}\quad 
+\Tiling[fillmovey=0.5]{(3,3)}\quad
+\Tiling[fillmove=0.5]{(3,3)}\quad
+\Tiling[fillmove=-0.5]{(3,3)}
+\end{LTXexample}
+
+\begin{description}
+  \item [\Lkeyword{fillsize}
+  (auto$\|$\{(real$\|$dim,real$\|$dim)(real$\|$dim,real$\|$dim)\}) :] The
+  choice of \emph{automatic} mode or the size of the area in \emph{manual}
+  mode. If first pair values are not given, (0,0) is used. (\emph{Default:
+  auto when \emph{tiling} mode is used, {(-15cm,-15cm)(15cm,15cm)}
+  otherwise}).
+\end{description}
+
+  As explained in the introduction, the \emph{manual} mode can require very
+huge amount of computer ressources. So, it usage is to discourage in front off
+the \emph{automatic} mode. It seems only useful in special circonstances, in
+fact when the \emph{automatic} mode failed, which is known only in one case,
+for some kinds of EPS files, as the ones produce by dump of portions of
+screens (see \ref{sec:GraphicFiles}).
+
+\begin{description}
+  \item [\Lkeyword{fillloopaddx}\footnotemark\ (integer)\hfill :] number of
+  times the pattern is added on left and right positions (\emph{Default:~0}).
+  \item [\Lkeyword{fillloopaddy}\footnotemark\ (integer)\hfill :] number of
+  times the pattern is added on top and bottom positions (\emph{Default:~0}).
+  \item [\Lkeyword{fillloopadd}\footnotemark\ (integer)\hfill :] number of
+  times the pattern is added on left, right, top and bottom positions
+  (\emph{Default:~0}).
+\end{description}
+
+  These parameters are only useful in special circonstances, as for complex
+patterns when the size of the rectangular box used to tile the area doesn't 
+correspond to the pattern itself (see an example in Figure~\ref{fig:Sheeps})
+and also sometimes when the size of the pattern is not a divisor of the size
+of the area to fill and that the number of loop repeats is not properly
+computed, which can occur.
+
+  They are implemented only for the \emph{tiling} mode.
+
+
+
+\begin{description}
+  \item [\Lkeyword{PstDebug}\footnotemark\ (integer, 0 or 1)\hfill :] to
+  require to see the exact tiling done, without clipping (\emph{Default:~0}).
+\end{description}
+
+
+  It's mainly useful for debugging or to understand better how the tilings
+are done. It is implemented only for the \emph{tiling} mode.
+
+
+%\begin{LTXexample}[width=\linewidth]
+\psset{unit=0.3cm,PstDebug=1}
+\psboxfill{\Square}
+\psset{linewidth=1mm}
+\Tiling{(2,2)}\hfill \Tiling[fillcyclex=2]{(2,2)}\hfill\Tiling[fillmove=0.5]{(2,2)}
+%\end{LTXexample}
+
+\begin{lstlisting}
+\psset{unit=0.3cm,PstDebug=1}
+\psboxfill{\Square}
+\psset{linewidth=1mm}
+\Tiling{(2,2)}\hfill \Tiling[fillcyclex=2]{(2,2)}\hfill\Tiling[fillmove=0.5]{(2,2)}
+\end{lstlisting}
+
+\psset{unit=1cm,PstDebug=0,linewidth=0.8pt}
+
+\section{Examples}
+
+  In fact this unique \Lcs{psboxfill} macro allow a lot a variations and
+different usages. We will try here to demonstrate this.
+
+\subsection{Kind of tiles}
+\label{sec:KindTiles}
+
+  Of course, we can access to all the power of PSTricks macros to define the
+\emph{tiles} (\emph{patterns}) used. So, we can define complicated ones.
+
+  Here we give four other Archimedian tilings (those built with only some
+regular polygons) among the twelve existing, first discovered completely by
+Johanes \textsc{Kepler} at the beginning of 17th century \cite{GS87}, the two
+other \emph{regular} ones with the tiling by squares, formed by a unique
+regular polygon, and two other formed by two different regular polygons.
+
+\begin{LTXexample}[pos=t]
+  \newcommand{\Triangle}{%
+    \begin{pspicture}(1,1)
+      \pstriangle[dimen=middle](0.5,0)(1,1)
+    \end{pspicture}}
+  \newcommand\Hexagon{
+    \begin{pspicture}(0.866,0.75)% sin(60)=0.866
+      \pspolygon[dimen=middle]% %  Hexagon
+        (0.5;30)(0.5;90)(0.5;150)(0.5;210)(0.5;270)(0.5;330)
+    \end{pspicture}}
+  \psset{unit=0.5cm}
+  \psboxfill{\Triangle}
+  \Tiling{(4,4)}\qquad
+  \Tiling[fillcyclex=2]{(4,4)}\qquad
+  \psboxfill{\Hexagon}
+  \Tiling[fillcyclex=2,fillloopaddy=1]{(5,5)}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+  \newcommand{\ArchimedianA}{%Archimedian tiling 3^2.4.3.4
+    \psset{dimen=middle}
+     % sin(60)=0.866
+    \begin{pspicture}(1.866,1.866)
+      \psframe(1,1)
+      \psline(1,0)(1.866,0.5)(1,1)(0.5,1.866)(0,1)(-0.866,0.5)
+      \psline(0,0)(0.5,-0.866)
+    \end{pspicture}}
+  \newcommand{\ArchimedianB}{% Archimedian tiling 4.8^2
+    \psset{dimen=middle,unit=1.5cm}
+     % sin(22.5)=0.3827 ; cos(22.5)=0.9239
+    \begin{pspicture}(1.3066,0.6533)
+      \SpecialCoor
+     % Octogon
+      \pspolygon(0.5;22.5)(0.5;67.5)(0.5;112.5)(0.5;157.5)
+                (0.5;202.5)(0.5;247.5)(0.5;292.5)(0.5;337.5)
+    \end{pspicture}}
+
+  \psset{unit=0.5cm}
+  \psboxfill{\ArchimedianA}
+  \Tiling[fillmove=0.5]{(7,7)}\hfill
+  \psboxfill{\ArchimedianB}
+  \Tiling[fillcyclex=2,fillloopaddy=1]{(7,7)}
+\end{LTXexample}
+
+  We can of course tile an area arbitrarily defined. And with the
+\Lkeyword{addfillstyle} parameter\footnote{Introduced in PSTricks 97.}, we can
+easily mix the \Lkeyword{boxfill} style with another one.
+
+\begin{LTXexample}[width=6cm]
+  \psset{unit=0.5cm,dimen=middle}
+  \psboxfill{%
+    \begin{pspicture}(1,1)
+      \psframe(1,1)
+      \pscircle(0.5,0.5){0.25}
+    \end{pspicture}}
+  \begin{pspicture}(4,6)
+    \pspolygon[fillstyle=boxfill,fillsep=0.25](0,1)(1,4)(4,6)(4,0)(2,1)
+  \end{pspicture}\hspace{1em}
+  \begin{pspicture}(4,4)
+%    \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5,
+%              addfillstyle=boxfill](2,2){2}
+  \end{pspicture}
+\end{LTXexample}
+%
+  Various effects can be obtained, sometimes complicated ones very easily, as
+in this example reproduced from one shown by Slavik \textsc{Jablan} in the
+field of \emph{OpTiles}, inspired by the \emph{Op-art}:
+
+\begin{LTXexample}[pos=t]
+\newcommand\ProtoTile{%
+ \begin{pspicture}(1,1)%%1/12=0.08333
+  \psset{linestyle=none,linewidth=0,
+    hatchwidth=0.08333\psunit,hatchsep=0.08333\psunit}
+  \psframe[fillstyle=solid,fillcolor=black,addfillstyle=hlines,hatchcolor=white](1,1)
+  \pswedge[fillstyle=solid,fillcolor=white,addfillstyle=hlines]{1}{0}{90}
+ \end{pspicture}}
+\newcommand\BasicTile{%
+ \begin{pspicture}(2,1)
+   \rput[lb](0,0){\ProtoTile}\rput[lb](1,0){\psrotateleft{\ProtoTile}}
+ \end{pspicture}}
+\ProtoTile\hfill\BasicTile\hfill
+\psboxfill{\BasicTile}
+\Tiling[fillcyclex=2]{(4,4)}
+\end{LTXexample}
+
+  It is also directly possible to surimpose several different tilings. Here is
+the splendid visual proof of the \textsc{Pytha\-gore} theorem done by the arab
+mathematician \textsc{Annairizi} around the year 900, given by superposition
+of two tilings by squares of different sizes.
+
+\begin{LTXexample}[pos=t]
+\psset{unit=1.5,dimen=middle}
+\begin{pspicture*}(3,3)
+  \psboxfill{\begin{pspicture}(1,1)
+    \psframe(1,1)\end{pspicture}}
+  \psframe[fillstyle=boxfill](3,3)
+  \psboxfill{\begin{pspicture}(1,1)
+    \rput{-37}{\psframe[linecolor=red](0.8,0.8)}
+  \end{pspicture}}
+  \psframe[fillstyle=boxfill](3,4)
+  \pspolygon[fillstyle=hlines,hatchangle=90](1,2)(1.64,1.53)(2,2)
+\end{pspicture*}
+\end{LTXexample}
+
+  In a same way, it is possible to build tilings based on figurative patterns,
+in the style of the famous \textsc{Escher} ones. Following an example of
+Andr\'e \textsc{Deledicq} \cite{Deledicq97}, we first show a simple tiling of
+the \emph{p1} category (according to the international classification of the
+17~symmetry groups of the plane first discovered by the russian
+crystalographer Jevgraf \textsc{Fedorov} at the end of the 19th century):
+
+\begin{LTXexample}[pos=t]
+ \newcommand\SheepHead[1]{%
+   \begin{pspicture}(3,1.5)
+     \pscustom[liftpen=2,fillstyle=solid,fillcolor=#1]{%
+       \pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5)
+         (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3)
+         (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)}
+     \pscircle*(2.65,1.25){0.12\psunit} %Eye
+     \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle
+    %   Mouth
+      \pscurve(3,0.35)(3.3,0.1)(3.6,0.05)
+    %   Ear
+      \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7)\pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4)
+  \end{pspicture}}
+ \psboxfill{\psset{unit=0.5}\SheepHead{yellow}\SheepHead{cyan}}
+ \Tiling[fillcyclex=2,fillloopadd=1]{(10,5)}
+\end{LTXexample}
+\label{fig:Sheeps}
+
+  Now a tiling of the \emph{pg} category (the code for the kangaroo itself is
+too long to be shown here, but has no difficulties ; the kangaroo is reproduce
+from an original picture from Raoul \textsc{Raba} and here is a translation in
+PSTricks from the one drawn by Emmanuel \textsc{Chailloux} and Guy
+\textsc{Cousineau} for their MLgraph system \cite{MLgraphTSI}):
+
+\begin{LTXexample}[pos=t]
+\psboxfill{\psset{unit=0.4}
+  \Kangaroo{yellow}\Kangaroo{red}\Kangaroo{cyan}\Kangaroo{green}%
+  \psscalebox{-1 1}{%
+    \rput(1.235,4.8){\Kangaroo{green}\Kangaroo{cyan}\Kangaroo{red}\Kangaroo{yellow}}}}
+  \Tiling[fillloopadd=1]{(10,6)}
+\end{LTXexample}
+
+  And here a \textsc{Wang} tiling \cite{Wang65}, \cite[chapter
+11]{GS87}, based on very simple tiles of the form of a square and composed
+of four colored triangles. Such tilings are built with only a matching color
+constraint. Despite of it simplicity, it is an important kind of tilings, as
+\textsc{Wang} and others used them to study the special class of
+\emph{aperiodic} tilings, and also because it was shown that surprisingly this 
+tiling is similar to a \textsc{Turing} machine.
+
+\begin{LTXexample}[pos=t]
+  \newcommand{\WangTile}[4]{%
+    \begin{pspicture}(1,1)
+      \pspolygon*[linecolor=#1](0,0)(0,1)(0.5,0.5)
+      \pspolygon*[linecolor=#2](0,1)(1,1)(0.5,0.5)
+      \pspolygon*[linecolor=#3](1,1)(1,0)(0.5,0.5)
+      \pspolygon*[linecolor=#4](1,0)(0,0)(0.5,0.5)
+    \end{pspicture}}
+  \newcommand{\WangTileA}{\WangTile{cyan}{yellow}{cyan}{cyan}}
+  \newcommand{\WangTileB}{\WangTile{yellow}{cyan}{cyan}{red}}
+  \newcommand{\WangTileC}{\WangTile{cyan}{red}{yellow}{yellow}}
+  \newcommand{\WangTiles}[1][]{%
+    \begin{pspicture}(3,3) \psset{ref=lb}
+      \rput(0,2){\WangTileB}  \rput(1,2){\WangTileA}%
+      \rput(2,2){\WangTileC}  \rput(0,1){\WangTileC}%
+      \rput(1,1){\WangTileB}  \rput(2,1){\WangTileA}
+      \rput(0,0){\WangTileA}  \rput(1,0){\WangTileC}%
+      \rput(2,0){\WangTileB}
+      #1
+    \end{pspicture}}
+  \WangTileA\hfill\WangTileB\hfill\WangTileC\hfill
+  \WangTiles[{\psgrid[subgriddiv=0,gridlabels=0](3,3)}]\hfill
+  \psset{unit=0.4} \psboxfill{\WangTiles} \Tiling{(12,12)}
+\end{LTXexample}
+
+\subsection{External graphic files}
+\label{sec:GraphicFiles}
+
+  We can also fill an arbitrary area with an external image. We have only, 
+as usual, to matter of the \emph{BoundingBox} definition if there is no one
+provided or if it is not the accurate one, as for the well known
+\texttt{tiger} picture part of the \texttt{ghostscript} distribution.
+
+\begin{LTXexample}[pos=t]
+  \psboxfill{%Strangely require x1=x2...
+    \begin{pspicture}(0,1)(0,4.1)
+      \includegraphics[bb=17 176 560 74,width=3cm]{images/tiger}
+    \end{pspicture}}
+  \Tiling{(6,6.2)}
+\end{LTXexample}
+
+  Nevertheless, there are some special files for which the \emph{automatic}
+mode doesn't work, specially for some files obtained by a screen dump, as in
+the next example, where a picture was reduced before it conversion in the
+\emph{Encapsulated PostScript} format by a screen dump utility. In this case,
+usage of the \emph{manual} mode is the only alternative, at the price of the
+real multiple inclusion of the EPS file. We must take care to specify the
+correct \texttt{fillsize} parameter, because otherwise the default values are
+large and will load the file many times, perhaps just really using few
+occurrences as the other ones would be clipped...
+
+\begin{LTXexample}[pos=t]
+  \psboxfill{\includegraphics{images/flowers}}
+  \begin{pspicture}(8,4)
+    \psellipse[fillstyle=boxfill,fillsize={(8,4)}](4,2)(4,2)
+  \end{pspicture}
+\end{LTXexample}
+
+\subsection{Tiling of characters}
+
+  We can also use the \cs{psboxfill} macro to fill the interior of characters
+for special effects like these ones:
+
+\begin{LTXexample}[pos=t]
+  \DeclareFixedFont{\bigsf}{T1}{phv}{b}{n}{4.5cm}
+  \DeclareFixedFont{\smallrm}{T1}{ptm}{m}{n}{3mm}
+  \psboxfill{\smallrm Since 182 days...}
+  \begin{pspicture*}(8,4)
+    \centerline{%
+      \pscharpath[fillstyle=gradient,gradangle=-45,
+                  gradmidpoint=0.5,addfillstyle=boxfill,
+                  fillangle=45,fillsep=0.7mm]
+                 {\rput[b](0,0.1){\bigsf 2000}}}
+  \end{pspicture*}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+  \DeclareFixedFont{\mediumrm}{T1}{ptm}{m}{n}{2cm}
+  \psboxfill{%
+    \psset{unit=0.1,linewidth=0.2pt}
+    \Kangaroo{PeachPuff}\Kangaroo{PaleGreen}%
+      \Kangaroo{LightBlue}\Kangaroo{LemonChiffon}%
+    \psscalebox{-1 1}{%
+      \rput(1.235,4.8){%
+        \Kangaroo{LemonChiffon}\Kangaroo{LightBlue}%
+          \Kangaroo{PaleGreen}\Kangaroo{PeachPuff}}}}%
+%   A kangaroo of kangaroos...
+  \begin{pspicture}(8,2)
+    \pscharpath[linestyle=none,fillstyle=boxfill,fillloopadd=1]
+               {\rput[b](4,0){\mediumrm Kangaroo}}
+  \end{pspicture}
+\end{LTXexample}
+
+\subsection{Other kinds of usage}
+
+  Other kinds of usage can be imagined. For instance, we can use tilings in a
+sort of degenerated way to draw some special lines made by a unique or
+multiple repeating patterns. But it can be only a special dashed line, as here
+with three different dashes:
+
+\begin{LTXexample}[pos=t]
+  \newcommand{\Dashes}{%
+    \psset{dimen=middle}
+    \begin{pspicture}(0,-0.5\pslinewidth)(1,0.5\pslinewidth)
+      \rput(0,0){\psline(0.4,0)}%
+        \rput(0.5,0){\psline(0.2,0)}%
+        \rput(0.8,0){\psline(0.1,0)}
+    \end{pspicture}}
+
+  \newcommand{\SpecialDashedLine}[3]{%
+    \psboxfill{#3}
+    \Tiling[linestyle=none]
+           {(#1,-0.5\pslinewidth)(#2,0.5\pslinewidth)}}
+
+  \SpecialDashedLine{0}{7}{\Dashes}
+
+  \psset{unit=0.5,linewidth=1mm,linecolor=red}
+  \SpecialDashedLine{0}{10}{\Dashes}
+\end{LTXexample}
+
+  It allows also to use special patterns in business graphics, as in the
+following example generated by \texttt{PstChart}\footnote{A personal
+development to draw business charts with PSTricks, not distributed.}.
+
+
+\vspace{3mm}
+\begin{figure}[!ht]
+\centering
+\psset{unit=0.75cm}
+% Generated by pstchart.sh version 0.21 (11/28/97)
+{\psset{dimen=middle}
+\psset{xunit=2,yunit=5}
+\begin{pspicture}(-0.6,-0.2)(6.6,2.3)
+%   Title
+  \rput(3,2.200){\shortstack{Fantaisist repartition of kangaroos\\
+                            in the world (in thousands)}}
+%   Frame background
+  \psframe*[linecolor=LemonChiffon!40](0,0)(6,2.000)
+%   Graduations
+  \multido{\r=0.0+0.500,\n=0+500}{5}{\rput[r](-0.12,\r){\psscalebox{0.8}{\n}}}
+%   Minor ticks
+  \multips(0,0.100)(0,0.100){19}{\psline[unit=4.8pt](1,0)}
+  \multips(6,0.100)(0,0.100){19}{\psline[unit=4.8pt](-1,0)}
+%   Major ticks
+  \multips(0,0.500)(0,0.500){3}{\psline[unit=9.6pt](1,0)}
+  \multips(6,0.500)(0,0.500){3}{\psline[unit=9.6pt](-1,0)}
+%   Lines from major ticks marks
+  \multips(0,0.500)(0,0.500){3}{\psline[linestyle=dotted,linewidth=0.6pt](6,0)}
+%   Drawing for the data
+  \psset{linestyle=none,fillcycley=1,fillcyclex=1,fillloopaddy=2}
+  \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{red}}
+  \rput(0.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,1.8)}
+  \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{yellow}}
+  \rput(1.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.8)}
+  \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{cyan}}
+  \rput(2.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.55)}
+  \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{magenta}}
+  \rput(3.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.5)}
+  \psboxfill{\psset{unit=0.78\psxunit}\KangarooPstChart{green}}
+  \rput(4.7,0){\psframe[fillstyle=boxfill](0,0)(0.75,0.2)}
+%   Bottom labels
+  \uput{0.2}[270]{0}(1,0){\psscalebox{0.7}{Oceania}}
+  \uput{0.2}[270]{0}(2,0){\psscalebox{0.7}{Africa}}
+  \uput{0.2}[270]{0}(3,0){\psscalebox{0.7}{Asia}}
+  \uput{0.2}[270]{0}(4,0){\psscalebox{0.7}{America}}
+  \uput{0.2}[270]{0}(5,0){\psscalebox{0.7}{Europe}}
+%   Frame box around the chart
+  \psframe[linestyle=solid](0,0)(6,2.000)
+\end{pspicture}}
+  \caption{Bar chart generated by PstChart, with bars filled by patterns}
+  \label{fig:PstChart}
+\end{figure}
+
+
+\section{``Dynamic'' tilings}
+
+  In some cases, tilings used non \emph{static} tiles, that is to say that the 
+\emph{prototile(s)}, even if unique, can have several forms, by instance
+specified by different colors or rotations, not fixed before generation or
+varying each time.
+
+\subsection{Lewthwaite-Pickover-Truchet tiling}
+
+
+
+
+
+  We give here for example the so-called \emph{Truchet} tiling, which much be
+in fact better called \emph{Lewthwaite-Pick\-over-Truchet (LPT)} tiling%
+\footnote{For description of the context, history and references about
+S\'ebastien \textsc{Truchet} and this tiling, see \cite{EsperetGirou98}.}.
+
+  The unique prototile is only a square with two opposite circle arcs.
+This tile has obviously two positions, if we rotate it from 90 degrees (see
+the two tiles on the next figure). A \emph{LPT tiling} is a tiling with
+randomly oriented LPT tiles. We can see that even if it is very simple in it
+principle, it draw sophisticated curves with strange properties.
+
+  Nevertheless, in the straightforward way \FillPackage{} does not work,
+because the \Lcs{psboxfill} macro store the content of the tile used in a
+\TeX{} box, which is static. So the calling to the random function is done
+only one time, which explain that only one rotation of the tile is used for
+all the tiling. It's only the one of the two rotations which could differ from
+one drawing to the next one...
+
+% Truchet (Lewthwaite-Pickover-Truchet) tiling
+% --------------------------------------------
+
+\begin{LTXexample}[pos=t]
+%   LPT prototile
+  \newcommand\ProtoTileLPT{%
+    \psset{dimen=middle}
+    \begin{pspicture}(1,1)
+      \psframe(1,1)
+      \psarc(0,0){0.5}{0}{90}
+      \psarc(1,1){0.5}{-180}{-90}
+    \end{pspicture}}
+
+%   LPT tile
+  \newcount\Boolean
+  \newcommand{\BasicTileLPT}{%
+%     From random.tex by Donald Arseneau
+    \setrannum{\Boolean}{0}{1}%
+    \ifnum\Boolean=0
+      \ProtoTileLPT%
+    \else
+      \psrotateleft{\ProtoTileLPT}%
+    \fi}
+
+  \ProtoTileLPT\hfill\psrotateleft{\ProtoTileLPT}\hfill
+  \psset{unit=0.5}
+  \psboxfill{\BasicTileLPT}
+  \Tiling{(5,5)}
+\end{LTXexample}
+
+
+  But, for simple cases, there is a solution to this problem using a mixture
+of PSTricks and PostScript programming. Here the PSTricks
+construction \Lcs{pscustom}\verb+{+\Lcs{code}\verb+{...}}+ allow to insert PostScript code
+inside the \LaTeX{} + PSTricks one.
+
+  Programmation is less straightforward, but it has also the advantage to be
+notably faster, as all the tilings operations are done in PostScript, and
+mainly to not be limited by \TeX{} memory (the \TeX{} + PSTricks solution
+I wrote in 1995 for the colored problem was limited to small sizes for this
+reason). Just note also that \Lcs{pslbrace} and \Lcs{psrbrace} are two
+PSTricks macros to define and be able to insert the \verb+{+ and \verb+}+
+characters.
+
+
+
+
+\begin{LTXexample}[pos=t]
+%   LPT prototile
+\newcommand\ProtoTileLPT{%
+    \psset{dimen=middle}
+    \psframe(1,1)
+    \psarc[linecolor=blue](0,0){0.5}{0}{90}
+    \psarc[linecolor=red](1,1){0.5}{-180}{-90}}
+
+\newcount\InitCounter
+
+\ifPSTlualatex
+  \newcommand\BasicTileLPT{%
+    \InitCounter=\the\time
+    \begin{pspicture}(1,1)
+      \pstverb{
+        rand \the\InitCounter\space add 2 mod 0 eq  
+        {\luaPSTbox\hbox{\ProtoTileLPT}}%
+        { 1 0 \csname tx at ScreenCoor\endcsname translate
+         \luaPSTbox\hbox{\psrotateleft{\ProtoTileLPT}}} ifelse /.TeXBox findresource exec
+      }% 
+  \end{pspicture}}
+\else
+  \newcommand\BasicTileLPT{%
+    \InitCounter=\the\time
+    \pscustom{\code{%
+      rand \the\InitCounter\space add 2 mod 0 eq \pslbrace}}
+    \begin{pspicture}(1,1)
+      \ProtoTileLPT
+    \end{pspicture}%
+    \pscustom{\code{\psrbrace \pslbrace}}
+    \psrotateleft{\ProtoTileLPT}%
+    \pscustom{\code{\psrbrace ifelse}}}
+\fi
+\psset{fillcycley=1,fillcyclex=1,fillloopaddy=2,unit=0.4,linewidth=0.8pt}
+\psboxfill{\BasicTileLPT}
+\Tiling{(10,10)}
+\end{LTXexample}
+
+
+
+
+  Using the very surprising fact (see \cite{EsperetGirou98}) that
+coloration of these tiles do not depend of their neighbors (even if it is
+difficult to believe as the opposite seems obvious!) but only of the parity of
+the value of row and column positions, we can directly program in the same way
+a colored version of the LPT tiling.
+
+  We have also introduce in the \FillPackage{} code for \emph{tiling} mode two
+new accessible Post\-Script variables, \texttt{row} and
+\texttt{column}\footnotemark, which can be useful in some circonstances, like
+this one.
+
+
+
+
+
+\newcommand\ProtoTileLPT[2]{%
+    \psset{dimen=middle,linestyle=none,fillstyle=solid}
+    \psframe[fillcolor=#1](1,1)
+    \psset{fillcolor=#2}
+    \pswedge(0,0){0.5}{0}{90} 
+    \pswedge(1,1){0.5}{-180}{-90}}
+    
+\newcount\InitCounter
+
+\ifPSTlualatex
+  \newcommand\BasicTileLPT[2]{%
+    \InitCounter=\the\time
+    \begin{pspicture}(1,1)%
+      \pstverb{
+        rand \the\InitCounter\space sub 2 mod 0 eq {
+          \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{%
+            \ProtoTileLPT{#1}{#2}%
+          }} {\luaPSTbox\hbox{%
+             \ProtoTileLPT{#2}{#1}%
+          }} ifelse /.TeXBox findresource exec
+        } {
+          1 0 \csname tx at ScreenCoor\endcsname translate 
+             \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{%
+            \psrotateleft{\ProtoTileLPT{#2}{#1}}%
+          }} {\luaPSTbox\hbox{%
+            \psrotateleft{\ProtoTileLPT{#1}{#2}}%
+          }} ifelse /.TeXBox findresource exec
+      } ifelse
+    }%
+  \end{pspicture}}
+\else
+  \newcommand\BasicTileLPT[2]{%
+      \InitCounter=\the\time
+      \pscustom{\code{%
+        rand \the\InitCounter\space sub 2 mod 0 eq \pslbrace
+        row column add 2 mod 0 eq \pslbrace}}
+      \begin{pspicture}(1,1)\ProtoTileLPT{#1}{#2}\end{pspicture}%
+      \pscustom{\code{\psrbrace \pslbrace}}
+      \ProtoTileLPT{#2}{#1}%
+      \pscustom{\code{%
+        \psrbrace ifelse \psrbrace \pslbrace row column add 2 mod 0 eq \pslbrace}}
+      \psrotateleft{\ProtoTileLPT{#2}{#1}}\pscustom{\code{\psrbrace \pslbrace}}
+      \psrotateleft{\ProtoTileLPT{#1}{#2}}\pscustom{\code{\psrbrace ifelse \psrbrace ifelse}}}
+\fi
+
+\psboxfill{\BasicTileLPT{red}{yellow}}
+\Tiling{(4,4)}\hfill
+\psset{unit=0.4}\psboxfill{\BasicTileLPT{blue}{cyan}}
+\Tiling{(15,15)}
+
+
+\psset{unit=1cm}
+\begin{lstlisting}
+\newcommand\ProtoTileLPT[2]{%
+    \psset{dimen=middle,linestyle=none,fillstyle=solid}
+    \psframe[fillcolor=#1](1,1)
+    \psset{fillcolor=#2}
+    \pswedge(0,0){0.5}{0}{90} 
+    \pswedge(1,1){0.5}{-180}{-90}}
+    
+\newcount\InitCounter
+
+  \newcommand\BasicTileLPT[2]{%
+    \InitCounter=\the\time
+    \begin{pspicture}(1,1)%
+      \pstverb{
+        rand \the\InitCounter\space sub 2 mod 0 eq {
+          \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{%
+            \ProtoTileLPT{#1}{#2}%
+          }} {\luaPSTbox\hbox{%
+             \ProtoTileLPT{#2}{#1}%
+          }} ifelse /.TeXBox findresource exec
+        } {
+          1 0 \csname tx at ScreenCoor\endcsname translate 
+             \txfillDict row column end add 2 mod 0 eq {\luaPSTbox\hbox{%
+            \psrotateleft{\ProtoTileLPT{#2}{#1}}%
+          }} {\luaPSTbox\hbox{%
+            \psrotateleft{\ProtoTileLPT{#1}{#2}}%
+          }} ifelse /.TeXBox findresource exec
+      } ifelse
+    }%
+  \end{pspicture}}
+
+  \psboxfill{\BasicTileLPT{red}{yellow}}
+  \Tiling{(4,4)}\hfill
+ \psset{unit=0.4}\psboxfill{\BasicTileLPT{blue}{cyan}}
+ \Tiling{(15,15)}
+\end{lstlisting}
+
+
+  Another classic example is to generate coordinates and numerotation for a
+grid. Of course, it is possible to do it directly in PSTricks using nested
+\Lcs{multido} commands. It would be clearly easy to program, but, nevertheless, 
+for users who have a little knowledge of PostScript programming, this offer
+an alternative which is useful for large cases, because on this way it will
+be notably faster and less computer ressources consuming.
+
+  Remember here that the tiling is drawn from left to right, and top to
+bottom, and note that the PostScript variable \texttt{x2} give the total
+number of columns.
+
+
+
+\begin{externalDocument}[
+%  grfOptions={width=0.48\linewidth},
+%  pages={1,3},
+%  frame,
+  compiler=lualatex,
+%  showFilename,
+  crop,
+  cropmargin=5,
+  eps,
+  force,
+  %runs=2,
+  code,
+  docType=latex,
+  %frame,
+  %lstOptions={columns=fixed}
+  ]{pst-fill-doc}
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{uncompress}
+\documentclass{article}
+\pagestyle{empty}
+\usepackage[tiling]{pst-fill}
+%StartVisiblePreamble
+\newcommand\Square{\begin{pspicture}(1,1)\psframe[dimen=middle](1,1)\end{pspicture}}
+\newcommand\Tiling[2][]{%
+ \begin{pspicture}#2 \psframe[fillstyle=boxfill,#1]#2\end{pspicture}}
+\newcommand\ProtoTile{%
+  \Square
+  \pscustom{%
+      \moveto(-0.9,0.75) % In PSTricks units
+      \code{\ifPSTlualatex\txfillDict\fi
+        /Times-Italic findfont 8 scalefont setfont
+        (\string\() show row 3 string cvs show (,) show 
+        column 3 string cvs show (\string\)) show \ifPSTlualatex end \fi}
+      \moveto(-0.5,0.25) % In PSTricks units
+      \code{\ifPSTlualatex\txfillDict\fi
+        /Times-Bold findfont 18 scalefont setfont
+        1 0 0 setrgbcolor % Red color
+        /center { dup stringwidth pop 2 div neg 0 rmoveto } def
+         row 1 sub x2 mul column add 3 string cvs  
+        center show \ifPSTlualatex end \fi }}}
+%StopVisiblePreamble
+\begin{document}
+\psset{fillcycley=0,fillcyclex=0,fillloopaddy=0}
+\psboxfill{\ProtoTile}
+\Tiling{(6,4)}
+\end{document}
+\end{externalDocument}
+
+
+
+\subsection{A complete example: the Poisson equation}
+
+  To finish, we will show a complete real example, a drawing to explain the
+method used to solve the \textsc{Poisson} equation by a domain
+decomposition method, adapted to distributed memory computers. The
+objective is to show the communications required between processes and the
+position of the data to exchange. This code also show some useful and powerful
+technics for PSTricks programming (look specially at the way some higher level
+macros are defined, and how the same object is used to draw the four
+neighbors).
+
+\psset{unit=1cm}
+\newcommand{\Pattern}[1]{%
+  \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]}
+  \end{pspicture}}
+\newcommand{\West}{\Pattern{o}}   \newcommand{\South}{\Pattern{x}}
+\newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}}
+\newcommand{\East}{\Pattern{triangle}}
+\newcommand{\Cross}{%
+ \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1)%
+             (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)}
+\newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}}
+\newcommand{\SubDomain}[4]{%
+   \psboxfill{#4}\begin{psclip}{\psframe[linestyle=none]#1}%
+     \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2%
+   \end{psclip}}
+\newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1}
+\newcommand{\ReceiveData}[2]{%
+ \psboxfill{#2}\psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1}%
+\newcommand{\Neighbor}[2]{%
+   \begin{pspicture}(5,5)
+     \rput{*0}(2.5,2.5){\StylePosition{#1}}
+     \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)}%
+     \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}%
+     \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25)%
+     \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75)%
+   \end{pspicture}}%
+ \psset{dimen=middle,dotscale=2,fillloopadd=2}
+\begin{pspicture}(-5.7,-5.7)(5.7,5.7)
+ \rput(0,0){%
+     \begin{pspicture}(5,5)
+       \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East}
+       \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South}
+       \SendArea{(0.5,0.5)(1,4.5)}\SendArea{(4,0.5)(4.5,4.5)}
+       \SendArea{(0.5,0.5)(4.5,1)}\SendArea{(0.5,4)(4.5,4.5)}
+       \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central}
+       \psline(1,0.5)(1,4.5)\psline(4,0.5)(4,4.5)%
+       \rput(1.5,4){\Cross}\rput(2,2){\Cross}%
+     \end{pspicture}}%
+ \rput(0,5.5){\Neighbor{N}{\North}}\rput{-90}(5.5,0){\Neighbor{E}{\East}}%
+ \rput{90}(-5.5,0){\Neighbor{W}{\West}}\rput{180}(0,-5.5){\Neighbor{S}{\South}}%
+\end{pspicture}
+
+\begin{lstlisting}
+  \newcommand{\Pattern}[1]{%
+    \begin{pspicture}(-0.25,-0.25)(0.25,0.25)\rput{*0}{\psdot[dotstyle=#1]}
+    \end{pspicture}}
+  \newcommand{\West}{\Pattern{o}}   \newcommand{\South}{\Pattern{x}}
+  \newcommand{\Central}{\Pattern{+}}\newcommand{\North}{\Pattern{square}}
+  \newcommand{\East}{\Pattern{triangle}}
+  \newcommand{\Cross}{%
+    \pspolygon[unit=0.5,linewidth=0.2,linecolor=red](0,0)(0,1)(1,1)(1,2)(2,2)(2,1)
+              (3,1)(3,0)(2,0)(2,-1)(1,-1)(1,0)}
+  \newcommand{\StylePosition}[1]{\LARGE\textcolor{red}{\textbf{#1}}}
+  \newcommand{\SubDomain}[4]{%
+    \psboxfill{#4}
+    \begin{psclip}{\psframe[linestyle=none]#1}
+      \psframe[linestyle=#3](5,5)\psframe[fillstyle=boxfill]#2
+    \end{psclip}}
+  \newcommand{\SendArea}[1]{\psframe[fillstyle=solid,fillcolor=cyan]#1}
+  \newcommand{\ReceiveData}[2]{%
+    \psboxfill{#2}
+    \psframe[fillstyle=solid,fillcolor=yellow,addfillstyle=boxfill]#1}
+  \newcommand{\Neighbor}[2]{%
+    \begin{pspicture}(5,5)
+      \rput{*0}(2.5,2.5){\StylePosition{#1}}
+      \ReceiveData{(0.5,0)(4.5,0.5)}{\Central}\SendArea{(0.5,0.5)(4.5,1)}
+      \SubDomain{(5,2)}{(0.5,0.5)(4.5,3)}{dashed}{#2}%
+%       Receive and send arrows
+      \pcarc[arcangle=45,arrows=->](0.5,-1.25)(0.5,0.25)
+      \pcarc[arcangle=45,arrows=->,linestyle=dotted,dotsep=2pt](4.5,0.75)(4.5,-0.75)
+    \end{pspicture}}
+  \psset{dimen=middle,dotscale=2,fillloopadd=2}
+  \begin{pspicture}(-5.7,-5.7)(5.7,5.7)
+%     Central domain
+    \rput(0,0){%
+      \begin{pspicture}(5,5)
+%         Receive from West, East, North and South
+        \ReceiveData{(0,0.5)(0.5,4.5)}{\West} \ReceiveData{(4.5,0.5)(5,4.5)}{\East}
+        \ReceiveData{(0.5,4.5)(4.5,5)}{\North}\ReceiveData{(0.5,0)(4.5,0.5)}{\South}
+%         send area for West, East, North and South
+        \SendArea{(0.5,0.5)(1,4.5)} \SendArea{(4,0.5)(4.5,4.5)}
+        \SendArea{(0.5,0.5)(4.5,1)} \SendArea{(0.5,4)(4.5,4.5)}
+%         Central domain
+        \SubDomain{(5,5)}{(0.5,0.5)(4.5,4.5)}{solid}{\Central}
+%         Redraw overlapped linesY
+        \psline(1,0.5)(1,4.5)  \psline(4,0.5)(4,4.5)
+%         Two crossesY
+        \rput(1.5,4){\Cross}  \rput(2,2){\Cross}
+      \end{pspicture}}
+%     The four neighborsY
+    \rput(0,5.5){\Neighbor{N}{\North}}     \rput{-90}(5.5,0){\Neighbor{E}{\East}}
+    \rput{90}(-5.5,0){\Neighbor{W}{\West}} \rput{180}(0,-5.5){\Neighbor{S}{\South}}
+  \end{pspicture}
+\end{lstlisting}
+%
+
+\section{Debugging}
+
+For debugging (to debug, set PstDebug=1)
+we now use the one from pstricks to prevent a clash with package
+pstricks                        2004-06-22
+%   \define at key[psset]{pst-fill}{PstDebug}{\pst at getint{#1}\psk at PstDebug}
+    \psset{PstDebug=0}
+
+\printbibliography
+\printindex
+
+
+\end{document}
+


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/generic/pst-fill/pst-fill.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/pst-fill/pst-fill.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-fill/pst-fill.tex	2021-10-01 22:01:38 UTC (rev 60670)
+++ trunk/Master/texmf-dist/tex/generic/pst-fill/pst-fill.tex	2021-10-01 22:02:17 UTC (rev 60671)
@@ -1,30 +1,9 @@
 %%
-%% This is file `pst-fill.tex',
-%% generated with the docstrip utility.
+%% This is Package `pst-fill'
 %%
-%% The original source files were:
-%%
-%% pst-fill.dtx  (with options: `pst-fill')
-%% 
-%% IMPORTANT NOTICE:
-%% 
-%% For the copyright see the source file.
-%% 
-%% Any modified versions of this file must be renamed
-%% with new filenames distinct from pst-fill.tex.
-%% 
-%% For distribution of the original source see the terms
-%% for copying and modification in the file pst-fill.dtx.
-%% 
-%% This generated file may be distributed as long as the
-%% original source files, as listed above, are part of the
-%% same distribution. (The sources need not necessarily be
-%% in the same archive or directory.)
-%%
-%% Package `pst-fill.dtx'
-%%
 %% Denis Girou (CNRS/IDRIS - France) <Denis.Girou at idris.fr>
-%% Herbert Voss <voss at pstricks.de>
+%% Herbert Voss <hvoss at tug.org>
+%% (C) 2003-2021
 %%
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License Distributed from CTAN archives
@@ -35,13 +14,13 @@
 %%
 %%     \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5,
 %%               addfillstyle=boxfill](2,2){2}
-\def\fileversion{1.01}
-\def\filedate{2007/03/10}
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi
+\def\fileversion{1.02}
+\def\filedate{2021/10/01}
 \message{`PST-Fill' v\fileversion, \filedate\space (tvz,dg,hv)}
 \csname PSTboxfillLoaded\endcsname
 \let\PSTboxfillLoaded\endinput
-\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
-\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi
 \edef\PstAtCode{\the\catcode`\@}\catcode`\@=11\relax
 
 \pst at addfams{pst-fill}
@@ -78,10 +57,8 @@
 \psset{boxfillcolor=black}% hv
 \define at key[psset]{pst-fill}{boxfillangle}{\pst at getangle{#1}\psk at boxfillangle}
 \psset{boxfillangle=0}
-\define at key[psset]{pst-fill}{fillsepx}{%
-  \pst at getlength{#1}\psk at fillsepx}
-\define at key[psset]{pst-fill}{fillsepy}{%
-  \pst at getlength{#1}\psk at fillsepy}
+\define at key[psset]{pst-fill}{fillsepx}{\pst at getlength{#1}\psk at fillsepx}
+\define at key[psset]{pst-fill}{fillsepy}{\pst at getlength{#1}\psk at fillsepy}
 \define at key[psset]{pst-fill}{fillsep}{%
   \pst at getlength{#1}\psk at fillsepx%
   \let\psk at fillsepy\psk at fillsepx}
@@ -116,9 +93,25 @@
     \psset{PstDebug=0}
 \fi
 
+\def\pstFillSetDefaults{%
+  \psset{%
+ boxfillsize={(-15cm,-15cm)(15cm,15cm)},
+ boxfillcolor=black,
+ boxfillangle=0,
+ fillsep=2pt,
+ fillsep=0,fillsize=auto,
+ fillcycle=0,
+ fillmove=0pt,
+ fillloopadd=0,
+  PstDebug=0}%
+}
+
+
+\def\txfillDict{ fill at Dict begin }
+
 \newbox\pst at fillbox
 \def\psboxfill{\pst at killglue\pst at makebox\psboxfill at i}
-\def\psboxfill at i{\setbox\pst at fillbox\box\pst at hbox\ignorespaces}
+\def\psboxfill at i{\null\setbox\pst at fillbox\box\pst at hbox\ignorespaces}% \null to prevent empty page
 \def\psfs at boxfill{%
   \ifvoid\pst at fillbox
     \@pstrickserr{Fill box is empty. Use \string\psboxfill\space first.}\@ehpa
@@ -126,6 +119,7 @@
     \ifx\psk at boxfillsize\relax \pst at AutoBoxFill
     \else\pst at ManualBoxFill\fi
   \fi}
+  
 \def\pst at ManualBoxFill{%
   \leavevmode
   \begingroup
@@ -135,6 +129,7 @@
     \expandafter\pst at AddFillBox\psk at boxfillsize
     \end at psclip
   \endgroup}
+
 \def\pst at FlushCode{%
   \pst at Verb{%
     /mtrxc CM def
@@ -148,6 +143,7 @@
     moveto
     0 setgray}%
   \gdef\pst at code{}}
+
 \def\pst at AddFillBox#1 #2 #3 #4 {%
   \begingroup
     \setbox\pst at fillbox=\vbox{%
@@ -161,11 +157,11 @@
     \advance\pst at cntb-\pst at dimb
     \pst at dimd=\ht\pst at fillbox
     \divide\pst at cntb\pst at dimd
-    \def\pst at tempa{%
+    \def\pst@@tempA{%
       \pst at tempg
       \copy\pst at fillbox
       \advance\pst at cntc\@ne
-      \ifnum\pst at cntc<\pst at cntd\expandafter\pst at tempa\fi}%
+      \ifnum\pst at cntc<\pst at cntd\expandafter\pst@@tempA\fi}%
     \let\pst at tempg\relax
     \pst at cntc-\tw@
     \pst at cntd\pst at cnta
@@ -172,7 +168,7 @@
     \setbox\pst at fillbox=\hbox to \z@{%
       \kern\pst at dima
       \kern-\wd\pst at fillbox
-      \pst at tempa
+      \pst@@tempA
       \hss}%
     \pst at cntd\pst at cntb
 %% DG modification begin - Dec. 11, 1997 - Patch 2
@@ -185,12 +181,13 @@
     \global\setbox\pst at boxg=\vbox to\z@{%
       \offinterlineskip
       \vss
-      \pst at tempa
+      \pst@@tempA
       \vskip\pst at dimb}%
   \endgroup
   \setbox\pst at fillbox\box\pst at boxg
   \pst at rotate\psk at boxfillangle\pst at fillbox
   \box\pst at fillbox}
+  
 \def\pst at ManualFillCycle{%
   \ifx\PstTiling\@undefined
     \pst at cntg=\psk at fillcycle
@@ -208,18 +205,20 @@
   \def\pst at tempg{%
     \ifnum\pst at cnth<\pst at cntg\advance\pst at cnth\@ne\else\pst at cnth\z@\fi
     \moveright\pst at cnth\pst at dimg}}
-%% Auto box fill:        !! Fix dictionary
-%% DG addition begin - Apr. 8, 1997 and Dec. 1997 - Patch 2
+
 \ifx\PstTiling\@undefined
-\pst at def{AutoFillCycle}<%
-  /c ED
-  /n 0 def
-  /s {
-    /x x w c div n mul add def
-    /n n c abs 1 sub lt { n 1 add } { 0 } ifelse def
-  } def>
-
+  \pst at def{AutoFillCycle}<%
+    fill at Dict begin
+    /c ED
+    /n 0 def
+    /s {
+      /x x w c div n mul add def
+      /n n c abs 1 sub lt { n 1 add } { 0 } ifelse def
+    } def
+    end
+  >
 \pst at def{BoxFill}<%
+  fill at Dict begin
   gsave
     gsave \tx at STV CM grestore dtransform CM idtransform
     abs /h ED abs /w ED
@@ -239,15 +238,11 @@
       s
       x2 {
         save CP x y1
-%% patch 4   hv --------------
         \ifx\VTeXversion\undefined
         \else
-%%============ mv: 09-10-01 ??? this is likely to be a right change
         neg
-%%============
         \fi
-%% end patch 4
-T moveto Box restore
+        T moveto Box restore
         /x x w add def
       } repeat
       /y1 y1 h add def
@@ -254,35 +249,53 @@
     } repeat
     % Next line not useful... To see that, suppress clipping (DG)
     CP x y1 T moveto Box
-  currentpoint currentfont grestore setfont moveto>
-\else
-%% DG modification begin - Apr. 8, 1997 and Nov. / Dec. 1997 - Patch 2
-\pst at def{AutoFillCycleX}<%
-  /cX ED
-  /nX 0 def
-  /CycleX {
-    /x x w cX div nX mul add def
-    /nX nX cX abs 1 sub lt { nX 1 add } { 0 } ifelse def
-  } def>
-\pst at def{AutoFillCycleY}<%
-  /cY ED
-  /mY 0 def
-  /nY 0 def
-  /CycleY {
-    /y1 y1 h cY div mY mul sub def
-    nY cY abs 1 sub lt { /nY nY 1 add def /mY 1 def }
+    end
+  currentpoint currentfont grestore setfont moveto
+  >
+\else%   Tiling is defined -----------------------------------
+  \pst at def{AutoFillCycleX}<
+%    fill at Dict begin
+    /cX ED
+    /nX 0 def
+    /CycleX {
+      /x x w cX div nX mul add def
+      /nX nX cX abs 1 sub lt { nX 1 add } { 0 } ifelse def
+    } def 
+%    end
+  >
+  \pst at def{AutoFillCycleY}<%
+%    fill at Dict begin
+    /cY ED
+    /mY 0 def
+    /nY 0 def
+    /CycleY {
+      /y1 y1 h cY div mY mul sub def
+      nY cY abs 1 sub lt { /nY nY 1 add def /mY 1 def }
                        { /nY 0 def        /mY cY abs 1 sub neg def } ifelse
-  } def>
-
-\pst at def{BoxFill}<%
-  gsave
+    } def
+%    end
+  >
+  \pst at def{BoxFill}<
+    \ifPSTlualatex
+      /save /gsave load def
+      /restore /grestore load def
+      fill at Dict begin
+    \fi
+    gsave
     gsave \tx at STV CM grestore dtransform CM idtransform
     abs /h ED abs /w ED
-    pathbbox
+    pathbbox 
+  \ifPSTlualatex
+    h div 2 add cvi /y2 ED
+    w div 2 add cvi /x2 ED
+    h div 2 sub cvi /y1 ED
+    w div 2 sub cvi /x1 ED
+  \else
     h div round 2 add cvi /y2 ED
     w div round 2 add cvi /x2 ED
     h div round 2 sub cvi /y1 ED
     w div round 2 sub cvi /x1 ED
+  \fi
     /CoefLoopX 0 def
     /CoefLoopY 0 def
     /CoefMoveX 0 def
@@ -304,22 +317,19 @@
     /CoefLoopY CoefLoopY \psk at fillloopaddy\space add def
     /x2 x2 x1 sub 4 sub CoefLoopX 2 mul add def
     /y2 y2 y1 sub 4 sub CoefLoopY 2 mul add def
-%% We must fix the origin of tiling, as it must not vary according other stuff
-%% in the page!
+    %% We must fix the origin of tiling, as it must not vary according other stuff in the page!
     w x1 CoefLoopX add CoefMoveX add mul
       h y1 y2 add 1 sub CoefLoopY sub CoefMoveY sub mul moveto
-    CP
+    CP 
     y1 h mul sub neg /y1 ED
     x1 w mul sub neg /x1 ED
-%%  hv 2004-06-22   to prevent clash with pst-gr3d
-%%    \psk at PstDebug 0 eq {clip} if
     \Pst at Debug 0 eq {clip} if
-%% end hv
     \psk at fillmovex\space \psk at fillmovey
-    gsave \tx at STV CM grestore dtransform CM idtransform
+    gsave \tx at STV CM grestore 
+    dtransform CM idtransform
     /hmove ED /wmove ED
     /row 0 def
-   y2 {
+    y2 {
        /row row 1 add def
        /column 0 def
        /x x1 def
@@ -328,15 +338,9 @@
        x2 {
           /column column 1 add def
           CycleY
-          save CP x y1
-%% patch 4   hv --------------
-          \ifx\VTeXversion\undefined
-          \else
-%%============ mv: 09-10-01 ??? this is likely to be a right change
-          neg
-%%============
-          \fi
-  T moveto Box restore
+          save CP x y1 
+          \ifPSTlualatex neg \fi
+          T moveto Box restore
           /x x w add def
           0 hmove translate
           } repeat
@@ -343,25 +347,81 @@
        restore
        /y1 y1 h add def
        wmove 0 translate
-       } repeat
-  currentpoint currentfont grestore setfont moveto>
-\fi
+    } repeat
+    currentpoint 
+    currentfont 
+    grestore 
+    setfont 
+    moveto
+    \ifPSTlualatex end \fi
+  >
+\fi % edn of tiling=true
 
-\def\pst at AutoBoxFill{%
-  \leavevmode
-  \begingroup
+\ifPSTlualatex
+  \def\pst at AutoBoxFill{%
+    \leavevmode
+    \begingroup
     \pst at stroke
     \pst at FlushCode
     \pst at Verb{\psk at boxfillangle\space \tx at RotBegin}%
+    \pstVerb{  
+         \pst at dict /Box [ /gsave cvx currentpoint /translate cvx \luaPSTbox\hbox{%
+        \ifx\PstTiling\@undefined
+        \else
+          \ifx\pst at tempa\@undefined % Undefined for instance for \pscharpath
+          \else\ifx\pst at tempa\@empty\else
+            \def\pst at temph{0}%
+            \ifx\pst at tempa\pst at temph
+            \else
+            \fi
+          \fi\fi
+        \fi
+        \hbox to \z@{\vbox to\z@{\vss\copy\pst at fillbox\vskip-\dp\pst at fillbox}\hss}%
+      } /.TeXBox findresource /grestore cvx ] cvx def
+      \ifx\PstTiling\@undefined
+        \ifnum\psk at fillcycle=\z@
+          /s {} def
+        \else
+          \psk at fillcycle \tx at AutoFillCycle
+        \fi
+      \else
+        \ifnum\psk at fillcyclex=\z@
+          /CycleX {} def
+        \else
+          \psk at fillcyclex\space \tx at AutoFillCycleX
+        \fi
+        \ifnum\psk at fillcycley=\z@
+          /CycleY {} def
+        \else
+          \psk at fillcycley\space \tx at AutoFillCycleY
+        \fi
+      \fi
+      \pst at number{\wd\pst at fillbox}%
+      \psk at fillsepx\space add
+      \pst at number{\ht\pst at fillbox}%
+      \pst at number{\dp\pst at fillbox}%
+      \psk at fillsepy\space add add
+      \tx at BoxFill
+    end 
+  }%
+  \pst at Verb{\tx at RotEnd}%
+  \endgroup}
+\else%%%%%%%%%%%%%%% latex->dvips definition
+  \def\pst at AutoBoxFill{%
+    \leavevmode
+    \begingroup
+    \pst at stroke
+    \pst at FlushCode
+    \pst at Verb{\psk at boxfillangle\space \tx at RotBegin}%
     \pstVerb{\pst at dict /Box \pslbrace end}%
     \ifx\PstTiling\@undefined
     \else
-      \ifx\pst at tempa\@undefined % Undefined for instance for \pscharpath
-      \else\ifx\pst at tempa\@empty\else
+      \ifx\pst@@tempA\@undefined % Undefined for instance for \pscharpath
+      \else\ifx\pst@@tempA\@empty\else
         \def\pst at temph{0}%
-        \ifx\pst at tempa\pst at temph
+        \ifx\pst@@tempA\pst at temph
         \else
-          \pstVerb{/TR {pop pop currentpoint translate \pst at tempa\space translate } def}%
+          \pstVerb{/TR {pop pop currentpoint translate \pst@@tempA\space translate } def}%
         \fi
       \fi\fi
     \fi
@@ -404,6 +464,8 @@
     \fi
     \pst at Verb{\tx at RotEnd}%
   \endgroup}
+\fi
+%
 \catcode`\@=\PstAtCode\relax
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/pst-fill/pst-fill.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-fill/pst-fill.sty	2021-10-01 22:01:38 UTC (rev 60670)
+++ trunk/Master/texmf-dist/tex/latex/pst-fill/pst-fill.sty	2021-10-01 22:02:17 UTC (rev 60671)
@@ -1,30 +1,9 @@
 %%
 %% This is file `pst-fill.sty',
-%% generated with the docstrip utility.
 %%
-%% The original source files were:
-%%
-%% pst-fill.dtx  (with options: `latex-wrapper')
-%% 
-%% IMPORTANT NOTICE:
-%% 
-%% For the copyright see the source file.
-%% 
-%% Any modified versions of this file must be renamed
-%% with new filenames distinct from pst-fill.sty.
-%% 
-%% For distribution of the original source see the terms
-%% for copying and modification in the file pst-fill.dtx.
-%% 
-%% This generated file may be distributed as long as the
-%% original source files, as listed above, are part of the
-%% same distribution. (The sources need not necessarily be
-%% in the same archive or directory.)
-%%
-%% Package `pst-fill.dtx'
-%%
 %% Denis Girou (CNRS/IDRIS - France) <Denis.Girou at idris.fr>
-%% Herbert Voss <voss at pstricks.de>
+%% Herbert Voss <hvoss at tug.org>
+%% (C) 2007-2021
 %%
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License Distributed from CTAN archives
@@ -33,16 +12,12 @@
 %% DESCRIPTION:
 %%   `pst-fill' is a PSTricks package for filling and tiling areas
 %%
-%%     \pscircle[linestyle=none,fillstyle=solid,fillcolor=yellow,fillsep=0.5,
-%%               addfillstyle=boxfill](2,2){2}
 \RequirePackage{pstricks}
-\ProvidesPackage{pst-fill}[2005/09/13 package wrapper for
-  pst-fill.tex (hv)]
+\ProvidesPackage{pst-fill}[2010/03/20 package wrapper for pst-fill.tex (hv)]
 \DeclareOption{tiling}{\def\PstTiling{true}}
 \ProcessOptions\relax
 \input{pst-fill.tex}
-\ProvidesFile{pst-fill.tex}
-  [\filedate\space v\fileversion\space `PST-fill' (tvz,dg)]
+\ProvidesFile{pst-fill.tex} [\filedate\space v\fileversion\space `PST-fill' (tvz,dg,hv)]
 \endinput
 %%
 %% End of file `pst-fill.sty'.



More information about the tex-live-commits mailing list.