[OS X TeX] [External] creating a ps object

Nitecki, Zbigniew H. Zbigniew.Nitecki at tufts.edu
Fri Jun 13 17:47:47 EDT 2025


Herbert:
Thank you for your response.

I’ll have to study your example in detail.
I’ve become pretty fluent in the language of Latex and Pstricks, and was hoping something could be done
within that.  I also was probably not so clear about what I was looking for.

First,  consider the following example of a single (3cm x 3cm) “tile”:

% !TEX TS-program = latex
\documentclass{article}

\usepackage{pstricks}
%\usepackage{subfig}

\usepackage{colormacros}

\begin{document}

        \begin{pspicture}[unit=3cm](0,0)(1,1)
\pspolygon[fillcolor=green, fillstyle=solid]%
(0.02,0.02)(0.98,0.02)(0.98,0.98)(0.02,0.98)
\psline[linecolor=black, linestyle=dashed, linewidth=1.5pt]{<-}%
(0.16,0.16)(0.16, 0.84)(0.5,0.84)(0.5,0.16)(0.84,0.16)(0.84,0.84)
\end{pspicture}

\end{document}



Question 1:  If I want to create a (9cm x 9cm) square which is tiled as a 3x3 array of copies of this tile,
one way is to do so is to write
\begin{{pspicture}[unit=3cm](0,0)(3,3)
followed by nine versions of
\pspolygon[fillcolor=green, fillstyle=solid]%
(0.02,0.02)(0.98,0.02)(0.98,0.98)(0.02,0.98)
\psline[linecolor=black, linestyle=dashed, linewidth=1.5pt]{<-}%
(0.16,0.16)(0.16, 0.84)(0.5,0.84)(0.5,0.16)(0.84,0.16)(0.84,0.84)
each with the 12 x-coordinates (resp. y-coordnates) replaced whre appropriate with the given value
inceased by 1.0 or 2.0.
I would expect that instead this could be accomplished by turning the original specification into a
“template” and using a sequence of nine \rput commands to create the 9x9 array.
Can this be done using the basic commands of pstricks?

Question 2: Suppose instead I have several (say3) other variants of this tile, all in the same formal, and differing
in color (say, red, blue and yellow in place of green as well as the exact nature of the \psline in the original
(ie, differing in the coordinates of the “turning points” of the curve, given by changing the coordinates in the
fourth line of the content above.
Suppose I want to create a 3x3 array using these four variants, arranged according to some pattern—for example,
the variant used depends on the parity of their position witin the array.
Again, this can be done by hand, writing out nine variants of the four lines above.
Or, if there is a good answer to question 1, we could write four variants of our oriiginal tile, and use four different
multirput commands to create the array.
But can it be done by creating a singlen template as imagined in question 1, but using parameters for the color and the curve (or the coordinates of the turning points of the curve) and applying several multirput commands?

Question 3: Suppose I want to fill a 9cm x 9cm square whith a 9x9 array  of these various tiles (again with some
principle underlyng the choice of variant in each given spot).  Writing out 81 versions of the four lines above, together with rescaling the descriptions, is not only tedious but also forbiddingly error-prone.
Is it possible to insert a sizing parameter in addition to those imagined in Question 2 and then use 4 multirput commands on this?

I think it could be done with the kind of language in your example, but is it possible to do this pretty much inside
the PsTricks umbrella?

Any exgra ideas would be very welcome here!

Thanks

ZN



Zbigniew Nitecki
Professor Emeritus
Department of Mathematics
Tufts University
Medford, MA 02155

telephones:
Dept.    (617)627-3234
Dept. fax    (617)627-3966
http://www.tufts.edu/~znitecki/


On Jun 12, 2025, at 05:34, Herbert Voss <Herbert.Voss at fu-berlin.de> wrote:



Am 11.06.25 um 22:00 schrieb Nitecki, Zbigniew H.:
I want to tile a large rectangular area with tiles.  All the tiles are
(congruent) squares filled with a specific color and with some curves
drawn on them.  They come in more than one variety, but there are
enough of each variety that
I want to create  “tile” templates (for thesevarieties, with color and
the specific curve defined by parameters)
and use multirput to do the tiling.

I’m looking for a way to define a graphical object which is
self-contained, perhaps with a few parameters that
need to be filled in, which can then be treated like other
system-defined objects (e.g. pscircles, pslines)—specifically which
can be rput anywhere in a larger picture, with some internal
coordinates which get treated
as relative coordinates.  I thought \newpsobject could work, but that
is only for adding bells and whistles to
already defined objects.

Any suggestons?

Here comes a starter ...

Herbert

\documentclass{article}
\usepackage{pstricks,pst-plot}

\makeatletter
\def\foo{\@ifnextchar[\foo at i{\foo at i[]}}
\def\foo at i[#1]#2#3#4{%
 \begingroup
 \if$#1$\else\psset{#1}\fi
 \psframebox{%
     \begin{pspicture}(-2.25,-2.5)(2.25,2.5)
      \rput(0,2.25){\textbf{#2}}
      \rput(0,0){%
         \begin{pspicture*}(-2,-2)(2,2)
           \psgrid(0,0)(-2,-2)(2,2)
         #3
   \end{pspicture*}}%
   \rput(0,-2.25){#4}
     \end{pspicture}}
 \endgroup
}

\begin{document}

\foo{Demo 1}%
   {\psplot[linewidth=1.5pt,algebraic]{-1.5}{1.5}{x^2}}%
   {A quadratic function}
\foo{Demo 2}%
{\psplot[linewidth=1.25pt,linecolor=red,algebraic]{-1.5}{1.5}{x^3}}%
   {A cubicic function}

\foo[unit=1.5]{Demo 3}%
 {\psline[linewidth=2pt,linestyle=dashed](-2,-2)(2,2)}%
 {A dashed line}
\end{document}

Caution: This message originated from outside of the Tufts University organization. Please exercise caution when clicking links or opening attachments. When in doubt, email the TTS Service Desk at it at tufts.edu<mailto:it at tufts.edu> or call them directly at 617-627-3376.

[Bildschirmfoto 2025-06-12 um 11.32.34.png]----------- Please Consult the Following Before Posting -----------
TeX FAQ: https://www.tug.org/mactex/faq/index.html
List Reminders and Etiquette: https://sites.esm.psu.edu/~gray/TeX/
List Archives: http://dir.gmane.org/gmane.comp.tex.macosx
               https://email.esm.psu.edu/pipermail/macosx-tex/
TeX on Mac OS X Website: https://www.tug.org/mactex/index.html
List Info: https://email.esm.psu.edu/mailman/listinfo/macosx-tex

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://email.esm.psu.edu/pipermail/macosx-tex/attachments/20250613/6ca57afa/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bildschirmfoto 2025-06-12 um 11.32.34.png
Type: image/png
Size: 69180 bytes
Desc: Bildschirmfoto 2025-06-12 um 11.32.34.png
URL: <https://email.esm.psu.edu/pipermail/macosx-tex/attachments/20250613/6ca57afa/attachment.png>


More information about the MacOSX-TeX mailing list