Source
%% taille fenetre en jps
-1 14 setxrange
-2 5 setyrange
20 setxunit

%% le fichier no2 de Manuel Luque

% Volé à Don Lancaster
% modifications 2 : 10h35  05/06/2006
/vlinemap {
save /plrsnap exch  def
%    300 mul 72 div cvi 
ptswide mul  72 div cvi
/pixelshigh exch def
%    300  mul 72 div cvi 
ptswide mul 72 div  cvi
/pixelswide exch def
0 1  pixelswide { % for
/slinenum exch  def
save
%% slinenum ==  flush
/plrsnap1 exch  def
gsave
mapproc
newpath
slinenum
%       72 mul 300 div 0 moveto  
72 mul ptswide div 0  moveto
0 pixelshigh  rlineto
0 0.2  rlineto
0 pixelshigh neg  rlineto
closepath
clip
newpath
imageproc
grestore
clear
plrsnap1
restore
}for
clear
plrsnap
restore } def
 
/mapproc { %
0 0 translate cosrange neg degreeinc  slinenum mul add cos dup
/adj exch def pixelshigh 72 mul  ptswide div mul dipdepth mul 2 div 0 exch
translate adj  cosrange cos sub dipdepth mul 1 exch sub 1 exch scale} def
 
/imageproc {borderfat 2 div dup moveto 0 ptshigh borderfat sub  rlineto
ptswide borderfat sub 0 rlineto 0 ptshigh neg  borderfat add rlineto
closepath borderfat setlinewidth  stroke 10 8 moveto stretch 0 msg ashow} def
 
/bannerfont {cosrange 0.48 mul ptswide  div
/degreeinc exch def mark 10  10
setcacheparams vlinemap} def
 
/NewCenturySchlbk-Bold
findfont [30 0 0 44 0 0] makefont  setfont
/degreeinc 0.25 def % contrôle la période de l'ondulation
/stretch  1 def
/msg (MODULATION D'AMPLITUDE) def
/cosrange 60 def
/dipdepth 0.8  def
%/ptswide 410 def % Longueur du message
/ptswide msg stringwidth pop  def % Longueur du message
/ptswide ptswide 40 add def % Longueur du message  tenant compte de l'épaisseur ?
/ptshigh 50 def
/borderfat 2 def
ptswide  ptshigh vlinemap 
%howpage