summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/README.md21
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.pdfbin0 -> 127656 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.tex54
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.pdfbin0 -> 62095 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.tex39
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.pdfbin0 -> 10177 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.tex91
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.pdfbin0 -> 10177 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.tex82
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.pdfbin0 -> 2173596 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.tex1489
-rw-r--r--Master/texmf-dist/dvips/pst-moire/pst-moire.pro259
-rw-r--r--Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex111
-rw-r--r--Master/texmf-dist/tex/latex/pst-moire/pst-moire.sty33
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/pst-moire.tlpsrc0
18 files changed, 2182 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-moire/README.md b/Master/texmf-dist/doc/generic/pst-moire/README.md
new file mode 100644
index 00000000000..c7a5ef8937f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/README.md
@@ -0,0 +1,21 @@
+# **README** #
+# pst-moire v. 1.0 #
+# 2018/10/28 #
+
+ Source: pst-moire.tex, pst-moire.sty, pst-moire.pro
+ Authors: Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat
+ Info: Draw moire pattern with PSTricks
+ License: LPPL 1.3c
+
+---
+
+# Short description #
+
+The *pst-moire* package makes it possible to very simply create
+a variety of patterns obtained either by dragging one pattern on another,
+or by rotating one on the other. Moire effects sometimes look very interesting.
+This document provides the necessary commands and divers examples.
+
+
+
+
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.pdf b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.pdf
new file mode 100644
index 00000000000..4e900d34ff7
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.tex b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.tex
new file mode 100644
index 00000000000..2d8a0a47251
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern1.tex
@@ -0,0 +1,54 @@
+\documentclass{article}
+\usepackage{pstricks-add}
+\usepackage[a4paper]{geometry}
+\pagestyle{empty}
+\begin{document}
+
+
+\psset{
+%linestyle=none,
+dimen=inner,
+linewidth=0pt}
+
+\def\carre{%
+\begin{psclip}{\pspolygon[linewidth=0pt,linestyle=none](-1.5,-1.5)(-1.5,1.5)(1.5,1.5)(1.5,-1.5)}
+\multido{\rA=0.1+0.15,\rC=0.2+0.15,\rB=0.025+0.05}{40}{%
+\pscircle[linewidth=1.25pt](\rB,0){\rA}
+\pscircle[linewidth=0.7pt](-\rB,0){\rC}
+}
+\def\lines{%
+\psline[linewidth=2pt](-1.5,1.5)(0,0)
+\psline[linewidth=1.75pt](-1.5,1.25)(-0.25,0)
+\psline[linewidth=1.5pt](-1.5,1)(-0.5,0)
+\psline[linewidth=1.25pt](-1.5,0.75)(-0.75,0)
+\psline[linewidth=1pt](-1.5,0.5)(-1,0)
+\psline[linewidth=0.75pt](-1.5,0.25)(-1.25,0)
+}
+%\rput(0,0){\lines}
+%\rput{90}(0,0){\lines}
+%\rput{180}(0,0){\lines}
+%\rput{270}(0,0){\lines}
+\end{psclip}
+}
+
+\def\half{%
+\rput(0,0){\carre}
+\rput(-3,0){\psscalebox{1 -1}{\carre}}
+}
+
+\def\pattern{%
+\rput(0,0){\half}
+\rput(0,-3){\psscalebox{1 -1}{\half}}
+}
+
+\def\manuel{%
+\multido{\iA=0+6}{2}{
+\multido{\iB=0+-6}{3}{
+\rput(\iA,\iB){\pattern}
+}}
+}
+\begin{pspicture}(-7,-9)(7,9)
+\rput(-1.5,7.5){\manuel}
+%\rput{5}(-1.5,7.5){\manuel}
+\end{pspicture}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.pdf b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.pdf
new file mode 100644
index 00000000000..5566364b1ae
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.tex b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.tex
new file mode 100644
index 00000000000..6a03f60e6a3
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern2.tex
@@ -0,0 +1,39 @@
+\documentclass{article}
+\usepackage{pstricks-add,pst-plot}
+\usepackage[a4paper]{geometry}
+\pagestyle{empty}
+\begin{document}
+
+\psset{
+%linestyle=none,
+dimen=inner,
+linewidth=0pt}
+
+\begin{pspicture}(-9,-9)(9,9)
+\psframe(-5,-5)(5,5)%
+\begin{psclip}{\pspolygon[linewidth=4pt](4;90)(2;126)(4;162)(2;198)(4;234)(2;270)(4;306)(2;342)(4;18)(2;54)}
+\multido{\iA=0+9}{40}{%
+\rput{\iA}(0,0){
+\pscustom[fillstyle=solid,fillcolor=black]{%
+\psparametricplot[algebraic]{-9}{0}{0.5*t*sin(0.2*t)|0.5*t*cos(0.2*t)}
+\psparametricplot[algebraic]{0}{-9}{0.525*t*sin(0.2*t)|0.525*t*cos(0.2*t)}
+}}}
+\end{psclip}
+\end{pspicture}
+
+\newpage
+
+\begin{pspicture}(-9,-9)(9,9)
+\psframe(-5,-5)(5,5)%
+\begin{psclip}{\pspolygon[linewidth=4pt](4;90)(2;126)(4;162)(2;198)(4;234)(2;270)(4;306)(2;342)(4;18)(2;54)}
+\multido{\iA=0+9}{40}{%
+\rput{\iA}(0,0){
+\pscustom[fillstyle=solid,fillcolor=black]{%
+\psparametricplot[algebraic]{0}{-9}{0.525*t*sin(0.2*t)|-0.525*t*cos(0.2*t)}
+\psparametricplot[algebraic]{-9}{0}{0.5*t*sin(0.2*t)|-0.5*t*cos(0.2*t)}
+}}}
+\end{psclip}
+\end{pspicture}
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.pdf b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.pdf
new file mode 100644
index 00000000000..bb44c6d64ab
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.tex b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.tex
new file mode 100644
index 00000000000..de522def591
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern3.tex
@@ -0,0 +1,91 @@
+\documentclass{article}
+\usepackage{pstricks-add}
+\usepackage[a4paper]{geometry}
+\pagestyle{empty}
+\begin{document}
+
+\psset{
+%linestyle=none,
+dimen=inner,
+linewidth=0pt}
+
+\def\carre{%
+\psrotate(0,0){90}{
+\pnode(-1.5,1.5){AL1}\pnode(1.5,-1.5){AR1}
+\pnode(-1.5,1.2){AL1}\pnode(1.5,-1.2){AR1}
+\pnode(-1.5,0.9){AL2}\pnode(1.5,-0.9){AR2}
+\pnode(-1.5,0.7){AL3}\pnode(1.5,-0.7){AR3}
+\pnode(-1.5,0.4){AL4}\pnode(1.5,-0.4){AR4}
+\pnode(-1.5,0.2){AL5}\pnode(1.5,-0.2){AR5}
+\pnode(-1.5,0.0){AL6}\pnode(1.5,0.0){AR6}
+\pnode(-1.5,-0.2){AL7}\pnode(1.5,0.2){AR7}
+\pnode(-1.5,-0.4){AL8}\pnode(1.5,0.4){AR8}
+\pnode(-1.5,-0.6){AL9}\pnode(1.5,0.6){AR9}
+\pnode(-1.5,-0.75){AL10}\pnode(1.5,0.75){AR10}
+\pnode(-1.5,-0.9){AL11}\pnode(1.5,0.9){AR11}
+\pnode(-1.5,-1.05){AL12}\pnode(1.5,1.05){AR12}
+\pnode(-1.5,-1.15){AL13}\pnode(1.5,1.15){AR13}
+\pnode(-1.5,-1.25){AL14}\pnode(1.5,1.25){AR14}
+\pnode(-1.5,-1.3){AL15}\pnode(1.5,1.3){AR15}
+\pnode(-1.5,-1.4){AL16}\pnode(1.5,1.4){AR16}
+\pnode(-1.5,-1.45){AL17}\pnode(1.5,1.45){AR17}
+\pnode(-1.5,-1.5){AL18}\pnode(1.5,1.5){AR18}
+\pspolygon[fillstyle=solid,fillcolor=black](AL1)(AR1)(AR2)(AL2)
+\pspolygon[fillstyle=solid,fillcolor=black](AL3)(AR3)(AR4)(AL4)
+\pspolygon[fillstyle=solid,fillcolor=black](AL5)(AR5)(AR6)(AL6)
+\pspolygon[fillstyle=solid,fillcolor=black](AL7)(AR7)(AR8)(AL8)
+\pspolygon[fillstyle=solid,fillcolor=black](AL9)(AR9)(AR10)(AL10)
+\pspolygon[fillstyle=solid,fillcolor=black](AL11)(AR11)(AR12)(AL12)
+\pspolygon[fillstyle=solid,fillcolor=black](AL13)(AR13)(AR14)(AL14)
+\pspolygon[fillstyle=solid,fillcolor=black](AL15)(AR15)(AR16)(AL16)
+\pspolygon[fillstyle=solid,fillcolor=black](AL17)(AR17)(AR18)(AL18)
+\pnode(-1.5,1.5){BL1}\pnode(1.5,-1.5){BR1}
+\pnode(-1.2,1.5){BL2}\pnode(1.2,-1.5){BR2}
+\pnode(-0.9,1.5){BL3}\pnode(0.9,-1.5){BR3}
+\pnode(-0.7,1.5){BL4}\pnode(0.7,-1.5){BR4}
+\pnode(-0.4,1.5){BL5}\pnode(0.4,-1.5){BR5}
+\pnode(-0.2,1.5){BL6}\pnode(0.2,-1.5){BR6}
+\pnode(0.0,1.5){BL7}\pnode(0,-1.5){BR7}
+\pnode(0.2,1.5){BL8}\pnode(-0.2,-1.5){BR8}
+\pnode(0.4,1.5){BL9}\pnode(-0.4,-1.5){BR9}
+\pnode(0.6,1.5){BL10}\pnode(-0.6,-1.5){BR10}
+\pnode(0.75,1.5){BL11}\pnode(-0.75,-1.5){BR11}
+\pnode(0.9,1.5){BL12}\pnode(-0.9,-1.5){BR12}
+\pnode(1.05,1.5){BL13}\pnode(-1.05,-1.5){BR13}
+\pnode(1.15,1.5){BL14}\pnode(-1.15,-1.5){BR14}
+\pnode(1.25,1.5){BL15}\pnode(-1.25,-1.5){BR15}
+\pnode(1.3,1.5){BL16}\pnode(-1.3,-1.5){BR16}
+\pnode(1.4,1.5){BL17}\pnode(-1.4,-1.5){BR17}
+\pnode(1.45,1.5){BL18}\pnode(-1.45,-1.5){BR18}
+\pspolygon[fillstyle=solid,fillcolor=black](BL1)(BR1)(BR2)(BL2)
+\pspolygon[fillstyle=solid,fillcolor=black](BL3)(BR3)(BR4)(BL4)
+\pspolygon[fillstyle=solid,fillcolor=black](BL5)(BR5)(BR6)(BL6)
+\pspolygon[fillstyle=solid,fillcolor=black](BL7)(BR7)(BR8)(BL8)
+\pspolygon[fillstyle=solid,fillcolor=black](BL9)(BR9)(BR10)(BL10)
+\pspolygon[fillstyle=solid,fillcolor=black](BL11)(BR11)(BR12)(BL12)
+\pspolygon[fillstyle=solid,fillcolor=black](BL13)(BR13)(BR14)(BL14)
+\pspolygon[fillstyle=solid,fillcolor=black](BL15)(BR15)(BR16)(BL16)
+\pspolygon[fillstyle=solid,fillcolor=black](BL17)(BR17)(BR18)(BL18)
+}}
+
+\def\half{%
+\rput(0,0){\carre}
+\rput(-3,0){\psscalebox{-1 1}{\carre}}
+}
+
+\def\pattern{%
+\rput(0,0){\half}
+\rput(0,-3){\psscalebox{1 -1}{\half}}
+}
+
+\def\manuel{%
+\multido{\iA=0+6}{2}{
+\multido{\iB=0+-6}{3}{
+\rput(\iA,\iB){\pattern}
+}}
+}
+\begin{pspicture}(-7,-9)(7,9)
+\rput(-1.5,7.5){\manuel}
+%\rput{5}(-1.5,7.5){\manuel}
+\end{pspicture}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.pdf b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.pdf
new file mode 100644
index 00000000000..99cdf12c79e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.tex b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.tex
new file mode 100644
index 00000000000..38c4098046e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/examples/pattern4.tex
@@ -0,0 +1,82 @@
+\documentclass{article}
+\usepackage{pstricks-add}
+\usepackage[a4paper]{geometry}
+\pagestyle{empty}
+\begin{document}
+\psset{dimen=inner,linewidth=0pt}
+\begin{pspicture}(-8,-8)(8,8)
+
+
+\def\carre{%
+\pnode(-1.5,1.5){AL1}\pnode(1.5,-1.5){AR1}
+\pnode(-1.5,1.2){AL2}\pnode(1.5,-1.2){AR2}
+\pnode(-1.5,0.9){AL3}\pnode(1.5,-0.9){AR3}
+\pnode(-1.5,0.7){AL4}\pnode(1.5,-0.7){AR4}
+\pnode(-1.5,0.4){AL5}\pnode(1.5,-0.4){AR5}
+\pnode(-1.5,0.2){AL6}\pnode(1.5,-0.2){AR6}
+\pnode(-1.5,0.0){AL7}\pnode(1.5,0.0){AR7}
+\pnode(-1.5,-0.2){AL8}\pnode(1.5,0.2){AR8}
+\pnode(-1.5,-0.4){AL9}\pnode(1.5,0.4){AR9}
+\pnode(-1.5,-0.6){AL10}\pnode(1.5,0.6){AR10}
+\pnode(-1.5,-0.75){AL11}\pnode(1.5,0.75){AR11}
+\pnode(-1.5,-0.9){AL12}\pnode(1.5,0.9){AR12}
+\pnode(-1.5,-1.05){AL13}\pnode(1.5,1.05){AR13}
+\pnode(-1.5,-1.15){AL14}\pnode(1.5,1.15){AR14}
+\pnode(-1.5,-1.25){AL15}\pnode(1.5,1.25){AR15}
+\pnode(-1.5,-1.3){AL16}\pnode(1.5,1.3){AR16}
+\pnode(-1.5,-1.4){AL17}\pnode(1.5,1.4){AR17}
+\pnode(-1.5,-1.45){AL18}\pnode(1.5,1.45){AR18}
+\pspolygon[fillstyle=solid,fillcolor=black](AL1)(AR1)(AR2)(AL2)
+\pspolygon[fillstyle=solid,fillcolor=black](AL3)(AR3)(AR4)(AL4)
+\pspolygon[fillstyle=solid,fillcolor=black](AL5)(AR5)(AR6)(AL6)
+\pspolygon[fillstyle=solid,fillcolor=black](AL7)(AR7)(AR8)(AL8)
+\pspolygon[fillstyle=solid,fillcolor=black](AL9)(AR9)(AR10)(AL10)
+\pspolygon[fillstyle=solid,fillcolor=black](AL11)(AR11)(AR12)(AL12)
+\pspolygon[fillstyle=solid,fillcolor=black](AL13)(AR13)(AR14)(AL14)
+\pspolygon[fillstyle=solid,fillcolor=black](AL15)(AR15)(AR16)(AL16)
+\pspolygon[fillstyle=solid,fillcolor=black](AL17)(AR17)(AR18)(AL18)
+\pnode(-1.2,1.5){BL1}\pnode(1.2,-1.5){BR1}
+\pnode(-0.9,1.5){BL2}\pnode(0.9,-1.5){BR2}
+\pnode(-0.7,1.5){BL3}\pnode(0.7,-1.5){BR3}
+\pnode(-0.4,1.5){BL4}\pnode(0.4,-1.5){BR4}
+\pnode(-0.2,1.5){BL5}\pnode(0.2,-1.5){BR5}
+\pnode(0.0,1.5){BL6}\pnode(0,-1.5){BR6}
+\pnode(0.2,1.5){BL7}\pnode(-0.2,-1.5){BR7}
+\pnode(0.4,1.5){BL8}\pnode(-0.4,-1.5){BR8}
+\pnode(0.6,1.5){BL9}\pnode(-0.6,-1.5){BR9}
+\pnode(0.75,1.5){BL10}\pnode(-0.75,-1.5){BR10}
+\pnode(0.9,1.5){BL11}\pnode(-0.9,-1.5){BR11}
+\pnode(1.05,1.5){BL12}\pnode(-1.05,-1.5){BR12}
+\pnode(1.15,1.5){BL13}\pnode(-1.15,-1.5){BR13}
+\pnode(1.25,1.5){BL14}\pnode(-1.25,-1.5){BR14}
+\pnode(1.3,1.5){BL15}\pnode(-1.3,-1.5){BR15}
+\pnode(1.4,1.5){BL16}\pnode(-1.4,-1.5){BR16}
+\pnode(1.45,1.5){BL17}\pnode(-1.45,-1.5){BR17}
+\pnode(1.5,1.5){BL18}\pnode(-1.5,-1.5){BR18}
+\pspolygon[fillstyle=solid,fillcolor=black](BL1)(BR1)(BR2)(BL2)
+\pspolygon[fillstyle=solid,fillcolor=black](BL3)(BR3)(BR4)(BL4)
+\pspolygon[fillstyle=solid,fillcolor=black](BL5)(BR5)(BR6)(BL6)
+\pspolygon[fillstyle=solid,fillcolor=black](BL7)(BR7)(BR8)(BL8)
+\pspolygon[fillstyle=solid,fillcolor=black](BL9)(BR9)(BR10)(BL10)
+\pspolygon[fillstyle=solid,fillcolor=black](BL11)(BR11)(BR12)(BL12)
+\pspolygon[fillstyle=solid,fillcolor=black](BL13)(BR13)(BR14)(BL14)
+\pspolygon[fillstyle=solid,fillcolor=black](BL15)(BR15)(BR16)(BL16)
+\pspolygon[fillstyle=solid,fillcolor=black](BL17)(BR17)(BR18)(BL18)
+}
+
+\def\half{%
+\rput(0,0){\carre}
+\rput(-3,0){\psscalebox{-1 1}{\carre}}
+}
+
+\def\pattern{%
+\rput(0,0){\half}
+\rput(0,-3){\psscalebox{1 -1}{\half}}
+}
+
+\multido{\iA=0+6}{2}{%
+ \multido{\iB=0+-6}{3}{%
+ \rput(\iA,\iB){\pattern}
+}}
+\end{pspicture}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.pdf b/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.pdf
new file mode 100644
index 00000000000..925577f7495
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.tex b/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.tex
new file mode 100644
index 00000000000..5e0facd85d4
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-moire/pst-moire-doc.tex
@@ -0,0 +1,1489 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% This is file `pst-moire-doc.tex' %%
+%% %%
+%% IMPORTANT NOTICE: %%
+%% %%
+%% Package `pst-moire' %%
+%% %%
+%% Manuel Luque, Jürgen Gilg, Jean-Michel Sarlat %%
+%% %%
+%% Copyright (C) 2018 %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.3c of %%
+%% the License, or (at your option) any later version. %%
+%% %%
+%% DESCRIPTION: %%
+%% `pst-moire' is a PSTricks package to draw moire patterns %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\listfiles
+
+\documentclass[%
+ 11pt,
+ english,
+ BCOR10mm,
+ DIV12,
+ bibliography=totoc,
+ parskip=false,
+ fleqn,
+ smallheadings,
+ headexclude,
+ footexclude,
+ oneside,
+ dvipsnames,
+ svgnames,
+ x11names
+]{pst-doc}
+
+\usepackage[autostyle]{csquotes}
+\usepackage{biblatex}
+%\usepackage[style=dtk]{biblatex}
+\addbibresource{pst-marble-doc.bib}
+\usepackage[utf8]{inputenc}
+\let\pstpersFV\fileversion
+\usepackage[nomessages]{fp}
+\usepackage{pstricks,pst-moire,pst-plot,pst-func,pst-lens,pstricks-add}
+\usepackage{amsmath,amssymb,animate}
+
+\definecolor{moire1}{rgb}{0.98,0.89,0.56}
+\definecolor{moire2}{rgb}{0.357,0.525,0.13}
+\definecolor{moire3}{rgb}{0.2,0.05,0.015}
+\definecolor{moire4}{rgb}{0.070.41 0.255}
+\definecolor{Beige} {rgb}{0.96,0.96,0.86}
+\definecolor{GrisClair} {rgb}{0.8,0.8,0.8}
+\definecolor{GrisTresClair} {rgb}{0.9,0.9,0.9}
+\definecolor{OrangeTresPale}{cmyk}{0,0.1,0.3,0}
+\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0}
+\definecolor{BleuClair}{cmyk}{0.2,0,0,0}
+\definecolor{LightBlue}{rgb}{.68,.85,.9}
+\definecolor{DarkGreen}{rgb}{0,.85,0}
+\definecolor{Copper}{cmyk}{0,0.9,0.9,0.2}
+\DeclareSymbolFont{grecquesdroites}{U}{eur}{m}{n}
+\DeclareMathSymbol{\BETA}{\mathord}{grecquesdroites}{12}
+\DeclareMathSymbol{\DELTA}{\mathord}{grecquesdroites}{14}
+\DeclareMathSymbol{\EPSILON}{\mathord}{grecquesdroites}{15}
+\DeclareMathSymbol{\THETA}{\mathord}{grecquesdroites}{18}
+\DeclareMathSymbol{\ALPHA}{\mathord}{grecquesdroites}{11}
+\DeclareMathSymbol{\GAMMA}{\mathord}{grecquesdroites}{13}
+\DeclareMathSymbol{\RHO}{\mathord}{grecquesdroites}{26}
+\DeclareMathSymbol{\PI}{\mathord}{grecquesdroites}{25}
+\DeclareMathSymbol{\OMEGA}{\mathord}{grecquesdroites}{33}
+\DeclareMathSymbol{\TAU}{\mathord}{grecquesdroites}{28}
+\DeclareMathSymbol{\MU}{\mathord}{grecquesdroites}{22}
+\DeclareMathSymbol{\PHI}{\mathord}{grecquesdroites}{39}
+
+\renewcommand\bgImage{%
+\begin{pspicture}(-3,-3)(3,4.5)
+\psmoire[type=Gauss,rotate=-10,scale=0.6]
+\psmoire[type=Gauss,linecolor=red,scale=0.6,rotate=-20]
+\end{pspicture}}
+
+
+\let\belowcaptionskip\abovecaptionskip
+\parindent0pt
+
+\begin{document}
+
+\title{pst-moire v 1.0}
+\subtitle{A PSTricks package to draw moiré patterns}
+\author{%
+ Jürgen \textsc{Gilg}\\
+ Manuel \textsc{Luque}\\
+ Jean-Michel \textsc{Sarlat}
+}
+
+\date{\today}
+\maketitle
+\tableofcontents
+\psset{unit=1cm}
+
+
+\clearpage
+
+\begin{abstract}\parskip4pt\parindent0pt
+
+The \texttt{pst-moire} package makes it possible to very simply create a variety of patterns obtained either by dragging one pattern on another, or by rotating one on the other. Moiré effects sometimes look very interesting. This document provides the necessary commands and divers examples.
+
+For the interested user, we present a section \textbf{Theory} (see pages~\pageref{sec:theory}-\pageref{sec:theoryEnd}) for the mathematical background of moiré patterns.
+
+
+\vfill
+{\small This program can redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives in directory \texttt{macros/latex/base/lppl.txt}; either version 1.3c of the License, or (at your option) any later version.}
+
+\end{abstract}
+
+
+\newpage
+
+
+\section{The provided patterns}
+
+\begin{center}
+\psset{scale=0.4}
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=Fresnel}}}}
+\rput(0,3){\texttt{Bands of Fresnel}}
+\psmoire[linecolor=red,type=Fresnel]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=linear}}}}
+\rput(0,3){\texttt{Equidistant lines}}
+\psmoire[linecolor=blue,type=linear]
+\end{pspicture}
+
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=radial}}}}
+\rput(0,3){\texttt{Radii with 3\textsuperscript{o}}}
+\psmoire[linecolor=magenta,type=radial]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=circle}}}}
+\rput(0,3){\texttt{Concentric circles}}
+\psmoire[linecolor=cyan,type=circle]
+\end{pspicture}
+
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=square}}}}
+\rput(0,3){\texttt{Squares}}
+\psmoire[linecolor=yellow,type=square]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=Newton}}}}
+\rput(0,3){\texttt{Squares of Newton}}
+\psmoire[type=Newton]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=Bouasse}}}}
+\rput(0,3){\texttt{The pattern of H. Bouasse}}
+\psmoire[type=Bouasse]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\psmoire[linecolor=red,type=Gauss,scale=0.5,E=0.4]%
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=Gauss}}}}
+\rput(0,3){\texttt{The pattern of Gauss}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\psmoire[linecolor=red,type=dot,scale=0.5]%
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=dot}}}}
+\rput(0,3){\texttt{Point pattern}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3,-3)(3,4)
+\psmoire[linecolor={[cmyk]{0 0.81 1 0.6}},type=chess,dotstyle=square*,scale=0.5]%
+\rput(0,-3){\colorbox{black}{\textcolor{white}{\texttt{type=chess}}}}
+\rput(0,3){\texttt{Chess pattern}}
+\end{pspicture}
+\end{center}
+
+
+\newpage
+
+
+\section{The command \Lcs{psmoire}}
+
+\begin{BDef}
+\Lcs{psmoire}\OptArgs\Largr{x , y}
+\end{BDef}
+
+The command \Lcs{psmoire} contains the options \nxLkeyword{type=}, \nxLkeyword{Rmax=}, \nxLkeyword{scale=}, \nxLkeyword{Alpha=}, \nxLkeyword{rotate=}, and \nxLkeyword{E=}.
+
+The optional argument \Largr{x , y} gives the \texttt{x} and \texttt{y} center of the image. If not chosen $(0,0)$ is taken by default.
+
+\medskip
+
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\textbf{Name} & \textbf{Default} & \textbf{Meaning} \\\midrule
+\Lkeyword{type} & Fresnel & The type of pattern\\
+\Lkeyword{Rmax} & 6 & The largest radius of the circles (in cm)\\
+\Lkeyword{scale} & 1 & Scaling factor for the image\\
+\Lkeyword{Alpha} & 70 & Slope of the lines for \verb+[type=Gauss]+\\
+\Lkeyword{rotate} & 0 & Rotation of the figure in degrees.\\
+\Lkeyword{E} & 0.25& Distance between two lines for \verb+[type=Gauss]+\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+\textbf{Note:}
+\begin{itemize}
+ \item Thickness of the lines/circles: done with the usual PSTricks key \verb+linewidth=1mm+ (for example).
+ \item Color of the lines/circles: done with the usual PSTricks key \verb+linecolor=red+ (for example).
+\end{itemize}
+We set the type of pattern like: \texttt{type=Gauss} (for example).
+{\small\begin{verbatim}
+\psmoire[options,type=Gauss](x,y)
+\end{verbatim}}
+
+If no position coordinate is specified, the center of the image is placed at $(0,0)$. The thickness parameter does not effect the following types:
+\verb+Fresnel+, \verb+Newton+ and \verb+radial+
+
+
+\newpage
+
+
+\section{Opacity and Blendmodes}
+
+If we want to highlight the color of the intersecting area of the lines of two or more overlapping moiré patterns differently, we can either use \emph{opacity} or \emph{blendmodes}.
+
+\subsection{Opacity}
+
+In case we want to add some opacity to the lines of the moiré patterns, we just set, i. e.
+\begin{verbatim}
+\pstVerb{%
+0.45 .setopacityalpha
+}
+\end{verbatim}
+within the \verb+\pspicture+ environment.
+
+Distiller users set:
+\begin{verbatim}
+\pstVerb{%
+[ /ca 0.45 /CA 0.45 /SetTransparency pdfmark
+}
+\end{verbatim}
+
+\textbf{Note:} The value of the opacity needs to be between 0 and 1.
+
+\begin{center}
+\begin{pspicture}(-6,-6)(6,6)
+\pstVerb{%
+0.45 .setopacityalpha
+}
+\psmoire[type=linear,linecolor=blue,linewidth=3pt]
+\psmoire[type=linear,linecolor=green,linewidth=3pt,rotate=90]
+\end{pspicture}
+\end{center}
+{\tiny\begin{verbatim}
+\begin{pspicture}(-6,-6)(6,6)
+\pstVerb{%
+0.45 .setopacityalpha
+}
+\psmoire[type=linear,linecolor=blue,linewidth=3pt]
+\psmoire[type=linear,linecolor=green,linewidth=3pt,rotate=90]
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+\subsection{Blendmodes}
+
+In case we want to overlap various moiré patterns we can use the following blendmodes:
+\begin{quote}
+\texttt{/Lighten}, \texttt{/Darken}, \texttt{/Normal}, \texttt{/Multiply}, \texttt{/Screen}, \texttt{/Overlay}, \texttt{/ColorDodge},\\ \texttt{/ColorBurn}, \texttt{/HardLight}, \texttt{/SoftLight}, \texttt{/Difference}, \texttt{/Exclusion}, \texttt{/Saturation}, \\
+\texttt{/Color}, \texttt{/Luminosity}.
+\end{quote}
+We just set, i. e.
+\begin{verbatim}
+\pstVerb{%
+/Darken .setblendmode
+}
+\end{verbatim}
+within the \verb+\pspicture+ environment.
+
+Distiller users set:
+\begin{verbatim}
+\pstVerb{%
+[ /BM /Darken /ca 1 /CA 1 /SetTransparency pdfmark
+}
+\end{verbatim}
+
+\begin{center}
+\begin{pspicture}(-6,-6)(6,6)
+\pstVerb{%
+/Darken .setblendmode
+}
+\psmoire[type=linear,linecolor=blue,linewidth=3pt]
+\psmoire[type=linear,linecolor=green,linewidth=3pt,rotate=90]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-6,-6)(6,6)
+\pstVerb{%
+/Darken .setblendmode
+}
+\psmoire[type=linear,linecolor=blue,linewidth=3pt]
+\psmoire[type=linear,linecolor=green,linewidth=3pt,rotate=90]
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+\section{Examples}
+
+\begin{center}
+\begin{pspicture}(-4,-4)(4,4)
+\rput(0,4){\textsf{Bands of Fresnel 1}}
+\psmoire[linecolor=red,scale=0.5](-0.2,0)
+\psmoire[linecolor=red,scale=0.5](0.2,0)
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[linecolor=red,scale=0.5](-0.2,0)
+\psmoire[linecolor=red,scale=0.5](0.2,0)
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\begin{pspicture}(-5,-4)(5,4)
+\rput(0,4){\textsf{Bands of Fresnel 2}}
+\psmoire[linecolor={[rgb]{0.15 0.75 0.15}},scale=0.5](-1.5,0)
+\psmoire[linecolor={[rgb]{0.15 0.75 0.15}},scale=0.5](1.5,0)
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[linecolor=green,scale=0.5](-1.5,0)
+\psmoire[linecolor=green,scale=0.5](1.5,0)
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+\begin{center}
+\begin{pspicture}(-4,-4)(4,4)
+\rput(0,4){\textsf{Lines}}
+\psmoire[scale=0.5,type=linear,rotate=5,linewidth=0.1]
+\psmoire[scale=0.5,type=linear,rotate=-5,linewidth=0.1]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[scale=0.5,type=linear,rotate=5,linewidth=0.1]
+\psmoire[scale=0.5,type=linear,rotate=-5,linewidth=0.1]
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\begin{pspicture}(-4,-4)(4,4.5)
+\rput(0,4.25){\textsf{Radii}}
+\psmoire[Rmax=4,type=radial](-0.25,0)
+\psmoire[Rmax=4,type=radial](0.25,0)
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[Rmax=4,type=radial](-0.25,0)
+\psmoire[Rmax=4,type=radial](0.25,0)
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+\begin{center}
+\psset{scale=0.7,linewidth=0.75mm}
+\begin{pspicture}(-6,-5)(6,5)
+\rput(0,5.25){\textsf{Bouasse}}
+\psmoire[type=Bouasse,rotate=10,Rmax=5]
+\psmoire[type=Bouasse,rotate=170,Rmax=5]
+%\psline[linecolor=red,linewidth=0.25mm](0,-6)(0,6)
+\end{pspicture}
+
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-6,-6)(6,6)
+\psmoire[type=Bouasse,rotate=10]
+\psmoire[type=Bouasse,rotate=170]
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\psset{linewidth=1mm}
+\begin{pspicture}(-6,-4)(6,4)
+\rput(0,4.25){\textsf{Concentric circles}}
+\psmoire[Rmax=4,type=circle](-0.5,0)
+\psmoire[Rmax=4,type=circle](0.5,0)
+\end{pspicture}
+
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-5,-5)(5,5)
+\psmoire[Rmax=5,type=circle](-0.2,0)
+\psmoire[Rmax=5,type=circle](0.2,0)
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+%
+\begin{center}
+\psset{linewidth=0.5mm,Rmax=4}
+\begin{pspicture}(-5,-5)(5,5)
+\rput(0,4.5){\textsf{Gauss}}
+\psmoire[type=Gauss,rotate=-5,linecolor=red]
+\psmoire[type=Gauss,rotate=5]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-5,-5)(5,5)
+\psmoire[type=Gauss,rotate=-10]
+\psmoire[type=Gauss]
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\psset{linewidth=1mm,scale=0.6}
+\begin{pspicture}(-4,-4)(4,4)
+\rput(0,4){\textsf{Squares}}
+\psmoire[type=square,rotate=-5]
+\psmoire[type=square,rotate=5]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\psmoire[type=square,rotate=-5]
+\psmoire[type=square,rotate=5]
+\end{verbatim}}
+%
+
+
+\newpage
+
+
+\begin{center}
+\psset{linewidth=0.5mm,scale=0.5}
+\begin{pspicture}(-4,-4)(4,4)
+\rput(0,3.75){\textsf{Squares of Newton}}
+\psmoire[type=Newton,rotate=-2.5]
+\psmoire[type=Newton,rotate=2.5]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[type=Newton,rotate=-2.5]
+\psmoire[type=Newton,rotate=2.5]
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\psset{Rmax=4}
+\begin{pspicture}(-4,-4)(4,5)
+\rput(0,4.75){\textsf{Point pattern}}
+\psmoire[type=dot,linecolor=blue,rotate=-2.5]
+\psmoire[type=dot,rotate=2.5,linecolor=red]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-5,-5)(5,5)
+\psmoire[type=dot,linecolor=blue,rotate=-2.5]
+\psmoire[type=dot,rotate=2.5,linecolor=red]
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+
+\begin{center}
+\psset{Rmax=4,dotstyle=square*,dotsize=0.25cm,linecolor={[cmyk]{0 0.81 1 0.6}}}
+\begin{pspicture}(-4,-4)(4,5)
+\rput(0,4.5){\textsf{Chess pattern}}
+\psmoire[type=chess,rotate=-5]
+\psmoire[type=chess,rotate=5]
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\psset{Rmax=4,dotstyle=square*,dotsize=0.25cm}
+\begin{pspicture}(-4,-4)(4,5)
+\psmoire[type=chess,rotate=-5]
+\psmoire[type=chess,rotate=5]
+\end{pspicture}
+\end{verbatim}}
+%
+\begin{center}
+\psset{Rmax=8,linewidth=0.5mm,scale=0.5,linecolor={[rgb]{0.15 0.55 0.15}}}
+\begin{pspicture}(-5,-4)(5,5)
+\rput(0,4.75){\textsf{Bands of Fresnel + lines}}
+\psmoire[type=Fresnel]
+\psmoire[type=linear]
+\psmoire[type=linear](-0.1,0)
+% et, \'{e}ventuellement, pour avoir le trait vertical qui manque \`{a} droite
+%\psmoire[type=linear,linewidth=0.2mm](0.1,0)
+\end{pspicture}
+\end{center}
+{\small\begin{verbatim}
+\begin{pspicture}(-4,-4)(4,4)
+\psmoire[type=Fresnel]
+\psmoire[type=linear]
+\psmoire[type=linear](-0.1,0)
+\end{pspicture}
+\end{verbatim}}
+
+
+\newpage
+
+These rotating moirés were obtained with the use of the \texttt{pst-lens} package. It is the reproduction, with the tools of PSTricks, of the photograph 6, page 137 of the book ``\textit{Les phénomènes naturels}'' of the Library \textbf{Pour la Science}, Berlin (1978). This photograph is accompanied by the following comment:
+\begin{quote}\itshape
+<<~Ces moirés tournants apparaissent quand les lentilles placées sur une trame et observées avec une autre trame identique à la première. La grosse lentille(convergente) réduit la trame inférieure, tandis que la petite lentille (divergente) la grossit. En conséquence, les moirés obtenus ont des sens de rotation opposés. Une figure de moiré ondulée traduit la présence d'aberrations optiques dans la lentille.~>>
+\end{quote}
+\textbf{Animation:} Big lens: magnification of 1.2, small lens: magnification of 0.8
+\begin{center}
+\psset{unit=0.5}
+\begin{animateinline}[controls,palindrome,
+ begin={\begin{pspicture}(-8.5,-8.5)(8.5,8.5)},
+ end={\end{pspicture}}]{10}% 10 image/s
+\multiframe{20}{i=-10+1}{%
+\psset{LensHandle=false,LensShadow=false}
+\psset{linecolor=red,linewidth=0.1,type=linear}
+\psmoire%
+\PstLens[LensMagnification=1.2,LensSize=2](1,1.5){\psmoire}
+\PstLens[LensMagnification=0.8,LensSize=1.5](-2,-2){\psmoire}
+\psmoire[linecolor=black,rotate=\i]}
+\end{animateinline}
+\end{center}
+{\tiny\begin{verbatim}
+\psset{unit=0.5}
+\begin{animateinline}[controls,palindrome,
+ begin={\begin{pspicture}(-8.5,-8.5)(8.5,8.5)},
+ end={\end{pspicture}}]{10}% 10 image/s
+\multiframe{20}{i=-10+1}{%
+\psset{LensHandle=false,LensShadow=false}
+\psset{linecolor=red,linewidth=0.1,type=linear}
+\psmoire%
+\PstLens[LensMagnification=1.2,LensSize=2](1,1.5){\psmoire}
+\PstLens[LensMagnification=0.8,LensSize=1.5](-2,-2){\psmoire}
+\psmoire[linecolor=black,rotate=\i]}
+\end{animateinline}
+\end{verbatim}}
+
+
+\newpage
+
+
+\section{Animations}
+
+Some interactive moiré JavaScript based applications can be found on:
+\begin{center}
+\url{https://melusine.eu.org/syracuse/G/pstricks/pst-moire/moirej/}
+\end{center}
+
+\textbf{Animation 1:}
+
+\begin{center}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{36}{i=0+1}{%
+\psmoire[type=Newton,rotate=-\i]%
+\psmoire[type=Newton,rotate=\i]%
+}
+\end{animateinline}
+\end{center}
+{\small\begin{verbatim}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{36}{i=0+1}{%
+\psmoire[type=Newton,rotate=-\i]%
+\psmoire[type=Newton,rotate=\i]%
+}
+\end{animateinline}
+\end{verbatim}
+
+
+\newpage
+
+
+\textbf{Animation 2:}
+
+\begin{center}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{10}% 10 image/s
+\multiframe{36}{r=0+0.1}{%
+\psmoire[scale=0.85,type=linear,rotate=-\r,linewidth=0.1,linecolor=red](0,0)%
+\psmoire[scale=0.85,type=linear,rotate=\r,linewidth=0.1,linecolor=red](0,0)%
+}
+\end{animateinline}
+\end{center}
+{\small\begin{verbatim}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{10}% 10 image/s
+\multiframe{36}{r=0+0.1}{%
+\psmoire[scale=0.85,type=linear,rotate=-\r,linewidth=0.1,linecolor=red](0,0)%
+\psmoire[scale=0.85,type=linear,rotate=\r,linewidth=0.1,linecolor=red](0,0)%
+}
+\end{animateinline}
+\end{verbatim}
+
+
+\newpage
+
+
+\textbf{Animation 3:}
+
+\begin{center}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{20}{r=0+0.025}{%
+\psset{linewidth=2.5pt}
+\psmoire[type=circle,linecolor=moire1](0,\r)
+\psmoire[type=circle,linecolor=moire2](0,-\r)
+\psmoire[type=circle,linecolor=moire3](\r,0)
+\psmoire[type=circle,linecolor=moire4](-\r,0)
+}
+\end{animateinline}
+\end{center}
+{\small\begin{verbatim}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{20}{r=0+0.025}{%
+\psset{linewidth=2.5pt}
+\psmoire[type=circle,linecolor=moire1](0,\r)
+\psmoire[type=circle,linecolor=moire2](0,-\r)
+\psmoire[type=circle,linecolor=moire3](\r,0)
+\psmoire[type=circle,linecolor=moire4](-\r,0)
+}
+\end{animateinline}
+\end{verbatim}}
+
+
+\newpage
+
+
+\textbf{Animation 4:}
+
+\begin{center}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{30}{r=0+0.025}{%
+\psset{linewidth=1pt}
+\psmoire[type=radial,linecolor=red](\r,0)
+\psmoire[type=radial,linecolor=green](-\r,0)
+\psmoire[type=radial,linecolor=blue](0,-\r)
+}
+\end{animateinline}
+\end{center}
+{\small\begin{verbatim}
+\begin{animateinline}[%
+ controls,palindrome,
+ begin={\begin{pspicture}(-6,-6)(6,6)},
+ end={\end{pspicture}}
+ ]{5}% 5 image/s
+\multiframe{30}{r=0+0.025}{%
+\psset{linewidth=1pt}
+\psmoire[type=radial,linecolor=red](\r,0)
+\psmoire[type=radial,linecolor=green](-\r,0)
+\psmoire[type=radial,linecolor=blue](0,-\r)
+}
+\end{animateinline}
+\end{verbatim}}
+
+
+\newpage
+
+
+\textbf{Animation 5:}
+
+This idea came from a post card ``\textbf{turn the top part}'', bought in a boutique of the centre Beaubourg in Paris, showing the phenomenon of the moiré effect and redesigned with PSTricks.
+
+\begin{center}
+\def\myMoire{%
+\psset{dimen=inner,linewidth=0pt}
+\def\carre{%
+\pnodes{AL}(0,0)(-1.5,1.5)(-1.5,1.2)(-1.5,0.9)(-1.5,0.7)(-1.5,0.4)(-1.5,0.2)(-1.5,0)%
+(-1.5,-0.2)(-1.5,-0.4)(-1.5,-0.6)(-1.5,-0.75)(-1.5,-0.9)(-1.5,-1.05)(-1.5,-1.15)%
+(-1.5,-1.25)(-1.5,-1.3)(-1.5,-1.4)(-1.5,-1.45)
+\pnodes{AR}(0,0)(1.5,-1.5)(1.5,-1.2)(1.5,-0.9)(1.5,-0.7)(1.5,-0.4)(1.5,-0.2)(1.5,0)%
+(1.5,0.2)(1.5,0.4)(1.5,0.6)(1.5,0.75)(1.5,0.9)(1.5,1.05)(1.5,1.15)(1.5,1.25)%
+(1.5,1.3)(1.5,1.4)(1.5,1.45)
+\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(AL\iA)(AR\iA)(AR\iB)(AL\iB)}%
+\pnodes{BL}(0,0)(-1.2,1.5)(-0.9,1.5)(-0.7,1.5)(-0.4,1.5)(-0.2,1.5)(0.0,1.5)(0.2,1.5)%
+(0.4,1.5)(0.6,1.5)(0.75,1.5)(0.9,1.5)(1.05,1.5)(1.15,1.5)(1.25,1.5)(1.3,1.5)%
+(1.4,1.5)(1.45,1.5)(1.5,1.5)
+\pnodes{BR}(0,0)(1.2,-1.5)(0.9,-1.5)(0.7,-1.5)(0.4,-1.5)(0.2,-1.5)(0,-1.5)(-0.2,-1.5)%
+(-0.4,-1.5)(-0.6,-1.5)(-0.75,-1.5)(-0.9,-1.5)(-1.05,-1.5)(-1.15,-1.5)(-1.25,-1.5)%
+(-1.3,-1.5)(-1.4,-1.5)(-1.45,-1.5)(-1.5,-1.5)
+\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(BL\iA)(BR\iA)(BR\iB)(BL\iB)}}%
+\def\half{%
+\rput(0,0){\carre}
+\rput(-3,0){\psscalebox{-1 1}{\carre}}
+}
+\def\pattern{%
+\rput(0,0){\half}
+\rput(0,-3){\psscalebox{1 -1}{\half}}
+}
+\multido{\iA=0+6}{2}{\multido{\iB=0+-6}{3}{\rput(\iA,\iB){\pattern}}}}
+\psset{unit=0.5}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-7,-17)(10,3)},
+ end={\end{pspicture}}]{10}% 10 frames/s (velocity of the animation)
+\multiframe{11}{i=0+2}{% number of frames
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\multiframe{21}{i=20+-2}{%
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\multiframe{10}{i=-20+2}{%
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\end{animateinline}
+\end{center}
+{\tiny\begin{verbatim}
+\def\myMoire{%
+\psset{dimen=inner,linewidth=0pt}
+\def\carre{%
+\pnodes{AL}(0,0)(-1.5,1.5)(-1.5,1.2)(-1.5,0.9)(-1.5,0.7)(-1.5,0.4)(-1.5,0.2)(-1.5,0)%
+(-1.5,-0.2)(-1.5,-0.4)(-1.5,-0.6)(-1.5,-0.75)(-1.5,-0.9)(-1.5,-1.05)(-1.5,-1.15)%
+(-1.5,-1.25)(-1.5,-1.3)(-1.5,-1.4)(-1.5,-1.45)
+\pnodes{AR}(0,0)(1.5,-1.5)(1.5,-1.2)(1.5,-0.9)(1.5,-0.7)(1.5,-0.4)(1.5,-0.2)(1.5,0)%
+(1.5,0.2)(1.5,0.4)(1.5,0.6)(1.5,0.75)(1.5,0.9)(1.5,1.05)(1.5,1.15)(1.5,1.25)%
+(1.5,1.3)(1.5,1.4)(1.5,1.45)
+\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(AL\iA)(AR\iA)(AR\iB)(AL\iB)}%
+\pnodes{BL}(0,0)(-1.2,1.5)(-0.9,1.5)(-0.7,1.5)(-0.4,1.5)(-0.2,1.5)(0.0,1.5)(0.2,1.5)%
+(0.4,1.5)(0.6,1.5)(0.75,1.5)(0.9,1.5)(1.05,1.5)(1.15,1.5)(1.25,1.5)(1.3,1.5)%
+(1.4,1.5)(1.45,1.5)(1.5,1.5)
+\pnodes{BR}(0,0)(1.2,-1.5)(0.9,-1.5)(0.7,-1.5)(0.4,-1.5)(0.2,-1.5)(0,-1.5)(-0.2,-1.5)%
+(-0.4,-1.5)(-0.6,-1.5)(-0.75,-1.5)(-0.9,-1.5)(-1.05,-1.5)(-1.15,-1.5)(-1.25,-1.5)%
+(-1.3,-1.5)(-1.4,-1.5)(-1.45,-1.5)(-1.5,-1.5)
+\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(BL\iA)(BR\iA)(BR\iB)(BL\iB)}}%
+\def\half{%
+\rput(0,0){\carre}
+\rput(-3,0){\psscalebox{-1 1}{\carre}}
+}
+\def\pattern{%
+\rput(0,0){\half}
+\rput(0,-3){\psscalebox{1 -1}{\half}}
+}
+\multido{\iA=0+6}{2}{\multido{\iB=0+-6}{3}{\rput(\iA,\iB){\pattern}}}}
+
+\psset{unit=0.75}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-7,-19)(10,5)},
+ end={\end{pspicture}}]{10}% 10 frames/s (velocity of the animation)
+\multiframe{11}{i=0+2}{% number of frames
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\multiframe{21}{i=20+-2}{%
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\multiframe{10}{i=-20+2}{%
+\rput(0,0){\myMoire}
+\psrotate(1.5,-7){\i}{\myMoire}
+}
+\end{animateinline}
+\end{verbatim}}
+
+
+\newpage
+
+
+\section{Theory---for the interested user}\label{sec:theory}
+
+\subsection{The contribution of ``éditions Kangourou''}
+
+``Le Kangourou des mathématiques'': \textcolor{orange}{\url{http://www.mathkang.org/}} published a revue in 2002, ``\textsl{Les malices du Kangourou}'' that contains a magnificent article from pages 18 to 26 titled ``\textsl{Mirifiques et mirobolants moirés}'' and on the back cover ``La règle à moirer'' (``The ruler''). The article and the ruler are available at the following addresses:
+\begin{center}
+\url{http://www.mathkang.org/cite/moires9p.pdf}
+\\
+\url{http://www.mathkang.org/cite/moirer.html}
+\end{center}
+The ruler can be purchased at the following address:
+\begin{center}
+\url{http://www.mathkang.org/catalogue/prodmoir.html}
+\end{center}
+In the article the sketches are very beautiful and the part ``\textit{Mathématisation du phénomène}'' is remarkable! It contains the following moirés:
+\begin{itemize}
+ \item a network of parallel straight lines superposed each with a rotation in different direction;
+ \item shifted superposition of two networks consisting of radial rays (or rather sectors);
+ \item shifted superposition of two frames of Fresnel rings, well known as Newton's rings observed in optics.
+\end{itemize}
+
+
+\newpage
+
+
+\subsection{The contribution of Henri Bouasse}
+
+\newcounter{boua}
+\newcommand{\itemBoua}{\addtocounter{boua}{1}\strut\indent\textit{\theboua}\textsuperscript{o} ---
+}
+
+This is the chapter of his book \textit{Vision et reproduction des formes et des couleurs} published at Librairie Delagrave in Paris in 1917. His demonstration and the diagram within his book have been reproduced here:
+
+\medskip
+
+\psframebox[fillstyle=solid,fillcolor=gray,linestyle=none,framesep=1pt]{\centerline{\white
+\Large \textbf{Parallel straight lines}}}
+
+\hrule
+\vskip2ex
+\itemBoua
+Consider two straight lines respectively parallel:
+\begin{equation}
+x\cos\THETA +y\sin\THETA=bt+ct^2\quad\quad x\cos\THETA -y\sin\THETA=b\TAU-c\TAU^2
+\label{droites}
+\end{equation}
+\begin{figure}[h]
+\begin{center}
+\begin{pspicture}(-8,-6)(8,6)
+\begin{psclip}{\psframe[linestyle=none](-6,-6)(6,6)}
+\multido{\i=-10+1}{21}{%
+ \parametricplot{-6}{6}{%
+ /c 0.1 def
+ /b 4.1 def
+ /X t def
+ /Y X 80 dup sin exch cos div mul
+ b \i\space mul c \i\space dup mul mul sub
+ sub
+ def
+ X Y}}
+\multido{\i=-10+1}{21}{%
+ \parametricplot{-6}{6}{%
+ /c 0.1 def
+ /b 4.1 def
+ /X t def
+ /Y X 80 dup sin exch cos div mul neg
+ b \i\space mul c \i\space dup mul mul add
+ add
+ def
+ X Y}}
+% paraboles
+\multido{\i=-4+1}{8}{%
+ \parametricplot[linecolor=red]{-6}{6}{%
+ /c 0.1 10 sin mul def
+ /b 4.1 10 sin mul def
+ /X t def
+ /Y c X dup mul mul 10 cos dup mul mul
+ b c \i\space mul add dup mul 10 sin mul div
+ b \i\space mul 2 div 10 sin div
+ add
+ \i\space dup mul c mul 4 div 10 sin div
+ add
+ def
+ X Y}}
+\psline[linestyle=dashed,linecolor=blue](0,6)(0,-6)
+\end{psclip}
+\rput(-7.5,0){%
+ \psline(0,-2)(0,4)
+ \psline(-1,0)(1,0)
+ \uput[90](0,4){$y$}
+ \uput[90](1,0){$x$}
+ \psline(4;80)
+ \psline(4;100)
+ \uput[0](4;80){$\mathrm{S_1}$}
+ \uput[180](4;100){$\mathrm{S_2}$}
+ \uput[225](0,0){O}
+ \psarc(0,0){2}{80}{90}
+ \psarc(0,0){1.8}{90}{100}
+ \uput[85](2;85){$\THETA$}
+ \uput[95](1.8;95){$\THETA$}
+ }
+\end{pspicture}
+\end{center}
+\caption{\label{fig169} Moiré: parallel lines}
+\end{figure}
+\indent For $t=\TAU=0$, we get the two lines $\mathrm{OS_2}$ and $\mathrm{OS_1}$; they obviously have the same angle $\THETA$ with the axis $\mathrm{O}y$.
+
+The curves of the intersection points, which correspond to the small diagonals of the parallelograms, satisfy the following condition:
+\begin{equation*}
+t-\TAU=\MU=\mathrm{constant}
+\end{equation*}
+\indent Adding and reordering the equations~(\ref{fig169}):
+\begin{align*}
+2x\cos\THETA&=(b+c\MU)(t+\TAU)\\
+2y\sin\THETA&=b\MU+c(t^2+\TAU^2)=b\MU+c(\MU^2+2t\TAU)
+\end{align*}
+\indent To complete the elimination, we will use the following relation:
+\begin{equation*}
+(t+\TAU)^2-4t\TAU=\MU^2
+\end{equation*}
+Thus:
+\begin{equation}
+\frac{4x^2\cos^2\THETA}{(b+c\MU)^2}-\frac{4y\sin\THETA}{c}+\frac{2b\MU}{c}+\MU^2=0\label{parabole}
+\end{equation}
+\indent The wanted curves are parabolas which have the O$y$ axis in common.
+
+Its vertices are given by:
+\begin{equation}
+y=\frac{\MU(2b+c\MU)}{4\sin\THETA}
+\label{sommets}
+\end{equation}
+
+\itemBoua The parameter $c$ is small compared to the parameter $b$, so the equations simplify.
+
+The equation~(\ref{parabole}) becomes:
+\begin{equation*}
+\frac{4x^2\cos^2\THETA}{b^2}-4y\sin\THETA+2b\MU=0
+\end{equation*}
+
+\indent This is the same parabola for all the values of $\MU$ sliding parallely to O$y$. The vertices are given by:
+\begin{equation}
+y=\MU \frac{b}{2\sin\THETA}
+\label{sommets2}
+\end{equation}
+The radius of curvature at the vertex of the parabola is:
+\begin{equation*}
+\mathrm{R}=\frac{b^2}{2c}\frac{\sin\THETA}{\cos^2\THETA}
+\end{equation*}
+
+\indent If the parallel straight lines are equidistant $(c=0)$, the parabolas degenerate to straight lines~(\ref{sommets2}); in other words, the radius of curvature becomes infinite.
+\\
+\itemBoua To make an experiment, we trace with ``China ink'' on a paper 51 parallel lines with a length of i. e. 20~cm, where the distance between two adjacent lines increases from 2~mm (between the first two lines) to 3~mm (between the last two lines), following the formula:
+\begin{equation*}
+s=2t+0.01t^2
+\end{equation*}
+
+\indent We take a photo by reducing to the half or a quarter. We generate two diapositives\footnote{spelling of the time.}. We realize the phenomenon when placing one over the other by rotating one of them.
+
+We think that if you had followed the given instructions, you might be as well convinced---as we are---it would have been a pity to have left this beautiful demonstration ``of that time'' in oblivion!
+
+
+\subsection{The humble contributions of our group}
+
+These demonstrations contain:
+\begin{enumerate}
+\item the moirés of Newton. In fact it is a construction similar to that of the Fresnel rings. Here the progression of the squares is such that the areas between two consecutive squares are equal to the area of the central square. One out of every two intervals is made opaque. The resulting moiré figures are equilateral hyperbolas.
+\item the moirés obtained by the superposition of Fresnel rings and a network of parallel lines result as well in Fresnel rings.
+\end{enumerate}
+The source files (\LaTeX) and pdf are found within the repository:
+\begin{center}
+\url{http://melusine.eu.org/syracuse/G/pstricks/pst-moire/moiredoc/}
+\end{center}
+
+
+\subsection{The construction of a Gauss network}
+
+This method is discussed on page 136 of the book ``\textit{Les phénomènes naturels}'' edited in 1978 by the revue ``\textit{Pour la Science}'' and distributed by the Berlin editions.
+\begin{quote}\itshape
+<<~The Gauss network is obtained by drawing a series of equidistant vertical lines on a Gaussian curve, then by drawing parallel oblique lines passing through the points of intersection between the vertical lines and the Gaussian curve.~>>
+\end{quote}
+
+
+\subsubsection{Gaussian curve}
+
+\begin{equation*}
+y=a\mathrm{e}^{-(kx)^2}
+\end{equation*}
+\begin{center}
+\begin{pspicture}(-6,-1)(6,3.5)
+\psparametricplot[plotpoints=1000]{-6}{6}{%
+ t
+ 3 2.71828 -0.5 t dup mul mul exp mul
+ }
+\end{pspicture}
+\end{center}
+
+
+\subsubsection{Determination of the points of intersection}
+
+The equidistant vertical line network has for equation: $x=ne$, $e$ is the spacing et $n$ an integer.
+
+The ordinates of the intersection points are: $y_n=a\mathrm{e}^{-(kne)^2}$. Within the following figure, we set the spacing to 0.5.
+\begin{center}
+\begin{pspicture}(-6,-1)(6,3.5)
+\parametricplot[plotpoints=1000]{-6}{6}{%
+ t
+ 3 2.71828 0.5 t mul dup mul neg exp mul
+ }
+\pstVerb{/A1 3 def
+ /K1 0.5 def
+ /E1 0.5 def
+ /Alpha 70 def
+ /m1 {Alpha dup sin exch cos div} bind def
+}%
+\multido{\n=-12+1}{25}{%
+%\pstVerb{/B1 {A1 2.71828 K \n\space mul E1 mul dup mul neg exp \n\space E mul m1 mul sub} def}%
+ \psdot(! \n\space E1 mul % x
+ A1 2.71828 K1 \n\space E1 mul mul dup mul neg exp mul)
+ }
+\end{pspicture}
+\end{center}
+
+
+\subsubsection{Drawing the network of the stright lines}
+
+We determine the equations of the straight lines passing through these points and which are inclined by an angle $\alpha$ with respect to the horizontal.
+
+The general equation of such a line is given by: $y=x\tan(\alpha)+b$, we determine $b$ to go through one of the previous points.
+\begin{equation*}
+ne\tan(\alpha)+b=a\mathrm{e}^{-(kne)^2}
+\end{equation*}
+so we get $b$.
+\begin{equation*}
+b=a\mathrm{e}^{-(kne)^2}-ne\tan(\alpha)
+\end{equation*}
+For every value of $n$ we get a straight line.
+\begin{equation*}
+y=x\tan(\alpha)+a\mathrm{e}^{-(kne)^2}-ne\tan(\alpha)
+\end{equation*}
+Let's draw some of these straight lines. Setting $a=3$, $k=0.5$, $-20<n<+20$, $e=0.5$ and $\alpha=70^{\mathrm{o}}$
+
+\begin{center}
+\begin{pspicture*}(-6,-1)(6,10)
+\parametricplot[plotpoints=1000,linecolor=red]{-6}{6}{%
+ t
+ 3 2.71828 0.5 t mul dup mul neg exp mul}
+\pstVerb{/A1 3 def
+ /K1 0.5 def
+ /E1 0.5 def
+ /Alpha 70 def
+ /m1 {Alpha dup sin exch cos div} bind def % pente de la droite
+}%
+\multido{\n=-20+1}{41}{%
+\pnode(! \n\space E1 mul % x
+ A1 2.71828 K1 \n\space E1 mul mul dup mul neg exp mul){A}
+ \psdot(A)
+\rput(A){\psline(! -4 -4 m1 mul)(! 4 4 m1 mul)}
+ }
+\end{pspicture*}
+\end{center}
+\begin{verbatim}
+\begin{pspicture*}(-6,-1)(6,10)
+\parametricplot[plotpoints=1000,linecolor=red]{-6}{6}{%
+ t
+ 3 2.71828 0.5 t mul dup mul neg exp mul}
+\pstVerb{/A 3 def
+ /K 0.5 def
+ /E 0.5 def
+ /Alpha 70 def
+ /m {Alpha dup sin exch cos div} bind def % pente de la droite
+}%
+\multido{\n=-20+1}{41}{%
+\pnode(! \n\space E mul % x
+ A 2.71828 K \n\space E mul mul dup mul neg exp mul){A}
+ \psdot(A)
+\rput(A){\psline(! -4 -4 m mul)(! 4 4 m mul)}
+ }
+\end{pspicture*}
+\end{verbatim}
+The last step is to translate these lines into PostScript code.
+
+
+\subsection{Some moiré figures}
+
+\subsubsection{Circles + Circles}
+
+\begin{center}
+\psscalebox{0.6}{%
+\begin{pspicture*}(-6,-6)(6,6)
+\psset{dimen=middle}
+\multido{\rA=0.5+0.5}{11}{%
+\pscircle(-2,0){!\rA\space}
+\pscircle(2,0){!\rA\space}
+}%
+\end{pspicture*}
+}
+\hfill
+\psscalebox{0.6}{%
+\begin{pspicture*}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\multido{\rA=0.5+0.5}{11}{%
+\pscircle(-2,0){!\rA\space}
+\pscircle(2,0){!\rA\space}
+}%
+\pstVerb{/C1 2 def
+ /K1 0.5 def}%
+\multido{\iH=-7+1,\iE=9+1}{15}{%
+\pstVerb{/A1 K1 \iH\space mul 2 div def
+ /B1 C1 dup mul A1 dup mul sub sqrt def}%
+\parametricplot[linecolor=red]{-2}{2}{%
+ A1 t COSH mul
+ B1 t SINH mul}
+\pstVerb{/A1 K1 \iE\space mul 2 div def
+ /B1 A1 dup mul C1 dup mul sub sqrt def}
+\parametricplot[linecolor=gray,linestyle=dashed]{0}{360}{%
+ A1 t sin mul
+ B1 t cos mul}}
+\end{pspicture*}
+}
+\end{center}
+\textbf{Mathematization}
+
+Equidistant radii that increase like: $r_n=n\cdot a$, with $a>0$.
+
+We have
+\begin{align*}
+(x-c)^2+y^2&=k^2p^2\\
+(x+c)^2+y^2&=k^2q^2
+\end{align*}
+It is necessarily: $p-q=m\in\mathbb{Z}$, thus
+\begin{align*}
+p&=\frac{1}{k}\sqrt{(x-c)^2+y^2}\\
+q&=\frac{1}{k}\sqrt{(x+c)^2+y^2}
+\end{align*}
+and $p-q=m$
+\begin{gather*}
+\sqrt{(x-c)^2+y^2}-\sqrt{(x+c)^2+y^2}= k m\\
+r_p=p\cdot k\qquad r_q=q\cdot k\\
+r_p-r_q=(p-q)\cdot k=m\cdot k
+\end{gather*}
+The points of the moiré curves are such that the difference in distances to the two centers is constant. The moiré curves are hyperbolas focussing the centers of circles.
+
+We pose: $a=\frac{km}{2}$ and $b^2=c^2-a^2$. The equations of this family of hyperbolas are written like:
+\begin{align*}
+x&=a\cosh(t)\\
+y&=b\sinh(t)
+\end{align*}
+or:
+\begin{align*}
+x&=\frac{a}{\cos(t)}\\
+y&=b\tan(t)
+\end{align*}
+If we go from a point of intersection $(p,q)$ to a point $(p+1,q-1)$, the sum of the distances remains constant. As a result, we say:
+\begin{equation*}
+r_p+r_q=(p+q)\cdot k=n\cdot k
+\end{equation*}
+This family of moiré curves are ellipses with equations like:
+\begin{equation*}
+x=a\cos(t)\quad y=b\sin(t)
+\end{equation*}
+with:
+\[
+b^2=a^2-c^2
+\]
+
+
+\subsubsection{Squares + Fresnel rings}
+
+\begin{center}
+%\psset{scale=0.5,Rmax=7.5}
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psmoire[type=square]
+\psmoire[type=Fresnel]
+\end{pspicture}
+}
+\hfill
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\multido{\rA=1+1}{22}{%
+\pscircle{!\rA\space sqrt}
+}%
+\multido{\ri=0.25+0.25}{18}{%
+\psline(!\ri\space 5.8 neg)(!\ri\space 5.8)
+}%
+\multido{\iA=0+-1}{4}{%
+\pscircle[linecolor=red](2,0){!4 \iA\space add sqrt}
+}
+\end{pspicture}
+}
+\end{center}
+
+\textbf{Mathematization}
+
+The abscissa of the edges of the square with $x>0$ increase with: $x_n=a\cdot n$, with $a>0$
+
+The radii increase with: $r_n=\sqrt{n}$.
+
+We have
+\begin{align*}
+x&=ap\\
+x^2+y^2&=q
+\end{align*}
+\begin{align*}
+p&=\frac{x}{a}\\
+q&=x^2+y^2
+\end{align*}
+On a curve of moiré, we verify: $p-q=m\in\mathbb{Z}$:
+\begin{equation*}
+\left(x-\frac{1}{2a}\right)^2+y^2=m+\frac{1}{4a^2}
+\end{equation*}
+This family of moiré curves are circles with the center at $(\frac{1}{2a},0)$ and with a radius of $r_m=\sqrt{m+\frac{1}{4a^2}}$
+
+
+\subsubsection{Circle + Squares of Newton}
+
+\begin{center}
+%\psset{scale=0.5,Rmax=7.5}
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psmoire[type=circle]
+\psmoire[type=Newton]
+\end{pspicture}
+}
+\hfill
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\multido{\rA=0.25+0.25}{22}{%
+\pscircle{!\rA\space}
+}%
+\multido{\i=1+1}{33}{%
+\psline(!\i\space sqrt 5.8 neg)(!\i\space sqrt 5.8)
+}%
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+7}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+6}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+5}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+4}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+3}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+2}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+1}
+\psplotImp[algebraic,linecolor=red](1,-5)(5.8,5){x^2-4*sqrt(x^2+y^2)+0}
+\end{pspicture}
+}
+\end{center}
+
+\textbf{Mathematization}
+
+The abscissa of the edges of the square with $x>0$ increase with: $x_n=\sqrt{n}$.
+
+The radii increase with: $r_n=n\cdot a$, with $a>0$.
+
+\begin{minipage}[t]{0.3\linewidth}\kern0pt
+We have:
+\begin{align*}
+x&=\sqrt{p}\\
+x^2+y^2&=a^2q^2
+\end{align*}
+It is necessarily: $p-q=m\in\mathbb{Z}$, thus
+\begin{align*}
+p&=x^2\\
+q&=\frac{1}{a}\sqrt{x^2+y^2}
+\end{align*}
+and $p-q=m$
+\begin{equation*}
+x^2-\frac{1}{a}\sqrt{x^2+y^2}=m
+\end{equation*}
+In polar coordinates:
+\begin{gather*}
+\rho^2(\cos\theta)^2-\frac{\rho}{a}-m=0\\
+\Delta=\left(\frac{-1}{a}\right)^2+4m(\cos\theta)^2\\
+\rho=\frac{\frac{1}{a}\pm\sqrt{\Delta}}{2(\cos\theta)^2}
+\end{gather*}
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.65\linewidth}\kern0pt
+\psscalebox{0.7}{%
+\begin{pspicture*}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\multido{\rA=0.25+0.25}{30}{%
+\pscircle{!\rA\space}
+}%
+\multido{\i=1+1}{40}{%
+\psline(!\i\space sqrt 6 neg)(!\i\space sqrt 6)
+}%
+\pstVerb{/A1 0.25 def % 1/0.25
+ /A_1 1 A1 div def
+ /Delta {A_1 dup mul 4 m neg mul x cos dup mul mul sub sqrt} def}%
+\multido{\im=5+-1}{10}{%
+\pstVerb{/m \im\space def}%
+\psplot[polarplot=true,plotpoints=361,linecolor=red]{-89}{89}{%
+ A_1 neg Delta add x cos dup mul 2 mul div neg }
+\psplot[polarplot=true,plotpoints=361,linecolor=red]{-89}{89}{%
+ A_1 neg Delta sub x cos dup mul 2 mul div abs }%
+}
+\end{pspicture*}
+}
+\end{minipage}
+
+
+
+\subsubsection{Circles + Fresnel rings}
+
+\begin{center}
+%\psset{scale=0.5}
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psmoire[type=Fresnel](0.2,0)
+\psmoire[type=circle](-0.2,0)
+\end{pspicture}
+}
+\hfill
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}}}
+\multido{\rA=0.25+0.25}{22}{%
+\pscircle(-0.2,0){!\rA\space}
+}%
+\multido{\iA=1+1}{31}{%
+\pscircle(0.2,0){!\iA\space sqrt}
+}%
+\psset{linewidth=1.5\pslinewidth}
+\psplotImp[algebraic,linecolor=red](-5.8,-5)(5.8,5){(x-0.2)^2+y^2-4*sqrt((x+0.2)^2+y^2)+1}
+\psplotImp[algebraic,linecolor=red](-5.8,-5)(5.8,5){(x-0.2)^2+y^2-4*sqrt((x+0.2)^2+y^2)+2}
+\psplotImp[algebraic,linecolor=red](-5.8,-5)(5.8,5){(x-0.2)^2+y^2-4*sqrt((x+0.2)^2+y^2)+3}
+\psplotImp[algebraic,linecolor=red](-5.8,-5)(5.8,5){(x-0.2)^2+y^2-4*sqrt((x+0.2)^2+y^2)+4}
+\psplotImp[algebraic,linecolor=red](-5.8,-5)(5.8,5){(x-0.2)^2+y^2-4*sqrt((x+0.2)^2+y^2)+5}
+\end{pspicture}
+}
+\end{center}
+
+\textbf{Mathematization}
+
+The radii of the Fresnel circles increase: $r_n=\sqrt{n}$.
+
+The radii of the equidistant circles increase: $r_n=n\cdot a$, with $a>0$.
+
+The centers of the circles are placed at $(x_M,0)$ and $(-x_M,0)$, we have $p$ and $q$ as integers:
+\begin{align*}
+(x-x_M)^2+y^2&=p\\
+(x+x_M)^2+y^2&=a^2q^2\\
+p&=(x-x_M)^2+y^2\\
+q&=\frac{1}{a}\sqrt{(x+x_M)^2+y^2}
+\end{align*}
+One moiré curve line is determined by: $p-q=m\in\mathbb{Z}$, thus:
+\begin{equation*}
+(x-x_M)^2+y^2-\frac{1}{a}\sqrt{(x+x_M)^2+y^2}=m
+\end{equation*}
+which is the implicit equation of a moiré curve line with $m$.
+
+
+\subsubsection{Circles + Squares (both of increasing thickness)}
+
+\begin{center}
+\psscalebox{0.6}{%
+\def\epaisseur{0.0075}
+\begin{pspicture}(-6,-6)(6,6)
+\psset{dimen=middle}
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{41}{%
+\FPeval\epaisseur{1.08*(\epaisseur)}
+\psset{linewidth=\epaisseur}
+\pscircle{!Radius}
+\pstVerb{/Radius Radius 1.08 mul def}%
+}%
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{33}{%
+\FPeval\epaisseur{1.1*(\epaisseur)}
+\psset{linewidth=\epaisseur}
+\psframe(!Radius neg Radius neg)(!Radius Radius)
+\pstVerb{/Radius Radius 1.1 mul def}%
+}%
+\end{pspicture}
+}
+\hfill
+\psscalebox{0.6}{%
+\begin{pspicture}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{41}{%
+\pscircle{!Radius}
+\pstVerb{/Radius Radius 1.08 mul def}%
+}%
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{33}{%
+\psline(!Radius 5.8 neg)(!Radius 5.8)
+\pstVerb{/Radius Radius 1.1 mul def}%
+}%
+\psplotImp[algebraic,linecolor=red](0,-6)(5,6){((4*x)^(1/ln(1.1)))/((16*(x^2+y^2))^(1/ln((1.08)^2)))-Euler^(-6)}
+\psplotImp[algebraic,linecolor=red](0,-6)(5,6){((4*x)^(1/ln(1.1)))/((16*(x^2+y^2))^(1/ln((1.08)^2)))-Euler^(-5)}
+\psplotImp[algebraic,linecolor=red](0,-6)(5,6){((4*x)^(1/ln(1.1)))/((16*(x^2+y^2))^(1/ln((1.08)^2)))-Euler^(-4)}
+\end{pspicture}
+}
+\end{center}
+
+\textbf{Mathematization}
+
+The abscissa of the edges of the square with $x>0$ increase with: $x_n=\frac{1}{4}a^n$, with $a>1$.
+
+The radii increase with: $r_n=\frac{1}{4}b^n$, with $b>1$.
+
+We have
+\begin{align*}
+x_p&=\frac{1}{4}a^p\\
+r_q^2&=x^2+y^2\\
+x^2+y^2&=\frac{1}{16}b^{2q}
+\end{align*}
+If we consider the point determined by the intersection $p\cap q$, the next point will be $(p+1)\cap (q+1)$, the next one at $(p+2)\cap (q+2)$, etc., so that the difference between the indices remains constant. As a result, the moiré lines are characterized by the relation $p-q=m \in \mathbb{Z}$, $m$ determines a moiré curve.
+\begin{align*}
+p&=\frac{\ln(4x)}{\ln a}\\
+q&=\frac{\ln[16(x^2+y^2)]}{2\ln b}
+\end{align*}
+and $p-q=m$
+\begin{equation*}
+\ln(4x)^{\frac{1}{\ln a}}-\ln[16(x^2+y^2)]^{\frac{1}{2\ln b}}=m
+\end{equation*}
+finally gives
+\begin{equation*}
+\frac{(4x)^{\frac{1}{\ln a}}}{[16(x^2+y^2)]^{\frac{1}{2\ln b}}}=\text{e}^m
+\end{equation*}
+We transform this implicit equation into a polar equation by setting $\rho^2=x^2+y^2$ and $x=\rho\cos\theta$.
+%Remarquons que pour le point $(x=0,y=0)$ correspond à $\theta=\pi/2$.
+
+Setting $\alpha=\frac{1}{\ln a}$ and $\beta=\frac{1}{2\ln b}$. The equation becomes:
+\begin{gather*}
+\frac{\rho^\alpha(\cos\theta)^\alpha\cdot 4^{\alpha}}{\rho^{2\beta}\cdot 4^{2\beta}}=\text{e}^m\\
+\rho^{\alpha-2\beta}(\cos\theta)^\alpha=\text{e}^m\cdot 4^{2\beta-\alpha}\\
+\rho=\frac{1}{4}\left(\frac{\mathrm{e}^m}{(\cos\theta)^{\alpha}}\right)^{\frac{1}{\alpha-2\beta}}
+\end{gather*}
+We can trace some elements of this family of curves:\label{sec:theoryEnd}
+\begin{center}
+\psscalebox{0.6}{%
+\begin{pspicture*}(-6,-6)(6,6)
+\psset{linecolor={[cmyk]{0.5 0 0 0.5}},dimen=middle}
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{41}{%
+\pscircle{!Radius}
+\pstVerb{/Radius Radius 1.08 mul def}%
+}%
+\pstVerb{/Radius 0.25 def}%
+\multido{\i=1+1}{33}{%
+\psline(!Radius 5.8 neg)(!Radius 5.8)
+\pstVerb{/Radius Radius 1.1 mul def}%
+}%
+\pstVerb{/alpha 1 1.1 ln div def
+ /beta 1 1.08 ln 2 mul div def
+ /a_b 1 alpha 2 beta mul sub div def
+ /A {2.718 m exp a_b exp 0.25 mul} def }%
+\multido{\im=-14+1}{14}{%
+\pstVerb{/m \im\space def}%
+\psplot[polarplot=true,plotpoints=361,linecolor=red]{-89}{89}{%
+ A x cos alpha neg a_b mul exp mul}%
+}
+\end{pspicture*}
+}
+\end{center}
+
+
+\newpage
+
+
+\section{List of all optional arguments for \texttt{pst-moire}}
+
+\xkvview{family=pst-moire,columns={key,type,default}}
+
+\clearpage
+
+\nocite{*}
+\bgroup
+\RaggedRight
+\printbibliography
+\egroup
+
+\printindex
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/dvips/pst-moire/pst-moire.pro b/Master/texmf-dist/dvips/pst-moire/pst-moire.pro
new file mode 100644
index 00000000000..59fd37da5e6
--- /dev/null
+++ b/Master/texmf-dist/dvips/pst-moire/pst-moire.pro
@@ -0,0 +1,259 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% This is file `pst-moire.pro' %%
+%% %%
+%% IMPORTANT NOTICE: %%
+%% %%
+%% Package `pst-moire' %%
+%% %%
+%% Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat %%
+%% %%
+%% Copyright (C) 2018 %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.3c of %%
+%% the License, or (at your option) any later version. %%
+%% %%
+%% DESCRIPTION: %%
+%% `pst-moire' is a PSTricks package to draw moire patterns %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/moireDict 100 dict def
+moireDict begin
+/pst-Fresnel {
+gsave
+0 0 translate
+1 2 R R mul {%
+ /n_1 exch def
+ /n n_1 1 add def
+ /R_1 n_1 sqrt def
+ /R n sqrt def
+ /width R R_1 sub unit def
+ /radius R R_1 add 2 div unit def
+ width setlinewidth
+ linecolor % \pst@usecolor\pslinecolor
+ circle
+ stroke
+ } for
+grestore
+} def
+%
+/pst-radial {
+/secteur {
+gsave
+ newpath
+ 0 0 moveto
+ 0 0 Runit 0 1 arc
+ closepath
+ linecolor
+ fill
+grestore
+ }
+def
+gsave
+newpath
+Runit 0 moveto
+0 0 Runit 0 360 arc
+Runit 10 div 0 moveto
+0 0 Runit 10 div 360 0 arcn
+closepath
+clip
+1 1 120 { % les angles
+ secteur
+ 3 rotate
+ } for
+grestore
+} def
+%
+/pst-linear {
+Runit neg 0 translate
+/trait {
+ newpath
+ 0 Runit neg moveto
+ 0 Runit lineto
+ linecolor
+ linewidth
+ stroke
+ }
+def
+gsave
+0 1 NombreTraits 1 add{% 50 traits espacés de 2 mm
+ trait
+ mm 2 mul 0 translate
+ } for
+grestore
+} def
+%
+/pst-square {
+/Square {
+ newpath
+ Side neg Side neg moveto
+ Side Side neg lineto
+ Side Side lineto
+ Side neg Side lineto
+ closepath
+ linecolor
+ linewidth
+ stroke
+ }def
+gsave
+0 1 NombreTraits 2 div {% 50 carrés espacés de 2 mm
+ /Side exch mm 2 mul mul def
+ Square
+ } for
+grestore
+} def
+%
+/pst-Newton {
+/SquareNewton {
+ newpath
+ Side neg Side neg moveto
+ Side Side neg lineto
+ Side Side lineto
+ Side neg Side lineto
+ closepath
+ linecolor
+ width setlinewidth % Width mm
+ stroke
+ }
+def
+gsave
+1 2 R R mul {%
+ /n_1 exch def
+ /n n_1 1 add def
+ /R_1 n_1 sqrt def
+ /R n sqrt def
+ /width R R_1 sub unit def
+ /Side R R_1 add 2 div unit def
+ SquareNewton
+ } for
+grestore
+}def
+%
+/pst-circle {
+/Circle {
+ newpath
+ 0 0 Radius 0 360 arc
+ closepath
+ linecolor
+ linewidth
+ stroke
+ }def
+ gsave
+0 1 NombreTraits 2 div {% 50 carrés espacés de 2 mm
+ /Radius exch mm 2 mul mul def
+ Circle
+ } for
+grestore
+} def
+%
+/pst-Bouasse{
+/grille {
+0 1 51 { % 51 traits
+ /trait exch def
+ /xS 2 trait mul 0.01 trait dup mul mul add % en mm
+ mm mul
+ 64 mm mul sub % en pts
+ def
+gsave
+newpath
+ xS 183 neg moveto
+ xS 183 lineto
+ linewidth
+ linecolor
+ stroke
+ } for
+} def % dessin de la grille
+reduc reduc scale
+ grille
+grestore
+} def
+%
+/pst-Gauss1{% definition obsolete
+10 dict begin
+/a 0.5 def
+/yStart -10 def
+/yStop 10 def
+/TRAME {
+-15 0.5 15 { % le nombre de traits
+ /k exch def
+ /p 2.71828 0.5 k a mul dup mul mul neg exp m k a mul mul sub def
+ /xStart 10 neg p sub m div def
+ /xStop 10 p sub m div def
+ linecolor
+ linewidth
+ newpath
+ xStart unit yStart unit moveto
+ xStop unit yStop unit lineto
+ stroke
+} for
+} def
+/CIRCLE {0 0 Runit 0 360 arc } def
+gsave
+CIRCLE clip
+ 90 Alpha sub rotate
+ TRAME
+grestore
+end
+} def
+%
+/pst-Gauss {
+0 0 translate
+10 dict begin
+/A1 3 def
+/K1 0.5 def
+%/E1 0.25 def
+/TRAME {
+-40 E1 2 mul 40 {/n exch def
+gsave
+ n E1 mul unit % x
+ A1 unit 2.71828 K1 n E1 mul mul dup mul neg exp mul % y
+ translate
+ linecolor
+ linewidth
+ -6 unit -6 m mul unit moveto
+ 6 unit 6 m mul unit lineto
+ stroke
+grestore
+ } for
+} def
+Runit neg Runit neg moveto
+Runit neg Runit lineto
+Runit Runit lineto
+Runit Runit neg lineto
+Runit neg Runit neg lineto
+clip
+ TRAME
+end
+} def
+%
+/pst-dot {
+/DOT {DotSize DotStyle Dot} def
+/pas {DotSize DS 4 mul} bind def
+R unit neg pas R unit { /xPos exch def
+R unit neg pas R unit { /yPos exch def
+xPos yPos DOT
+ } for
+} for
+} def
+%
+/pst-chess {
+/DOT {DotSize DotStyle Dot} def
+/pas {DotSize DS 4 mul} bind def
+R unit neg pas R unit { /xPos exch def
+R unit neg pas R unit { /yPos exch def
+xPos yPos DOT
+ } for
+} for
+%
+R unit neg pas 2 div add pas R unit pas 2 div sub { /xPos exch def
+R unit neg pas 2 div add pas R unit pas 2 div sub{ /yPos exch def
+xPos yPos DOT
+ } for
+} for
+} def
+%
+end
+% END pst-moire.pro
diff --git a/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex b/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex
new file mode 100644
index 00000000000..452f616976e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-moire/pst-moire.tex
@@ -0,0 +1,111 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% This is file `pst-moire.tex' %%
+%% %%
+%% IMPORTANT NOTICE: %%
+%% %%
+%% Package `pst-moire' %%
+%% %%
+%% Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat %%
+%% %%
+%% Copyright (C) 2018 %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.3c of %%
+%% the License, or (at your option) any later version. %%
+%% %%
+%% DESCRIPTION: %%
+%% `pst-moire' is a PSTricks package to draw moire patterns %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\fileversion{1.0}%
+\def\filedate{2018/10/28}%
+\message{`PST-MOIRE v\fileversion, \filedate\space (ML)}%
+\csname PSTMoireLoaded\endcsname
+% Requires PSTricks, pst-xkey and pst-node packages
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+\ifx\MultidoLoaded\endinput\else\input multido.tex \fi
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+%
+\pstheader{pst-moire.pro}
+%
+\pst@addfams{pst-moire}
+\define@key[psset]{pst-moire}{Rmax}{\edef\psk@moirage@R{#1}} % en cm
+\define@key[psset]{pst-moire}{scale}{\edef\psk@moirage@scale{#1}} % echelle
+\define@key[psset]{pst-moire}{Alpha}{\edef\psk@moirage@Alpha{#1}} % pente des traits pour Gauss en degrés
+\define@key[psset]{pst-moire}{rotate}{\edef\psk@moirage@rot{#1 }} % rotation de la grille
+\define@key[psset]{pst-moire}{E}{\edef\psk@moirage@E{#1 }} % espacement entre 2 traits de Gauss
+%
+\psset{Rmax=6,scale=1,Alpha=70,rotate=0,E=0.25}
+%
+\def\variablesMoirages{%
+ /R \psk@moirage@R\space def
+ /reduction {\psk@moirage@scale\space mul} def
+ /unit {\pst@number\psunit mul reduction} def
+ /moire {\psk@moire@type} def
+ /rot \psk@moirage@rot def
+ /Runit R unit def
+ /E1 \psk@moirage@E def
+ /circle { newpath 0 0 radius 0 360 arc closepath} def
+ /NombreTraits Runit \pst@number\psrunit div 10 mul cvi def
+ /NombreTraitsLinear Runit 2.845 div cvi def
+ /reduc \psk@moirage@scale\space def
+ /Alpha \psk@moirage@Alpha\space def
+ /m Alpha dup sin exch cos div def % tan(Alpha)
+ /linecolor {\pst@usecolor\pslinecolor} def
+ /linewidth {\pst@number\pslinewidth SLW} def
+ /mm {\pst@number\psunit 10 div} bind def % le millimetre
+ /DotSize {\psk@dotsize} def
+ /DotStyle {\@nameuse{psds@\psk@dotstyle}} def
+ }
+%% Reservation des noms de macros
+% adaptation de la macro de pst-solides3d
+% #1=type de reservation associee a une liste qui
+% doit forcement etre du type pst@moire@list@#1
+\def\pst@moire@reservednames#1{%
+\edef\@tempa{\csname pst@moire@list@#1\endcsname}
+\@for \name:=\@tempa\do{%
+ \expandafter\def\csname pst@moire@#1@\name\endcsname{}%
+}}
+% nature de l'anamorphose
+\def\pst@moire@list@type{%
+ circle,Fresnel,radial,square,Gauss,Newton,Bouasse,linear,dot,chess}
+%
+%% Reservation de macros correspondants aux types
+\pst@moire@reservednames{type}
+\define@key[psset]{pst-moire}{type}{%
+ \ifcsname pst@moire@type@#1\endcsname
+ \def\psk@moire@type{pst-#1}%
+ \else
+ \@pstrickserr{The moire #1 is not defined, the moire by default is
+ drawn}{}%
+ \fi}
+% anamorphose par defaut
+\psset[pst-moire]{type=Fresnel}%
+%
+\def\psmoire{\def\pst@par{}\pst@object{psmoire}}
+\def\psmoire@i{\@ifnextchar({\psmoire@do}{\psmoire@do(0,0)}}
+\def\psmoire@do(#1){%
+\begingroup%
+\use@par%
+ \begin@SpecialObj%
+ \pst@@getcoor{#1}%
+ \addto@pscode{
+ moireDict begin
+ \variablesMoirages
+ \pst@coor translate
+ rot rotate
+ \psk@moire@type\space
+ end
+ }%
+ \end@SpecialObj%
+\endgroup%
+}
+\catcode`\@=\PstAtCode\relax
+%% END: pst-moire.tex
+\endinput
+
diff --git a/Master/texmf-dist/tex/latex/pst-moire/pst-moire.sty b/Master/texmf-dist/tex/latex/pst-moire/pst-moire.sty
new file mode 100644
index 00000000000..e61db1f03cd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-moire/pst-moire.sty
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% This is file `pst-moire.sty' %%
+%% %%
+%% IMPORTANT NOTICE: %%
+%% %%
+%% Package `pst-moire' %%
+%% %%
+%% Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat %%
+%% %%
+%% Copyright (C) 2018 %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.3c of %%
+%% the License, or (at your option) any later version. %%
+%% %%
+%% DESCRIPTION: %%
+%% `pst-moire' is a PSTricks package to draw moire patterns %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-moire}[2018/10/28 package wrapper for
+ pst-moire]
+\input{pst-moire.tex}
+\ProvidesFile{pst-moire.tex}
+ [\filedate\space v\fileversion\space `PST-moire']
+\IfFileExists{pst-moire.pro}{%
+ \ProvidesFile{pst-moire.pro}
+ [2018/10/28 v. 1.0, PostScript prologue file]
+ \@addtofilelist{pst-moire.pro}}{}%
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index f7b39c6c5bc..0606570b83a 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -539,7 +539,7 @@ my @TLP_working = qw(
pst-gantt pst-geo pst-geometrictools pst-gr3d pst-grad pst-graphicx
pst-infixplot pst-intersect pst-jtree pst-knot pst-labo pst-layout
pst-lens pst-light3d pst-lsystem
- pst-magneticfield pst-marble pst-math pst-mirror pst-node
+ pst-magneticfield pst-marble pst-math pst-mirror pst-moire pst-node
pst-ob3d pst-ode pst-optexp pst-optic
pst-osci pst-ovl
pst-pad pst-pdgr pst-perspective
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 2f00cd29f7d..92f062ae822 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -971,6 +971,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pst-marble', "&MAKEpst",
'pst-math', "&MAKEpst",
'pst-mirror', "&MAKEpst",
+ 'pst-moire', "&MAKEpst",
'pst-node', "&MAKEpst",
'pst-ob3d', "&MAKEpst",
'pst-optic', "&MAKEpst",
diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
index 49ffc9c51e3..c887f833c02 100644
--- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
@@ -67,6 +67,7 @@ depend pst-magneticfield
depend pst-marble
depend pst-math
depend pst-mirror
+depend pst-moire
depend pst-node
depend pst-ob3d
depend pst-ode
diff --git a/Master/tlpkg/tlpsrc/pst-moire.tlpsrc b/Master/tlpkg/tlpsrc/pst-moire.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pst-moire.tlpsrc