%! /S 72 def /h 1 def /b 2.4 def /s 1 def 1 setlinejoin 1 setlinecap /page-begin { gsave S dup scale 2 S div setlinewidth 1 2 translate } def /page-end { grestore showpage } def /rectangle { 0 0 moveto b 0 lineto 0 h rlineto b neg 0 rlineto closepath } def /parallelogram { 0 0 moveto b 0 lineto s h rlineto b neg 0 rlineto closepath } def /triangle0 { 0 0 moveto s 0 lineto 0 h rlineto closepath } def /triangle1 { 0 0 moveto s h lineto 0 h lineto closepath } def /plus { 0 h 2 div moveto -0.1 0 rmoveto 0.2 0 rlineto 0 h 2 div moveto 0 -0.1 rmoveto 0 0.2 rlineto } def /equals { 0 h 2 div moveto -0.1 -0.05 rmoveto 0.2 0 rlineto 0 h 2 div moveto -0.1 0.05 rmoveto 0.2 0 rlineto } def % --- first page -------------------------------------------------- page-begin newpath rectangle gsave 1 0 0 setrgbcolor fill grestore stroke b 0.65 add 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath equals stroke grestore 0.35 0 translate newpath parallelogram gsave 1 0 0 setrgbcolor fill grestore stroke page-end % --- second page -------------------------------------------------- page-begin 0 7 translate % --- sum rectangle plus two triangles --------------------------- gsave newpath rectangle gsave 1 0 0 setrgbcolor fill grestore stroke b 0.5 add 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath plus stroke grestore 0.5 0 translate gsave newpath triangle0 triangle1 gsave 0 0 1 setrgbcolor fill grestore stroke grestore grestore 0 -1.5 translate % --- equals large rectangle ------------------------------------- gsave 0.5 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath equals stroke grestore 0.5 0 translate newpath rectangle gsave 1 0 0 setrgbcolor fill grestore stroke b 0 translate gsave newpath triangle0 triangle1 gsave 0 0 1 setrgbcolor fill grestore stroke grestore grestore 0 -1.5 translate % --- equals another sum ------------------------------------- gsave 0.5 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath equals stroke grestore 0.5 0 translate gsave newpath triangle1 gsave 0 0 1 setrgbcolor fill grestore stroke grestore newpath parallelogram gsave 1 0 0 setrgbcolor fill grestore stroke b 0 translate gsave newpath triangle0 gsave 0 0 1 setrgbcolor fill grestore stroke grestore grestore 0 -1.5 translate % --- equals parallelogram + two triangles ------------------------------------- gsave 0.5 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath equals stroke grestore 0.5 0 translate gsave newpath triangle1 gsave 0 0 1 setrgbcolor fill grestore stroke grestore 1 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath plus stroke grestore newpath parallelogram gsave 1 0 0 setrgbcolor fill grestore stroke b 0 translate 1 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath plus stroke grestore gsave newpath triangle0 gsave 0 0 1 setrgbcolor fill grestore stroke grestore grestore 0 -1.5 translate % --- equals parallelogram + two triangles (2) ----------------------------------- gsave 0.5 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath equals stroke grestore 0.5 0 translate newpath parallelogram gsave 1 0 0 setrgbcolor fill grestore stroke b 1 add 0 translate gsave currentlinewidth 1.5 mul setlinewidth newpath plus stroke grestore 0.5 0 translate gsave newpath triangle0 triangle1 gsave 0 0 1 setrgbcolor fill grestore stroke grestore b 0 translate grestore page-end