%! % --- prolog ------------------------------------------- /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 % ----------------------------------------------------------------- /S 72 def /h 1 def /b 2.4 def /s 1 def 1 setlinejoin 1 setlinecap /Helvetica-Bold findfont 0.25 scalefont setfont % --- first page -------------------------------------------------- page-begin 0 5 moveto (Theorem. ) show (If a rectangle and a parallelogram have) show 0 4.6 moveto (equal bases and equal heights, they have equal areas.) show 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 5 moveto (Subtractive Principle: ... ) show page-end % --- third 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