diff options
31 files changed, 2078 insertions, 271 deletions
diff --git a/Master/texmf-dist/doc/metapost/base/mpgraph.pdf b/Master/texmf-dist/doc/metapost/base/mpgraph.pdf Binary files differindex 13fa82c4d00..7d3040be511 100644 --- a/Master/texmf-dist/doc/metapost/base/mpgraph.pdf +++ b/Master/texmf-dist/doc/metapost/base/mpgraph.pdf diff --git a/Master/texmf-dist/doc/metapost/base/mpintro.pdf b/Master/texmf-dist/doc/metapost/base/mpintro.pdf Binary files differindex 52ac497e6d5..d2620bf687a 100644 --- a/Master/texmf-dist/doc/metapost/base/mpintro.pdf +++ b/Master/texmf-dist/doc/metapost/base/mpintro.pdf diff --git a/Master/texmf-dist/doc/metapost/base/mpman.pdf b/Master/texmf-dist/doc/metapost/base/mpman.pdf Binary files differindex ea2ffee5c76..73a22862ff6 100644 --- a/Master/texmf-dist/doc/metapost/base/mpman.pdf +++ b/Master/texmf-dist/doc/metapost/base/mpman.pdf diff --git a/Master/texmf-dist/doc/metapost/base/source/Makefile b/Master/texmf-dist/doc/metapost/base/source/Makefile index 39c8e9ad6d5..6574ec99108 100644 --- a/Master/texmf-dist/doc/metapost/base/source/Makefile +++ b/Master/texmf-dist/doc/metapost/base/source/Makefile @@ -1,13 +1,16 @@ -# $Id: Makefile,v 1.4 2005/03/21 15:25:51 taco Exp $ # Makefile for MetaPost documentation. Public domain. # Rules for the groff/troff docs are in TeX Live, # texmf-dist/doc/metapost/base/Makefile. +latex = latex pdflatex = pdflatex +dvips = dvips bibtex = bibtex -mpost = TEX=tex mpost +mpost = mpost -tex=tex -all: mpman.pdf mpintro.pdf mpgraph.pdf grdemo.pdf +pdf: mpman.pdf mpintro.pdf mpgraph.pdf grdemo.pdf +ps: mpman.ps mpintro.ps mpgraph.ps +all: pdf mpgraph.pdf: mpgraph.tex mpgraph.bib mpgraph.mp $(mpost) mpgraph @@ -33,6 +36,36 @@ mpman.pdf: mpman.tex mpman.bib mpman.ist manfig.mp makeindex -s mpman.ist mpman $(pdflatex) mpman -clean distclean: +mpgraph.ps: mpgraph.tex mpgraph.bib mpgraph.mp + $(mpost) mpgraph + $(latex) mpgraph + $(bibtex) mpgraph + $(latex) mpgraph + $(latex) mpgraph + $(dvips) mpgraph + +mpintro.ps: mpintro.tex mpintro.bib examples.mp manfig.mp + $(mpost) examples + $(mpost) manfig + $(latex) mpintro + $(bibtex) mpintro + $(latex) mpintro + $(latex) mpintro + $(dvips) mpintro + +mpman.ps: mpman.tex mpman.bib mpman.ist manfig.mp + $(mpost) manfig + $(latex) mpman + $(bibtex) mpman + $(latex) mpman + $(latex) mpman + makeindex -s mpman.ist mpman + $(latex) mpman + $(dvips) mpman + +clean: rm -f *.aux *.bbl *.blg *.dvi *.log *.mpx *.mps - rm -f *.idx *.ilg *.ind *.toc + rm -f *.idx *.ilg *.ind *.toc *.out + +distclean: clean + rm -f mp*.pdf mp*.ps diff --git a/Master/texmf-dist/doc/metapost/base/source/README b/Master/texmf-dist/doc/metapost/base/source/README index c482b64f0db..1587e508a53 100644 --- a/Master/texmf-dist/doc/metapost/base/source/README +++ b/Master/texmf-dist/doc/metapost/base/source/README @@ -1,11 +1,11 @@ -$Id: README,v 1.2 2004/09/19 19:10:08 karl Exp $ Public domain. This is the source for the documentation for MetaPost, consisting of -"A User's Manual for MetaPost" and "Drawing Graphs with MetaPost", -written by John D. Hobby. They were converted to more modern LaTeX by -Dylan Thurston. The manual may be freely used and modified, but John -Hobby makes these requests: +"A User's Manual for MetaPost", "Drawing Graphs with MetaPost" and +the introductory article "The MetaPost System", written by John D. Hobby. +They were converted to more modern LaTeX by Dylan Thurston and are +currently maintained by Troy Henderson and Stephan Hennig. The manual +may be freely used and modified, but John Hobby makes these requests: - I request that it remain clear that I am the author of "A User's Manual for MetaPost" and "Drawing Graphs with MetaPost". @@ -18,18 +18,36 @@ cannot incorporate a license themselves. Included files: +Makefile README +TODO agepop91.d agepopm.d +cm2lm.map countries.d ctabbing.sty +demo.ms energy.d +examples.mp +figs.1 +figs.mp +grdemo-doc.ms +grdemo-doc.pdf +grdemo-doc.ps +grdemo.eps +grdemo.mp +grdemo.ms +grdemo.pdf lead.d manfig.mp matmul.d +mp.1 mpgraph.bib mpgraph.mp mpgraph.tex +mpintro.bib +mpintro.tex +mpman-optab.tex mpman.bib mpman.ist mpman.tex diff --git a/Master/texmf-dist/doc/metapost/base/source/TODO b/Master/texmf-dist/doc/metapost/base/source/TODO new file mode 100644 index 00000000000..fb904cfd338 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/base/source/TODO @@ -0,0 +1,67 @@ +This file contains an unsorted list of tasks to be done on the
+MetaPost manual. Feel free to add new, move or remove finished
+items.
+
+Where to put new items?
+-----------------------
+Section 'For Release' contains items that we want to be finished
+before the next release. Even minor issues can and should be
+added here.
+
+Items in section 'Mid Term Issues' have no dead-line, but should
+be small enough to be relatively quickly done.
+
+Items in section 'Long Term Issues' are less actively worked on.
+The reason they are less actively worked on is not lack of
+importance, but lack of developer resources. Nevertheless, they
+are on the agenda. Contributions are welcome!
+
+How to pick items?
+------------------
+You can indicate interest or active work on an item by putting your
+initials in parenthese in front of that item and checking the
+modified TODO file into the repository. That way, anybody who is
+subscribed to the metapost-commits list is notified. Additionally,
+it is wise to communicate that you're working on an issue (you
+didn't remember adding yourself) on the mp-implementors list or
+alternatively the metapost list.
+
+
+*****************************
+*** For Release ***
+*****************************
+
+
+
+
+
+*****************************
+*** Mid Term Issues ***
+*****************************
+
+* Add a sub-section discussing colours in section 9.
+* Add index entries to section piccomp.
+* Revise introduction.
+* Discuss difference between "draw <pic> withpen" and
+ "label(<pic>, ...) withpen" (when label bug is fixed).
+* Add decent title graphics.
+* Review presentation of primitives and plain macros in appendix A.
+* Build reference manual automatically from mp.web (as a separate manual?).
+* Separate description of boxes package from mpman.
+* Make manual sources compatible with preview mode (Emacs).
+* Re-enable (or remove) SVN keyword substitution (for complete repository).
+
+
+
+
+*****************************
+*** Long Term Issues ***
+*****************************
+
+* Make manual sources LaTeX2e conform.
+* Make manual sources look nice in Emacs (AUCTeX font-locking).
+* Review overall layout of the manuals (type area, float placement,
+ listing presentation etc.)
+
+
+
diff --git a/Master/texmf-dist/doc/metapost/base/source/agepop91.d b/Master/texmf-dist/doc/metapost/base/source/agepop91.d index 5dfaeb31449..2dcd5dc0da3 100644 --- a/Master/texmf-dist/doc/metapost/base/source/agepop91.d +++ b/Master/texmf-dist/doc/metapost/base/source/agepop91.d @@ -82,4 +82,4 @@ 81 883000 82 799000 83 739000 -84 644000
\ No newline at end of file +84 644000 diff --git a/Master/texmf-dist/doc/metapost/base/source/agepopm.d b/Master/texmf-dist/doc/metapost/base/source/agepopm.d index 85c86e1b52a..7451d4601b5 100644 --- a/Master/texmf-dist/doc/metapost/base/source/agepopm.d +++ b/Master/texmf-dist/doc/metapost/base/source/agepopm.d @@ -82,4 +82,4 @@ 81 0.883 82 0.799 83 0.739 -84 0.644
\ No newline at end of file +84 0.644 diff --git a/Master/texmf-dist/doc/metapost/base/source/cm2lm.map b/Master/texmf-dist/doc/metapost/base/source/cm2lm.map new file mode 100644 index 00000000000..cc2ac280ecc --- /dev/null +++ b/Master/texmf-dist/doc/metapost/base/source/cm2lm.map @@ -0,0 +1,7 @@ +cmmi7 CMMI7 < lm-mathit.enc < lmmi7.pfb
+cmmi10 CMMI10 < lm-mathit.enc < lmmi10.pfb
+cmr7 CMR7 < lm-rm.enc < lmr7.pfb
+cmr10 CMR10 < lm-rm.enc < lmr10.pfb
+cmsy7 CMSY7 < lm-mathsy.enc < lmsy7.pfb
+cmsy10 CMSY10 < lm-mathsy.enc < lmsy10.pfb
+cmtt10 CMTT10 < lm-rm.enc < lmtt10.pfb
diff --git a/Master/texmf-dist/doc/metapost/base/source/countries.d b/Master/texmf-dist/doc/metapost/base/source/countries.d index d1e43598200..2b372f882c9 100644 --- a/Master/texmf-dist/doc/metapost/base/source/countries.d +++ b/Master/texmf-dist/doc/metapost/base/source/countries.d @@ -57,4 +57,4 @@ 14.580 76.5 UK 2.158 74.2 Ven 2.474 73.0 Yug - 0.258 53.9 Zai
\ No newline at end of file + 0.258 53.9 Zai diff --git a/Master/texmf-dist/doc/metapost/base/source/ctabbing.sty b/Master/texmf-dist/doc/metapost/base/source/ctabbing.sty index acc4c9c8df0..b61ec6ed784 100644 --- a/Master/texmf-dist/doc/metapost/base/source/ctabbing.sty +++ b/Master/texmf-dist/doc/metapost/base/source/ctabbing.sty @@ -1,4 +1,3 @@ -% $Id: ctabbing.sty,v 1.2 2004/09/19 19:10:08 karl Exp $ % Public domain. % % The ctabbing environment is a centered tabbing environment suitable for diff --git a/Master/texmf-dist/doc/metapost/base/source/energy.d b/Master/texmf-dist/doc/metapost/base/source/energy.d index 5b0b25596c7..0a8fa42d584 100644 --- a/Master/texmf-dist/doc/metapost/base/source/energy.d +++ b/Master/texmf-dist/doc/metapost/base/source/energy.d @@ -72,4 +72,4 @@ Cols 2-5: U.S. annual production of 2) coal, 3) crude oil, 4) natural gas, 5) hydroelectric power -in quadrillions of British thermal units.
\ No newline at end of file +in quadrillions of British thermal units. diff --git a/Master/texmf-dist/doc/metapost/base/source/examples.mp b/Master/texmf-dist/doc/metapost/base/source/examples.mp index 4e9a7e58ba8..12c1fc218ab 100644 --- a/Master/texmf-dist/doc/metapost/base/source/examples.mp +++ b/Master/texmf-dist/doc/metapost/base/source/examples.mp @@ -1,4 +1,3 @@ -% $Id: examples.mp,v 1.2 2004/09/19 19:10:08 karl Exp $ % Examples for MetaPost doc, by John Hobby. Public domain. filenametemplate "%j-%c.mps"; diff --git a/Master/texmf-dist/doc/metapost/base/source/figs.1 b/Master/texmf-dist/doc/metapost/base/source/figs.1 new file mode 100644 index 00000000000..b47233e3adb --- /dev/null +++ b/Master/texmf-dist/doc/metapost/base/source/figs.1 @@ -0,0 +1,227 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -6 -13 65 17 +%%Creator: MetaPost +%%CreationDate: 1995.04.06:1004 +%%Pages: 1 +%%DocumentFonts: Times-Roman Times-Italic Symbol + /rptmr /Times-Roman def + /rptmri /Times-Italic def + /rpsyr /Symbol def +/fshow {exch findfont exch scalefont setfont show}bind def +%%EndProlog +%%Page: 1 1 +newpath -2 -4.08002 moveto +29.24002 -4.08002 lineto +29.24002 7.36008 lineto +-2 7.36008 lineto + closepath fill + 1 setgray +newpath -3 -3.08002 moveto +28.24002 -3.08002 lineto +28.24002 8.36008 lineto +-3 8.36008 lineto + closepath fill + 0 setgray +0 0 moveto +(A) rptmr 8.00009 fshow + 0 0.32968 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 8.65166 3.8902 moveto +8.65166 4.13197 lineto +8.76155 4.24187 lineto +8.95937 4.24187 lineto +9.04727 4.15395 lineto +9.09123 4.02208 lineto +9.09123 3.95615 lineto +9.04727 3.82426 lineto +8.89342 3.73636 lineto +8.71759 3.7803 lineto +8.65166 3.8902 lineto + closepath stroke +newpath 9.1352 4.26384 moveto +9.1352 4.3078 lineto +9.46486 4.37373 lineto +9.79454 4.4177 lineto +10.12422 4.43967 lineto +10.4539 4.46164 lineto +10.78358 4.48363 lineto +11.11325 4.48363 lineto +11.44293 4.5056 lineto +11.77261 4.5056 lineto +12.1023 4.5056 lineto +12.43198 4.48363 lineto +12.76164 4.46164 lineto +13.09132 4.43967 lineto +13.421 4.3957 lineto +13.75069 4.35176 lineto +14.08037 4.3078 lineto +14.41003 4.26384 lineto +14.73972 4.17592 lineto +15.0694 4.08801 lineto +15.39908 3.97812 lineto +15.72876 3.86823 lineto +16.05843 3.6924 lineto +16.23427 3.56053 lineto +16.3002 3.36272 lineto +16.34415 3.03304 lineto +16.36613 2.7693 lineto +16.3881 2.32973 lineto +16.4101 1.75829 lineto +16.4101 1.62642 lineto +16.3881 1.31871 lineto +16.36613 1.18684 lineto +16.25624 0.94508 lineto +15.94855 0.74727 lineto +15.61887 0.6154 lineto +15.28918 0.54947 lineto +14.9595 0.57144 lineto +14.62982 0.63737 lineto +14.30016 0.68134 lineto +13.97047 0.70331 lineto +13.6408 0.70331 lineto +13.31111 0.65936 lineto +12.98143 0.59341 lineto +12.65176 0.52748 lineto +12.32208 0.50551 lineto +11.9924 0.50551 lineto +11.66272 0.59341 lineto +11.55283 0.74727 lineto +11.55283 1.03299 lineto +11.66272 1.18684 lineto +11.9924 1.27475 lineto +12.32208 1.27475 lineto +12.65176 1.27475 lineto +12.98143 1.29674 lineto +13.26715 1.31871 lineto +13.31111 1.36267 lineto +13.31111 1.47256 lineto +13.20122 1.56047 lineto +12.87154 1.56047 lineto +12.54187 1.5385 lineto +12.21219 1.5385 lineto +11.8825 1.5385 lineto +11.55283 1.5385 lineto +11.22314 1.56047 lineto +11.00337 1.67036 lineto +10.93742 1.84619 lineto +10.93742 2.00005 lineto +10.98138 2.1539 lineto +11.13524 2.28577 lineto +11.46492 2.32973 lineto +11.79459 2.3517 lineto +12.12427 2.3517 lineto +12.45395 2.3517 lineto +12.73967 2.37369 lineto +12.78363 2.41765 lineto +12.78363 2.57149 lineto +12.7177 2.61545 lineto +12.38802 2.61545 lineto +12.05833 2.61545 lineto +11.72865 2.61545 lineto +11.39897 2.61545 lineto +11.0693 2.61545 lineto +10.73962 2.65941 lineto +10.5638 2.81325 lineto +10.51984 3.01106 lineto +10.51984 3.12096 lineto +10.5638 3.29678 lineto +10.73962 3.47261 lineto +11.0693 3.53854 lineto +11.39897 3.53854 lineto +11.72865 3.56053 lineto +12.05833 3.5825 lineto +12.38802 3.5825 lineto +12.49791 3.62646 lineto +12.51988 3.67043 lineto +12.51988 3.75833 lineto +12.47592 3.82426 lineto +12.16823 3.84625 lineto +11.83855 3.84625 lineto +11.50887 3.84625 lineto +11.1792 3.82426 lineto +10.84952 3.82426 lineto +10.51984 3.82426 lineto +10.19016 3.80229 lineto +9.86047 3.7803 lineto +9.5308 3.75833 lineto +9.20113 3.75833 lineto +9.20113 3.82426 lineto +9.24509 3.91219 lineto +9.24509 4.10999 lineto +9.1352 4.26384 lineto + closepath stroke +newpath 16.498 3.71437 moveto +16.498 3.86823 lineto +16.54196 4.00009 lineto +16.78372 4.17592 lineto +17.1134 4.24187 lineto +17.26726 4.1979 lineto +17.33319 4.06604 lineto +17.35516 3.97812 lineto +17.39912 3.67043 lineto +17.4211 3.47261 lineto +17.44308 3.16492 lineto +17.46506 2.81325 lineto +17.48705 2.41765 lineto +17.48705 1.31871 lineto +17.46506 0.98903 lineto +17.4211 0.8132 lineto +17.28923 0.74727 lineto +16.95955 0.68134 lineto +16.67383 0.76926 lineto +16.62987 0.9231 lineto +16.62987 1.14288 lineto +16.65186 1.47256 lineto +16.65186 1.69235 lineto +16.62987 1.69235 lineto +16.6079 2.32973 lineto +16.58592 2.65941 lineto +16.56393 2.92314 lineto +16.54196 3.23085 lineto +16.51999 3.47261 lineto +16.498 3.71437 lineto + closepath stroke +20.8 0 moveto +(a) rptmr 10.00005 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -3 -3.08002 moveto +28.24002 -3.08002 lineto +28.24002 8.36008 lineto +-3 8.36008 lineto + closepath stroke +newpath 62.48819 1.64003 moveto +62.48819 8.05983 57.2839 13.26411 50.8641 13.26411 curveto +44.4443 13.26411 39.24002 8.05983 39.24002 1.64003 curveto +39.24002 -4.77977 44.4443 -9.98405 50.8641 -9.98405 curveto +57.2839 -9.98405 62.48819 -4.77977 62.48819 1.64003 curveto closepath fill + 1 setgray +newpath 61.48819 2.64003 moveto +61.48819 9.05983 56.2839 14.26411 49.8641 14.26411 curveto +43.4443 14.26411 38.24002 9.05983 38.24002 2.64003 curveto +38.24002 -3.77977 43.4443 -8.98405 49.8641 -8.98405 curveto +56.2839 -8.98405 61.48819 -3.77977 61.48819 2.64003 curveto closepath fill + 0 setgray +gsave [0.9397 0.34203 -0.34203 0.9397 44.11798 -3.62311 ] concat 0 0 moveto +(e) rptmri 10.00005 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 47.91821 2.01683 ] concat 0 0 moveto +(i) rptmri 6.99997 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 50.26746 2.87189 ] concat 0 0 moveto +(w) rpsyr 6.99997 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 55.24785 4.68463 ] concat 0 0 moveto +(t) rptmri 6.99997 fshow grestore +newpath 61.48819 2.64003 moveto +61.48819 9.05983 56.2839 14.26411 49.8641 14.26411 curveto +43.4443 14.26411 38.24002 9.05983 38.24002 2.64003 curveto +38.24002 -3.77977 43.4443 -8.98405 49.8641 -8.98405 curveto +56.2839 -8.98405 61.48819 -3.77977 61.48819 2.64003 curveto closepath stroke + 1 setlinecap +newpath 28.24002 2.64003 moveto +38.24002 2.64003 lineto stroke + [3 3 ] 0 setdash +newpath -5.25 -11.98405 moveto +64.48819 -11.98405 lineto +64.48819 16.51411 lineto +-5.25 16.51411 lineto + closepath stroke +showpage +%%EOF diff --git a/Master/texmf-dist/doc/metapost/base/source/figs.mp b/Master/texmf-dist/doc/metapost/base/source/figs.mp index e71bf2a9f7f..c8e87ba5629 100644 --- a/Master/texmf-dist/doc/metapost/base/source/figs.mp +++ b/Master/texmf-dist/doc/metapost/base/source/figs.mp @@ -1,4 +1,3 @@ -% $Id: figs.mp,v 1.2 2004/09/19 19:10:08 karl Exp $ % Examples for MetaPost doc, by John Hobby. Public domain. input boxes diff --git a/Master/texmf-dist/doc/metapost/base/source/grdemo-doc.ps b/Master/texmf-dist/doc/metapost/base/source/grdemo-doc.ps new file mode 100644 index 00000000000..f60e465bf14 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/base/source/grdemo-doc.ps @@ -0,0 +1,1025 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.19.3 +%%CreationDate: Sun Mar 12 16:21:58 2006 +%%DocumentNeededResources: font Symbol +%%+ font ZapfDingbats +%%+ font Times-Bold +%%+ font Times-Roman +%%+ font Times-Italic +%%+ font Courier +%%DocumentSuppliedResources: file grdemo.1ps +%%+ procset grops 1.19 3 +%%+ font FreeEuro +%%+ font ZapfDingbats-Reverse +%%+ font Symbol-Slanted +%%Pages: 2 +%%PageOrder: Ascend +%%DocumentMedia: Default 595 842 0 () () +%%Orientation: Portrait +%%EndComments +%%BeginDefaults +%%PageMedia: Default +%%EndDefaults +%%BeginProlog +%%BeginResource: procset grops 1.19 3 +%!PS-Adobe-3.0 Resource-ProcSet +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/Fr{ +setrgbcolor fill +}bind def +/setcmykcolor where{ +pop +/Fk{ +setcmykcolor fill +}bind def +}if +/Fg{ +setgray fill +}bind def +/FL/fill load def +/LW/setlinewidth load def +/Cr/setrgbcolor load def +/setcmykcolor where{ +pop +/Ck/setcmykcolor load def +}if +/Cg/setgray load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne +2 index/UniqueID ne +and +{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +/setpagedevice{}def +mark +}bind def +/PEND{ +cleartomark +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%EndProlog +%%BeginSetup +%%BeginFeature: *PageSize Default +<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice +%%EndFeature +%%IncludeResource: font Symbol +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Courier +%%BeginResource: font FreeEuro +%!PS-AdobeFont-1.0: FreeEuro 001.001 +%%Title: FreeEuro +%Version: 001.001 +%%CreationDate: Sun Jan 8 10:14:22 2006 +%%Creator: root +%Copyright: Created by Werner Lemberg with PfaEdit 1.0 +%Copyright: (http://pfaedit.sf.net); the serif shapes are based on the +%Copyright: Omega fonts created by Yannis Haralambous. +% Generated by FontForge 20060105 (http://fontforge.sf.net/) +%%EndComments + +FontDirectory/FreeEuro known{/FreeEuro findfont dup/UniqueID known{dup +/UniqueID get 4166882 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /FreeEuro def +/FontBBox {4 -23 903 710 }readonly def +/UniqueID 4166882 def +/PaintType 0 def +/FontInfo 10 dict dup begin + /version (001.001) readonly def + /Notice (Created by Werner Lemberg with PfaEdit 1.0 \050http://pfaedit.sf.net\051; the serif shapes are based on the Omega fonts created by Yannis Haralambous.) readonly def + /FullName (FreeEuro) readonly def + /FamilyName (FreeEuro) readonly def + /Weight (Medium) readonly def + /FSType 12 def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def +end readonly def +/Encoding 256 array + 0 1 255 { 1 index exch /.notdef put} for +dup 0/Euro.symbol put +dup 1/Euro.symbol.bold put +dup 2/Euro.symbol.slanted put +dup 3/Euro.symbol.bold.slanted put +dup 4/Euro.serif put +dup 5/Euro.serif.bold put +dup 6/Euro.serif.italic put +dup 7/Euro.serif.bold.italic put +dup 8/Euro.sansserif put +dup 9/Euro.sansserif.bold put +dup 10/Euro.sansserif.slanted put +dup 11/Euro.sansserif.bold.slanted put +dup 12/Euro.mono put +dup 13/Euro.mono.bold put +dup 14/Euro.mono.slanted put +dup 15/Euro.mono.bold.slanted put +readonly def +currentdict end +currentfile eexec +743F8413F3636CA85A9FFEFB50B4BB27302A5A63F932884E18BF5153AD36053037D1C6CD +04294AF6A35612DB9108AC8514CB5C4A8469971B75A09F9E662068B0685490EA8C73F2DE +2FBBCF85D15AB9385E529DAB15A40D408002E88D0C107F711BC66BF0F2E92FDDC6B188F9 +1EEB6B86050D5032E6ABCB11E343C6D795217B5973972E99A9420651ACF3B8FD4CAD1DA4 +B00642AD077A5B86240F89F2BC011009CB2CF173FF68E9A88F0018F187D5E036FE8D904F +211842FF01AA7CAADDEB9E5A534FA3F90BDB8F6FFE24F7AC6E7BD0A74CF29EBBA51871F0 +D1FF3262EA3CAFF583545FAB762B8D9BF14C8845C4EDB387B1248A4BCCB70AEDC6C67CF6 +C4648FA00124C44166D66DE1573C926CD9C6AE4F8B89E5987035D23195432204B648D458 +39F1769201B7C68828B3E49DFEF3065D705C2EBFFFB05B8A865CE4888872146C99671EFA +EE1F514B94B86A47AAA5F21A39786E77D443FA4CF8B525C98FC02459528C08410C679440 +CC3A160C40B14E03FAB3E267943E1FBACDD4C082777B31AD3591DAEA25DC60E0EE11AB59 +52C58879FCB35A54009A156730AF209A8D4F00CF7DD9870C8DC3E48C19BED68742376268 +0408FFD4A34A0D8659D44FADC9FC9D3084601C93FD9FCA770B1191500ECB12C8DBDB2032 +007CECE3C6A2CC8593386DC1464B94A09EA2A83438C71ACC7CAD72D074ABF6FB98EFC81B +6A3D672D2DCC637F34ACF18D469ED29FE2C49062380E6A32850F696834FC8E46A924164A +C64DF8F848D4D000EB6FD06A44D0320975A8EEE85173E4D7E39EC9DB03A8ED20DAED86D2 +73CE5762A5D35D1A81987F9CD9921E39C2C5CEDD661C3B3EE86B703C101C410E41648347 +7599C4CCB91234510ABAC16898D9D10E30B5FC1BABE78DF2A009E09E52816F2413899184 +AB8F942A496B56C9FDE630B13AD9F0996ADE29CABAF1443452B427A2280AD00B85F4657C +65B47E929FB0A2A31F257B24FE4ECBAFC878C306094088E00DB2DA6D36CECE30971846B6 +39DA9BA989109507FF21FD7198736278ED1CD021BFE7689D93B425D8B6CCCF07D37C22D7 +966FB87EFBE8F6A86D4F0C4BD38F5F3A41DCEDA924FD5F0D8FF089A0F44DFD37498507D3 +2A383FC717537744CC6868EB913D5C08CD0A3F935145FD5D811F01870F6136F4EFF757C5 +D03E73FC22F88624116C08C225C1711C96A01656999AAF7414163E75548AB89F8AA85F20 +9FA6EC242ECDA0953DC61EAE4107610380DFE2807101BDBA51391685990B3D1FFEFEC97E +0F0DE04283920370575AC06B8597EE756EEF7A3543A3E5F1B74343702A201C43411E7B76 +DC6422E2529E740A6BC6BD44ABAACD955406734AF0852471CC7B49325286AFFD2F9CFD04 +BB9CA4D0F6F0494CED1D2984E2C607FD2CE5C5A1F538CF9107771E691FAD51AE5DA70748 +F14F2FF7CE61292F6FA50D4510E4100360A4A2EBF7F9A03F7A4DAC981C6DE582BAFEBC23 +AD97EB56656A218B24D47C4345B398C14ECF5B76037D83FEB71E65F89C01133A5228496C +DF4BCC8BD4C615C9725511A2376A01C80F1EF38757CF104DD0809121EF1A2B9F11B5BDC7 +8E4F5A1463F37E952891370E1887644D26751A261FB5EE78BEA745F4F44A9B00098EDC4E +3547F5AE50DCBF29EF5BF82D653A148D340BC600EB411F4EA8A6A2D0B548D0B217E78943 +BDAED70072716A4406D685B55C2C0F490D2B472C49B278DB78E9914C3623825E595A541F +509F0E7BB1A827F4E6B0EA42C668932AB48D7B4A21AC0DA7451924D1AA7CDBE80C94F109 +1A4D91C3B908060FEB07D1B454A4CE4A60F8FACA6930313E09D5F11D1D8437E6B65EEE5B +B5570C3B66ABC491BD8CF63C2C62BC7B38A0CDFFE9D75627E6D3B23B608C7EEBD8FC655C +D197D28E8EB319814EA71B6AD63A966DB61D9C3C7D788683559C49338D037A235FD56FA0 +059DDC6017F0919926C323327C204139F07810575A8749877FB2C0C53AF4E3962613A0E8 +7D7C37A9974105992FC6B754CF23017C2E5851BCC90F48D6847EF1EF59E42032AFE03A98 +DB363827CA07E337A5852BE832772A2981864B8C1EDAD8759ACBC132ADD0BB360F40BAFD +FC7E5D32D724CF82FD3342D431F8F4CD9BDE2B07C8D8EED411E3A5889A8163CD1E2C2786 +F78AD3C1D9879FD6E93BD1FD8949DE47A8BCD219422B2F1316950B72E1E5170701795A0A +80709E894C218AA64DF5684719830066B995785AB9F1603FFDCEA945FEC09F57BF886F01 +A95811C7D4200E11C7CB373AAA4301E58F74E77519E11A89751A338B38D115B365547271 +DB19E51B85B30D1EB8E3E0B95436262D52471D65BBCF5DD94F6FF1210BF09628191F8F04 +3ED7109DE2AD284954564A1C80811B9AF1686DB799D36B50EB095AF37B9117992BB6B8F9 +0CE43ED10F9D0CE4B8ED76549239A626809ECA3D5A90E23D3CFBC776D6D816A293F2A80B +7267D1842FA102BAD77A2A775CB55473F40D3976AFC77ECDA131FF663A12795528A7EC15 +1D7854E759321709A8F4750716C949D71D332F9B0B80130916826F07E0165A5A1C5F3D8E +EF8CDB4EE3F688867FDDD47B4D67AD677F3134D90E07A1F0A8690169AC2E176BCB7CF260 +A70E374F3EC834E3B83D19CE3A52883024D2976E8E02C0B320CFD7B8BF66D11FBBF49353 +647AC4AB23A2A5689506AB83AD60AF8783E04815CABE60A3243FC633FD12D6DA50036691 +D3A0FBD4AD1309289565FC0C449510AD58085356AD829538B97A501FA73CEB693F09D551 +8FEAE6DE59FD7871AAED96A27127286C09FDD5A1EAE421CC38F56A4AF6AD5FA9BF96BF00 +2BE0A49BE6F27636DEB364A0762BCFF054020850C9222940B0E8A08E6A77240E1A0F42DC +07DAD0283BCD9DAC20E2A7542F5D74FC90D2661AD95350566F27125160C0525364D8B764 +E06FBC0F85531185F8B92B4ADE928B2CF0DD4736CAA76F6659D128E416E9792F24CB6B41 +CF369FF2BF9C360FA006938067DA606B2B19C8599FB28306FDACBF29841A169F6368384E +32B6BAD4179E345AB2B3CAB35E29E154228DCDC3D4C3317295A050A8AA86273BF7178A07 +65B598EE7061AE13B11B670F2E5F90F9FDD2F09A84F247DF9C90698A44A29BEC87B3C606 +E46A35D94986363CFEB26524FD7FB88092978128B0D246934D93BF90CDD94F7D243113C0 +8BDD1E09E4AC9F6E7A5A4FDB89150632CA41E3320D6B5AC722B27984D238D29A20F69BFD +1AB94BFA39EE52371CBEC64E16E37319ED189F2CC3992EC03A780AE4AFAEAC4FFB7A8340 +36F307F1BAB17477BF14809DA90E0AFBD0E3182D7E40A1EB1AABA8C64D9CA02044E85A82 +7FDB6C215F77FADC0443A04083E23DF21523DE178DF165F369E93AD21F34B4D72C24D5F4 +D6D19BE8F5B01AFCBBEC537C509FD7B388AA66A3E4CBCAA85601C20BEBBD2D3F11CE1CBC +E7D8FA53FA83710A80D8795AA5FF3C2E7F063DC05DC002E8278DCC1FAF9909FFE55A633D +86BE4C570BD9820327490CA61CA4FDDE381CDF70D97FF279F6A458E5D7B8DE5E1384F894 +3064F4F17D369F014D5A68C9F2E170BB59634AF060678CB4DC84450B94E34CA704B5DCE3 +67125FEE35A1B0A27F40E38D00CB779ACB34284080D5D78E30DE6233F0AD3FC22D170A60 +E2B7D4F206862D1890D16E3C9D720CCA05930814E00337AD8607098C68CBEB919504277D +B3AB769CD77745B375945BC4246B813F828099DAB82512936FE106B368F189ACE1A2EAE1 +4CF5FE1C91BD0D79CE179D34A0E85F8F1BFDEF9F28C1F26924D630E845CAA19BADC44B7B +ED9C6452C0AD01D108967D85E0779AEE557A9207164D22DFF7BCCE92D5CB9809ADFD332F +9567C92510CFC94796AA5A312C4484183B66C44DED8476F974CE6FEBFE86178B99F1820B +07B3D7C80F5CCCAE591BD8920814B4398A502756D3C945D07C6CD9FC2414086434151E87 +30C14D38764C532BDD5830E24C16BFF8CC19181621DD26E67259711E6CC43ED8AAE343B4 +B728BFD242C6C314B3D453DD3B3BC3986E736B4085C8D7498C9778538AC0F2DE17B9F89A +60082B571BE433119A9522F93A4C1222A26F94A199D71F50FA5BA94CDA733E26A43A3002 +564A841FCCC267EF8F1556CF85C8AF4A649F0AC533E0E859E3E2723525FCEC1B6E6A3CE9 +0B66D585B1E7C4B953ECF941B12D3003FE14852B7978126BE4B58DF8924651697B79F333 +F2D5BC34458DFD36826F8DFD374D0D59DD01FFC2C455B1A12AC80380F48A742013D0C3D9 +C7E040364633F0476D1ECE1870386871CE95099A30F881EBE00F6E140FE58F8C1D5F2B37 +35D12A9FF60157F8691DD64E60EF9B957C586D4E2E9D5474634F7AA44D50B11B001C66CC +F283185C6E65E32D2F2B8127B986CF62455067A5E621738C8A381D2B6A033F6C389BE878 +3179A54AD38D69223AD779A159B2D7D0AD1670A03171EB4C27930E1878037813CBC46214 +7486F3B8E9F7016C9E2E4C60B03A4C976D48EE3A20131AA00F4B79707FD801B3F7A7759A +3AFF3F6CEE749F2B32B01A582DC408384B8749307794914EAF7A0300E1C9AEF42DFFD828 +C5EE7D9730CE489F0A98C81E166B2B1EED3BCFACC370709947CFD29DEAD86C58FCF6AEA4 +8D670583BCA7018853B781340D7F4D1F2FA5703EDA8F1815F74407B4617016AD9BDF1F49 +340E7D89AF7CB5818B996201512968AA2B3D71C468C69DB46E514EC3CCBA360B3E80972D +86145148DC0BDD4ADDDFDC7D835DAAC0AA9B96DDD91973288B3A2A28BD6BB415C2A79818 +7F58F3402DA53B0600FA53A01AEEBCE5081BCC0645348BD1772C54A608E88499CE0103EA +C4ABC7FD74256C4F16A977BDF7F13843BFC6CCF16092740D9C1E7561EFD4EC6A3A30460E +A434D1921727FA26D9F56627DCD6AF95951E602936C4AC6C7A6F6DFEF2C0CE0571458B27 +BB31DA11C9E09DD3917F61140EFC4F059AC2FAC839BDDC0695B293C42BD17B1895A6B2B2 +F955821C5CE356B1AA33C5F361BB0F43828A20B9F193E71E057F45B6CC8ABE53EEFF801F +2B6CFB31B6DEB5D84EB8525B938AC424B3486DEA14982E5CF7F2D2C92F2D9B28033DE0C3 +4B610505771E0B1BE6AF03552EB8B44EC1190DAEB15DAAF21E7F2D437780484F0535D8ED +941A8FA13D379B911FC7AC99E4657DABD37891C467E8854DEAD2E34E05962F0EEC30B5D4 +B8FA6EBA42C102564A2FCDF679AFB7FC145C98EDCC81BF33DCFEB593CF8E7C2F6E9E22B7 +8B1DEE3B75C0E87AB95C6341A1D09948BF338B682F515D89230F8CDBFC72D56A00003EAD +F5BC0A6CC1A802A80480D6CEBA34631C7892909E049473E8328295069C0845571ECC9980 +CD8BCEB4C930C06601BFBE690FA0BB34631C7FF64D91A31BDF9035EC6E44EA12A79DF384 +FD82092DEAFB2D2E1B0C8ED903BCA55382F98FA5346ACC20900D86E64FF528C604D6815E +3DEFC5F71EBBBAC2B5787B2F25AE820AFDD4038CD58B0F1710C1EEC7DA521071DCCFB9BF +24C9EA1049EF59E61D20BFD50BCB5D8CBD0DC266B8836F34EB94858A54CE0C9E6088188A +EDE0BE39FAFE697AA6C8805CAD63DEE8A0CA226C91405DE5FE7FE8820124D6D79EA5F956 +8C5CBFEA24C4F3D601428329453F226C4C3E3E429E429C2E96DF25EE1DD7B5B12B2C1DA7 +CB0EE6EB0D018C2DD437A6883D2C2E57B9CB264CD3369C20AB831CDDAC5F57E550727C0B +CC9715B2C87C26C0A9A6A2F173C7B03F12F993B217466E7896E4764C6AF20CDF0634205F +3E38E6C8C6DE3A4269C5C6CF03E49D60F0E2F3D7B3ED302C3BDA4EC6332867A19C9CE8FD +6E2D0F2C597E11896A3E6EDC4B616F76B3355DFBF26DB2199963252C93AE423F1AE6683F +115E9B68672BFF4C9134EED4C51AE587CC859F742A283F3C9B6088B0B9E65A1EA521578A +E67D7396907129B83C1C9E2302D5FF46FCBF408E0FA69AA8F6E7193AE9E9DD5254201317 +B3D304BDCA689B683568BCAD9539C4D6BDA50814D8F251A70E76E7A5EECF719DD1655DA0 +605D9EFC940A8CF0FDEBC7146DE12F108959280903C34C69DC92F8205F2EE1D52F483AA7 +7E02F277A1186849056036CB24AB238AF08C903C4CEB4851991C24A8158EAE8D8F3BE56C +355FC26D7BBD2849B7ED9E1A25DFE98BC62A6797615BCE59DEAAFD5B6D08298E2DDAA611 +3DE60AB83FF7687B7ADD6706822270ECA925B559F2F9EC59C9AB0F365868DEC3122EE67F +BAFE7EBFACEC14D4D40C55F94ABBE8CE82CEA67FC1415D127786071CC06DCB653CCDED0B +40A9D49994865CF45BA494AC11543A0546DC37417BD01DB100273EE3F0E7D12093E50FD0 +E71B9A0326E8F35FCD86B3285781008ED03FCA1850D685CA5B62518C9194A0C7E8CFD5A9 +FF6A0EF508ADBCEDAB7C7144272F8C7DB274CE7AA09CFABCCA3E6967EF259A72C3B8F4FD +4605CBB99CE88B679F3EC9486C442B05D776B9D7FA8C04203DBDF33C0CF45B15E68C9376 +168229CC5176BC1E9707853192BD0C394E2D8880050594675F5B83488026791AEB1E6D79 +A424B8F90149F4855EF1BDF6CF0137D459D2A22DA3FF00743B52B2F9C316262EE53AE760 +43E2F267C2598CE66CFEAEF1459C307CA9B3FD8E897C93426545B80834EA16764633B2C5 +5B31557E6B5398F17D0BE5CC1348FE71014EF3BA2F917589AE4A4C9D8EF22A6D0A288557 +C4B2F2ABF2C30E778A5F21AA16BDD04CD8433514FBC7F81583F5D9CE3DE38542DCA55FFC +9142EB3B797946A7A121C134C82DAED820D3FF0E7053B40134353012A44B15506385533D +0702662BC8545130B7717B5E99BDC18E8473D2920C80CAD8F61D352C2B3718567B0BDFDF +F063D2E1A568D6B17412149E4C9AFE3FD3F8186A8274FC01CA07504BE6751A7BDE74719E +970A9F1744917E3521C4988E547EC1B63D33AD86390DB6CDBA9436884CEAA6064E383B61 +68BD405523A23D32B571E534354E1BD4EA3EDB7D1BBF2D0F6D6B36993DB0DF94C18BEBE2 +6F4B6475306784C091E139A759F627843CED43666D95AE257E650DDA0F6C0458CF27885F +25D59FE5601777ADCCB42ABC20F960B17A2669B4277AEE51A3D33BB1914FC5985236A6E0 +0C32956A1CAB55DD020DAFA2BAE36638E5F5866AEAB8E3439EFEA9266CB28B9DBA4B1746 +046A71E3BF05F37FF84CEFD66479640C3BB43D915BFA3AF6F3916F2AAAE39DD4317563C2 +26E361EE278E9FE076EE6B4733720C53918CA5CC9C5F4C6C7A36D8E49A591074AEFF0363 +09E5834A3978ACEB9016F116D20B6854BC59484F344D069768C6DFC503EB95C9FEA0521B +FD6E1C99FCD1268D18C1DD428C66DE9145071190FB17464C8C4FE87D9C0F3DA5FC3E933D +7375E88DC3BA96858D671A6616F52E70EC6B5795114C3F03F8C78CC388AC01866B347196 +40705C2EA04CC1369A88B3A242FFCB32B48024742A03C94A6E715EF09F06CC999CA1E593 +AB6013B7E25685C4FA93429EE0613E3DA07C94D82B9A739B954BD6EA1E2A9DE55461211B +4FBCCFF6BD480C845DC4B075B33551C760FE3D8F5EDB1201269AF48C8F8E96AFB5C7F767 +20AD3F9BDB225AF317770F1C2644589EDB5639376E30DB053930511FEE7C9FF81F6B76ED +57E4C6CF157AF5EE0D8E05F0B9F1276385B3C4EF779593B0120AAE0073880C0DE6F76906 +8B96E92133050EF7BA0A6585AB37880501F42477E0AB8A5D314F7A5A1B760142A42A40F2 +2A12F0F79C747F8C57C688C5937BCCF9B217647EA1D7C16936055814F9260C647045F3C8 +997D40B7BB690B654B9F243D2FC9343C7BAEC4F79AC5CA9C8A43E414B4BC6A6B02828CC2 +1432BBC6E49EAB7DAE35926C6B0BFBC6AC3831834CF54A732E8531AC7D0A3AF62A5FF8F2 +4B59EF71698824E2AC5E4DC2D5C58B9FFA80817C4DA7638CE5B6F0F33164FCCDA6F82933 +AE42A26BA9AA939A7DBD55F35C29BB9D192251E945D9890F48F63D7BB58269031899F7D5 +A52C1747CBEE945D55154AD30301FCC6345DF34A177E9CAB110D7A52B63B131A1F7D7165 +BB5AC4B1842B9A1F3D86F521E4107B40963BB34CC61B10F79D936736DEAC7F25BBDEC228 +E7838F1032154ADF35F333077483AFCDD50410C07707A47F9306BF794A15B5452EEB34FA +48A8C1BAA627EBB16BEBE9369AE7D100CF8D14E5B70613C8C8A53CA82495E8BAE8990ABE +0ACC0B2E9CC44191A50417657662385821B1C897C88AB2A0B149090CE11B940AC6DDB64D +0BF745858A1A56F811F1DE81458F50A704EA30F5F1918D9B5481E6E4681B389C447A65E3 +56A12C8592C8709C09135B06994590DD0B87D2952C871EF0B7365D04928A7B19AB3A10EF +40B0BA1DAB4D3DC5789EBDB23E98698963FBD74DAAB6C8885A88634E9857CBCB163B1D0E +32DF259DFEF7217D6744CC6F34E0D96C7BC93CC0A19F4EFBDAB6338CB56B46E538EE92B4 +353AA6663AC42A2EF78E4A228886577678FF36E5ED221A807E009D33A737F89F80461FA5 +5741EEF636D19FAD5870AF6F436DFCEA130C102156F134F77DFE4933628DBE64B477555D +81CE6131866AA5712347043CF70634F92D5B984445D32A545607B62BA1C12D37FB6B17F3 +84838E274818032AD7A07CDF1F504B3CB5C5C9D8D16342CAB18697A5821B2E219D14F15C +AAFB33A44E4E6D18C4DC64F79DDCBF2BFF7B3FE05709420DBBC24B8C23822755062B9784 +69AF6B01CDC9C45E55A71BC5BE1EDFDC23C430D61FF776BB4B2AB69BD391758462A9700E +21B81CE478207D443C5A868946969DA1E63AA939D3563605C83C2AB2C5E7551169F466D7 +41FDCEE57EEE7897C41F0409AB61E86C947C83850C23DE579ED1A7EF7F941522F41337A7 +F2FF06D4D5CC4A9436A2CEB91B1D9218F46BCC3A1A5C57539BD6A56C6755A8ADD89884F1 +2FF46C13248D02EACB04008BCE1CCC3DA9CB7D4EF0AF02A97734C95D8C45CC360AAA467E +97858E0B66978BB46353E9C0A653E49CC1E63C119FA50441846E5AE38D551BDF3A7CBD2B +8E51C2C088A617B68E21DD2F44EF5033CD252A75C80F16F6C45EBC84E17FA58F8DA6800B +8F61B060F54124F1B1F12AE75059159AF036C25DD06F4EEF5D8048079AC6CCB1BD5DA270 +005EC1428BC3F7A6369EC13EC8F99F77892D163FE605B8609940E1B27D784C57B7842BD7 +10C78480BF7EE7CF9BC29064CBCBE8B3B584C453C29851C39438E10BB9CAD4B2776B0899 +EDFF8CC4D35C8DF827743DC5D85681F4A7B9EAB43E133384B072F0D7A86EC6BFD5989503 +A95AA4DFF2FCB6BCEC468DFF75D20F9FD35015D4F98D65160E9EF8E1AE723433114B5458 +7B0A7314D320A942440D3D37F3BE4164C5D796C5D3597222EC88C7A14503EF964643B095 +E2F113FA22EA7999905633109628F97982451A9810D6A1DD84EB108D7A26E04C1C00488D +322774F47B555B28D24732E6C0D4D701933C9506D379B3E5BC10609B167C1064F34A4327 +A50D0D2FB470994714FB881EE3B88B054633BFF034650C0C4E4AE5720C35C7F3E4CD30E3 +6B26D8CD1813A7703867952488E01B23FDF799AE3AB35E4880E41B4DDBCF8CB4FA68423E +2D5E122264F8378BB8EA414C83D95A4A6D85995CE64A50B39C8E5F94955CDDBD88804D42 +279515FC1129FD2F50A170B214BED20695CCE59EAE0ACE91FCE6DD217B3A737A9DCAE11E +A0C746306AA9447F469BE68D8488E392D00583BAF1E63782C73D5201359CE7A768F24489 +0FA50098398CB006F74E9877E9E4373228269506F44931115C0E44654AFD6B48E3E2F6DD +47E738DE4CDC5344E1C26FAE5B73B9844F5CB2292D675CE88C2078DBDA11C2A9A58F4B10 +42850802766C9387734F22288F12E1F0D211FE150294FDD1744D8001AB95D9D63FD5C916 +B7886A1D6A076D14AD0B6D65E63D49CBC825E85CCFE3E6119DD05D6450980900600A0A07 +4BE3EE6801DAA9670D1BD6F7FE3332BF9B16C9D7DF782547006BF79DD5286A899E1153F1 +077B7AD8CDAC2724E1689A95B958D24566EA5759AF2276E2558AC8A110EA5CAB9C1BE598 +4031BBCA618B7EA15E87379927AF1D58AF01217B45B9CC67F79D96977624A9A01B1AA7A3 +1D0E4B61F6FC96A620867BAB29A7331DE35BC73E29DD89DEC1B5CA163679017FD5D52D6E +F359C8ACD7D149B509EB1E9EA1EBDDD572720F11A390AC61F898295FCCA27F466787CE24 +3C889A45EB97AE0AD87B5DB995DECB80D8A73592C9E17F02ED6BEFD6CFC5E56275366022 +E3EE687762FDB605B7221C7004DA9E8B594D6CA0B0AA5AD97D0231C228E38D21F2652470 +2524A76555EA690062A1C811C7708F33A432E4B93683D416BC6BFD9A3A9CD114ECEAD652 +98376657CFC1B1826B77B533314A3962ABA6137CF6502713BDA51FFC763CF78C7A0AFC99 +CD496DFE069FACD2669351BED17106952A3E55A13210C5024885CAF002343A31D1E64745 +E973853B94DE520B204922CE2063140C7403D7E038EA2D21D86A72E417DEF576BC60ED61 +B74A8237ABEBD176625ADC0B1475EF4D985D05148D0233041FB5F02920F4F4C769E2DF96 +8463AB7054465464844A2A1F1C427B9369BBF6221B0D557C1F1AFF62F710BA060FAA89D7 +3C6E7F5B09B2D1E192F47743BE288AB84682254C54ECDB6FB52E1013CFD075D0430D321D +C0A9B30AA8D1BF0676816E3FB7BB53E19B9C782E3B15732AF9A233408CD12FCBB1D3A963 +3910D9E4F84F1D89B0A26AFC1DF439654005CEDFD46A9B5FC815C91E72631D255475710A +CADB424EC5D2A86681422B36B8A6BE4DCA28EA5A919D9EE1B4F722518925484A59C6A972 +F68A0BC736BEBEF281DFA37F4F51BE2746644CAAC585DE766DCDF6443263C9A403E4E110 +32721D8C79C005B982D7B1A3E19AEAF0C89A2AB06841D677F79C3152E4B130B122BFC8ED +D6EFFAC69BA8C66C47F3D5321FB8A9C7156CFA2F0F577DF1CA2D8E9C6D854B401FF8DCF3 +BFBA7C98B11B3F128EA81DD1BB7B4FC24943B43772A6E731876CF46608CB88EB143AE9B1 +7D72DE503210705410B26CF1D70D7D4B98A2C4AC6F7AEBCE59BAB09F1C4D4E97EC3A9D91 +15554C98E2FC7DF130D4548875C0ECF16614BFDAC96E9230FAAB82C6EBDAA0EBCCD1ABC9 +F9DB0B987DF58240B927A6AF8BF1CA62C39DA2DFDF36DA884F67553F058CE4718777EDED +34E30501AC3DD9B8F9008463A33AA8612595E855D009CF9F7C1BDAC1DBD1483BCFF8A7DD +346DC22F31646C0CF07C753596AFC285F6136BF7E3C83B0FB75D9BDFA9979C0930A245D2 +7899ECA0F64F12C390EA7293E5EFA7A1D0721AAF72B313E6A14FD20B1B5AD9F3BE0F071E +33E89D4F5CC7111B4C06F18782A5A8F840CF27EE20B8BDC0B16E295D4AC30C2E079F75CB +23A338BB99D059095BE8E7D2FEE1BC421BEAFC536D2E2C40E05B6EF3CF483A34CE506816 +2CE04C4F2D9F17748F9FAFB67F046A168F4545D80ECF05266556DA6E75B018F790D5B821 +B5F9D115BA8E3A7B273B92E6E111CD257A6B12F4F25956AF908C8CEC671DBB796FA93893 +18D5B8473A04B63E0F751744D8050A1D266A15656A016697A9CA765660B5728E9BAC77CE +F7EFA339B522C2C52E6C678C550388136C678B2CD1027214D0D086028A29DD4785EEB512 +BD60CF2132746757559BE4C6B802792700B911D098F4A95A758B6E30285F906B6EE7B60D +991F86B1961FDC2BD5A9FA8F68E488AD57494765D9822A469FCAC1BDCE3F3685B09550D4 +49CE97D9FA83F187923C4DE772464EFE98A9789B93E5691C621E9B79F227041D22CB05A0 +22282BAA61BFC04863CEB7BA282CE68AE91CCDC2717747B3BCD808136F779DADFDBEECFF +E610CEE002874E4B33EF0ED4602073C56693BA2479D885F53FE4F5C68DF9C6B09D021342 +C117F488BFC7F2A7BADC2E059F0BF05AED5F6B8467CBE018D7AC442BC3526F8566A71B4A +69E93874F74F3B751B8C6811992D47DC4D080461269C6EB18AE76ECC66479B6A53E1984F +A17E13F546FD4AC12024A1ACE29C9BDCD47274E480017759381B2081349FF3AC5BAA1902 +2D9EB3DDC8471B0D2D58E3717973F7B7CD8E8AEAA301A676579AD57D112CF6D8F659B8CC +E055A155AB0F6C6B8A3254ADBD5E6BBAA336327F3AE20C109CA8C46EF35814473457E3F2 +EC80EE99547B84377DF391B0A9B2F60B818A0A3D49D5E36A2D7A05F4F77F964F81CC51D2 +272CD30B52AFB7AEE06129977A0AF98BFF236EADF92CD7508A2F3FE853EE26530922A59B +639571AA10FA5FC0E1315B7215B76045E18141403E4B0B2A9EB724E69BB40AC1AB479216 +1686D2B0DF545D0FA08CFACB8C8145AA9FB982222EE247B7DF2D5F2B33A9B6AE29CC6166 +3F642883EB6757DB8F1845E1727B7AADAE2FD8E560922467E79EF1803A03C9D51F649DD4 +16C75835F9EEB1FA6FAE978B1B7B7792FB24EDFD9EF55E67CB02D5C23C9628F126BD3A12 +31869DAE5FBBCE60133DEB7D33F1E0ADFD9927A3E9E42B6AB0E5D703BD7271A179985FC3 +D91C2D161B76F70987073647B26542C83A34172663F6793DE8B8D9BCD72CCD48DF5563C0 +FBFA6CC45D99AB78CD6ED8B861948E54DFE9C99E169E35A88D03C1C9A7C84720A3956B00 +0842CF8C515E3A722DDD0B6627926110B335744866564CC638901758FE0EFA98F4E3F4CF +DF911E5E395EC3D17807D7483008A95BA603AB80FB6A359BA3F0A8ADFE60F9CBADF67441 +1D0BE41B802B3EC9075DC1EB375EDCD27E113B4B1EA3C8ED0B1BBB2A3DB934CDC5CDA9B6 +0F85B33DD71FCA5B25B0AAA6B528229D84E1E7B97CB72C0F20248509A2B6CC53E5B7B694 +24FD8BFAE39C66E86DCEE0B602C9102A0575F15693B3C0A268C1C3F897F57E1CC5A58ADA +4222A57B2A53B234BA19ADA37208C16B1B757E106D5D8AF0AFFD6BBA6E753805BBC2E9A4 +450A78025400D18B8FDCA54A18440331E48E52E3C4CA80FC171B02293CED081E887215EA +D34DCF1D6FC2FE86502262006977878E4960326634F1A1EC8D2D96CF51EECDDD6D7CB410 +6D2B37136A13B4D2B67A2DCC74365A27E72B263FCF506B34116BB93BF76DA0C813CE6F63 +639BA86D000BEEED941AC2096A7F1C714615CE20F920BC4427BBB157105FC8FCC3D5FA6C +9C0D797AB7ECA5DA2B5DF210C4523E406821B704383C63055EB87E8C82E68ABB062487C8 +834EB35BA973902999E27D9A7D143536CB253195A3801FAF741C1588C808A1 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +{restore}if +%%EndResource +%%BeginResource: font ZapfDingbats-Reverse +%!PS-Adobe-3.0 Resource-Font +%%DocumentNeededResources: font ZapfDingbats +/ZapfDingbats findfont[-1 0 0 1 0 0]makefont +dup length 1 add dict begin +{ +exch dup dup/FID ne exch/UniqueID ne and{ +exch def +}{ +pop pop +}ifelse +}forall +/FontName/ZapfDingbats-Reverse def +/Metrics 202 dict dup begin +/space[0 -278]def +/a1[-939 -974]def +/a2[-926 -961]def +/a202[-939 -974]def +/a3[-945 -980]def +/a4[-685 -719]def +/a5[-754 -789]def +/a119[-755 -790]def +/a118[-756 -791]def +/a117[-655 -690]def +/a11[-925 -960]def +/a12[-904 -939]def +/a13[-520 -549]def +/a14[-821 -855]def +/a15[-876 -911]def +/a16[-898 -933]def +/a105[-876 -911]def +/a17[-910 -945]def +/a18[-939 -974]def +/a19[-721 -755]def +/a20[-811 -846]def +/a21[-727 -762]def +/a22[-726 -761]def +/a23[-572 -571]def +/a24[-641 -677]def +/a25[-728 -763]def +/a26[-725 -760]def +/a27[-724 -759]def +/a28[-719 -754]def +/a6[-459 -494]def +/a7[-517 -552]def +/a8[-502 -537]def +/a9[-542 -577]def +/a10[-657 -692]def +/a29[-751 -786]def +/a30[-753 -788]def +/a31[-753 -788]def +/a32[-755 -790]def +/a33[-758 -793]def +/a34[-759 -794]def +/a35[-781 -816]def +/a36[-788 -823]def +/a37[-754 -789]def +/a38[-806 -841]def +/a39[-788 -823]def +/a40[-798 -833]def +/a41[-781 -816]def +/a42[-796 -831]def +/a43[-888 -923]def +/a44[-709 -744]def +/a45[-688 -723]def +/a46[-714 -749]def +/a47[-756 -790]def +/a48[-757 -792]def +/a49[-660 -695]def +/a50[-741 -776]def +/a51[-733 -768]def +/a52[-757 -792]def +/a53[-724 -759]def +/a54[-672 -707]def +/a55[-673 -708]def +/a56[-647 -682]def +/a57[-666 -701]def +/a58[-791 -826]def +/a59[-780 -815]def +/a60[-754 -789]def +/a61[-754 -789]def +/a62[-673 -707]def +/a63[-651 -687]def +/a64[-661 -696]def +/a65[-654 -689]def +/a66[-752 -786]def +/a67[-752 -787]def +/a68[-678 -713]def +/a69[-756 -791]def +/a70[-749 -785]def +/a71[-756 -791]def +/a72[-838 -873]def +/a73[-726 -761]def +/a74[-727 -762]def +/a203[-727 -762]def +/a75[-724 -759]def +/a204[-724 -759]def +/a76[-857 -892]def +/a77[-857 -892]def +/a78[-753 -788]def +/a79[-749 -784]def +/a81[-403 -438]def +/a82[-103 -138]def +/a83[-242 -277]def +/a84[-380 -415]def +/a97[-357 -392]def +/a98[-358 -392]def +/a99[-633 -668]def +/a100[-632 -668]def +/a101[-697 -732]def +/a102[-488 -544]def +/a103[-510 -544]def +/a104[-875 -910]def +/a106[-632 -667]def +/a107[-725 -760]def +/a108[-760 -760]def +/a112[-741 -776]def +/a111[-561 -595]def +/a110[-659 -694]def +/a109[-592 -626]def +/a120[-753 -788]def +/a121[-753 -788]def +/a122[-753 -788]def +/a123[-753 -788]def +/a124[-753 -788]def +/a125[-753 -788]def +/a126[-753 -788]def +/a127[-753 -788]def +/a128[-753 -788]def +/a129[-753 -788]def +/a130[-753 -788]def +/a131[-753 -788]def +/a132[-753 -788]def +/a133[-753 -788]def +/a134[-753 -788]def +/a135[-753 -788]def +/a136[-753 -788]def +/a137[-753 -788]def +/a138[-753 -788]def +/a139[-753 -788]def +/a140[-753 -788]def +/a141[-753 -788]def +/a142[-753 -788]def +/a143[-753 -788]def +/a144[-753 -788]def +/a145[-753 -788]def +/a146[-753 -788]def +/a147[-753 -788]def +/a148[-753 -788]def +/a149[-753 -788]def +/a150[-753 -788]def +/a151[-753 -788]def +/a152[-753 -788]def +/a153[-753 -788]def +/a154[-753 -788]def +/a155[-753 -788]def +/a156[-753 -788]def +/a157[-753 -788]def +/a158[-753 -788]def +/a159[-753 -788]def +/a160[-859 -894]def +/a161[-803 -838]def +/a163[-982 -1016]def +/a164[-423 -458]def +/a196[-713 -748]def +/a165[-889 -924]def +/a192[-713 -748]def +/a166[-883 -918]def +/a167[-892 -927]def +/a168[-893 -928]def +/a169[-893 -928]def +/a170[-799 -834]def +/a171[-838 -873]def +/a172[-793 -828]def +/a173[-889 -924]def +/a162[-889 -924]def +/a174[-882 -917]def +/a175[-895 -930]def +/a176[-896 -931]def +/a177[-428 -463]def +/a178[-848 -883]def +/a179[-801 -836]def +/a193[-801 -836]def +/a180[-832 -867]def +/a199[-832 -867]def +/a181[-661 -696]def +/a200[-661 -696]def +/a182[-839 -874]def +/a201[-839 -874]def +/a183[-725 -760]def +/a184[-911 -946]def +/a197[-737 -771]def +/a185[-830 -865]def +/a194[-737 -771]def +/a198[-854 -888]def +/a186[-932 -967]def +/a195[-854 -888]def +/a187[-796 -831]def +/a188[-837 -873]def +/a189[-892 -927]def +/a190[-935 -970]def +/a191[-884 -918]def +/a205[-474 -509]def +/a206[-375 -410]def +/a85[-474 -509]def +/a86[-375 -410]def +/a87[-199 -234]def +/a88[-199 -234]def +/a89[-355 -390]def +/a90[-355 -390]def +/a91[-241 -276]def +/a92[-241 -276]def +/a93[-282 -317]def +/a94[-282 -317]def +/a95[-299 -334]def +/a96[-299 -334]def +end def +/ZapfDingbats-Reverse currentdict end definefont pop +%%EndResource +%%BeginResource: font Symbol-Slanted +%!PS-Adobe-3.0 Resource-Font +%%DocumentNeededResources: font Symbol +/MakeTransformedFont{ +findfont dup maxlength dict begin +{ +exch dup dup/FID ne exch/UniqueID ne and{ +exch def +}{ +pop pop +}ifelse +}forall +/FontBBox +currentdict/FontBBox get +4 array copy def +FontBBox aload pop +4 index transform 4 2 roll +4 index transform 4 2 roll +FontBBox astore pop +FontMatrix exch matrix concatmatrix +/FontMatrix exch def +dup/FontName exch def +currentdict end +definefont pop +}bind def +/Symbol-Slanted +[.89 0.0 15.5 dup sin exch cos div .89 0.0 0.0] +/Symbol +MakeTransformedFont +%%EndResource +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron +/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE +/Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0/Times-Bold RE +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 13/Times-Bold@0 SF(MetaP)232.652 127 Q(ost with gr)-.26 E(off)-.234 +E/F1 11/Times-Roman@0 SF 1.485(John Hobby')72 169.9 R 4.235(sM)-.605 G +1.485(etaPost program had an)-4.235 F/F2 11/Times-Italic@0 SF -.407(AT) +4.235 G 1.485(&T tr).407 F(of)-.495 E(f)-.198 E F1(interf)2.156 E 1.485 +(ace which ha)-.11 F 1.815 -.165(ve b)-.22 H 1.484(een changed to use) +.165 F F2(GNU tr)72 182.9 Q(of)-.495 E(f)-.198 E F1(instead.)4.906 E/F3 +11/Times-Bold@0 SF(Usage)72 208.9 Q F1 1.123 +(Since MetaPost is a picture-dra)72 225.8 R 1.123 +(wing language that outputs PostScript, it is necessary to use the)-.165 +F/F4 11/Courier@0 SF(-mpspic)72 238.8 Q F1 1.668 +(macro package, which is automatically included when)4.419 F F2(gr)4.418 +E(of)-.495 E(f)-.198 E F1 1.668(\(1\) is in)2.156 F -.22(vo)-.44 G -.11 +(ke).22 G 4.418(dw).11 G 1.668(ith the)-4.418 F F4(-Tps)72 251.8 Q F1 +(option to prepare output for PostScript printers or pre)2.75 E(vie) +-.275 E(wers.)-.275 E 3.517(Suppose you ha)99.5 268.7 R 3.847 -.165 +(ve w)-.22 H 3.518 +(ritten some \214gures in MetaPost and placed the input in a \214le).165 +F F4(figures.mp)72 281.7 Q F1 5.5(.R)C(unning)-5.5 E F4(mp -T figures) +108 301.2 Q F1(to in)72 320.7 Q -.22(vo)-.44 G .22 -.11(ke t).22 H +(he MetaPost interpreter produces output \214les).11 E F4(figures.1)2.75 +E F1(,)A F4(figures.2)2.75 E F1 2.75(,.)C 1.833(..)-.917 G .476 +(Standalone EPS pictures can be produced from such \214les by)99.5 337.6 +R F4(fixgrofffonts)3.225 E F1 3.225(,t)C .475(hat \214x)-3.225 F(es) +-.165 E .641(comments according to Adobe Document Structuring Con)72 +350.6 R -.165(ve)-.44 G .641(ntions \(DSC\), embeds font reencod-).165 F +(ing commands and non-standard fonts.)72 363.6 Q F4 +(fixgrofffonts < figures.1 > figures1.eps)108 383.1 Q +(fixgrofffonts < figures.2 > figures2.eps)108 396.1 Q(...)108 409.1 Q F1 +.469(Before these \214gures can be included into)99.5 432.5 R F2(gr) +3.219 E(of)-.495 E(f)-.198 E F1 3.219(,t)2.156 G(he)-3.219 E 3.219(yh) +-.165 G -2.475 -.22(av e)-3.219 H .469(to be processed with the)3.439 F +F4(fixmp)3.219 E F1 1.415(script: It adds an encoding v)72 445.5 R 1.415 +(ector for all te)-.165 F 1.416 +(xt fonts back to the \214le \(which MetaPost can')-.165 F 4.166(ta) +-.198 G(dd)-4.166 E .303 +(itself\) and changes the Adobe Document Structuring Con)72 458.5 R +-.165(ve)-.44 G .302(ntions \(DSC\) comments to something).165 F F2(gr) +72 471.5 Q(of)-.495 E(f)-.198 E F1(can handle.)4.906 E F4 +(fixmp < figures.1 > figures.1ps)108 491 Q +(fixmp < figures.2 > figures.2ps)108 504 Q(...)108 517 Q F1(No)72 536.5 +Q 2.75(wt)-.275 G(he con)-2.75 E -.165(ve)-.44 G +(rted \214les can be included in a).165 E F2(gr)2.75 E(of)-.495 E(f) +-.198 E F1(document via macro calls such as)4.906 E F4 +(.PSPIC figures.1ps [width [height]])108 556 Q F1 .615(as e)72 575.5 R +.615(xplained in the)-.165 F F2(gr)3.366 E(ops)-.495 E F1 .616 +(\(1\) documentation.).297 F .616 +(Note that the picture gets rescaled if the height and)6.116 F +(width in the)72 588.5 Q F4(.PSPIC)2.75 E F1(command don')2.75 E 2.75 +(tm)-.198 G(atch)-2.75 E F2(mp)2.75 E F1 1.21 -.605('s i).209 H +(dea of the picture dimensions.).605 E F3(An example)72 614.5 Q -6 -17 +79 79 -39 39 248.5 666.5 PBEGIN +%%BeginDocument: grdemo.1ps +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -6 -17 73 22 +%%HiResBoundingBox: -5.5 -16.14502 72.741 21.95007 +%%Creator: MetaPost 0.901 +%%CreationDate: 2006.03.12:1621 +%%Pages: 1 +%%DocumentNeededResources: font Times-Roman +%%+ font ZapfDingbats-Reverse +%%+ font Times-Italic +%%+ font Symbol-Slanted +%%+ font FreeEuro +%%EndComments +%%BeginSetup + /ptmr8g ENC0 /Times-Roman RE + /ptmr8g /ptmr8g def + /zfzdrr /ZapfDingbats-Reverse def + /ptmri8g ENC0 /Times-Italic RE + /ptmri8g /ptmri8g def + /fsyro /Symbol-Slanted def + /zfeu /FreeEuro def +/fshow {exch findfont exch scalefont setfont show}bind def +%%EndSetup +%%Page: 1 1 +newpath -2 -4.125 moveto +38.60602 -4.125 lineto +38.60602 8.78003 lineto +-2 8.78003 lineto + closepath fill + 1 setgray +newpath -3 -3.125 moveto +37.60602 -3.125 lineto +37.60602 9.78003 lineto +-3 9.78003 lineto + closepath fill + 0 setgray +0 0 moveto +(\275) ptmr8g 10.00005 fshow +10 0 moveto +(A) ptmr8g 8.00009 fshow +18.276 0 moveto +(+) zfzdrr 10.00005 fshow +30.166 0 moveto +(a) ptmr8g 10.00005 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath -3 -3.125 moveto +37.60602 -3.125 lineto +37.60602 9.78003 lineto +-3 9.78003 lineto + closepath stroke +newpath 70.491 2.32751 moveto +70.491 8.37088 65.59187 13.27 59.54851 13.27 curveto +53.50514 13.27 48.60602 8.37088 48.60602 2.32751 curveto +48.60602 -3.71585 53.50514 -8.61497 59.54851 -8.61497 curveto +65.59187 -8.61497 70.491 -3.71585 70.491 2.32751 curveto closepath fill + 1 setgray +newpath 69.491 3.32751 moveto +69.491 9.37088 64.59187 14.27 58.54851 14.27 curveto +52.50514 14.27 47.60602 9.37088 47.60602 3.32751 curveto +47.60602 -2.71585 52.50514 -7.61497 58.54851 -7.61497 curveto +64.59187 -7.61497 69.491 -2.71585 69.491 3.32751 curveto closepath fill + 0 setgray +gsave [0.9397 0.34203 -0.34203 0.9397 53.5435 -2.70255 ] concat 0 0 moveto +(e) ptmri8g 10.00005 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 56.45497 2.82672 ] concat 0 0 moveto +(i) ptmri8g 6.99997 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 58.2902 3.4947 ] concat 0 0 moveto +(w) fsyro 6.99997 fshow grestore +gsave [0.9397 0.34203 -0.34203 0.9397 63.22362 5.29033 ] concat 0 0 moveto +(t) ptmri8g 6.99997 fshow grestore +newpath 69.491 3.32751 moveto +69.491 9.37088 64.59187 14.27 58.54851 14.27 curveto +52.50514 14.27 47.60602 9.37088 47.60602 3.32751 curveto +47.60602 -2.71585 52.50514 -7.61497 58.54851 -7.61497 curveto +64.59187 -7.61497 69.491 -2.71585 69.491 3.32751 curveto closepath stroke + 1 setlinecap +newpath 37.60602 3.32751 moveto +47.60602 3.32751 lineto stroke +6.09799 12.92004 moveto +(\244) ptmr8g 10.00005 fshow +13.59799 12.92004 moveto +(\243) ptmr8g 10.00005 fshow +21.09799 12.92004 moveto +(\004) zfeu 10.00005 fshow +10.203 -12.00502 moveto +(\204) ptmr8g 10.00005 fshow + [3 3 ] 0 setdash +newpath -5.25 -15.89502 moveto +72.491 -15.89502 lineto +72.491 21.70007 lineto +-5.25 21.70007 lineto + closepath stroke +showpage +%%EOF +%%EndDocument +end PEND F1 2.21(This \214gure w)72 683.4 R 2.21(as deri)-.11 F -.165 +(ve)-.275 G 4.96(df).165 G 2.21(rom a \214le)-4.96 F F4(grdemo.mp)4.959 +E F1 2.209(and included at this point by in)4.959 F -.22(vo)-.44 G 2.209 +(king the).22 F F4(.PSPIC)72 696.4 Q F1 +(macro \(omitting the height and width parameters to a)2.75 E -.22(vo) +-.22 G(id rescaling\).).22 E(The \214le)99.5 713.3 Q F4(grdemo.mp)2.75 E +F1(looks lik)2.75 E 2.75(et)-.11 G(his:)-2.75 E 0 Cg EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(-2-)281.587 49 Q/F1 9/Courier@0 SF(verbatimtex) +108 83 Q(.EQ)108 94 Q(delim $$)108 105 Q(.EN)108 116 Q(\\# etex)108 127 +Q(input boxes)108 149 Q(beginfig\(1\);)108 171 Q(pair shadowshift;)118.8 +182 Q(shadowshift = \(1, -1\) * bp;)118.8 193 Q +(def drawshadowed\(text t\) =)118.8 215 Q(forsuffixes $=t:)129.6 226 Q +(fill bpath$ shifted shadowshift;)140.4 237 Q(unfill bpath$;)140.4 248 Q +(drawboxed\($\);)140.4 259 Q(endfor)129.6 270 Q(enddef;)118.8 281 Q +(boxit.a\(btex \\[12] \\s8A\\s+2 \\[lh] a etex\);)118.8 303 Q +(circleit.b\(btex $e sup {i omega t}$ etex rotated 20\);)118.8 314 Q +(b.w - a.e = \(10bp, 0\);)118.8 336 Q(drawshadowed\(a, b\);)118.8 358 Q +(draw a.e .. b.w;)118.8 369 Q +(label.top\(btex \\[Cs] \\[Po] \\[Eu] etex, a.n\);)118.8 391 Q +(label.llft\(btex \\[Fn] etex, a.s\);)118.8 402 Q +(draw bbox currentpicture dashed evenly;)118.8 424 Q(endfig;)108 435 Q +(end)108 457 Q/F2 11/Times-Bold@0 SF(Changing GNU tr)72 489.5 Q +(off pipeline)-.198 E F0 .378(Note that, by def)99.5 506.4 R .378 +(ault, the typesetting commands in the)-.11 F/F3 11/Courier@0 SF(btex) +3.128 E F0 1.833(...)3.128 G F3(etex)1.295 E F0 .378(blocks in the abo) +3.128 F -.165(ve)-.165 G -.165(ex)72 519.4 S(ample are processed by).165 +E F3(eqn -Tps -d\\$\\$ | troff -Tps)108 538.9 Q F0 .411(If a dif)72 +558.4 R(ferent)-.275 E/F4 11/Times-Italic@0 SF(tr)3.161 E(of)-.495 E(f) +-.198 E F0 .41(pipeline must be used it can be speci\214ed via the)5.317 +F F3(TROFF)3.16 E F0(en)3.16 E .41(vironment v)-.44 F(ariable.)-.275 E +-.165(Fo)72 571.4 S(r).165 E F4(gr)2.75 E(of)-.495 E(f)-.198 E F0 2.75 +(,t)C(he follo)-2.75 E(wing is recommended:)-.275 E F3 +(TROFF='groff -teZ')108 590.9 Q F0 1.576(It adds)72 610.4 R F4(tbl)4.326 +E F0 1.576(to the pipeline in addition to)4.887 F F4(eqn)4.326 E F0 +4.326(,p)C 1.576(roducing output for)-4.326 F F4(gr)4.327 E(of)-.495 E +(f)-.198 E F0 2.787 -.605('s d)2.156 H(ef).605 E 1.577(ault `ps' de)-.11 +F(vice.)-.275 E .847(Note that you then ha)72 623.4 R 1.177 -.165(ve t) +-.22 H 3.597(os).165 G .847(pecify the left and right delimiters of) +-3.597 F F4(eqn)3.597 E F0 2.056 -.605('s i).264 H .846 +(n-line equations within).605 F +(the document \(which is good practice an)72 636.4 Q(yw)-.165 E(ay\).) +-.11 E .235(Macro de\214nitions and such can be added via the standard) +99.5 653.3 R F3(verbatimtex)2.986 E F0 1.833(...)2.986 G F3(etex)1.153 E +F0(mech-)2.986 E .556(anism that adds the gi)72 666.3 R -.165(ve)-.275 G +3.306(nm).165 G .556(aterial to the)-3.306 F F4(tr)3.306 E(of)-.495 E(f) +-.198 E F0 3.306(input. Such)5.462 F .556 +(material should not generate an)3.306 F 3.306(yo)-.165 G(ut-)-3.306 E +.118(put since this w)72 679.3 R .118(ould get mix)-.11 F .118 +(ed up with the ne)-.165 F(xt)-.165 E F3(btex)2.868 E F0 1.833(...)2.868 +G F3(etex)1.035 E F0 2.868(block. Note)2.868 F .118(the comment escape) +2.868 F(right before the \214rst)72 692.3 Q F3(etex)2.75 E F0 +(command in the abo)2.75 E .33 -.165(ve ex)-.165 H(ample to a).165 E +-.22(vo)-.22 G(id an empty line.).22 E 0 Cg EP +%%Trailer +end +%%EOF diff --git a/Master/texmf-dist/doc/metapost/base/source/lead.d b/Master/texmf-dist/doc/metapost/base/source/lead.d index 8e95355af1c..2d09412438e 100644 --- a/Master/texmf-dist/doc/metapost/base/source/lead.d +++ b/Master/texmf-dist/doc/metapost/base/source/lead.d @@ -21,4 +21,4 @@ 90 .070 First: National lead emissions in thousands of metric tons -Second: Average lead level in micrograms per cubic meter of air
\ No newline at end of file +Second: Average lead level in micrograms per cubic meter of air diff --git a/Master/texmf-dist/doc/metapost/base/source/manfig.mp b/Master/texmf-dist/doc/metapost/base/source/manfig.mp index 73b48ab9470..4616f090621 100644 --- a/Master/texmf-dist/doc/metapost/base/source/manfig.mp +++ b/Master/texmf-dist/doc/metapost/base/source/manfig.mp @@ -1,4 +1,3 @@ -% $Id: manfig.mp,v 1.4 2005/03/27 17:29:22 karl Exp $ % Figures for MetaPost manual, by John Hobby. Public domain. filenametemplate "%j-%c.mps"; @@ -946,4 +945,11 @@ path body; withpen currentpen scaled 4 withcolor .7white; endfig; +%%% Title page rule. +beginfig(60); + pickup pencircle scaled 1.1bp; + linecap := rounded; + draw origin--(4.38in,0); +endfig; + end diff --git a/Master/texmf-dist/doc/metapost/base/source/matmul.d b/Master/texmf-dist/doc/metapost/base/source/matmul.d index c0e781d4a51..6a0afe941ce 100644 --- a/Master/texmf-dist/doc/metapost/base/source/matmul.d +++ b/Master/texmf-dist/doc/metapost/base/source/matmul.d @@ -18,4 +18,4 @@ 160 3.04 240 9.95 320 22.17 -480 72.60
\ No newline at end of file +480 72.60 diff --git a/Master/texmf-dist/doc/metapost/base/source/mp.1 b/Master/texmf-dist/doc/metapost/base/source/mp.1 new file mode 100644 index 00000000000..76df137ca79 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/base/source/mp.1 @@ -0,0 +1,289 @@ +.\" MetaPost man page, by John Hobby. Public domain. +.TH MP 1 +.CT 1 writing_other +.SH NAME +mp, MetaPost \- system for drawing pictures +.SH SYNOPSIS +.B mp +[ +.B -I +] +[ +.B -T +] +[ +.I first-line +] +.SH DESCRIPTION +.I Mp +interprets the MetaPost language and produces +.I PostScript +pictures. The MetaPost language is similar to Knuth's +.I METAFONT +with additional features for including +.IR tex (1) +or +.IR troff (1) +commands and accessing features of PostScript not found in METAFONT. +The +.B -T +flag selects +.I troff +instead of +.IR tex . +.PP +An argument given on the command line +behaves as the first input line. +That can be either a (possibly truncated) file name +or a sequence MetaPost commands starting with +.L \e +and including an +.L input +command. Thus +.L mp figs +processes the file +.LR figs.mp . +The basename of +.L figs +becomes the +.IR jobname , +and is used in forming output file names. If no file is named, the +jobname becomes +.LR mpout . +The default +.L .mp +extension can be overridden by specifying an extension explicitly. +.PP +There is normally one output file for each picture generated, +and the output files are named +.IR jobname.nnn , +where +.I nnn +is a number passed to the +.L beginfig +macro. The output file name +can also be +.IB jobname .ps +if this number is negative. +.PP +The output files can be used as figures in a TeX document by including +.ce +.BI "\especial{psfile=" jobname.nnn } +in the TeX document. Alternatively, one can +.L \einput epsf.tex +and then use the macro +.BI "\eepsfbox{" jobname.nnn } +to produce a box of the appropriate size containing the figure. +.TP +.BI btex " TeX commands " etex +This causes +.I mp +to generate a MetaPost picture expression that corresponds to the +TeX commands. If the TeX commands generate +more than one line of text, it must be in a +.L \evbox +or a minipage environment. +.TP +.BI verbatimtex " TeX commands " etex +This is ignored by +.I mp +except that the TeX commands are passed on to TeX. When using LaTeX +instead of TeX the input file must start with a +.L verbatimtex +block that gives the +.L \edocumentstyle +and +.L "\ebegin{document}" +commands. +.PP +Since most TeX fonts have to be downloaded as bitmaps, the +.L btex +feature works best when the output of +.L mp +is to be included in a TeX document so that +.IR dvips (1) +can download the fonts. For self-contained PostScript output that can be +used directly or included in a +.I troff +document, start your MetaPost input file with the command +.L "prologues:=1" +and stick to standard PostScript fonts. TeX and MetaPost use the names in the +third column of the file +.LR /usr/lib/mp/trfonts.map . +.PP +MetaPost output can be included in a +.I troff +document via the +.L "-mpictures" +macro package. In this case +.I mp +should be invoked with the +.B -T +flag so that the commands between +.L btex +and +.L etex +or between +.L verbatimtex +and +.L etex +are interpreted as +.I troff +instead of TeX. (This automatically sets +.L prologues:=1 +). +.PP +Here is a list of the environment variables affect the behavior of +.IR mp : +.TF MPXCOMMAND +.TP +.B MPINPUTS +Search path for +.L \einput +files. +It should be colon-separated, +and start with dot. +Default: +.L .:/usr/lib/mp +.TP +.B MFINPUTS +Auxiliary search path for +.L \einput +files with +.L .mf +extensions. +.TP +.B TEXFONTS +Search path for font metric files. +.TP +.B MPXCOMMAND +The name of a shell script that converts embedded typesetting commands +to a form that +.I mp +understands. +Defaults: +.L /usr/lib/mp/bin/makempx +for +.I tex +and +.L /usr/lib/mp/bin/troffmpx +for +.I troff +.TP +.B TEX +The version of TeX to use when processing +.L btex +and +.L verbatimtex +commands. Default: +.L tex +.TP +.B TROFF +The +.I troff +pipeline for +.L btex +and +.L verbatimtex +commands. Default: +.L eqn -d\e$\e$ | troff +.TP +.B MPMEMS +Search path for +.L .mem +files. Default: +.L .:/usr/lib/mp +.TP +.B MPPOOL +Search path for strings. +Default: +.L .:/usr/lib/mp +.TP +.B MPEDITOR +A command for invoking an editor with +.L %s +in place of the file name and +.L %d +in place of the line number. +.TP +.B TEXVFONTS +Search path for virtual fonts. +.TP +.B MPTEXPRE +Name of a file that is prepended before running tex. +If this file exists, +.I mp +behaves as if the file were inside of a +.L verbatimtex +block at the beginning of each input file. Default: +.L mptexpre.tex +.PD +.PP +A +.L .mem +file is a binary file that permits fast loading of fonts and macro packages. +.I Mp +reads the default +.F plain.mem +unless another +.L .mem +file is specified at the start of the first line with an +.L & +just before it. There is also an +.F mfplain.mem +that simulates plain METAFONT so that +.I mp +can read +.L .mf +fonts. (Plain METAFONT is described in +.I The +.IR METAFONTbook ). +.PP +Experts can create +.L .mem +files be invoking +.I mp +with the +.B -I +switch and giving macro definitions followed by a +.L dump +command. +.PP +The MetaPost language is similar to METAFONT, but the manual +.I A User's Manual for MetaPost +assumes no knowledge of METAFONT. MetaPost does not have bitmap +output commands or METAFONT's online display mechanism. +.SH FILES +.TF /usr/lib/mp/trfonts.map +.TP +.F /usr/lib/mp/* +macros, +.L .mem +files, and tables for handling included +.I tex +and +.I troff +.TP +.F /usr/lib/mp/bin +Directory for programs that handle included +.I tex +and +.IR troff . +.F /usr/lib/mp/trfonts.map +table of corresponding font names for +.IR troff , +PostScript, and TeX +.TP +.F /usr/lib/mp/examples.mp +The source file for a few sample figures. +.IR troff . +.SH "SEE ALSO" +.IR tex (1), +.br +Donald E. Knuth, +.I The METAFONTbook, +Addison Wesley, 1986, +.br +John D. Hobby, +.I A User's Manual for MetaPost +CSTR 162. diff --git a/Master/texmf-dist/doc/metapost/base/source/mpgraph.bib b/Master/texmf-dist/doc/metapost/base/source/mpgraph.bib index a896103b0d1..27ef07de1ff 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpgraph.bib +++ b/Master/texmf-dist/doc/metapost/base/source/mpgraph.bib @@ -1,4 +1,3 @@ -% $Id: mpgraph.bib,v 1.2 2004/09/19 19:10:08 karl Exp $ % BibTeX entries for MetaPost doc, by John Hobby. Public domain. @string{jcompstatg = {Journal of Computational and Statistical Graphics}} diff --git a/Master/texmf-dist/doc/metapost/base/source/mpgraph.mp b/Master/texmf-dist/doc/metapost/base/source/mpgraph.mp index 71548107f48..03790065c73 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpgraph.mp +++ b/Master/texmf-dist/doc/metapost/base/source/mpgraph.mp @@ -1,4 +1,3 @@ -% $Id: mpgraph.mp,v 1.2 2004/09/19 19:10:08 karl Exp $ % Figures for MetaPost doc, by John Hobby. Public domain. input graph diff --git a/Master/texmf-dist/doc/metapost/base/source/mpgraph.tex b/Master/texmf-dist/doc/metapost/base/source/mpgraph.tex index 77c5d71c5a5..ea606e06e0f 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpgraph.tex +++ b/Master/texmf-dist/doc/metapost/base/source/mpgraph.tex @@ -1,12 +1,20 @@ -% $Id: mpgraph.tex,v 1.3 2005/03/22 00:16:53 karl Exp $ +% $Id: mpgraph.tex 444 2008-03-30 10:28:13Z stephanhennig $ % MetaPost graph doc, by John Hobby. License at end. +\listfiles +\RequirePackage{ifpdf} +\ifpdf \ifnum\pdftexversion<140 \else \pdfminorversion=5 \pdfobjcompresslevel=1% Use compressed object streams. \fi -\RequirePackage[resetfonts]{cmap} +\RequirePackage{cmap} +\fi \documentclass{article} % article is NOT the original style +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{textcomp} +\usepackage{mflogo} \usepackage{makeidx} \usepackage{fancyvrb} \usepackage{ctabbing} @@ -20,15 +28,6 @@ \newcommand\tdescr[1]{$\langle$\invisgap{\rm#1}\invisgap$\rangle$} \newcommand\Ignore[1]{} % For fooling delatex so spell will work -\newfont\psyvii{psyr at 7pt} -\newcommand\regmark{$^{\hbox{\psyvii\char'322}}$} % Registered trademark -\newcommand\logofn{\global\font\logofn=logo8 \logofn} -\newcommand\logo{\global\font\logo=logo10 \logo} -\newcommand\logosl{\global\font\logosl=logosl10 \logosl} -\newcommand\MF{{\ifdim \fontdimen6\font <9pt \def\logo{\logofn}\fi - \ifdim \fontdimen1\font >0pt \def\logo{\logosl}\fi - {\logo META}\-{\logo FONT}}} - \newcommand\mathcenter[1]{\vcenter{\hbox{#1}}} \author{John D. Hobby} @@ -64,6 +63,13 @@ in a stand-alone graph package.} citecolor=SpringGreen3 } \usepackage[all]{hypcap} +\ifpdf +\pdfmapfile{=cm2lm.map}% replace CM by LM in figures +\else +\DeclareGraphicsExtensions{.mps} +\DeclareGraphicsRule{mps}{eps}{*}{} +\usepackage{breakurl} +\fi \begin{document} @@ -111,7 +117,7 @@ The graph macros provide the following functionality: \end{enumerate} In addition to these items, the user also has access to all the features described in the MetaPost user's manual~\cite{ho:mp3}. -These include access to almost all the features of PostScript\regmark, +These include access to almost all the features of PostScript, ability to use and manipulate typeset text, ability to solve linear equations, and data types for points, curves, pictures, and coordinate transformations. diff --git a/Master/texmf-dist/doc/metapost/base/source/mpintro.bib b/Master/texmf-dist/doc/metapost/base/source/mpintro.bib index 0df815eac66..4b1c745c88e 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpintro.bib +++ b/Master/texmf-dist/doc/metapost/base/source/mpintro.bib @@ -1,4 +1,3 @@ -% $Id: mpintro.bib,v 1.2 2004/09/19 19:10:08 karl Exp $ % BibTeX entries for MetaPost doc, by John Hobby. Public domain. @techreport{CSTR116, diff --git a/Master/texmf-dist/doc/metapost/base/source/mpintro.tex b/Master/texmf-dist/doc/metapost/base/source/mpintro.tex index a95d7d1dfb8..c7857463588 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpintro.tex +++ b/Master/texmf-dist/doc/metapost/base/source/mpintro.tex @@ -1,7 +1,13 @@ -% $Id: mpintro.tex,v 1.2 2004/09/19 19:10:08 karl Exp $ +% $Id: mpintro.tex 340 2008-02-29 15:46:17Z taco $ % MetaPost doc, by John Hobby. \documentclass{article} \usepackage{graphicx} +\usepackage{ifpdf} +\ifpdf +\else +\DeclareGraphicsExtensions{.mps} +\DeclareGraphicsRule{mps}{eps}{*}{} +\fi \author{John D. Hobby} \title{The MetaPost System} diff --git a/Master/texmf-dist/doc/metapost/base/source/mpman-optab.tex b/Master/texmf-dist/doc/metapost/base/source/mpman-optab.tex index de9f68cd905..2ec0d48e417 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpman-optab.tex +++ b/Master/texmf-dist/doc/metapost/base/source/mpman-optab.tex @@ -20,126 +20,125 @@ Name& \multicolumn3{c|}{Argument/result types}& \makebox[.2in][c]{Page}& Expl \hline
\hline
\endhead
-\&& string\par path& string\par path & string\par path& \pageref{Damp}& Concatenation---works for paths $l\hbox{\tt\&}r$ if $r$ starts exactly where the $l$ ends\\\hline
-*& numeric& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Multiplication\\\hline
-*& (cmyk)color\par numeric\par pair& numeric& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Multiplication\\\hline
-**& numeric& numeric& numeric& \pageref{Dpow}& Exponentiation\\\hline
-+& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dadd}& Addition\\\hline
-++& numeric& numeric& numeric& \pageref{Dpyadd}& Pythagorean addition $\sqrt{l^2+r^2}$\\\hline
-+-+& numeric& numeric& numeric& \pageref{Dpysub}& Pythagorean subtraction $\sqrt{l^2-r^2}$\\\hline
--& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dadd}& Subtraction\\\hline
--& --& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dneg}& Negation\\\hline
-/& (cmyk)color\par numeric\par pair& numeric& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Division\\\hline
-< = >\par <= >=\par <>& string\par numeric\par pair\par (cmyk)color\par transform& string\par numeric\par pair\par (cmyk)color\par transform& boolean& \pageref{Dcmpar}& Comparison operators\\\hline
-\pl abs& --& numeric\par pair& numeric& \pageref{Dabs}& Absolute value\par Euclidean length $\sqrt{(\mbox{\ttfamily xpart\ } r)^2+(\mbox{\ttfamily ypart\ } r)^2}$\\\hline
-and& boolean& boolean& boolean& \pageref{Dand}& Logical and\\\hline
-angle& --& pair& numeric& \pageref{Dangle}& 2$-$argument arctangent (in degrees)\\\hline
-arclength& --& path& numeric& \pageref{Darclng}& Arc length of a path\\\hline
-arctime of& numeric& path& numeric& \pageref{Darctim}& Time on a path where arc length from the start reaches a given value\\\hline
+\&\index{&?\texttt{\&}}& string\par path& string\par path & string\par path& \pageref{Damp}& Concatenation---works for paths $l\hbox{\tt\&}r$ if $r$ starts exactly where the $l$ ends\\\hline
+*\index{*?\texttt{*}}& numeric& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Multiplication\\\hline
+*\index{*?\texttt{*}}& (cmyk)color\par numeric\par pair& numeric& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Multiplication\\\hline
+**\index{**?\texttt{**}}& numeric& numeric& numeric& \pageref{Dpow}& Exponentiation\\\hline
++\index{+?\texttt{+}}& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dadd}& Addition\\\hline
+++\index{++?\texttt{++}}& numeric& numeric& numeric& \pageref{Dpyadd}& Pythagorean addition $\sqrt{l^2+r^2}$\\\hline
++-+\index{+-+?\texttt{+-+}}& numeric& numeric& numeric& \pageref{Dpysub}& Pythagorean subtraction $\sqrt{l^2-r^2}$\\\hline
+-\index{-?\texttt{-}}& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dadd}& Subtraction\\\hline
+-\index{-?\texttt{-}}& --& (cmyk)color\par numeric\par pair& (cmyk)color\par numeric\par pair& \pageref{Dneg}& Negation\\\hline
+/\index{/?\texttt{/}}& (cmyk)color\par numeric\par pair& numeric& (cmyk)color\par numeric\par pair& \pageref{Dmldiv}& Division\\\hline
+<\index{<?\texttt{<}} =\index{=?\texttt{=}} >\index{>?\texttt{>}}\par <=\index{<=?\texttt{<=}} >=\index{=>?\texttt{=>}}\par <>\index{<>?\texttt{<>}}& string\par numeric\par pair\par (cmyk)color\par transform& string\par numeric\par pair\par (cmyk)color\par transform& boolean& \pageref{Dcmpar}& Comparison operators\\\hline
+\pl abs\index{abs?\texttt{abs}}& --& numeric\par pair& numeric& \pageref{Dabs}& Absolute value\par Euclidean length $\sqrt{(\mbox{\ttfamily xpart\ } r)^2+(\mbox{\ttfamily ypart\ } r)^2}$\\\hline
+and\index{and?\texttt{and}}& boolean& boolean& boolean& \pageref{Dand}& Logical and\\\hline
+angle\index{angle?\texttt{angle}}& --& pair& numeric& \pageref{Dangle}& 2$-$argument arctangent (in degrees)\\\hline
+arclength\index{arclength?\texttt{arclength}}& --& path& numeric& \pageref{Darclng}& Arc length of a path\\\hline
+arctime of\index{arctime of?\texttt{arctime of}}& numeric& path& numeric& \pageref{Darctim}& Time on a path where arc length from the start reaches a given value\\\hline
ASCII\index{ASCII?\texttt{ASCII}}& --& string& numeric& --& ASCII value of first character in string\\\hline
-\pl bbox& --& picture\par path\par pen& path& \pageref{Dbbox}& A rectangular path for the bounding box\\\hline
-blackpart& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the fourth component\\\hline
-bluepart& --& color& numeric& \pageref{Drgbprt}& Extract the third component\\\hline
-boolean& --& any& boolean& \pageref{Dboolop}& Is the expression of type boolean?\\\hline
-\pl bot& --& numeric\par pair& numeric\par pair& \pageref{Dbot}& Bottom of current pen when centered at the given coordinate(s)\\\hline
-bounded& --& any& boolean& \pageref{Dbounded}& Is argument a picture with a bounding box?\\\hline
-\pl ceiling& --& numeric& numeric& \pageref{Dceil}& Least integer greater than or equal to\\\hline
-\pl center& --& picture\par path\par pen& pair& \pageref{Dcenter}& Center of the bounding box\\\hline
-char& --& numeric& string& \pageref{Dchar}& Character with a given ASCII code\\\hline
-clipped& --& any& boolean& \pageref{Dclipped}& Is argument a clipped picture?\\\hline
-cmykcolor& --& any& boolean& \pageref{Dccolrop}& Is the expression of type cmykcolor?\\\hline
-colormodel& --& image object& numeric& --& What is the color model of the image object?\\\hline
-color& --& any& boolean& \pageref{Dcolrop}& Is the expression of type color?\\\hline
-cosd& --& numeric& numeric& \pageref{Dcosd}& Cosine of angle in degrees\\\hline
-\pl cutafter& path& path& path& \pageref{Dcuta}& Left argument with part after the intersection dropped\\\hline
-\pl cutbefore& path& path& path& \pageref{Dcutb}& Left argument with part before the intersection dropped\\\hline
-cyanpart& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the first component\\\hline
-cycle& --& path& boolean& \pageref{Dcycop}& Determines whether a path is cyclic\\\hline
-dashpart& --& picture& picture& \pageref{Ddashpart}& Dash pattern of a path in a stroked picture\\\hline
-decimal& --& numeric& string& \pageref{Ddecop}& The decimal representation\\\hline
-\pl dir& --& numeric& pair& \pageref{Ddirop}& $(\cos\theta,\sin\theta)$ given $\theta$ in degrees\\\hline
-\pl direction of& numeric& path& pair& \pageref{Ddirof}& The direction of a path at a given `time'\\\hline
-\pl direction\-point of& pair& path& numeric& \pageref{Ddpntof}& Point where a path has a given direction\\\hline
-direction\-time of& pair& path& numeric& \pageref{Ddtimof}& `Time' when a path has a given direction\\\hline
+\pl bbox\index{bbox?\texttt{bbox}}& --& picture\par path\par pen& path& \pageref{Dbbox}& A rectangular path for the bounding box\\\hline
+blackpart\index{blackpart?\texttt{blackpart}}& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the fourth component\\\hline
+bluepart\index{bluepart?\texttt{bluepart}}& --& color& numeric& \pageref{Drgbprt}& Extract the third component\\\hline
+boolean\index{boolean?\texttt{boolean}}& --& any& boolean& \pageref{Dboolop}& Is the expression of type boolean?\\\hline
+\pl bot\index{bot?\texttt{bot}}& --& numeric\par pair& numeric\par pair& \pageref{Dbot}& Bottom of current pen when centered at the given coordinate(s)\\\hline
+bounded\index{bounded?\texttt{bounded}}& --& any& boolean& \pageref{Dbounded}& Is argument a picture with a bounding box?\\\hline
+\pl ceiling\index{ceiling?\texttt{ceiling}}& --& numeric& numeric& \pageref{Dceil}& Least integer greater than or equal to\\\hline
+\pl center\index{center?\texttt{center}}& --& picture\par path\par pen& pair& \pageref{Dcenter}& Center of the bounding box\\\hline
+char\index{char?\texttt{char}}& --& numeric& string& \pageref{Dchar}& Character with a given ASCII code\\\hline
+clipped\index{clipped?\texttt{clipped}}& --& any& boolean& \pageref{Dclipped}& Is argument a clipped picture?\\\hline
+cmykcolor\index{cmykcolor?\texttt{cmykcolor}}& --& any& boolean& \pageref{Dccolrop}& Is the expression of type cmykcolor?\\\hline
+colormodel\index{colormodel?\texttt{colormodel}}& --& image object& numeric& \pageref{Dcolormodel}& What is the color model of the image object?\\\hline
+color\index{color?\texttt{color}}& --& any& boolean& \pageref{Dcolrop}& Is the expression of type color?\\\hline
+cosd\index{cosd?\texttt{cosd}}& --& numeric& numeric& \pageref{Dcosd}& Cosine of angle in degrees\\\hline
+\pl cutafter\index{cutafter?\texttt{cutafter}}& path& path& path& \pageref{Dcuta}& Left argument with part after the intersection dropped\\\hline
+\pl cutbefore\index{cutbefore?\texttt{cutbefore}}& path& path& path& \pageref{Dcutb}& Left argument with part before the intersection dropped\\\hline
+cyanpart\index{cyanpart?\texttt{cyanpart}}& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the first component\\\hline
+cycle\index{cycle?\texttt{cycle}}& --& path& boolean& \pageref{Dcycop}& Determines whether a path is cyclic\\\hline
+dashpart\index{dashpart?\texttt{dashpart}}& --& picture& picture& \pageref{Ddashpart}& Dash pattern of a path in a stroked picture\\\hline
+decimal\index{decimal?\texttt{decimal}}& --& numeric& string& \pageref{Ddecop}& The decimal representation\\\hline
+\pl dir\index{dir?\texttt{dir}}& --& numeric& pair& \pageref{Ddirop}& $(\cos\theta,\sin\theta)$ given $\theta$ in degrees\\\hline
+\pl direction of\index{direction of?\texttt{direction of}}& numeric& path& pair& \pageref{Ddirof}& The direction of a path at a given `time'\\\hline
+\pl direction\-point of\index{directionpoint of?\texttt{directionpoint of}}& pair& path& numeric& \pageref{Ddpntof}& Point where a path has a given direction\\\hline
+direction\-time of\index{directiontime of?\texttt{directiontime of}}& pair& path& numeric& \pageref{Ddtimof}& `Time' when a path has a given direction\\\hline
\pl div\index{div?\texttt{div}}& numeric& numeric& numeric& --& Integer division $\lfloor l/r\rfloor$\\\hline
-\pl dotprod& pair& pair& numeric& \pageref{Ddprod}& vector dot product\\\hline
-filled& --& any& boolean& \pageref{Dfilled}& Is argument a filled outline?\\\hline
-floor& --& numeric& numeric& \pageref{Dfloor}& Greatest integer less than or equal to\\\hline
-fontpart& --& picture& string& \pageref{Dfontpart}& Font of a textual picture component\\\hline
-fontsize& --& string& numeric& \pageref{Dfntsiz}& The point size of a font\\\hline
-greenpart& --& color& numeric& \pageref{Drgbprt}& Extract the second component\\\hline
-greypart& --& numeric& numeric& --& Extract the first (only) component\\\hline
+\pl dotprod\index{dotprod?\texttt{dotprod}}& pair& pair& numeric& \pageref{Ddprod}& vector dot product\\\hline
+filled\index{filled?\texttt{filled}}& --& any& boolean& \pageref{Dfilled}& Is argument a filled outline?\\\hline
+floor\index{floor?\texttt{floor}}& --& numeric& numeric& \pageref{Dfloor}& Greatest integer less than or equal to\\\hline
+fontpart\index{fontpart?\texttt{fontpart}}& --& picture& string& \pageref{Dfontpart}& Font of a textual picture component\\\hline
+fontsize\index{fontsize?\texttt{fontsize}}& --& string& numeric& \pageref{Dfntsiz}& The point size of a font\\\hline
+greenpart\index{greenpart?\texttt{greenpart}}& --& color& numeric& \pageref{Drgbprt}& Extract the second component\\\hline
+greypart\index{greypart?\texttt{greypart}}& --& numeric& numeric& \pageref{Dgreyprt}& Extract the first (only) component\\\hline
hex\index{hex?\texttt{hex}}& --& string& numeric& --& Interpret as a hexadecimal number\\\hline
-infont& string& string& picture& \pageref{Sinfont}& Typeset string in given font\\\hline
-\pl intersec\-tionpoint& path& path& pair& \pageref{Disecpt}& An intersection point\\\hline
-intersec\-tiontimes& path& path& pair& \pageref{Disectt}& Times ($t_l,t_r)$ on paths $l$ and $r$ when the paths intersect\\\hline
-\pl inverse& --& transform& transform& \pageref{Dinv}& Invert a transformation\\\hline
-known& --& any& boolean& \pageref{Dknown}& Does argument have a known value?\\\hline
-length& --& path\par string\par picture& numeric& \pageref{Dlength}\par \pageref{DlengthString}\par \pageref{DlengthPicture}& Number of components (arcs, characters, strokes, \ldots) in the argument\\\hline
-\pl lft& --& numeric\par pair& numeric\par pair& \pageref{Dlft}& Left side of current pen when its center is at the given coordinate(s)\\\hline
-llcorner& --& picture\par path\par pen& pair& \pageref{Dcornop}& Lower-left corner of bounding box\\\hline
-lrcorner& --& picture\par path\par pen& pair& \pageref{Dcornop}& Lower-right corner of bounding box\\\hline
-magentapart& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the second component\\\hline
-makepath& --& pen& path& \pageref{Dmkpath}& Cyclic path bounding the pen shape\\\hline
-makepen& --& path& pen& \pageref{Dmkpen}& A polygonal pen made from the convex hull of the path knots\\\hline
+infont\index{infont?\texttt{infont}}& string& string& picture& \pageref{Sinfont}& Typeset string in given font\\\hline
+\pl intersec\-tionpoint\index{intersectionpoint?\texttt{intersectionpoint}}& path& path& pair& \pageref{Disecpt}& An intersection point\\\hline
+intersec\-tiontimes\index{intersectiontimes?\texttt{intersectiontimes}}& path& path& pair& \pageref{Disectt}& Times ($t_l,t_r)$ on paths $l$ and $r$ when the paths intersect\\\hline
+\pl inverse\index{inverse?\texttt{inverse}}& --& transform& transform& \pageref{Dinv}& Invert a transformation\\\hline
+known\index{known?\texttt{known}}& --& any& boolean& \pageref{Dknown}& Does argument have a known value?\\\hline
+length\index{length?\texttt{length}}& --& path\par string\par picture& numeric& \pageref{Dlength}\par \pageref{DlengthString}\par \pageref{DlengthPicture}& Number of components (arcs, characters, strokes, \ldots) in the argument\\\hline
+\pl lft\index{lft?\texttt{lft}}& --& numeric\par pair& numeric\par pair& \pageref{Dlft}& Left side of current pen when its center is at the given coordinate(s)\\\hline
+llcorner\index{llcorner?\texttt{llcorner}}& --& picture\par path\par pen& pair& \pageref{Dcornop}& Lower-left corner of bounding box\\\hline
+lrcorner\index{lrcorner?\texttt{lrcorner}}& --& picture\par path\par pen& pair& \pageref{Dcornop}& Lower-right corner of bounding box\\\hline
+magentapart\index{magentapart?\texttt{magentapart}}& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the second component\\\hline
+makepath\index{makepath?\texttt{makepath}}& --& pen& path& \pageref{Dmkpath}& Cyclic path bounding the pen shape\\\hline
+makepen\index{makepen?\texttt{makepen}}& --& path& pen& \pageref{Dmkpen}& A polygonal pen made from the convex hull of the path knots\\\hline
mexp\index{mexp?\texttt{mexp}}& --& numeric& numeric& --& The function $\exp(x/256)$\\\hline
mlog\index{mlog?\texttt{mlog}}& --& numeric& numeric& --& The function $256\ln(x)$\\\hline
\pl mod\index{mod?\texttt{mod}}& --& numeric& numeric& --& The remainder function $l-r\lfloor l/r\rfloor$\\\hline
normal\-deviate\index{normaldeviate?\texttt{normaldeviate}}& --& --& numeric& --& Choose a random number with mean~0 and standard deviation~1\\\hline
-not& --& boolean& boolean& \pageref{Dnot}& Logical negation\\\hline
-numeric& --& any& boolean& \pageref{Dnumop}& Is the expression of type numeric?\\\hline
+not\index{not?\texttt{not}}& --& boolean& boolean& \pageref{Dnot}& Logical negation\\\hline
+numeric\index{numeric?\texttt{numeric}}& --& any& boolean& \pageref{Dnumop}& Is the expression of type numeric?\\\hline
oct\index{oct?\texttt{oct}}& --& string& numeric& --& Interpret string as octal number\\\hline
odd\index{odd?\texttt{odd}}& --& numeric& boolean& --& Is the closest integer odd or even?\\\hline
-or& boolean& boolean& boolean& \pageref{Dor}& Logical inclusive or\\\hline
-pair& --& any& boolean& \pageref{Dpairop}& Is the expression of type pair?\\\hline
-path& --& any& boolean& \pageref{Dpathop}& Is the expression of type path?\\\hline
-pathpart& --& picture& path& \pageref{Dpathpart}& Path of a stroked picture component\\\hline
-pen& --& any& boolean& \pageref{Dpenop}& Is the expression of type pen?\\\hline
-penoffset of\index{penoffset?\texttt{penoffset}}& pair& pen& pair& --& Point on the pen furthest to the right of the given direction\\\hline
-penpart& --& picture& pen& \pageref{Dpenpart}& Pen of a stroked picture component\\\hline
-picture& --& any& boolean& \pageref{Dpictop}& Is the expression of type picture?\\\hline
-point of& numeric& path& pair& \pageref{Dpntof}& Point on a path given a time value\\\hline
+or\index{or?\texttt{or}}& boolean& boolean& boolean& \pageref{Dor}& Logical inclusive or\\\hline
+pair\index{pair?\texttt{pair}}& --& any& boolean& \pageref{Dpairop}& Is the expression of type pair?\\\hline
+path\index{path?\texttt{path}}& --& any& boolean& \pageref{Dpathop}& Is the expression of type path?\\\hline
+pathpart\index{pathpart?\texttt{pathpart}}& --& picture& path& \pageref{Dpathpart}& Path of a stroked picture component\\\hline
+pen\index{pen?\texttt{pen}}& --& any& boolean& \pageref{Dpenop}& Is the expression of type pen?\\\hline
+penoffset of\index{penoffset of?\texttt{penoffset of}}& pair& pen& pair& --& Point on the pen furthest to the right of the given direction\\\hline
+penpart\index{penpart?\texttt{penpart}}& --& picture& pen& \pageref{Dpenpart}& Pen of a stroked picture component\\\hline
+picture\index{picture?\texttt{picture}}& --& any& boolean& \pageref{Dpictop}& Is the expression of type picture?\\\hline
+point of\index{point of?\texttt{point of}}& numeric& path& pair& \pageref{Dpntof}& Point on a path given a time value\\\hline
postcontrol of\index{postcontrol?\texttt{postcontrol}}& numeric& path& pair& --& First B\'ezier control point on path segment starting at the given time\\\hline
precontrol of\index{precontrol?\texttt{precontrol}}& numeric& path& pair& --& Last B\'ezier control point on path segment ending at the given time\\\hline
-readfrom& --& string& string& \pageref{Dreadfrom}& Read a line from file\\\hline
-redpart& --& color& numeric& \pageref{Drgbprt}& Extract the first component\\\hline
-reverse& --& path& path& \pageref{Drevrse}& `time'-reversed path, beginning swapped with ending\\\hline
-rgbcolor& --& any& boolean& \pageref{Drcolrop}& Is the expression of type color?\\\hline
-rotated& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Rotate counterclockwise a given number of degrees\\\hline
-\pl round& --& numeric\par pair& numeric\par pair& \pageref{Dround}& round each component to the nearest integer\\\hline
-\pl rt& --& numeric\par pair& numeric\par pair& \pageref{Drt}& Right side of current pen when centered at given coordinate(s)\\\hline
-scaled& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all coordinates by the given amount\\\hline
-scantokens& --& string& token sequence& \pageref{Dscantokens}& Converts a string to a token or token sequence. Provides string to numeric conversion, etc.\\\hline
-shifted& picture\par path\par pair\par pen\par transform& pair& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Add the given shift amount to each pair of coordinates\\\hline
-sind& --& numeric& numeric& \pageref{Dsind}& Sine of an angle in degrees\\\hline
-slanted& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Apply the slanting transformation that maps $(x,y)$ into $(x+sy,y)$, where~$s$ is the numeric argument\\\hline
-sqrt& --& numeric& numeric& \pageref{Dsqrt}& Square root\\\hline
-str& --& suffix& string& \pageref{Dstr}& String representation for a suffix\\\hline
-string& --& any& boolean& \pageref{Dstrgop}& Is the expression of type string?\\\hline
-stroked& --& any& boolean& \pageref{Dstroked}& Is argument a stroked line?\\\hline
-subpath of& pair& path& path& \pageref{Dsubpth}& Portion of a path for given range of time values\\\hline
-substring of& pair& string& string& \pageref{Dsubstr}& Substring bounded by given indices\\\hline
-textpart& --& picture& string& \pageref{Dtextpart}& Text of a textual picture component\\\hline
-textual& --& any& boolean& \pageref{Dtextual}& Is argument typeset text?\\\hline
-\pl top& --& numeric\par pair& numeric\par pair& \pageref{Dtop}& Top of current pen when centered at the given coordinate(s)\\\hline
-transform& --& any& boolean& \pageref{Dtrnfop}& Is the argument of type transform?\\\hline
-transformed& picture\par path\par pair\par pen\par transform& transform& picture\par path\par pair\par pen\par transform& \pageref{Dtrfrmd}& Apply the given transform to all coordinates\\\hline
-ulcorner& --& picture\par path\par pen& pair& \pageref{Dcornop}& Upper-left corner of bounding box\\\hline
+readfrom\index{readfrom?\texttt{readfrom}}& --& string& string& \pageref{Dreadfrom}& Read a line from file\\\hline
+redpart\index{redpart?\texttt{redpart}}& --& color& numeric& \pageref{Drgbprt}& Extract the first component\\\hline
+reverse\index{reverse?\texttt{reverse}}& --& path& path& \pageref{Drevrse}& `time'-reversed path, beginning swapped with ending\\\hline
+rgbcolor\index{rgbcolor?\texttt{rgbcolor}}& --& any& boolean& \pageref{Drcolrop}& Is the expression of type color?\\\hline
+rotated\index{rotated?\texttt{rotated}}& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Rotate counterclockwise a given number of degrees\\\hline
+\pl round\index{round?\texttt{round}}& --& numeric\par pair& numeric\par pair& \pageref{Dround}& round each component to the nearest integer\\\hline
+\pl rt\index{rt?\texttt{rt}}& --& numeric\par pair& numeric\par pair& \pageref{Drt}& Right side of current pen when centered at given coordinate(s)\\\hline
+scaled\index{scaled?\texttt{scaled}}& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all coordinates by the given amount\\\hline
+scantokens\index{scantokens?\texttt{scantokens}}& --& string& token sequence& \pageref{Dscantokens}& Converts a string to a token or token sequence. Provides string to numeric conversion, etc.\\\hline
+shifted\index{shifted?\texttt{shifted}}& picture\par path\par pair\par pen\par transform& pair& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Add the given shift amount to each pair of coordinates\\\hline
+sind\index{sind?\texttt{sind}}& --& numeric& numeric& \pageref{Dsind}& Sine of an angle in degrees\\\hline
+slanted\index{slanted?\texttt{slanted}}& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Apply the slanting transformation that maps $(x,y)$ into $(x+sy,y)$, where~$s$ is the numeric argument\\\hline
+sqrt\index{sqrt?\texttt{sqrt}}& --& numeric& numeric& \pageref{Dsqrt}& Square root\\\hline
+str\index{str?\texttt{str}}& --& suffix& string& \pageref{Dstr}& String representation for a suffix\\\hline
+string\index{string?\texttt{string}}& --& any& boolean& \pageref{Dstrgop}& Is the expression of type string?\\\hline
+stroked\index{stroked?\texttt{stroked}}& --& any& boolean& \pageref{Dstroked}& Is argument a stroked line?\\\hline
+subpath of\index{subpath?\texttt{subpath}}& pair& path& path& \pageref{Dsubpth}& Portion of a path for given range of time values\\\hline
+substring of\index{substring
+of?\texttt{substring of}}& pair& string& string& \pageref{Dsubstr}& Substring bounded by given indices\\\hline
+textpart\index{textpart?\texttt{textpart}}& --& picture& string& \pageref{Dtextpart}& Text of a textual picture component\\\hline
+textual\index{textual?\texttt{textual}}& --& any& boolean& \pageref{Dtextual}& Is argument typeset text?\\\hline
+\pl top\index{top?\texttt{top}}& --& numeric\par pair& numeric\par pair& \pageref{Dtop}& Top of current pen when centered at the given coordinate(s)\\\hline
+transform\index{transform?\texttt{transform}}& --& any& boolean& \pageref{Dtrnfop}& Is the argument of type transform?\\\hline
+transformed\index{transformed?\texttt{transformed}}& picture\par path\par pair\par pen\par transform& transform& picture\par path\par pair\par pen\par transform& \pageref{Dtrfrmd}& Apply the given transform to all coordinates\\\hline
+ulcorner\index{ulcorner?\texttt{ulcorner}}& --& picture\par path\par pen& pair& \pageref{Dcornop}& Upper-left corner of bounding box\\\hline
uniform\-deviate\index{uniformdeviate?\texttt{uniformdeviate}}& --& numeric& numeric& --& Random number between zero and the value of the argument\\\hline
-\pl unitvector& --& pair& pair& \pageref{Duvec}& Rescale a vector so its length is~1\\\hline
-unknown& --& any& boolean& \pageref{Dunknwn}& Is the value unknown?\\\hline
-urcorner& --& picture\par path\par pen& pair& \pageref{Dcornop}& Upper-right corner of bounding box\\\hline
-\pl whatever& --& --& numeric& \pageref{Dwhatev}& Create a new anonymous unknown\\\hline
-withpost\-script& --& string& ---& \pageref{Dwithpost}& End raw PostScript code\\\hline
-withpre\-script& --& string& ---& \pageref{Dwithpre}& Begin raw PostScript code\\\hline
-xpart& --& pair\par transform& number& \pageref{Dxprt}& $x$ or $t_x$ component\\\hline
-xscaled& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all $x$ coordinates by the given amount\\\hline
-xxpart& --& transform& number& \pageref{Dtrprt}& $t_{xx}$ entry in transformation matrix\\\hline
-xypart& --& transform& number& \pageref{Dtrprt}& $t_{xy}$ entry in transformation matrix\\\hline
-yellowpart& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the third component\\\hline
-ypart& --& pair\par transform& number& \pageref{Dyprt}& $y$ or $t_y$ component\\\hline
-yscaled& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all $y$ coordinates by the given amount\\\hline
-yxpart& --& transform& number& \pageref{Dtrprt}& $t_{yx}$ entry in transformation matrix\\\hline
-yypart& --& transform& number& \pageref{Dtrprt}& $t_{yy}$ entry in transformation matrix\\\hline
-zscaled & picture\par path\par pair\par pen\par transform& pair& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Rotate and scale all coordinates so that $(1,0)$ is mapped into the given pair; i.e., do complex multiplication.\\\hline
+\pl unitvector\index{unitvector?\texttt{unitvector}}& --& pair& pair& \pageref{Duvec}& Rescale a vector so its length is~1\\\hline
+unknown\index{unknown?\texttt{unknown}}& --& any& boolean& \pageref{Dunknwn}& Is the value unknown?\\\hline
+urcorner\index{urcorner?\texttt{urcorner}}& --& picture\par path\par pen& pair& \pageref{Dcornop}& Upper-right corner of bounding box\\\hline
+\pl whatever\index{whatever?\texttt{whatever}}& --& --& numeric& \pageref{Dwhatev}& Create a new anonymous unknown\\\hline
+xpart\index{xpart?\texttt{xpart}}& --& pair\par transform& number& \pageref{Dxprt}& $x$ or $t_x$ component\\\hline
+xscaled\index{xscaled?\texttt{xscaled}}& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all $x$ coordinates by the given amount\\\hline
+xxpart\index{xxpart?\texttt{xxpart}}& --& transform& number& \pageref{Dtrprt}& $t_{xx}$ entry in transformation matrix\\\hline
+xypart\index{xypart?\texttt{xypart}}& --& transform& number& \pageref{Dtrprt}& $t_{xy}$ entry in transformation matrix\\\hline
+yellowpart\index{yellowpart?\texttt{yellowpart}}& --& cmykcolor& numeric& \pageref{Dcmykprt}& Extract the third component\\\hline
+ypart\index{ypart?\texttt{ypart}}& --& pair\par transform& number& \pageref{Dyprt}& $y$ or $t_y$ component\\\hline
+yscaled\index{yscaled?\texttt{yscaled}}& picture\par path\par pair\par pen\par transform& numeric& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Scale all $y$ coordinates by the given amount\\\hline
+yxpart\index{yxpart?\texttt{yxpart}}& --& transform& number& \pageref{Dtrprt}& $t_{yx}$ entry in transformation matrix\\\hline
+yypart\index{yypart?\texttt{yypart}}& --& transform& number& \pageref{Dtrprt}& $t_{yy}$ entry in transformation matrix\\\hline
+zscaled\index{zscaled?\texttt{zscaled}}& picture\par path\par pair\par pen\par transform& pair& picture\par path\par pair\par pen\par transform& \pageref{Dtranop}& Rotate and scale all coordinates so that $(1,0)$ is mapped into the given pair; i.e., do complex multiplication.\\\hline
\end{longtable}
diff --git a/Master/texmf-dist/doc/metapost/base/source/mpman.bib b/Master/texmf-dist/doc/metapost/base/source/mpman.bib index 878737006de..da97f53f3f0 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpman.bib +++ b/Master/texmf-dist/doc/metapost/base/source/mpman.bib @@ -1,4 +1,3 @@ -% $Id: mpman.bib,v 1.2 2004/09/19 19:10:08 karl Exp $ % BibTeX entries for MetaPost doc, by John Hobby. Public domain. @string{dcg = "Discrete and Computational Geometry"} diff --git a/Master/texmf-dist/doc/metapost/base/source/mpman.ist b/Master/texmf-dist/doc/metapost/base/source/mpman.ist index 946af2429cb..9238679ce08 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpman.ist +++ b/Master/texmf-dist/doc/metapost/base/source/mpman.ist @@ -1,4 +1,3 @@ -% $Id: mpman.ist,v 1.2 2004/09/19 19:10:08 karl Exp $ % MakeIndex style file for MetaPost doc, by John Hobby. Public domain. % @ is a valid character in some entries diff --git a/Master/texmf-dist/doc/metapost/base/source/mpman.tex b/Master/texmf-dist/doc/metapost/base/source/mpman.tex index 8a1ce606dfd..c62e95f1a05 100644 --- a/Master/texmf-dist/doc/metapost/base/source/mpman.tex +++ b/Master/texmf-dist/doc/metapost/base/source/mpman.tex @@ -1,13 +1,23 @@ -% $Id: mpman.tex,v 1.26 2005/04/13 12:57:28 karl Exp $ +% $Id: mpman.tex 458 2008-04-03 21:56:20Z stephanhennig $ % MetaPost manual, by John Hobby. License at end. +\listfiles +\RequirePackage{ifpdf} +\ifpdf \ifnum\pdftexversion<140 \else \pdfminorversion=5 \pdfobjcompresslevel=1% Use compressed object streams. \fi -\RequirePackage[resetfonts]{cmap} +\RequirePackage{cmap} +\fi \documentclass{article} % article is NOT the original style -% +\usepackage[nofancy]{svninfo}% Access VCS information. +\svnInfo $Id: mpman.tex 458 2008-04-03 21:56:20Z stephanhennig $ + +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{textcomp} +\usepackage{mflogo} \usepackage{makeidx} \usepackage{fancyvrb} \usepackage{ctabbing} @@ -15,28 +25,16 @@ {verbatim}{BVerbatim}{baseline=c} \usepackage{graphicx} \usepackage[latin1]{inputenc} -\pdfmapfile{+lm-math.map} \usepackage[textwidth=6in,textheight=8.65in]{geometry} \usepackage{tocloft} \setlength\cftbeforesecskip{1.3ex plus 0.3ex minus 0.3ex} \usepackage{ltxtable} - \makeatletter - \def\logo{\global\font\logo=logo10 at1\@ptsize\p@ \logo} - \def\logosl{\global\font\logosl=logosl10 at1\@ptsize\p@ \logosl} - \def\MF{{\ifdim \fontdimen\@ne\font >\z@ \def\logo{\logosl}\fi - {\logo META}\-{\logo FONT}}} - \makeatother \def\ttindex#1{{\tt #1}\index{#1?\texttt{#1}}} \def\ttt{\texttt} % I get tired of typing this out \def\ConTeXt{Con\TeX t} -% \def\MF{{META\-FONT}} % Replacement for the above when using times.sty - - -\newfont\psyvii{psyr at 7pt} -\newcommand\reg{$^{\hbox{\psyvii\char'322}}$} % Registered trademark \newcommand\descr[1]{{\langle\hbox{#1}\rangle}} \newcommand\invisgap{\nobreak\hskip0pt\relax} @@ -78,28 +76,49 @@ citecolor=SpringGreen3 } \usepackage[all]{hypcap} +\ifpdf +\pdfmapfile{=cm2lm.map}% replace CM by LM in figures +\else +\DeclareGraphicsExtensions{.mps} +\DeclareGraphicsRule{mps}{eps}{*}{} +\usepackage{breakurl} +\fi \begin{document} \VerbatimFootnotes -\author{John D. Hobby\\\small and the MetaPost development team} -\title{A User's Manual for MetaPost} -\date{documented version: 1.000} -\maketitle - -\begin{abstract} -The MetaPost system implements a picture-drawing language very much like -Knuth's \MF\ except that it outputs PostScript commands instead of -run-length-encoded bitmaps. MetaPost is a powerful language for -producing figures for documents to be printed on PostScript printers. -It provides easy access to all the features of PostScript and it -includes facilities for integrating text and graphics. - -This document serves as an introductory user's manual. It does not require -knowledge of \MF\ or access to {\sl The \MF book}, but both are beneficial. -An appendix explains the differences between MetaPost and \MF. - -\end{abstract} -\thispagestyle{empty} -\newpage +%%% Title page layout documentation is missing. +\begin{titlepage} + \vbox to \textheight {% + \vskip0pt + \vfil + \vfil + \vfil + \centerline{\resizebox{3.5in}{!}{\fontseries{b}\selectfont\MP}} + \vskip10bp% actually 21bp (-11bp) + \centerline{\includegraphics{manfig-60.mps}} + \vskip15bp% actually 21bp (-6bp) + \centerline{% + \resizebox{3.5in}{!}{% + \scshape% + \fontsize{28bp}{28bp}\selectfont + \strut\lowercase{A USER\kern-2bp\lower3bp\hbox{'}S MANUAL}% + }% + } + \vskip-11bp + \vfil + \vfil + \centerline{\large John D. Hobby} + \vskip3bp + \centerline{and the MetaPost development team} + \vskip20.8bp% actually 31.8bp (-11bp) + \centerline{\large documented version: 1.003} + \vskip3bp + \centerline{\svnToday} + \vfil + \vfil + \vfil + } +\end{titlepage} + \setlength{\columnsep}{2.5em} \begin{multicols}{2} \tableofcontents @@ -166,7 +185,7 @@ fi $$ prints $$\begin{verbatim} -mp = 1.000 +mp = 1.003 \end{verbatim} $$ The {\tt scantokens} command is described on p.~\pageref{Dscantokens} @@ -177,7 +196,9 @@ the PostScript output. This document introduces the MetaPost language, beginning with the features that are easiest to use and most important for simple -applications. The first few sections describe the language as it +applications. Reading the manual does not require knowledge of \MF\ or +access to {\sl The \MF book}, but both are beneficial. +The first few sections describe the language as it appears to the novice user with key parameters at their default values. Some features described in these sections are part of a predefined macro package called Plain. Later sections summarize the complete language @@ -206,7 +227,7 @@ Please report bugs and request enhancements either on the \label{basic} The simplest drawing statements are the ones that generate straight lines. -Thus\index{draw?\texttt{draw}}\index{--?\texttt{--}} +Thus\index{draw?\texttt{draw}}\index{-{}-?\texttt{-{}-}} $$ \hbox{\verb|draw (20,20)--(0,0)|} $$ draws\index{draw?\texttt{draw}} a diagonal line and $$ \hbox{\verb|draw (20,20)--(0,0)--(0,30)--(30,0)--(0,0)|} $$ @@ -314,6 +335,21 @@ document. The next sections give some more information. \section{Handling MetaPost output} \label{Dmpoutput} +There can be a two-fold interaction between \TeX\ and MetaPost. On one +hand, MetaPost graphics can be imported into documents typeset by \TeX\ +and friends. On the other hand, MetaPost can delegate typesetting +textual elements to \TeX, \LaTeX\ or \emph{troff}, e.g., text labels or +mathematical formulas in a graphic. That way, MetaPost graphics can +easily adopt the style of a document (type, type size, etc.) and fit its +typesetting quality (use kerning, ligatures, etc.) This makes MetaPost +an ideal tool for preparing high-quality graphics for \TeX\ or +\emph{troff} documents. + +This section deals with the first aspect of \TeX--MetaPost interaction, +the import of MetaPost graphics into \TeX\ and friends. Typesetting +text in MetaPost is discussed in section~\ref{text}. + + \subsection{Previewing MetaPost graphics} \label{Dpreview} \index{previewing} @@ -394,12 +430,11 @@ e.\,g., \verb+\includegraphics{fig.1}+. As can be seen in figure~\ref{fig0} graphic files are never included in a \TeX\index{TeX?\TeX!importing MetaPost files} or \LaTeX\index{LaTeX?\LaTeX!importing MetaPost files} run. Instead, -\TeX\ and \LaTeX\ only read bounding box information off the PostScript -file, reserve as much space on a page as the graphic -occupies and write a reference to the corresponding file into the -\ttt{dvi} output. The graphic file is only included in the subsequent -run of an output driver, that can handle PostScript files, e.\,g., -\ttindex{dvips}. +\TeX\ and \LaTeX\ only read bounding box information off PostScript +files, reserve as much space on a page as a graphic occupies and write +a reference to the corresponding file into \ttt{dvi} output. Graphic +files are only included in the subsequent run of an output driver, +that can handle PostScript files, e.\,g., \ttindex{dvips}. \paragraph{pdf\LaTeX} The application pdf\LaTeX, when run in PDF mode, is both, a @@ -410,8 +445,9 @@ general PostScript files, but only so-called purified EPS\index{PostScript!purified} files, which may only use a restricted set of PostScript language features. Fortunately, MetaPost output \emph{is} purified EPS, so we are in luck. Since -\ttt{mps}\index{files!mps?\texttt{mps}} is pdf\LaTeX's default -extension for purified EPS files, we can +pdf\LaTeX's default extension for purified EPS files is +\ttt{mps}\index{files!mps?\texttt{mps}}, but MetaPost output by +default has a number as extensions, we either have to \begin{itemize} \item tell pdf\LaTeX\ to handle MetaPost's numbered files according to \ttt{mps} file rules, or @@ -462,7 +498,7 @@ default. If the \ttt{mps} extension is present, \LaTeX\ handles those files as \ttt{eps} files, which is obviously correct. For more information see the description of \verb+\DeclareGraphicsExtensions+% \index{DeclareGraphicsExtensions?\texttt{\string\DeclareGraphicsExtensions}} -and \verb+\DeclareGraphicsRule+ in the documentaion of packages +and \verb+\DeclareGraphicsRule+ in the documentation of packages \ttt{graphicx} and \ttt{graphics}. \paragraph{pdf\TeX} @@ -552,7 +588,7 @@ beginfig(2); endfig; \end{verbatim} $$ -it might be easier to recall the correct diagram names in the +it might be easier to recall the correct diagram names in a \TeX\ document than with numbered file names. Note, the argument to \ttt{beginfig} is not relevant as long as there's no \ttt{\%c} pattern in the file name template string. @@ -783,7 +819,7 @@ between {\tt z1} and {\tt z2}: $$ \hbox{\verb|draw z0..z1..tension 1.3..z2..z3|} $$ This produces Figure~\ref{fig9}b. For an asymmetrical effect like Figure~\ref{fig9}c, the \verb|draw| statement becomes -$$ \hbox{\verb|draw z0..z1..tension 1.6 and 1..z2..z3|} $$ +$$ \hbox{\verb|draw z0..z1..tension 1.5 and 1..z2..z3|} $$ The tension parameter can be less than one, but it must be at least $3\over4$. \begin{figure}[htp] @@ -958,7 +994,7 @@ via the following equations: Exactly the same points could be obtained by setting their values directly: $$ \begin{verbatim} z1=(.2in,0); z2=(-.2in,0); -z3=(.3in,.6in); z6=(-.3in,1.2in); +z3=(.3in,.8in); z6=(-.3in,1.4in); \end{verbatim} $$ @@ -1076,7 +1112,7 @@ $$ \hbox{\verb|! Inconsistent equation (off by 71.99979).|} $$ This error message illustrates roundoff\index{roundoff error} error in MetaPost's linear equation solving mechanism. Roundoff error -is normally not a serious problem. but it is likely to cause trouble if you are +is normally not a serious problem, but it is likely to cause trouble if you are trying to do something like find the intersection of two lines that are almost parallel. @@ -1120,8 +1156,8 @@ less than 4096 but intermediate results can be eight times larger. This should not be a problem for distances or coordinate values since 4096 PostScript points is more than 1.4~meters. If you need to work with numbers of magnitude 4096 or more, setting the internal variable -{\tt warningcheck}\index{warningcheck}\label{Dwarncheck} to zero -suppresses the warning messages about large numeric quantities. +{\tt warningcheck}\index{warningcheck?\texttt{warningcheck}}\label{Dwarncheck} +to zero suppresses the warning messages about large numeric quantities. The pair\index{pair type} type is represented as a pair of numeric quantities. We have seen that pairs are used to give coordinates in @@ -1164,12 +1200,16 @@ MetaPost solves linear equations involving colors the same way it does for pairs. The type `rgbcolor' is an alias of type `color'. -The cmykcolor\index{cmykcolor type} type is similar to the color -type except that it has four components instead of three. This type is used to -specify colors by their cyan, magenta, yellow, and black components explicitly. -Because cmykcolors deal with pigments instead of light rays, the color -black would be expressed as {\tt (1,1,1,1)} and white as {\tt (0,0,0,0)}. - +The cmykcolor\index{cmykcolor type} type is similar +to the color type except that it has four components instead of +three. This type is used to specify colors by their cyan, magenta, +yellow, and black components explicitly. Because CMYK colors deal with +pigments instead of light rays, the color white would be expressed as +{\tt (0,0,0,0)} and black as {\tt (0,0,0,1)}. In theory, the colors +{\tt ($c$,$m$,$y$,1)} and {\tt (1,1,1,$k$)} should result in black for +any values of $c$, $m$, $y$ and~$k$, too. But in practice, this is +avoided since it is a waste of colored ink and can lead to +unsatisfactory results. A string\index{string type} represents a sequence of characters. String constants\index{string constants} are given @@ -1179,7 +1219,7 @@ any sequence of eight-bit characters. \label{Dscantokens} Conversion from strings to other types, notably numeric, can be accomplished by -the \ttindex{scantokens} primitive: +the {\tt scantokens}\index{scantokens?\texttt{scantokens}} primitive: \begin{center}\texttt{n := scantokens(}\textit{str}\texttt{);}\end{center} More generally, \texttt{scantokens} parses a string into a token sequence, as if MetaPost had read it as input. @@ -1279,7 +1319,7 @@ $(a-b)^2$. Another \tdescr{primary binop} is the {\tt dotprod}\index{dotprod?\texttt{dotprod}}\label{Ddprod} operator that computes the vector dot product of two pairs. For example, {\tt z1 -dotprod z2} is equivalent to {\tt x1*y1 + x2*y2}. +dotprod z2} is equivalent to {\tt x1*x2 + y1*y2}. The additive operators {\tt +} and {\tt -}\label{Dadd} are \tdescr{secondary binops} that operate on numerics, pairs, or colors and @@ -1382,7 +1422,7 @@ the {\tt /}\index{fractions} operator binds most tightly when its operands are numbers. Thus {\tt 2/3} is a \tdescr{numeric atom}\index{numeric atom?\tdescr{numeric atom}}\index{parsing irregularities} while {\tt (1+1)/3} is only a \tdescr{numeric -secondary}. Applying a \tdescr{primary binop} such as {\tt +secondary}. Applying a \tdescr{unary op} such as {\tt sqrt}\index{sqrt?\texttt{sqrt}}\label{Dsqrt} makes the difference clear: $$ \hbox{\tt sqrt 2/3} $$ means $\sqrt{2\over3}$ while @@ -1390,7 +1430,7 @@ $$ \hbox{\tt sqrt(1+1)/3} $$ means $\sqrt 2/3$. Operators such as {\tt sqrt} can be written in standard functional notation, but it is often unnecessary to parenthesize the argument. This applies to any function that is parsed -as a \tdescr{primary binop}. For instance {\tt +as a \tdescr{unary op}. For instance {\tt abs(x)}\index{abs?\texttt{abs}}\label{Dabs} and {\tt abs x} both compute the absolute value of {\tt x}. The same holds for the {\tt round}\index{round?\texttt{round}}\label{Dround}, {\tt @@ -1456,20 +1496,25 @@ Similarly, a color {\tt c} is equivalent to\index{redpart?\texttt{redpart}}% \index{greenpart?\texttt{greenpart}}% \index{bluepart?\texttt{bluepart}}\label{Drgbprt} -$$ \hbox{\tt (redpart c, greenpart c, bluepart c)} $$. -For a cmykcolor {\tt c}, the parts are:\index{cyanpart?\texttt{cyanpart}}% +$$ \hbox{\tt (redpart c, greenpart c, bluepart c)}. $$ +For a cmykcolor {\tt c}, the components are% +\index{cyanpart?\texttt{cyanpart}}% \index{magentapart?\texttt{magentapart}}% \index{yellowpart?\texttt{yellowpart}}% \index{blackpart?\texttt{blackpart}}\label{Dcmykprt} $$ \hbox{\tt (cyanpart c, magentapart c, yellowpart c, blackpart c)} $$ -The part -specifiers for transforms will be discussed later. +and for a greyscale color {\tt c}, there is only one component% +\index{greypart?\texttt{greypart}}\label{Dgreyprt}% +$$ \hbox{\tt greypart c}. $$ +All color component operators are discussed in more detail in +section~\ref{piccomp}. Part specifiers for transforms are discussed +in section~\ref{transsec}. \section{Variables} \label{vars} -MetaPost allows compound variable names such as {x.a}, {\tt x2r}, {\tt y2r}, +MetaPost allows compound variable names such as {z.a}, {\tt x2r}, {\tt y2r}, and {\tt z2r}, where {\tt z2r} means {\tt (x2r,y2r)} and {\tt z.a} means {\tt (x.a,y.a)}. In fact there is a broad class of suffixes such that {\tt z}\tdescr{suffix}\index{suffix?\tdescr{suffix}} means @@ -1600,8 +1645,8 @@ restored to their previous values at the end of the current figure. Of course, they are restored to unknown pairs if the declaration is repeated. -Declarations work the same way for any of the other eight types: -numeric, path, transform, color, string, boolean, picture, and pen. The +Declarations work the same way for any of the other nine types: numeric, +path, transform, color, cmykcolor, string, boolean, picture, and pen. The only restriction is that you cannot give explicit numeric subscripts in a variable declaration. Do not give the illegal declaration $$ \hbox{\tt numeric q1, q2, q3;} $$ @@ -1893,7 +1938,7 @@ something like this: \label{Dtroffmode} On Unix\footnote{Unix is a registered trademark of Unix Systems -Laboratories.}\index{Unix\reg} and other Web2C-based systems, the +Laboratories.}\index{Unix} and other Web2C-based systems, the option {\tt -troff} to MetaPost tells the preprocessor that {\tt btex} $\ldots$ {\tt etex} and {\tt verbatimtex} $\ldots$ {\tt etex} blocks are in troff\index{troff} instead of \TeX. When using this option, @@ -2065,7 +2110,7 @@ llcorner}\index{llcorner?\texttt{llcorner}}\label{Dcornop}, {\tt lrcorner}\index{lrcorner?\texttt{lrcorner}}, {\tt urcorner}\index{urcorner?\texttt{urcorner}}, {\tt ulcorner}\index{ulcorner?\texttt{ulcorner}}, and {\tt -center}\index{center}\label{Dcenter} that take a \tdescr{picture +center}\index{center?\texttt{center}}\label{Dcenter} that take a \tdescr{picture primary} and return the corners of its ``bounding box'' as illustrated in Figure~\ref{bbox}. The {\tt center} operator also accepts \tdescr{path primary} and \tdescr{pen primary} operands. In MetaPost @@ -2078,8 +2123,11 @@ dotlabel} statements to center their text properly. The predefined macro\index{bbox?\texttt{bbox}}\label{Dbbox} $$ {\tt bbox}\, \descr{picture primary} $$ finds a rectangular path that represents the bounding box of a given picture. -If {\tt p} is a picture, {\tt bbox p} equivalent to -$$ \hbox{\tt (llcorner p--lrcorner p--urcorner p--ulcorner p--cycle)} $$ +If {\tt p} is a picture, {\tt bbox p} is equivalent to +$$\begin{verbatim} +(llcorner p--lrcorner p--urcorner p--ulcorner p--cycle) +\end{verbatim} +$$ except that it allows for a small amount of extra space around {\tt p} as specified by the internal variable\index{internal variables}\index{variables!internal} {\tt @@ -2107,7 +2155,8 @@ does the lying:\index{picture variable?\tdescr{picture variable}} $$ {\tt setbounds}\, \descr{picture variable}\, {\tt to}\, \descr{path expression} $$ makes the \tdescr{picture variable} behave as if its bounding box were -the same as the given path. To get the true bounding box of such a +the same as the given path. The path has to be a cycle, i.e., it must +be a closed path. To get the true bounding box of such a picture, assign a positive value to the internal variable\index{internal variables}\index{variables!internal} {\tt truecorners}\index{truecorners?\texttt{truecorners}}\label{Dtruecorn}:\footnote{The @@ -2130,7 +2179,7 @@ form, the {\tt fill} statement requires a \tdescr{path expression} that gives the boundary of the region to be filled. In the syntax $$ {\tt fill}\, \descr{path expression} $$ the argument should be a cyclic path, i.e., a path that describes a -closed curve via the {\tt ..cycle} or {\tt --cycle} notation. For +closed curve via the \verb|..cycle| or \verb|--cycle| notation. For example, the {\tt fill} statement in Figure~\ref{fig20} builds a closed path by extending the roughly semicircular path~{\tt p}. This path has a counter-clockwise orientation, but that does not matter because the @@ -2152,7 +2201,7 @@ $$ \label{fig20} \end{figure} -The general {\tt fill} statement\index{withcolor?\texttt{withcolor}} +The general {\tt fill} statement\index{withcolor?\texttt{withcolor}}\label{Dwithcolor} $$ {\tt fill}\, \descr{path expression}\, {\tt withcolor}\, \descr{color expression} $$ @@ -2163,10 +2212,10 @@ values, mapping to four possible color models: $$ \begin{tabular}{|l|l|} Actual input & Remapped meaning\\ -{\tt withcolor} $\descr{rgbcolor} c$ & withrgbcolor\index{withrgbcolor?\texttt{withrgbcolor}} $c$\\ -{\tt withcolor} $\descr{cmykcolor} c$ & withcmykcolor\index{withrgbcolor?\texttt{withcmykcolor}} $c$\\ -{\tt withcolor} $\descr{numeric} c$ & withgreyscale\index{withrgbcolor?\texttt{withgreyscale}} $c$\\ -{\tt withcolor} $\descr{false}$ & withoutcolor\index{withrgbcolor?\texttt{withoutcolor}} \\ +{\tt withcolor} $\descr{rgbcolor} c$ & withrgbcolor\index{withrgbcolor?\texttt{withrgbcolor}}\label{Dwithrgbcolor} $c$\\ +{\tt withcolor} $\descr{cmykcolor} c$ & withcmykcolor\index{withcmykcolor?\texttt{withcmykcolor}}\label{Dwithcmykcolor} $c$\\ +{\tt withcolor} $\descr{numeric} c$ & withgreyscale\index{withgreyscale?\texttt{withgreyscale}}\label{Dwithgreyscale} $c$\\ +{\tt withcolor} $\descr{false}$ & withoutcolor\index{withoutcolor?\texttt{withoutcolor}}\label{Dwithoutcolor} \\ {\tt withcolor} $\descr{true}$ & $\descr{current default color model}$\\ \end{tabular} $$ @@ -2626,7 +2675,7 @@ identity}\index{identity?\texttt{identity}}\label{Dident} is a useful starting point for this process. This can be illustrated by paraphrasing the above equation for {\tt T} into English: ``{\tt T} should be the transform obtained by doing whatever {\tt identity} -does. Then scaling $x$~coordinates by $-1$, rotating $45^\circ$, and +does. Then scaling $x$~coordinates by $-1$, rotating $90^\circ$, and shifting by $(1,1)$.'' This works because {\tt identity} is the identity transformation which does nothing; i.e., {\tt transformed identity} is a no-op. @@ -2757,7 +2806,7 @@ $$ The MetaPost language provides many ways of changing the appearance of a line besides just changing its width. One way is to use dashed lines as was done in Figures \ref{fig4} and~\ref{fig22}. The syntax for this -is\index{dashed?\texttt{dashed}} +is\index{dashed?\texttt{dashed}}\label{Ddashed} $$ {\tt draw}\, \descr{path expression}\, {\tt dashed}\, \descr{dash pattern} $$ where a \tdescr{dash pattern}\index{dash pattern?\tdescr{dash pattern}} is really a special type of \tdescr{picture expression}. There is a @@ -2895,17 +2944,25 @@ paths created by polygonal pens. See Section~\ref{sec.pens}, p.\ If you want to attach a special bit of PostScript code, you can use $$ -{\tt withprescript} \descr{string expression} -$$\index{withprescript?\texttt{withprescript}}\label{Dwithpre}% +{\tt withprescript} \descr{string expression}% +\index{withprescript?\texttt{withprescript}}\label{Dwithpre} +$$ and $$ -{\tt withpostcript} \descr{string expression} -$$\index{withpostscript?\texttt{withpostscript}}\label{Dwithpost}% +{\tt withpostscript} \descr{string expression}% +\index{withpostscript?\texttt{withpostscript}}\label{Dwithpost} +$$ The strings will be written to the output file before and after the current object, each beginning on their own line. You can specify multiple {\tt withprescript} or {\tt withpostscript} options if you like. +When you specify more than one {\tt withprescript} or more than one {\tt + withpostscript} option, be wary of the fact that the scripts use a +form of nesting: the {\tt withprescript} items are written to the +PostScript file in last in, first out order; whereas the {\tt + withpostscript} items are written in first in, first out order. + \subsection{Other Options} \label{oopt} @@ -3203,7 +3260,7 @@ convex-polygon-shaped path and makes a pen that shape and size. If the path is not exactly convex or polygonal, the {\tt makepen} operator will straighten the edges and/or drop some of the vertices. In particular, {\tt pensquare} is equivalent to -$$ \hbox{\tt makepen((-.5,-.5)--(.5,-.5)--(.5,.5)--(-.5,.5)--cycle)} $$ +$$ \hbox{\verb|makepen((-.5,-.5)--(.5,-.5)--(.5,.5)--(-.5,.5)--cycle)|} $$ {\tt pensquare} and {\tt makepen} should not be used with dash patterns. See the end of Section~\ref{sec.pens}, p.\ @@ -3401,7 +3458,9 @@ Figure~\ref{fig55} shows three \ttt{car} objects drawn with two different slant values. -\subsection{Extracting Information from Pictures} +\subsection{Inspecting the Components of a Picture} +\label{piccomp} + MetaPost pictures are composed of stroked lines, filled outlines, pieces of typeset text, clipping paths\index{clip?\texttt{clip}}, and {\tt setbounds}\index{setbounds?\texttt{setbounds}} paths. (A {\tt setbounds} @@ -3442,22 +3501,62 @@ of a picture. If {\tt p} is a picture and {\tt stroked p} is true, path describing the line that got stroked, {\tt penpart p}\index{penpart?\texttt{penpart}}\label{Dpenpart} is the pen that was used, {\tt dashpart p}\index{dashpart?\texttt{dashpart}}\label{Ddashpart} -is the dash pattern, and the color is -$$ \hbox{\tt (redpart p, greenpart p, bluepart p)} $$% -\index{redpart?\texttt{redpart}}\index{greenpart?\texttt{greenpart}}\index{bluepart?\texttt{bluepart}} -If the line is not dashed, {\tt dashpart p} returns an empty picture. +is the dash pattern. If the line is not dashed, {\tt dashpart p} +returns an empty picture. The same part extraction operators work when {\tt filled p} is true, except -that {\tt dashpart p} is not meaningful in that case. For text components, -{\tt textual p} is true, +that {\tt dashpart p} is not meaningful in that case. + +For text components, {\tt textual p} is true, {\tt textpart p}\index{textpart?\texttt{textpart}}\label{Dtextpart} gives the text that got typeset, {\tt fontpart p}\index{fontpart?\texttt{fontpart}}\label{Dfontpart} gives the font that was used, and {\tt xpart~p}\index{xpart?\texttt{xpart}}\index{ypart?\texttt{ypart}}\index{xxpart?\texttt{xxpart}}% \index{xypart?\texttt{xypart}}\index{yxpart?\texttt{yxpart}}\index{yypart?\texttt{yypart}}, {\tt ypart~p}, {\tt xxpart~p}, {\tt xypart~p}, {\tt yxpart~p}, {\tt yypart~p} -tell how the text has been shifted, rotated, and scaled. The {\tt redpart}, -{\tt greenpart}, and {\tt bluepart} operators also work for text components. +tell how the text has been shifted, rotated, and scaled. + +Additionally, for \ttt{stroked}, \ttt{filled} and \ttt{textual} +components the color can be inspected. The color model of a picture +component can be requested by the +\ttt{colormodel}\index{colormodel?\texttt{colormodel}}\label{Dcolormodel} +operator (see section~\ref{adv.gr}). Depending on the color model of +a picture component \ttt{p} the color is +$$ \hbox{\tt (redpart p, greenpart p, bluepart p)} $$% +\index{redpart?\texttt{redpart}}\index{greenpart?\texttt{greenpart}}\index{bluepart?\texttt{bluepart}} +for RGB colors or +$$ \hbox{\tt (cyanpart p, magentapart p, yellowpart p, blackpart p)} $$% +\index{cyanpart?\texttt{cyanpart}}\index{magentapart?\texttt{magentapart}}\index{yellowpart?\texttt{yellowpart}}\index{blackpart?\texttt{blackpart}} +for CMYK colors or +$$ \hbox{\tt (greypart p)} $$% +\index{greypart?\texttt{greypart}} for grey scale colors. + +Applying a non-matching color part +operator to a picture component triggers an error and returns a color +part for the color \ttindex{black} in the requested color model. +That is, for the code +$$\begin{verbatim} +picture pic; +pic := image(fill unitsquare scaled 1cm withcolor (0.3, 0.6, 0.9);); +for item within pic: + show greypart item; + show cyanpart item; + show blackpart item; + show redpart item; +endfor +\end{verbatim} +$$ +the output is (omitting the error messages) +$$\begin{verbatim} +>> 0 +>> 0 +>> 1 +>> 0.3 +\end{verbatim} +$$ +since in grey scale color model black is {\tt 0} and in CMYK color model +black is {\tt (0, 0, 0, 1)}. For the matching RGB color model the true +color component is returned. When {\tt clipped p} or {\tt bounded p} is true, {\tt pathpart p} gives the clipping or {\tt setbounds} path and the other part extraction operators are @@ -3672,7 +3771,7 @@ $$ where the \tdescr{balanced tokens}\index{balanced tokens?\tdescr{balanced tokens}} can be anything that is balanced with respect to {\tt if} and {\tt fi}, the complete {\tt -middlepoint}\index{midpoint?\texttt{midpoint}} macro with type test +middlepoint}\index{middlepoint?\texttt{middlepoint}} macro with type test looks like this: $$\begin{verbatim} def middlepoint(expr a) = if path a: (point .5*length a of a) @@ -3690,9 +3789,9 @@ Note that {\tt if} tests are not statements and the \tdescr{balanced tokens} in the syntax rules can be any sequence of balanced tokens even if they do not form a complete expression or statement. Thus we could have saved two tokens at the expense of clarity by defining {\tt -midpoint} like this: +middlepoint} like this: $$\begin{verbatim} -def midpoint(expr a) = if path a: (point .5*length a of +def middlepoint(expr a) = if path a: (point .5*length a of else: .5(llcorner a + urcorner fi a) enddef; \end{verbatim} $$ @@ -4259,7 +4358,8 @@ $$ \hbox{\tt for i=a step b until c} $$ scans a sequence of {\tt i} values {\tt a}, ${\tt a}+{\tt b}$, ${\tt a}+2{\tt b}$, \ldots, stopping before {\tt i} passes {\tt c}; i.e., the loop scans {\tt i} values where ${\tt i}\le {\tt c}$ if ${\tt b}>0$ and -${\tt i}\ge {\tt c}$ if ${\tt i}<0$. +${\tt i}\ge {\tt c}$ if ${\tt b}<0$. For ${\tt b}=0$ the loop never +terminates, even if ${\tt a}={\tt c}$. It is best to use this feature only when the step size is an integer or some number that can be represented exactly in fixed point @@ -4286,9 +4386,9 @@ semicolon. It is common for the body of a loop to be one or more statements, but this need not be the case. A loop is like a macro definition followed by calls to the macro. The loop body can be virtually any sequence of tokens as long as they make sense together. Thus, the (ridiculous) statement -$$ \hbox{\tt draw for p=(3,1),(6,2),(7,5),(4,6),(1,3): p-- endfor cycle;} $$ +$$ \hbox{\verb|draw for p=(3,1),(6,2),(7,5),(4,6),(1,3): p-- endfor cycle;|} $$ is equivalent to -$$ \hbox{\tt draw (3,1)--(6,2)--(7,5)--(4,6)--(1,3)--cycle;} $$ +$$ \hbox{\verb|draw (3,1)--(6,2)--(7,5)--(4,6)--(1,3)--cycle;|} $$ (See Figure~\ref{fig17} for a more realistic example of this.) If a loop is like a macro definition, the loop index is like an expr @@ -4584,8 +4684,8 @@ $$ where \tdescr{box name} is a suffix and \tdescr{box contents} is either a picture expression, a string expression, or \tdescr{empty}. -The {\tt circleit} macro defines pair variable just as {\tt boxit} does, except -that there are no corner points \tdescr{box name}{\tt.ne}, +The {\tt circleit} macro defines pair variables just as {\tt boxit} +does, except that there are no corner points \tdescr{box name}{\tt.ne}, \tdescr{box name}{\tt.sw}, etc. A call to $$ \hbox{\tt circleit.a(}\ldots \hbox{\tt )} $$ gives relationships among points {\tt a.c}, {\tt a.s}, {\tt a.e}, {\tt @@ -4711,6 +4811,16 @@ result is a string consisting of a single null character. The preloaded {\tt readfrom} has returned {\tt EOF}, additional reads from the same file cause the file to be reread from the start. +All files opened by \ttt{readfrom} that have not completely been read +yet are closed\index{files!closing} automatically when the program +terminates, but there exists a command +$${\tt closefrom}\ \descr{file name}$$% +\index{closefrom?\texttt{closefrom}}\label{Dclosefrom}% +to close files opened by {\tt readfrom} explicitly. It is wise to +manually close files you do not need to read completely (i.e. until {\tt + EOF} is returned) because otherwise such files will continue to use +internal resources and perhaps cause a \ttt{capacity exceeded!} error. + The opposite of {\tt readfrom} is the command $$ {\tt write}\ \descr{string expression}\ {\tt to}\ \descr{file name} $$% \index{write to?\texttt{write to}}\label{Dwrite}% @@ -4770,7 +4880,8 @@ MetaPost text variable~$s$. values are remembered, and included before and after (respectively) each call to \texttt{TEX}. Otherwise, each \texttt{TEX} call is effectively typeset independently. \texttt{TEX} calls also do not interfere with -uses of \ttindex{verbatimtex} (p.\ \pageref{Dverbatimtex}). +uses of {\tt verbatimtex}\index{verbatimtex?\texttt{verbatimtex}} (p.\ +\pageref{Dverbatimtex}). Here's the same example as above, using the \LaTeX\ commands \verb|\(| and \verb|\)|: @@ -4856,7 +4967,7 @@ Further information on error messages, debugging, and generating tracing information can be found in {\sl The\ \MF book} \cite{kn:c}. Suppose your input file says -$$ \hbox{\tt draw z1--z2;} $$ +$$ \hbox{\verb|draw z1--z2;|} $$ on line 17 without first giving known values to {\tt z1} and {\tt z2}. Figure~\ref{errmsg} shows what the MetaPost interpreter prints on your terminal when it finds the error. The actual error message is the line @@ -4898,7 +5009,7 @@ line number like ``{\tt l.17}'' for line 17 of the current file; or it can be a macro name followed by ``{\tt ->}''; or it is a descriptive phrase in angle brackets. Thus, the meaning of the context listing in Figure~\ref{errmsg} is that the interpreter has just read line 17 of the -input file up to ``{\tt --},'' the expansion of the {\tt --} macro has +input file up to ``\verb|--|,'' the expansion of the \verb|--| macro has just started, and the initial ``\verb|{|'' has been reinserted to allow for user input before scanning this token. @@ -5316,7 +5427,7 @@ $$\begin{tabular}{|l|l|r|l|} \tt true& boolean& \pageref{Dtrue}& The boolean value {\tt true}\\\hline \pl\tt unitsquare& path& --& - The path {\tt (0,0)--(1,0)--(1,1)--(0,1)--cycle}\\\hline + The path \verb|(0,0)--(1,0)--(1,1)--(0,1)--cycle|\\\hline \pl\tt up& pair& \pageref{Dup}& Upward direction $(0,1)$\\\hline \pl\tt white& color& \pageref{Dwhite}& @@ -5346,8 +5457,12 @@ $$\begin{tabular}{|l|r|l|} Low-level command for drawing and filling\\\hline \tt \verb|clip|& \pageref{Dclip}& Applies a clipping path to a picture\\\hline +\tt \verb|closefrom|& \pageref{Dclosefrom}& + Close a file opened by {\tt readfrom}\\\hline \pl\tt \verb|cutdraw|& \pageref{Dctdraw}& Draw with butt end caps\\\hline +\tt \verb|dashed|& \pageref{Ddashed}& + Apply dash pattern to drawing command\\\hline \pl\tt \verb|draw|& \pageref{curves}& Draw a line or a picture\\\hline \pl\tt \verb|drawarrow|& \pageref{Ddrwarr}& @@ -5396,6 +5511,22 @@ $$\begin{tabular}{|l|r|l|} Erase inside a cyclic path\\\hline \pl\tt \verb|unfilldraw|& \pageref{Dunfdrw}& Erase a cyclic path and its inside\\\hline +\tt \verb|withcmykcolor|& \pageref{Dwithcmykcolor}& + Apply CMYK color to drawing command\\\hline +\tt \verb|withcolor|& \pageref{Dwithcolor}& + Apply generic color specification to drawing command\\\hline +\tt \verb|withgreyscale|& \pageref{Dwithgreyscale}& + Apply greyscale color to drawing command\\\hline +\tt \verb|withoutcolor|& \pageref{Dwithoutcolor}& + Don't apply any color specification to drawing command\\\hline +\tt \verb|withpen|& \pageref{sec.pens}& + Apply pen to drawing operation\\\hline +\tt \verb|withpostscript|& \pageref{Dwithpost}& + End raw PostScript code\\\hline +\tt \verb|withprescript|& \pageref{Dwithpre}& + Begin raw PostScript code\\\hline +\tt \verb|withrgbcolor|& \pageref{Dwithrgbcolor}& + Apply RGB color to drawing command\\\hline \tt \verb|write to|& \pageref{Dwrite}& Write string to file\\\hline \end{tabular} @@ -5483,7 +5614,7 @@ $$\begin{tabular}{|l|l|l|r|l|} \pl\tt \verb|thelabel|& suffix, picture, pair& picture& \pageref{Dthelab}& Picture shifted as if to label a point\\\hline \pl\tt \verb|thelabel|& suffix, string, pair& picture& \pageref{Dthelab}& - text positioned as if to label a point\\\hline + Text positioned as if to label a point\\\hline \pl\tt \verb|z|& suffix& pair& \pageref{Dzconv}& The pair ${\tt x}\descr{suffix},{\tt y}\descr{suffix})$\\\hline \end{tabular} @@ -5526,12 +5657,12 @@ $\tt \qquad \;|\; \descr{path subexpression} \descr{direction specifier}$\\ $\tt \qquad \;|\; \descr{path subexpression} \descr{path join} cycle$\\ $\tt $\\ $\tt \descr{path knot} \rightarrow \descr{tertiary}$\\ -$\tt \descr{path join} \rightarrow --$\\ +$\tt \descr{path join} \rightarrow \verb|--|$\\ $\tt \qquad \;|\; \descr{direction specifier} \descr{basic path join} \descr{direction specifier}$\\ $\tt \descr{direction specifier} \rightarrow \descr{empty}$\\ -$\tt \qquad \;|\; \char`\{curl \descr{numeric expression}\char`\}$\\ -$\tt \qquad \;|\; \char`\{\descr{pair expression}\char`\}$\\ -$\tt \qquad \;|\; \char`\{\descr{numeric expression}\hbox{\tt ,}\descr{numeric expression}\char`\}$\\ +$\tt \qquad \;|\; \verb|{|curl \descr{numeric expression}\verb|}|$\\ +$\tt \qquad \;|\; \verb|{|\descr{pair expression}\verb|}|$\\ +$\tt \qquad \;|\; \verb|{|\descr{numeric expression}\hbox{\tt ,}\descr{numeric expression}\verb|}|$\\ $\tt \descr{basic path join} \rightarrow \hbox{\tt ..} \;|\; \hbox{\tt ...} \;|\; \hbox{\tt ..}\descr{tension}\hbox{\tt ..} \;|\; \hbox{\tt ..}\descr{controls}\hbox{\tt ..}$\\ $\tt \descr{tension} \rightarrow tension \descr{numeric primary}$\\ $\tt \qquad \;|\; tension \descr{numeric primary} and \descr{numeric primary}$\\ @@ -5748,7 +5879,7 @@ $\tt \qquad \;|\; addto \descr{picture variable} contour \descr{path expression} $\tt \qquad \;|\; addto \descr{picture variable} doublepath \descr{path expression} \descr{option list}$\\ $\tt \descr{option list} \rightarrow \descr{empty} \;|\; \descr{drawing option} \descr{option list}$\\ $\tt \descr{drawing option} \rightarrow withcolor \descr{color expression}$\\ -$\tt \qquad \;|\; withrgcolor \descr{rgbcolor expression} \;|\; withcmykcolor \descr{cmykcolor expression}$\\ +$\tt \qquad \;|\; withrgbcolor \descr{rgbcolor expression} \;|\; withcmykcolor \descr{cmykcolor expression}$\\ $\tt \qquad \;|\; withgreyscale \descr{numeric expression} \;|\; withoutcolor$\\ $\tt \qquad \;|\; withprescript \descr{string expression} \;|\; withpostscript \descr{string expression}$\\ $\tt \qquad \;|\; withpen \descr{pen expression} \;|\; dashed \descr{picture expression}$\\ @@ -5994,6 +6125,7 @@ bounded\\ btex\\ clip\\ clipped\\ +closefrom\\ cmykcolor\\ color\\ colormodel\\ diff --git a/Master/texmf-dist/doc/metapost/base/source/timepop.d b/Master/texmf-dist/doc/metapost/base/source/timepop.d index 2b1555289c2..c8b2bae7a04 100644 --- a/Master/texmf-dist/doc/metapost/base/source/timepop.d +++ b/Master/texmf-dist/doc/metapost/base/source/timepop.d @@ -18,4 +18,4 @@ 1960 179.32 1970 203.30 1980 226.55 -1990 248.71
\ No newline at end of file +1990 248.71 diff --git a/Master/texmf-dist/metapost/base/boxes.mp b/Master/texmf-dist/metapost/base/boxes.mp index 7a70c7b6f14..bd2d73aef80 100644 --- a/Master/texmf-dist/metapost/base/boxes.mp +++ b/Master/texmf-dist/metapost/base/boxes.mp @@ -20,8 +20,7 @@ enddef; % Take a string returned by the str operator and return the same string % with explicit numeric subscripts replaced by generic subscript symbols []. % -% This new version makes sure that variables with '[[' in them are treated -% correctly. +% Fixed version supplied by Eddie Kohler vardef generisize (expr ss) = save res, s, stest, l; string res, s, stest; @@ -32,16 +31,16 @@ vardef generisize (expr ss) = res := res & substring (0,l) of s; s := substring (l,infinity) of s; if s<>"": - if s>="[": - stest := substring (0,1) of s; + if (s>="[") and (length s > 1): + stest := substring (1,2) of s; if stest="[": - l := 1; - res := res & "["; + l := 2; + res := res & "[["; else: l := 1 + str_prefix(s, c<>"]"); res := res & "[]"; fi - else: + else: res := res & "[]"; l := str_prefix(s, (c=".") or ("0"<=c) and (c<="9")); fi @@ -51,6 +50,7 @@ vardef generisize (expr ss) = res enddef; + % Make sure the string _n_gen_ is generisize(_n_): vardef set_n_gen_ = if _n_ <> _n_cur_: |