From 86f6ad0f8431ad33548e4b843418630365dcd7cb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 29 Dec 2005 00:35:06 +0000 Subject: doc/english/m git-svn-id: svn://tug.org/texlive/trunk@22 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/english/make-tex-work/examples/README | 56 + .../doc/english/make-tex-work/examples/ex-01-01 | 8 + .../doc/english/make-tex-work/examples/ex-01-02 | 9 + .../doc/english/make-tex-work/examples/ex-02-01 | 6 + .../doc/english/make-tex-work/examples/ex-02-02 | 4 + .../doc/english/make-tex-work/examples/ex-02-03 | 12 + .../doc/english/make-tex-work/examples/ex-02-04 | 33 + .../doc/english/make-tex-work/examples/ex-03-01 | 22 + .../doc/english/make-tex-work/examples/ex-04-01 | 32 + .../doc/english/make-tex-work/examples/ex-04-02 | 25 + .../doc/english/make-tex-work/examples/ex-04-03 | 25 + .../doc/english/make-tex-work/examples/ex-04-04 | 27 + .../doc/english/make-tex-work/examples/ex-04-05 | 42 + .../doc/english/make-tex-work/examples/ex-04-06 | 38 + .../doc/english/make-tex-work/examples/ex-04-07 | 7 + .../doc/english/make-tex-work/examples/ex-04-08 | 17 + .../doc/english/make-tex-work/examples/ex-04-09 | 16 + .../doc/english/make-tex-work/examples/ex-05-01 | 5 + .../doc/english/make-tex-work/examples/ex-05-02 | 5 + .../doc/english/make-tex-work/examples/ex-05-03 | 48 + .../doc/english/make-tex-work/examples/ex-06-01 | 12 + .../doc/english/make-tex-work/examples/ex-06-02 | 43 + .../doc/english/make-tex-work/examples/ex-06-03 | 14 + .../doc/english/make-tex-work/examples/ex-06-04 | 25 + .../doc/english/make-tex-work/examples/ex-06-05 | 91 + .../doc/english/make-tex-work/examples/ex-06-06 | 46 + .../doc/english/make-tex-work/examples/ex-06-07 | 59 + .../doc/english/make-tex-work/examples/ex-06-08 | 81 + .../doc/english/make-tex-work/examples/ex-06-09 | 33 + .../doc/english/make-tex-work/examples/ex-07-01 | 8 + .../doc/english/make-tex-work/examples/ex-10-01 | 38 + .../doc/english/make-tex-work/examples/ex-11-01 | 19 + .../doc/english/make-tex-work/examples/ex-12-01 | 7 + .../doc/english/make-tex-work/examples/ex-12-02 | 4 + .../doc/english/make-tex-work/examples/ex-D-01 | 568 ++ .../doc/english/make-tex-work/examples/ex-D-02 | 427 ++ .../doc/english/make-tex-work/examples/ex-D-03 | 215 + .../doc/english/make-tex-work/examples/ex-D-04 | 151 + .../doc/english/make-tex-work/examples/ex-D-05 | 174 + .../doc/english/make-tex-work/examples/ex-D-06 | 181 + .../doc/english/make-tex-work/examples/ex-D-07 | 64 + .../doc/english/make-tex-work/examples/ex-D-08 | 191 + .../doc/english/make-tex-work/html/apa.html | 903 +++ .../doc/english/make-tex-work/html/apb.html | 2557 +++++++ .../doc/english/make-tex-work/html/apc.html | 1168 ++++ .../doc/english/make-tex-work/html/apd.html | 229 + .../doc/english/make-tex-work/html/ape.html | 639 ++ .../doc/english/make-tex-work/html/ch01.html | 2103 ++++++ .../doc/english/make-tex-work/html/ch02.html | 2438 +++++++ .../doc/english/make-tex-work/html/ch03.html | 1894 +++++ .../doc/english/make-tex-work/html/ch04.html | 2206 ++++++ .../doc/english/make-tex-work/html/ch05.html | 3711 ++++++++++ .../doc/english/make-tex-work/html/ch06.html | 3381 +++++++++ .../doc/english/make-tex-work/html/ch07.html | 2409 +++++++ .../doc/english/make-tex-work/html/ch08.html | 2376 +++++++ .../doc/english/make-tex-work/html/ch09.html | 1550 +++++ .../doc/english/make-tex-work/html/ch10.html | 782 +++ .../doc/english/make-tex-work/html/ch11.html | 1139 +++ .../doc/english/make-tex-work/html/ch12.html | 1542 ++++ .../doc/english/make-tex-work/html/ch13.html | 2491 +++++++ .../doc/english/make-tex-work/html/ch14.html | 866 +++ .../doc/english/make-tex-work/html/ch15.html | 958 +++ .../doc/english/make-tex-work/html/ch16.html | 1805 +++++ .../doc/english/make-tex-work/html/co01.html | 187 + .../english/make-tex-work/html/figures/amspell.png | Bin 0 -> 882 bytes .../english/make-tex-work/html/figures/arab.png | Bin 0 -> 10347 bytes .../english/make-tex-work/html/figures/badfont.err | 24 + .../english/make-tex-work/html/figures/bbox.png | Bin 0 -> 2379 bytes .../english/make-tex-work/html/figures/bezier.png | Bin 0 -> 5523 bytes .../make-tex-work/html/figures/caffeine.png | Bin 0 -> 917 bytes .../english/make-tex-work/html/figures/cover.png | Bin 0 -> 31217 bytes .../english/make-tex-work/html/figures/eepic.png | Bin 0 -> 6072 bytes .../english/make-tex-work/html/figures/eight.mf | 19 + .../english/make-tex-work/html/figures/epic.png | Bin 0 -> 5326 bytes .../english/make-tex-work/html/figures/fi-ligs.png | Bin 0 -> 729 bytes .../english/make-tex-work/html/figures/frog.png | Bin 0 -> 13845 bytes .../doc/english/make-tex-work/html/figures/g-h.png | Bin 0 -> 1805 bytes .../english/make-tex-work/html/figures/gs-eps.1 | 40 + .../english/make-tex-work/html/figures/gs-eps.2 | 41 + .../make-tex-work/html/figures/hebrew-sample.png | Bin 0 -> 9662 bytes .../english/make-tex-work/html/figures/jgenji.png | Bin 0 -> 12192 bytes .../english/make-tex-work/html/figures/lint.png | Bin 0 -> 2001 bytes .../english/make-tex-work/html/figures/lithium.png | Bin 0 -> 1067 bytes .../doc/english/make-tex-work/html/figures/mferr.1 | 6 + .../doc/english/make-tex-work/html/figures/mferr.2 | 11 + .../doc/english/make-tex-work/html/figures/mferr.3 | 12 + .../doc/english/make-tex-work/html/figures/mferr.4 | 12 + .../doc/english/make-tex-work/html/figures/mferr.5 | 6 + .../doc/english/make-tex-work/html/figures/mferr.6 | 4 + .../english/make-tex-work/html/figures/mozart.png | Bin 0 -> 1827 bytes .../make-tex-work/html/figures/perf-amt.png | Bin 0 -> 5943 bytes .../make-tex-work/html/figures/perf-inf.png | Bin 0 -> 5176 bytes .../make-tex-work/html/figures/perf-lol.png | Bin 0 -> 6278 bytes .../make-tex-work/html/figures/perf-ltx.png | Bin 0 -> 6092 bytes .../make-tex-work/html/figures/perf-ptx.png | Bin 0 -> 6674 bytes .../english/make-tex-work/html/figures/pgenji.png | Bin 0 -> 12107 bytes .../make-tex-work/html/figures/pictex-example.png | Bin 0 -> 4636 bytes .../make-tex-work/html/figures/pictexex.png | Bin 0 -> 4636 bytes .../make-tex-work/html/figures/pmc-sample.png | Bin 0 -> 6473 bytes .../make-tex-work/html/figures/pmcs-sample.png | Bin 0 -> 6608 bytes .../make-tex-work/html/figures/pmj-sample.png | Bin 0 -> 3616 bytes .../english/make-tex-work/html/figures/sample.png | Bin 0 -> 7502 bytes .../make-tex-work/html/figures/tex.01.03.png | Bin 0 -> 2329 bytes .../make-tex-work/html/figures/tex.01.04.png | Bin 0 -> 6935 bytes .../make-tex-work/html/figures/tex.01.05.png | Bin 0 -> 4264 bytes .../make-tex-work/html/figures/tex.02.01.png | Bin 0 -> 4741 bytes .../make-tex-work/html/figures/tex.02.02.png | Bin 0 -> 4595 bytes .../make-tex-work/html/figures/tex.02.03.png | Bin 0 -> 6594 bytes .../make-tex-work/html/figures/tex.02.04.png | Bin 0 -> 3294 bytes .../make-tex-work/html/figures/tex.02.05.png | Bin 0 -> 4580 bytes .../make-tex-work/html/figures/tex.02.06.png | Bin 0 -> 4614 bytes .../make-tex-work/html/figures/tex.02.07.png | Bin 0 -> 2422 bytes .../make-tex-work/html/figures/tex.02.08.png | Bin 0 -> 6538 bytes .../make-tex-work/html/figures/tex.02.09.png | Bin 0 -> 4862 bytes .../make-tex-work/html/figures/tex.02.10.png | Bin 0 -> 2653 bytes .../make-tex-work/html/figures/tex.02.11.png | Bin 0 -> 1089 bytes .../make-tex-work/html/figures/tex.04.04.png | Bin 0 -> 3140 bytes .../make-tex-work/html/figures/tex.05.04.png | Bin 0 -> 4305 bytes .../make-tex-work/html/figures/tex.05.06.png | Bin 0 -> 5677 bytes .../make-tex-work/html/figures/tex.06.01.png | Bin 0 -> 470 bytes .../make-tex-work/html/figures/tex.06.02.png | Bin 0 -> 1195 bytes .../make-tex-work/html/figures/tex.06.03.png | Bin 0 -> 11216 bytes .../make-tex-work/html/figures/tex.06.04.png | Bin 0 -> 5465 bytes .../make-tex-work/html/figures/tex.06.05.png | Bin 0 -> 4352 bytes .../make-tex-work/html/figures/tex.06.06.png | Bin 0 -> 5032 bytes .../make-tex-work/html/figures/tex.06.07.png | Bin 0 -> 6691 bytes .../make-tex-work/html/figures/tex.06.08.png | Bin 0 -> 11017 bytes .../make-tex-work/html/figures/tex.06.09.png | Bin 0 -> 13845 bytes .../make-tex-work/html/figures/tex.06.11.png | Bin 0 -> 5007 bytes .../make-tex-work/html/figures/tex.06.12.png | Bin 0 -> 3728 bytes .../make-tex-work/html/figures/tex.06.13.png | Bin 0 -> 4591 bytes .../make-tex-work/html/figures/tex.06.14.png | Bin 0 -> 3374 bytes .../make-tex-work/html/figures/tex.06.20.png | Bin 0 -> 3356 bytes .../make-tex-work/html/figures/tex.07.01.png | Bin 0 -> 4219 bytes .../make-tex-work/html/figures/tex.08.03.png | Bin 0 -> 4381 bytes .../make-tex-work/html/figures/tex.09.01.png | Bin 0 -> 5118 bytes .../make-tex-work/html/figures/tex.09.02.png | Bin 0 -> 5739 bytes .../make-tex-work/html/figures/tex.09.03.png | Bin 0 -> 5006 bytes .../make-tex-work/html/figures/tex.09.04.png | Bin 0 -> 3095 bytes .../make-tex-work/html/figures/tex.09.05.png | Bin 0 -> 3590 bytes .../make-tex-work/html/figures/tex.09.06.png | Bin 0 -> 4793 bytes .../make-tex-work/html/figures/tex.09.07.png | Bin 0 -> 6790 bytes .../make-tex-work/html/figures/tex.09.08.png | Bin 0 -> 2702 bytes .../make-tex-work/html/figures/tex.09.09.png | Bin 0 -> 2614 bytes .../make-tex-work/html/figures/tex.09.10.png | Bin 0 -> 3577 bytes .../make-tex-work/html/figures/tex.09.11.png | Bin 0 -> 2300 bytes .../make-tex-work/html/figures/tex.09.12.png | Bin 0 -> 3187 bytes .../make-tex-work/html/figures/tex.09.13.png | Bin 0 -> 3480 bytes .../make-tex-work/html/figures/tex.09.14.png | Bin 0 -> 4393 bytes .../make-tex-work/html/figures/tex.09.15.png | Bin 0 -> 4326 bytes .../make-tex-work/html/figures/tex.09.16.png | Bin 0 -> 4968 bytes .../make-tex-work/html/figures/tex.09.17.png | Bin 0 -> 2733 bytes .../make-tex-work/html/figures/tex.12.01.png | Bin 0 -> 3430 bytes .../make-tex-work/html/figures/tex.12.02.png | Bin 0 -> 2730 bytes .../make-tex-work/html/figures/tex.12.03.png | Bin 0 -> 1832 bytes .../make-tex-work/html/figures/tex.14.01.png | Bin 0 -> 3628 bytes .../make-tex-work/html/figures/tex.14.02.png | Bin 0 -> 4121 bytes .../make-tex-work/html/figures/tex.14.03.png | Bin 0 -> 2546 bytes .../make-tex-work/html/figures/tex.14.04.png | Bin 0 -> 4813 bytes .../make-tex-work/html/figures/tex.14.05.png | Bin 0 -> 3441 bytes .../make-tex-work/html/figures/tex.15.01.png | Bin 0 -> 10589 bytes .../make-tex-work/html/figures/tex.15.02.png | Bin 0 -> 5226 bytes .../make-tex-work/html/figures/tex.15.03.png | Bin 0 -> 4713 bytes .../make-tex-work/html/figures/tex.15.04.png | Bin 0 -> 3736 bytes .../make-tex-work/html/figures/tex.15.05.png | Bin 0 -> 3106 bytes .../make-tex-work/html/figures/troffvstex.png | Bin 0 -> 2327 bytes .../english/make-tex-work/html/figures/two-rs.png | Bin 0 -> 2001 bytes .../english/make-tex-work/html/figures/we-we.png | Bin 0 -> 1310 bytes .../make-tex-work/html/figures/xypic-example.png | Bin 0 -> 5041 bytes .../doc/english/make-tex-work/html/index.html | 1956 ++++++ .../doc/english/make-tex-work/html/mtw.css | 150 + .../english/make-tex-work/html/mtwcpyright.html | 63 + .../doc/english/make-tex-work/html/pr01.html | 130 + .../doc/english/make-tex-work/html/pr02.html | 1296 ++++ .../doc/english/make-tex-work/html/pt01.html | 489 ++ .../doc/english/make-tex-work/html/pt02.html | 733 ++ .../doc/english/make-tex-work/html/pt03.html | 948 +++ .../doc/english/math-into-latex/errors.txt | 32 + .../texmf-doc/doc/english/math-into-latex/gratzer | 6 + .../texmf-doc/doc/english/math-into-latex/mil.txt | 88 + .../english/math-into-latex/templates/article.tpl | 95 + .../english/math-into-latex/templates/article2.tpl | 100 + .../english/math-into-latex/templates/contents.doc | 14 + .../english/math-into-latex/templates/gallery.tex | 224 + .../english/math-into-latex/templates/ggart.tpl | 97 + .../english/math-into-latex/templates/ggart2.tpl | 102 + .../english/math-into-latex/templates/inbibl.tpl | 77 + .../english/math-into-latex/templates/intrart.tex | 133 + .../doc/english/math-into-latex/templates/math.tex | 21 + .../english/math-into-latex/templates/mathb.tex | 24 + .../english/math-into-latex/templates/note1.tex | 22 + .../english/math-into-latex/templates/note1b.tex | 22 + .../english/math-into-latex/templates/note2.tex | 15 + .../english/math-into-latex/templates/noteslug.tex | 22 + Master/texmf-doc/doc/english/mathmode/Changes | 34 + Master/texmf-doc/doc/english/mathmode/Mathmode.bib | 226 + Master/texmf-doc/doc/english/mathmode/Mathmode.ist | 35 + Master/texmf-doc/doc/english/mathmode/Mathmode.ltx | 306 + Master/texmf-doc/doc/english/mathmode/Mathmode.pdf | Bin 0 -> 1655917 bytes Master/texmf-doc/doc/english/mathmode/Mathmode.tex | 7061 +++++++++++++++++++ Master/texmf-doc/doc/english/mathmode/README | 31 + Master/texmf-doc/doc/english/mathmode/colArray.eps | 2856 ++++++++ Master/texmf-doc/doc/english/mathmode/colArray.pdf | Bin 0 -> 10784 bytes Master/texmf-doc/doc/english/mathmode/exscale.eps | 1279 ++++ Master/texmf-doc/doc/english/mathmode/exscale.pdf | Bin 0 -> 13498 bytes Master/texmf-doc/doc/english/mathmode/node.eps | 585 ++ Master/texmf-doc/doc/english/mathmode/node.pdf | Bin 0 -> 20295 bytes Master/texmf-doc/doc/english/mathmode/runLaTeX | 8 + Master/texmf-doc/doc/english/mathmode/runVTeX | 6 + Master/texmf-doc/doc/english/mathmode/showexpl.cfg | 67 + Master/texmf-doc/doc/english/mathmode/styles.eps | 7360 ++++++++++++++++++++ Master/texmf-doc/doc/english/mathmode/styles.pdf | Bin 0 -> 90573 bytes .../metafont-for-beginners.tex | 1313 ++++ Master/texmf-doc/doc/english/metafp/metafp.pdf | Bin 0 -> 198021 bytes .../doc/english/metapost-examples/Makefile | 21 + .../texmf-doc/doc/english/metapost-examples/README | 21 + .../texmf-doc/doc/english/metapost-examples/data1 | 11 + .../texmf-doc/doc/english/metapost-examples/data2 | 11 + .../texmf-doc/doc/english/metapost-examples/data3 | 11 + .../doc/english/metapost-examples/examples.mp | 4896 +++++++++++++ .../doc/english/metapost-examples/mp2html.pl | 170 + 221 files changed, 73564 insertions(+) create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/README create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-03 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-04 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-03-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-03 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-04 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-05 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-06 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-07 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-08 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-09 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-03 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-03 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-04 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-05 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-06 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-07 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-08 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-09 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-07-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-10-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-11-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-01 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-02 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-03 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-04 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-05 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-06 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-07 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-08 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/apa.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/apb.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/apc.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/apd.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ape.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch01.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch02.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch03.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch04.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch05.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch06.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch07.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch08.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch09.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch10.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch11.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch12.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch13.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch14.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch15.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/ch16.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/co01.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/amspell.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/arab.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/badfont.err create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/bbox.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/bezier.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/caffeine.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/cover.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/eepic.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/eight.mf create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/epic.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/fi-ligs.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/frog.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/g-h.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.1 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.2 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/hebrew-sample.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/jgenji.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/lint.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/lithium.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.1 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.2 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.3 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.4 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.5 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.6 create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/mozart.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-amt.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-inf.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-lol.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ltx.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ptx.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pgenji.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pictex-example.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pictexex.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pmc-sample.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pmcs-sample.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/pmj-sample.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/sample.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.06.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.07.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.08.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.09.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.10.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.11.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.04.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.06.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.06.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.07.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.08.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.09.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.11.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.12.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.13.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.14.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.20.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.07.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.08.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.06.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.07.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.08.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.09.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.10.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.11.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.12.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.13.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.14.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.15.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.16.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.17.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.01.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.02.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.03.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.04.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.05.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/troffvstex.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/two-rs.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/we-we.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/figures/xypic-example.png create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/index.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/mtw.css create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/mtwcpyright.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/pr01.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/pr02.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/pt01.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/pt02.html create mode 100644 Master/texmf-doc/doc/english/make-tex-work/html/pt03.html create mode 100644 Master/texmf-doc/doc/english/math-into-latex/errors.txt create mode 100644 Master/texmf-doc/doc/english/math-into-latex/gratzer create mode 100644 Master/texmf-doc/doc/english/math-into-latex/mil.txt create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/article.tpl create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/article2.tpl create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/contents.doc create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/gallery.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/ggart.tpl create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/ggart2.tpl create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/inbibl.tpl create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/intrart.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/math.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/mathb.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/note1.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/note1b.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/note2.tex create mode 100644 Master/texmf-doc/doc/english/math-into-latex/templates/noteslug.tex create mode 100644 Master/texmf-doc/doc/english/mathmode/Changes create mode 100644 Master/texmf-doc/doc/english/mathmode/Mathmode.bib create mode 100644 Master/texmf-doc/doc/english/mathmode/Mathmode.ist create mode 100644 Master/texmf-doc/doc/english/mathmode/Mathmode.ltx create mode 100644 Master/texmf-doc/doc/english/mathmode/Mathmode.pdf create mode 100644 Master/texmf-doc/doc/english/mathmode/Mathmode.tex create mode 100644 Master/texmf-doc/doc/english/mathmode/README create mode 100644 Master/texmf-doc/doc/english/mathmode/colArray.eps create mode 100644 Master/texmf-doc/doc/english/mathmode/colArray.pdf create mode 100644 Master/texmf-doc/doc/english/mathmode/exscale.eps create mode 100644 Master/texmf-doc/doc/english/mathmode/exscale.pdf create mode 100644 Master/texmf-doc/doc/english/mathmode/node.eps create mode 100644 Master/texmf-doc/doc/english/mathmode/node.pdf create mode 100644 Master/texmf-doc/doc/english/mathmode/runLaTeX create mode 100644 Master/texmf-doc/doc/english/mathmode/runVTeX create mode 100644 Master/texmf-doc/doc/english/mathmode/showexpl.cfg create mode 100644 Master/texmf-doc/doc/english/mathmode/styles.eps create mode 100644 Master/texmf-doc/doc/english/mathmode/styles.pdf create mode 100644 Master/texmf-doc/doc/english/metafont-for-beginners/metafont-for-beginners.tex create mode 100644 Master/texmf-doc/doc/english/metafp/metafp.pdf create mode 100644 Master/texmf-doc/doc/english/metapost-examples/Makefile create mode 100644 Master/texmf-doc/doc/english/metapost-examples/README create mode 100644 Master/texmf-doc/doc/english/metapost-examples/data1 create mode 100644 Master/texmf-doc/doc/english/metapost-examples/data2 create mode 100644 Master/texmf-doc/doc/english/metapost-examples/data3 create mode 100644 Master/texmf-doc/doc/english/metapost-examples/examples.mp create mode 100644 Master/texmf-doc/doc/english/metapost-examples/mp2html.pl (limited to 'Master/texmf-doc/doc') diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/README b/Master/texmf-doc/doc/english/make-tex-work/examples/README new file mode 100644 index 00000000000..d6c07fe3d73 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/README @@ -0,0 +1,56 @@ +This file is README dated 18 Apr 1994. + +This directory contains the examples from _Making TeX Work_: + +Title : Making TeX Work +Author : Norman Walsh +Publisher : O'Reilly and Associates +Date : April, 1994 +ISBN : 1-56592-051-1 +Pages : 518 +Price : US$29.95 + +The examples are: + +ex-01-01: example 1-1: An Example of a TeX Document +ex-01-02: example 1-2: A typical bibliography database entry +ex-02-01: example 2-1: A Simple Driver File +ex-02-02: example 2-2: Local Variables in an Emacs Buffer +ex-02-03: example 2-3: A Contrived Error +ex-02-04: example 2-4: Revision Control Macros for TeX Documents Using RCS +ex-03-01: example 3-1: The Document BADFONT.TeX +ex-04-01: example 4-1: Plain TeX Input +ex-04-02: example 4-2: LaTeX2e Input +ex-04-03: example 4-3: LaTeX Input File +ex-04-04: example 4-4: AMS-TeX Input File +ex-04-05: example 4-5: Lollipop Input File +ex-04-06: example 4-6: TeXinfo Input +ex-04-07: example 4-7: The ChemTeX Source for Caffeine +ex-04-08: example 4-8: The ChemStruct Source for the Lithium Cation +ex-04-09: example 4-9: The MusicTeX Source for Figure 4-7 +ex-05-01: example 5-1: Font-shape Declaration with NFSS2 +ex-05-02: example 5-2: Font-shape declaration with NFSS2 (simplified) +ex-05-03: example 5-3: The PStoTeXfont script +ex-06-01: example 6-1: The Input for the Plain TeX Diagram +ex-06-02: example 6-2: The LaTeX Input for Figure 6-2 +ex-06-03: example 6-3: The epic Input for Figure 6-3 +ex-06-04: example 6-4: The Input for Figure 6-4 +ex-06-05: example 6-5: PiCTeX Input for Figure 6-5 +ex-06-06: example 6-6: The XY-pic Input for Figure 6-6 +ex-06-07: example 6-7: The DraTeX Input for Figure 6-7 +ex-06-08: example 6-8: Converting EPS to a Bitmap with Ghostview +ex-06-09: example 6-9: Script for Inserting a Captured TeXt Screen +ex-07-01: example 7-1: A Sample Multilingual Document Using English and French +ex-10-01: example 10-1: TeXinfo Commands +ex-11-01: example 11-1: The Code for the Figure Eight +ex-12-01: example 12-1: A Sample BIBTeX entry +ex-12-02: example 12-2: A Tib style database entry +ex-D-01 : example D-1: MakeTeXPK.pl +ex-D-02 : example D-2: MakeTeXTFM.pl +ex-D-03 : example D-3: dvidxx.btm +ex-D-04 : example D-4: makepk.btm +ex-D-05 : example D-5: enc-afm.pl +ex-D-06 : example D-6: TeXtoXfont +ex-D-07 : example D-7: PStoXfont +ex-D-08 : example D-8: txt2verb.pl + diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-01 new file mode 100644 index 00000000000..acb17e7c033 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-01 @@ -0,0 +1,8 @@ +\def\ora{O'Reilly \& Associates} +\font\orafont=grlg10 +\parskip=\baselineskip +\parindent=0pt +\pageno=5 +This book is published by \ora\ in +the \textit{Nutshell} series. +\bye diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-02 new file mode 100644 index 00000000000..8439f035edf --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-01-02 @@ -0,0 +1,9 @@ +@Book{kn:texbook, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = "Addison-Wesley", + year = 1989, + edition = "Fifteenth", + isbn = "0-201-13447-0" + note = "Paperback ISBN: 0-201-13448-9" +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-01 new file mode 100644 index 00000000000..09e32f3cde3 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-01 @@ -0,0 +1,6 @@ +\documentstyle[ora]{book} +\begin{document} + \input{intro} + \input{chap1} + \input{chap2} +\end{document} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-02 new file mode 100644 index 00000000000..45593e4c7dd --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-02 @@ -0,0 +1,4 @@ +% Local Variables: +% TeX-master: "driver.tex" +% TeX-command-default: "LaTeX" +% End: diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-03 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-03 new file mode 100644 index 00000000000..4992587b605 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-03 @@ -0,0 +1,12 @@ +This is TeX version 3.141... +** (flintstone.tex +some +messages [1] +(fred.tex [2] +some more +messages +[3] ) (wilma.tex [4] +! Undefined control sequence. +the dog \dino + tipped over the car. +l.6 the dog \dino\ tipped over the car. diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-04 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-04 new file mode 100644 index 00000000000..a949b916902 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-02-04 @@ -0,0 +1,33 @@ + Documents Using RCS} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% RCS definitions... +% +\newif\ifdraft +\def\RCSID$#1${% + \ifdraft{\tolerance=100000% + \hbadness=100000% + \raggedright% + \marginpar{\tiny Draft #1}}% + \typeout{Draft #1}% + \else\typeout{Production run #1}\fi% +} + +\def\RCSmargid$#1: #2 #3 #4 #5 #6 #7${% +% #1 = ``Id'' +% #2 = filename +% #3 = vers +% #4 = date +% #5 = time +% #6 = author +% #7 = state [locker] + \ifdraft + \setbox0=\hbox to 0pt{% + \tolerance=100000% + \hbadness=100000% + \parbox{4in}{% + \rm\tiny #2\\ #3\\ #4}% + \hss}% + \marginpar{\box0}% + \typeout{Draft Id: #2 #3 #4 #5 #6 #7}% + \fi +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-03-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-03-01 new file mode 100644 index 00000000000..3905e43def2 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-03-01 @@ -0,0 +1,22 @@ +\documentstyle{article} +% The following definition changes the font that LaTeX +% uses for the 'Large' font. I have introduced a typo +% into the definition, ``\fontsiz'' should be ``\fontsize''. +% +% The first time a \Large font is requested, an error will occur. +% +\renewcommand{\Large}{\fontsiz{17}{20pt}\selectfont} +\begin{document} + +This text precedes the first section header. + +% Note: LaTeX uses the \Large font in section +% headers...this will fail in a confusing way +% because the error is deep within the definition +% of \section where \Large is used... +% +\section{First Section} + +This is the first and only sentence of the first section. + +\end{document} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-01 new file mode 100644 index 00000000000..1b7d26d9380 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-01 @@ -0,0 +1,32 @@ +% Format: Plain +\font\chapfont=cmbx12 scaled 1728 +\font\titlefont=cmbx12 scaled 2073 +\font\secfont=cmbx12 scaled 1200 + +\parskip=\baselineskip +\parindent=0pt +\hsize=5in +\hoffset=.75in + +\leftline{\chapfont Chapter 1} +\vskip36pt + +\leftline{\titlefont Unsolved Problems} +\vskip36pt + +\leftline{\secfont 1.1\ \ Odd Perfect Numbers} +\vskip12pt + +A number is said to be {\it perfect\/} if it +is the sum of its divisors. For example, $6$ is +perfect because $1+2+3 = 6$, and $1$, $2$, and $3$ +are the only numbers that divide evenly into $6$ +(apart from $6$ itself). + +It has been shown that all even perfect numbers +have the form $$2^{p-1}(2^{p}-1)$$ where $p$ +and $2^{p}-1$ are both prime. + +The existence of {\it odd\/} perfect numbers is +an open question. +\bye diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-02 new file mode 100644 index 00000000000..fd640088e08 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-02 @@ -0,0 +1,25 @@ +% Format: LaTeX2e +\documentclass{report} + +\setlength{\parskip}{\baselineskip} +\setlength{\parindent}{0pt} + +\begin{document} + +\chapter{Unsolved Problems} + +\section{Odd Perfect Numbers} + +A number is said to be \emph{perfect} if it +is the sum of its divisors. For example, $6$ is +perfect because \(1+2+3 = 6\), and $1$, $2$, and $3$ +are the only numbers that divide evenly into $6$ +(apart from 6 itself). + +It has been shown that all even perfect numbers +have the form \[2^{p-1}(2^{p}-1)\] where $p$ +and \(2^{p}-1\) are both prime. + +The existence of \emph{odd} perfect numbers is +an open question. +\end{document} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-03 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-03 new file mode 100644 index 00000000000..3119cf8bab4 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-03 @@ -0,0 +1,25 @@ +% Format: LaTeX +\documentstyle{report} + +\setlength{\parskip}{\baselineskip} +\setlength{\parindent}{0pt} + +\begin{document} + +\chapter{Unsolved Problems} + +\section{Odd Perfect Numbers} + +A number is said to be {\em perfect\/} if it +is the sum of its divisors. For example, $6$ is +perfect because \(1+2+3 = 6\), and $1$, $2$, and $3$ +are the only numbers that divide evenly into $6$ +(apart from 6 itself). + +It has been shown that all even perfect numbers +have the form \[2^{p-1}(2^{p}-1)\] where $p$ +and \(2^{p}-1\) are both prime. + +The existence of {\em odd\/} perfect numbers is +an open question. +\end{document} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-04 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-04 new file mode 100644 index 00000000000..f6ac1adcc9b --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-04 @@ -0,0 +1,27 @@ +% Format: AMSTeX +\documentstyle{amsppt} + +\parindent=0pt +\parskip=\baselineskip +\hoffset=.75in + +\topmatter +\title \chapter{1} Unsolved Problems\endtitle +\endtopmatter + +\document +\head{1.1} Odd Perfect Numbers\endhead + +A number is said to be {\it perfect\/} if it +is the sum of its divisors. For example, $6$ is +perfect because $1+2+3 = 6$, and $1$, $2$, and $3$ +are the only numbers that divide evenly into $6$ +(apart from $6$ itself). + +It has been shown that all even perfect numbers +have the form $$2^{p-1}(2^{p}-1)$$ where $p$ +and $2^{p}-1$ are both prime. + +The existence of {\it odd\/} perfect numbers is +an open question. +\enddocument diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-05 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-05 new file mode 100644 index 00000000000..cccb0e95601 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-05 @@ -0,0 +1,42 @@ +% Format: Lollipop +\DefineHeading:Chapter + breakbefore:yes whiteafter:12pt + line:start PointSize:20 Style:bold + literal:Chapter Spaces:1 ChapterCounter + line:stop + vwhite:36pt + line:start PointSize:24 Style:bold title + line:stop + vwhite:24pt + Stop +\DefineHeading:Section + whitebefore:{20pt plus 2pt} whiteafter:14pt + line:start PointSize:14 Style:bold + ChapterCounter . SectionCounter + Spaces:1 title line:stop + label:start ChapterCounter . SectionCounter + label:stop + Stop +\GoverningCounter:Section=Chapter +\AlwaysIndent:no +\Distance:parskip=12pt +\Distance:hoffset=.75in +\Distance:voffset=.5in +\Start +\Chapter Unsolved Problems + +\Section Odd Perfect Numbers + +A number is said to be {\it perfect\/} if it +is the sum of its divisors. For example, $6$ is +perfect because $1+2+3 = 6$, and $1$, $2$, and $3$ +are the only numbers that divide evenly into $6$ +(apart from $6$ itself). + +It has been shown that all even perfect numbers +have the form $$2^{p-1}(2^{p}-1)$$ where $p$ +and $2^{p}-1$ are both prime. + +The existence of {\it odd\/} perfect numbers is +an open question. +\Stop diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-06 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-06 new file mode 100644 index 00000000000..cc95fc65a9a --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-06 @@ -0,0 +1,38 @@ +\input texinfo @c -*- TeXinfo -*- +@setfilename perf-inf.inf +@ifinfo + @paragraphindent 0 +@end ifinfo +@iftex + @defaultparindent=0pt @parindent=0pt +@end iftex + +@node Top, , (dir), (dir) +@chapter Unsolved Problems +@section Odd Perfect Numbers + +A number is said to be @i{perfect} if it is +the sum of its divisors. For example, 6 is +perfect because +@tex $1+2+3 = 6$, +@end tex +@ifinfo +1+2+3 = 6, +@end ifinfo +and 1, 2, and 3 are the only numbers that divide +evenly into 6 (apart from 6 itself). + +It has been shown that all even perfect numbers +have the form +@tex $$2^{p-1}(2^{p}-1)$$ where $p$ and $2^{p}-1$ +@end tex +@ifinfo +@center 2^(p-1) (2^p - 1) + +where p and 2^p - 1 +@end ifinfo +are both prime. + +The existence of @i{odd} perfect numbers is an +open question. +@bye diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-07 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-07 new file mode 100644 index 00000000000..45d24e38c54 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-07 @@ -0,0 +1,7 @@ +\initial +\len=4 +\def\H{\hbox{\rm H}} +\def\C{\hbox{\rm C}} +\def\O{\hbox{\rm O}} + +\[ \purine{$\H_3\C$}{$\O$}{$\C\H_3$}{Q}{$\O$}{Q}{Q}{D}{$\C\H_3$} \] diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-08 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-08 new file mode 100644 index 00000000000..d8c9b953434 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-08 @@ -0,0 +1,17 @@ +\structure{\atom{~~Li$^+$} +\side{\nwbelow\atom{O} +\side{\nsingle\atom{H}\nnwbelow\atom{O}\side{\wsingle\atom{H}} +\nsingle\atom{H}}\swsingle\atom{H}\wnwbelow\atom{O} +\side{\wsingle\atom{H}}\nsingle\atom{H}} +\side{\nebelow\atom{O} +\side{\nsingle\atom{H}\nnebelow\atom{O}\side{\esingle\atom{H}} +\nsingle\atom{H}}\sesingle\atom{H}\enebelow\atom{O} +\side{\esingle\atom{H}}\nsingle\atom{H}} +\side{\swbelow\atom{O} +\side{\ssingle\atom{H}\sswbelow\atom{O}\side{\wsingle\atom{H}} +\ssingle\atom{H}}\nwsingle\atom{H}\wswbelow\atom{O} +\side{\wsingle\atom{H}}\ssingle\atom{H}} +\side{\sebelow\atom{O} +\side{\ssingle\atom{H}\ssebelow\atom{O}\side{\esingle\atom{H}} +\ssingle\atom{H}}\nesingle\atom{H}\esebelow\atom{O} +\side{\esingle\atom{H}}\ssingle\atom{H}}} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-09 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-09 new file mode 100644 index 00000000000..c86290fcc83 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-04-09 @@ -0,0 +1,16 @@ +\begin{music} +\parindent 1cm +\def\nbinstruments{1}\relax +\def\instrumenti{Piano}% +\nbporteesi=2\relax +\generalmeter{\meterfrac{4}{4}}\relax +\debutextrait +\normal +\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes +\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\ql l\sk\ql n\enotes +\barre +\Notes\ibu0f0\qh0{dgf}|\qlp i\enotes +\notes\tbu0\qh0g|\ibbl1j3\qb1j\tbl1\qb1k\enotes +\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes +\finextrait +\end{music} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-01 new file mode 100644 index 00000000000..48a3a5809aa --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-01 @@ -0,0 +1,5 @@ +\DeclareFontShape{OT1}{logo}{m}{n}{% + <-8>sub * cmr/m/n% + <8><9><10>gen * logo% + <10.95>logo10 at 10.95pt% + <12->logo10}{} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-02 new file mode 100644 index 00000000000..29914979d03 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-02 @@ -0,0 +1,5 @@ +\DeclareFontShape{OT1}{logo}{m}{n}{% + <-8>sub * cmr/m/n% + <8-9>logo8% + <9-10>logo9% + <10->logo10}{} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-03 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-03 new file mode 100644 index 00000000000..89f65e1c984 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-05-03 @@ -0,0 +1,48 @@ +#!/usr/local/bin/bash +# +# This script file makes a new TeX font from a PS outline. +# +# Parameters are: +# +# name dpi bdpi [mag mode destdir] +# +# `name' is the name of the font, such as `ptmr'. `dpi' +# is the resolution the font is needed at. `bdpi' is +# the base resolution. +# +# This script ignores the remaining parameters. They are +# left here to document the fact that the caller may provide +# them. They may be provided because the caller thinks +# MetaFont is going to do the work... +# +# Of course, this needs to be set up for your site. +# +# TEMPDIR needs to be unique for each process because of the +# possibility of simultaneous processes running this script. + +TEMPDIR=/tmp/temp-tex-PS.$$ +NAME=$1 +DPI=$2 +BDPI=$3 + +LOCALDIR=/usr/local/lib/mf/fonts +DESTDIR=$LOCALDIR/pk + +BASENAME=$NAME.$DPI +PFADIR=/usr/local/lib/tex/ps/outlines + +# Clean up on normal or abnormal exit +trap "cd /; rm -rf $TEMPDIR" 0 1 2 15 + +mkdir $TEMPDIR +cd $TEMPDIR + +# We proceed by making a 10pt font at the resolution +# requested... +echo Making ${DPI}dpi version of $NAME. +ps2pk -X$DPI -P10 -a$PFADIR/$NAME.afm \ + $PFADIR/$NAME.pfa ${BASENAME}pk + +mv ${BASENAME}pk $DESTDIR + +exit 0 diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-01 new file mode 100644 index 00000000000..173cc3c3607 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-01 @@ -0,0 +1,12 @@ +\newdimen\unitlength +\unitlength=1cm + +\def\plot(#1,#2){% + \rlap{\kern#1\unitlength\raise#2\unitlength% + \hbox{$\scriptstyle\bullet\;(#1,#2)$}}} + +\centerline{% + \hbox{\plot(0,0) + \plot(1,1) + \plot(-3,2)}% +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-02 new file mode 100644 index 00000000000..e1bf051272f --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-02 @@ -0,0 +1,43 @@ +\unitlength=1.00mm +\special{em:linewidth 0.4pt} +\linethickness{0.4pt} +\begin{picture}(93.00,40.00) +\put(0.00,10.00){\line(1,0){70.00}} +\put(70.00,10.00){\line(2,3){20.00}} +\put(90.00,40.00){\line(-1,0){70.00}} +\put(20.00,40.00){\line(-2,-3){20.00}} +\put(70.00,10.00){\line(1,0){1.00}} +\put(72.00,10.00){\line(1,0){1.00}} +\put(74.00,10.00){\line(1,0){1.00}} +\put(76.00,10.00){\line(1,0){1.00}} +\put(78.00,10.00){\line(1,0){1.00}} +\put(80.00,10.00){\line(1,0){1.00}} +\put(82.00,10.00){\line(1,0){1.00}} +\put(84.00,10.00){\line(1,0){1.00}} +\put(86.00,10.00){\line(1,0){1.00}} +\put(88.00,10.00){\line(1,0){1.00}} +\put(90.00,10.00){\line(0,1){1.00}} +\put(90.00,12.00){\line(0,1){1.00}} +\put(90.00,14.00){\line(0,1){1.00}} +\put(90.00,16.00){\line(0,1){1.00}} +\put(90.00,18.00){\line(0,1){1.00}} +\put(90.00,20.00){\line(0,1){1.00}} +\put(90.00,22.00){\line(0,1){1.00}} +\put(90.00,24.00){\line(0,1){1.00}} +\put(90.00,26.00){\line(0,1){1.00}} +\put(90.00,28.00){\line(0,1){1.00}} +\put(90.00,30.00){\line(0,1){1.00}} +\put(90.00,32.00){\line(0,1){1.00}} +\put(90.00,34.00){\line(0,1){1.00}} +\put(90.00,36.00){\line(0,1){1.00}} +\put(90.00,38.00){\line(0,1){1.00}} +\put(87.00,10.00){\line(0,1){3.00}} +\put(87.00,13.00){\line(1,0){3.00}} +\put(93.00,20.00){\vector(0,-1){10.00}} +\put(93.00,30.00){\vector(0,1){10.00}} +\put(93.00,25.00){\makebox(0,0)[cc]{$h$}} +\put(30.00,7.00){\vector(-1,0){30.00}} +\put(40.00,7.00){\vector(1,0){30.00}} +\put(35.00,7.00){\makebox(0,0)[cc]{$w$}} +\put(45.00,25.00){\makebox(0,0)[cc]{$A=h\times w$}} +\end{picture} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-03 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-03 new file mode 100644 index 00000000000..3ab8143acaf --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-03 @@ -0,0 +1,14 @@ +\unitlength = 1mm +\begin{picture}(50,100)(0,0) +\put(0,0){\tiny \grid(50,50)(5,5)[0,0]} +\put(25,25){\circle{50}} +\drawline(15,0)(20,5)(30,10)(50,35) +\drawline[-50](10,5)(15,10)(25,15)(45,40) +\thicklines +\dottedline{1.4}(5,10)(10,15)(15,25)(40,45) +\dashline{2}(0,15)(5,20)(10,30)(35,50) +\thinlines +\begin{drawjoin} +\jputfile{epicdata}{\picsquare} +\end{drawjoin} +\end{picture} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-04 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-04 new file mode 100644 index 00000000000..0aeedce2493 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-04 @@ -0,0 +1,25 @@ +\unitlength = 1mm +\begin{picture}(100,50)(0,0) +\put(0,0){\tiny \grid(100,50)(10,10)[0,0]} +\bezier{500}(0,0)(0,0)(100,50) +\bezier{500}(0,0)(10,0)(100,50) +\bezier{500}(0,0)(20,0)(100,50) +\bezier{500}(0,0)(30,0)(100,50) +\bezier{500}(0,0)(40,0)(100,50) +\bezier{500}(0,0)(50,0)(100,50) +\bezier{500}(0,0)(60,0)(100,50) +\bezier{500}(0,0)(70,0)(100,50) +\bezier{500}(0,0)(80,0)(100,50) +\bezier{500}(0,0)(90,0)(100,50) +\bezier{500}(0,0)(100,0)(100,50) + +\bezier{500}(0,0)(0,50)(100,50) +\bezier{500}(0,0)(0,40)(100,50) +\bezier{500}(0,0)(0,30)(100,50) +\bezier{500}(0,0)(0,20)(100,50) +\bezier{500}(0,0)(0,10)(100,50) +\bezier{500}(0,0)(0,0)(100,50) + +\multiput(0,0)(10,0){11}{\circle*{1}} +\multiput(0,0)(0,10){6}{\circle*{1}} +\end{picture} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-05 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-05 new file mode 100644 index 00000000000..6be82ab7523 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-05 @@ -0,0 +1,91 @@ +\newdimen\unit \unit=1.375in +\newdimen\shadeunit +\newif \ifFirstPass +\FirstPasstrue +%\FirstPassfalse % uncomment this after you have the size you want +% +\def\DF{{\cal A}}% +% +%The following figure appears in the preface to the \PiCTeX\ manual +% +$$ +\beginpicture + \ifFirstPass + \savelinesandcurves on "pictex-Arcsine.tex" + \else + \replot "pictex-Arcsine.tex" + \fi +% \ninepoint % (See Appendix E of the TeXbook.) + \normalgraphs + % Density plot + \setcoordinatesystem units <\unit,.4\unit> point at 0 0 + \setplotarea x from 0 to 1, y from 0 to 2.5 + \axis bottom invisible label {\lines {$t$\cr + shaded area is $\DF(\beta) - \DF(\alpha)$\cr}} ticks + numbered from 0.0 to 1.0 by 0.5 + unlabeled short quantity 11 + length <0pt> withvalues $\alpha$ $\beta$ / at .65 .85 / / + \axis left invisible label {$a(t)$} ticks + numbered from 0.0 to 2.0 by 1.0 + unlabeled short from 0.5 to 2.5 by 1.0 / + \plotheading{\lineskiplimit=1pt \lines{% + Density\cr + $a(t) = 1\big/\bigl(\pi \sqrt{t(1-t)}\,\bigr)$\cr + of the arc sine law\cr}} + \grid 1 1 + \putrule from .65 0.0 to .65 .66736 + \putrule from .85 0.0 to .85 .89145 + \shadeunit=.2\unit \divide\shadeunit by 12 + \setshadegrid span <\shadeunit> point at .75 0 + \setquadratic + \vshade .65 0 .66736 <,,,1pt> .75 0 .73511 .85 0 .89145 / + % Move origin to (.5,0) + % Left half} + \ifFirstPass + \setcoordinatesystem point at -.5 0 + \inboundscheckon + \plot -.48429 2.55990 -.47553 2.06015 -.46489 1.72936 / + \inboundscheckoff + \plot -.46489 1.72936 -.43815 1.32146 -.40451 1.08308 + -.36448 .92999 -.31871 .82623 -.26791 .75400 + -.21289 .70358 -.12434 .65727 .0 .63662 / + % Right half + \inboundscheckon + \plot .48429 2.55990 .47553 2.06015 .46489 1.72936 / + \inboundscheckoff + \plot .46489 1.72936 .43815 1.32146 .40451 1.08308 + .36448 .92999 .31871 .82623 .26791 .75400 + .21289 .70358 .12434 .65727 .0 .63662 / + \fi + % Distribution function + % Set origin of new coordinate system 1.7*1.375in=2.34in + % to the right of the original origin. + \setcoordinatesystem units <\unit,\unit> point at -1.7 0 + \setplotarea x from 0 to 1, y from 0 to 1 + \axis bottom label {$x\vphantom{t}$} ticks + numbered from 0.0 to 1.0 by 0.5 unlabeled short quantity 11 / + \axis left label {$\DF(x)$} ticks + numbered from 0.0 to 1.0 by 0.5 unlabeled short quantity 11 / + \plotheading{\lines{% + Distribution function\cr + $\DF(x) = {2\over \raise1pt\hbox{\seveni ^^Y}} + \arcsin(\sqrt{x}\,)$\cr + of the arc sine law\cr}} + \linethickness=.25pt \grid {20} {20} + \linethickness=.4pt \grid 2 2 + % Left half + % Now move origin of coordinate system up to (.5,.5) + \ifFirstPass + \setcoordinatesystem point at -2.2 -.5 + \plot -.50000 -.50 -.49901 -.48 -.49606 -.46 + -.49104 -.44 -.48439 -.42 -.47553 -.40 -.46489 -.38 + -.43815 -.34 -.40451 -.30 -.36448 -.26 -.31871 -.22 + -.26791 -.18 -.21289 -.14 -.12434 -.08 .0 .0 / + % Right half + \plot .50000 .50 .49901 .48 .49606 .46 + .49104 .44 .48439 .42 .47553 .40 .46489 .38 + .43815 .34 .40451 .30 .36448 .26 .31871 .22 + .26791 .18 .21289 .14 .12434 .08 .0 .0 / + \fi +\endpicture +$$ diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-06 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-06 new file mode 100644 index 00000000000..c589bdde904 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-06 @@ -0,0 +1,46 @@ +% Graph representing BAWL term [1]++[2]. [XY-pic & -*-tex-*-] +% by Kristoffer H. Rose +% +\def\n#1{\llap{{\sevenit#1\/}:\,}} +\def\op#1{(\mskip-.5\thinmuskip{#1}\mskip-.5\thinmuskip)} +\def\concat{\mathbin{\text{\rm+\kern-.5em+}}} +% +\def\du#1#2{% + % #1: slidesign, #2: #rows to go down. + \save\aftergo{\go="p",[0,0]!<#1\jot,0pt>% + \xto`d[#2,0]+<-2.5pc,-.8pc>`"p" "p"\restore}} +% +\def\dul#1#2#3{% +% #1: slidesign, #2: #rows to go down; #3: #columns to go left. +\save\aftergo{\go="p",[0,0]!<#1\jot,0pt>% +\xto`d[#2,0]+<-2.5pc,-.8pc>`[#2,-#3]+<-2.5pc,0pc> `"p" "p"\restore}} +% +\spreaddiagramrows{-1.4pc} +\spreaddiagramcolumns{-1pc} +% +$$ +\displaylines{\quad + \left\lceil\openup-\jot\eqalign{ + [1]\concat[2] \quad\text{where}\qquad + [\,] \concat ys &= ys \cr + (x:xs) \concat ys &= x:(xs \concat ys)}\right\rceil +\hfill\cr\hfill + =\qquad + {\diagram&& & & &&\n1\@\dlto\xto[2,2]\\ + & & & & &\n2{!\@}\xto[3,-2]\drto\\ + & & & & &&\n3\op:\dlto\dto&&\n4\op:\dlto\dto\\ + & & & & &\n51&\n6[\,] &\n72&\n8[\,]\\ + & & &\n{10}\lor\dlto\drrto \go+<-3em,0em>="10"\\ + & &\n{11}\lambda \dlto\ddto&&&\n{12}\lambda \dlto\drto\\ + &\n{13}\@\dlto\drto&& &\n{14}\@\dlto\drto + &&\n{15}\op:\du04[3,-2]\drrto\\ +\n{16}{!\@}\dul000"10"\drto&&\n{17}{?}&\n{18}{!\@} \dul023"10" \drto + &&\n{19}{?}&&&\n{20}\@\ddlto\du00[0,-3]\\ + &\n{21}[\,]& & &\n{22}\op:\dto\drto&& & &\\ + & & & &\n{23}{?}&\n{24}{?} + &&\n{25}\@ \dul-27"10"\du+3[0,-2]\\ + & & & & & & &\\ + & & & & & & &\\ + & & & & & & &\enddiagram} +\quad\cr} +$$ diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-07 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-07 new file mode 100644 index 00000000000..e203af7fad7 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-07 @@ -0,0 +1,59 @@ +\Draw \Ragged(4) %%%%%%%%% tree %%%%%%%%%%% + +\Define\DotsToLoc(1){ \MarkLoc(x) + \CSeg\DoLine(x,#1)(5){ + \MoveF(-3)\LineF(1)} } +\PictNode(3){ \IF \EqText(,#2) \THEN \Text(--#1--) \ELSE + \ThreeDim(#1,#2,#3) + \MarkPLoc(1) \Line(50,0,0) \MarkPLoc(2) \Line(0,50,0) + \MarkPLoc(3) \Line(-50,0,0) \MarkPLoc(4) \Line(0,-50,0) + \Move(0,0,50) \MarkPLoc(1') + \Move(50,0,0) \MarkPLoc(2') {\Line(0,0,-50)} + \Line(0,50,0) \MarkPLoc(3') {\Line(0,0,-50)} + \Line(-50,0,0) \MarkPLoc(4') {\Line(0,0,-50)} + \Do(1,4){ \Do(1,4){ + \MarkPLoc(p\Val\I) \I+1; \Move(0,0,-16.66666) + } \Move(16.66666,0,66.66666) } + \TwoDim + \MoveToLL(3,4)(4',1') \DotsToLoc(1') \DotsToLoc(1) + \MoveToLL(2,3)(1',2') \DotsToLoc(1') + \PaintQuad(p0,p1,p5,p4) \PaintQuad(p2,p3,p7,p6) + \PaintQuad(p5,p6,p10,p9) \PaintQuad(p8,p9,p13,p12) + \PaintQuad(p10,p11,p15,p14) + \MoveToLoc(1) \CSeg[0.5]\Move(1,2) \Move(0,-5) + \EntryExit(0,1,0,0) \Text(--(#1,#2,#3)--) + \EndTwoDim + \EndThreeDim \FI } + +\Define\MyEdge(2){\EdgeTo(#1,#2,0,1)} \TreeAlign(V,0,-1)(0,0,0) +\TreeSpec(o,\OvalNode&r,\RectNode)()(\MyEdge) +\TreeSpace(C,10,15) \AdjTree(A,0..0,0,-201,201,0 ) +\Tree()( + 3,o,perspective~~projections~~eye~at~{(x,y,z)},, // + 2,r,125,100,-100 & 0,r,75,75,-100 & 0,r,125,75,-100 // + 0,r,125,125,-200 & 0,r,75,75,-200 //) + +%%%%%%%%% graph %%%%%%%%%%% + +\MoveToNode(2..1,2.5,-1) \MarkLoc(1) +\MoveToNode(1..2,1,-1.5) \MarkLoc(2) +\CSeg\Scale(1,2) \Scale(0.16666,0.14286) + +\Axis(1,2)(E3,&&&&&&&) +\Axis(1,2)(S3,0&1&2&3&4&5&6) + \MoveToLoc(1) +\Table\x{ -1,2 & 0,5 & 4,-3 & -1,-4 & -2,0 } + \PenSize(1.5pt) \Move(1,0) \x(0,99){\Line} +\Table\x{ 3,3 & 1,-5 & -1,-2 & -3,4 } + \Move(1,4) \x(0,99){\Line} + +%%%%%%%%% DraTeX+AlDraTeX logos %%%%%%%%%%% + +\it \TextNode(1){\Text(--#1--)} +\MoveToNode(0..0,0,1) \Units(1pt,1pt) \Move(-60,0) +\EntryExit(1,1,0,0) \Node(d)(--Dra\TeX--) +\MoveToNode(2..0,-1,1) \Move(0,40) \EntryExit(-1,-1,0,0) +\Node(a)(--Al~~Dra~~\TeX--) \PenSize(0.75pt) +\ArrowHeads(2) \CurvedEdgeAt(d,-1,-1,a,0,1)(225,1.1,70,1.3) + +\EndDraw diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-08 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-08 new file mode 100644 index 00000000000..9cbd15ae66d --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-08 @@ -0,0 +1,81 @@ +#! perl +# +# Usage: gs-eps epsfile +# +# Where: epsfile is the encapsulated postscript file +# outputfile is the output file (the default name +# is .) +# resolution is the output resolution (default=300) +# device is the GS driver to use (default=pbm) + +($epsfile,$outputfile,$res,$device) = @ARGV; + +if (! $epsfile) { + printf "Usage: gs-eps epsfile "; + printf " \n"; + printf "Note: parameters are positional. To specify a"; + printf " driver, you\n"; + printf "must also specify an outputfile and resolution.\n"; + exit 1; + } + +$epsfile =~ tr/\\/\//; # translate \foo\bar -> /foo/bar + +if (! -r $epsfile) { + printf "Cannot read file: $epsfile\n"; + exit 1; + } + +if (! $res) { $res = 300 } +if (! $device) { $device = "pbm" } + +if (! $outputfile ) { + @pathname = split(/\//,$epsfile); + $outputfile = $pathname[$#pathname]; + $outputfile =~ s/.eps$//; + $outputfile = join(".", $outputfile, $device); + } + +printf "Converting $epsfile to $outputfile at ${res}dpi...\n"; + +open (EPSFILE,$epsfile); + +undef $bbox; +undef $showpg; +while () { + $bbox = $_ if /\%\%\s*BoundingBox:\s*\d+\s+\d+\s+\d+\s+\d+/; + $showpage = $_ if /showpage/; + last if ($bbox && $showpage); + } + +if (! $bbox) { + printf "Cannot find a bounding box in $epsfile"; + exit 1; + } + +$bbox =~ s/\D*//; # remove everything preceding the digits + +($llx,$lly,$urx,$ury) = split(/\s/,$bbox); + +$xsize = sprintf("%d", (($urx - $llx) * $res / 72) + 0.5); +$ysize = sprintf("%d", (($ury - $lly) * $res / 72) + 0.5); + +printf "$llx neg $lly neg translate .gt. gs-eps-a.$$\n"; +printf "quit .gt. gs-eps-b.$$\n"; + +if (! $showpg) { + printf "showpage .gt. gs-eps-b.$$\n"; + printf "quit .gtgt. gs-eps-b.$$\n"; + } + +# join sillyness to keep the length of lines in the +# script small enough to print in the book. +$gscmd = join(" ", "gs -sDEVICE=$device", + "-q -sOutputFile=$outputfile", + "-g${xsize}x${ysize} -r$res", + "gs-eps-a.$$ $epsfile -", + ".lt. gs-eps-b.$$"); + +printf "$gscmd\n"; + +printf "rm -f gs-eps-a.$$ gs-eps-b.$$\n"; diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-09 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-09 new file mode 100644 index 00000000000..0852abdb0c9 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-06-09 @@ -0,0 +1,33 @@ +% use any IBM OEM encoded fixed width font! +\font\screenfont=ncrr-ibm at 7pt +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% These macros are derived from The TeXbook pg 380-381 +\def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials} +\def\setupverbatim{\screenfont% + \def\par{\leavevmode\endgraf\relax}% + \obeylines\uncatcodespecials% + \catcode`\\=0\catcode`\{=1\catcode`\}=2\obeyspaces} +{\obeyspaces\global\let =\ } % let active space be a control space +\def\screenlisting#1{\par\begingroup% + \def\c##1{\char##1}\setupverbatim\input{#1}% + \endgroup} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\screenbox#1{% + \vbox{\offinterlineskip% + \parskip=0pt\parindent=0pt% + \screenlisting{#1}}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Input converted file '#1' and set it inside a box with '#2' padding +% space around the image. +\def\screendump#1#2{% + \hbox{\vrule% + \vbox{\hrule% + \hbox{\hskip#2% + \vbox{\vskip#2% + \def\twentyxs{xxxxxxxxxxxxxxxxxxxx}% + \setbox0=\hbox{\screenfont\twentyxs\twentyxs\twentyxs\twentyxs}% + \hbox to \wd0{\screenbox{#1}\hss}% + \vskip#2}% + \hskip#2}% + \hrule}% + \vrule\hss}} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-07-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-07-01 new file mode 100644 index 00000000000..fa87ff6c02a --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-07-01 @@ -0,0 +1,8 @@ + Using English and French} +\documentstyle[english,francais]{article} +\begin{document} +This is a document which uses both English and +French. \selectlanguage{french} Mais, Je ne parle plus +la francais. \selectlanguage{english} So I won't try +to make this example very long. +\end{document} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-10-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-10-01 new file mode 100644 index 00000000000..cc95fc65a9a --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-10-01 @@ -0,0 +1,38 @@ +\input texinfo @c -*- TeXinfo -*- +@setfilename perf-inf.inf +@ifinfo + @paragraphindent 0 +@end ifinfo +@iftex + @defaultparindent=0pt @parindent=0pt +@end iftex + +@node Top, , (dir), (dir) +@chapter Unsolved Problems +@section Odd Perfect Numbers + +A number is said to be @i{perfect} if it is +the sum of its divisors. For example, 6 is +perfect because +@tex $1+2+3 = 6$, +@end tex +@ifinfo +1+2+3 = 6, +@end ifinfo +and 1, 2, and 3 are the only numbers that divide +evenly into 6 (apart from 6 itself). + +It has been shown that all even perfect numbers +have the form +@tex $$2^{p-1}(2^{p}-1)$$ where $p$ and $2^{p}-1$ +@end tex +@ifinfo +@center 2^(p-1) (2^p - 1) + +where p and 2^p - 1 +@end ifinfo +are both prime. + +The existence of @i{odd} perfect numbers is an +open question. +@bye diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-11-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-11-01 new file mode 100644 index 00000000000..ea60ed245c5 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-11-01 @@ -0,0 +1,19 @@ +mode_setup; +u# := 2mm#; +define_pixels(u); + +beginchar("A", 8u#, 9u#, 5u#); + z1 = ( 0u, 0u); + z2 = ( 8u, 0u); + z3 = ( 1u, 8u); + z4 = ( 7u, 8u); + pickup pencircle scaled 1u#; + draw z4 .. z1 .. z2 .. z3 .. cycle; + pickup pencircle scaled 3u#; + drawdot z1; + drawdot z2; + drawdot z3; + drawdot z4; +endchar; + +\end diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-01 new file mode 100644 index 00000000000..0f0ccfadbbf --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-01 @@ -0,0 +1,7 @@ +@book{kn:texbook, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = "Addison-Wesley", + year = 1989, + edition = "Fifteenth", +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-02 new file mode 100644 index 00000000000..36100d1df00 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-12-02 @@ -0,0 +1,4 @@ +%A Donald E. Knuth +%T The \TeX{}book +%I Addison-Wesley +%D 1989 diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-01 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-01 new file mode 100644 index 00000000000..391127e360e --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-01 @@ -0,0 +1,568 @@ +#!/usr/local/bin/perl +# +# MakeTeXPK.pl version 1.0, Copyright (C) 1993,94 by Norman Walsh. +# NO WARRANTY. Distribute freely under the GNU GPL. +# +# This script attempts to make a new TeX PK font, because one wasn't +# found. Parameters are: +# +# name dpi bdpi [[[magnification] mode] subdir] +# +# `name' is the name of the font, such as `cmr10' (*NOT* cmr10.mf). +# `dpi' is the resolution the font is needed at. +# `bdpi' is the base resolution, useful for figuring out the mode to +# make the font in. +# `magnification' is a string to pass to MF as the magnification. +# `mode' if supplied, is the mode to use. +# +# This script was designed with two goals in mind: to support recursive +# subdirectory searching for fonts and to provide support for PK files +# built from both MF fonts and PS fonts. It also supports the Sauter +# and DC fonts which can be built at any design size. +# +# This script was designed and tested with the following directory structure +# in mind: each typeface is stored in its own directory with appropriate +# subdirectories for font sources, metrics, and glyphs. The script may not +# work exactly right if you use a different directory structure (the font +# installation, in particular, will probably be incorrect). However, +# several other versions of MakeTeXPK exist which will handle simpler +# directory structures, so you need not feel compelled to use the one +# described here. +# +# For MF fonts: (... is usually something like /usr/local/lib/tex/fonts) +# +# .../typeface/src holds the sources +# /tfm holds the TFM files +# /glyphs root for glyphs +# /glyphs/mode holds the PK files for "mode". +# +# For PS fonts: (... is usually something like /usr/local/lib/tex/fonts) +# +# .../typeface/afm holds the AFM files +# /tfm holds the TFM files +# /vf holds the VF files +# /vpl holds the VPL files +# /glyphs root for glyphs +# /glyphs/pk/999dpi holds the PK files at 999 dpi created by ps2pk +# /glpyhs/type1 holds the type1 PFA/PFB sources for the fonts +# + +require "getopts.pl"; +$rc = &Getopts ('v'); # Get options from the user... + +$USE_MODE_IN_DEST = 1; # Does the destination directory name include + # the name of the mode? + +$VERBOSE = $opt_v || $ENV{"DEBUG_MAKETEXPK"}; # Verbose? + +chop($CWD = `pwd`); # Where are we? +$TEMPDIR = "/tmp/mkPK.$$"; # Where do temp files go? +$MFBASE = "&plain"; # What MF base do we use by default? + +# Where are fonts stored? +$TEXFONTS = $ENV{"TEXFONTS"} || ".:/usr/local/lib/fonts//"; + +# Define modes that should be used for base resolutions... +$DPI_MODES{300} = "laserwriter"; +$DPI_MODES{200} = "FAX"; +$DPI_MODES{360} = "lqhires"; +$DPI_MODES{400} = "nexthi"; +$DPI_MODES{600} = "QMSmoa"; +$DPI_MODES{100} = "nextscreen"; + +$DPI_MODES{100} = "videodisplayi"; +$DPI_MODES{110} = "videodisplayii"; +$DPI_MODES{118} = "videodisplayiii"; +$DPI_MODES{120} = "videodisplayiv"; +$DPI_MODES{124} = "videodisplayv"; +$DPI_MODES{130} = "videodisplayvi"; +$DPI_MODES{140} = "videodisplayvii"; +$DPI_MODES{150} = "videodisplayviii"; + +$DPI_MODES{72} = "MacTrueSize"; +$DPI_MODES{635} = "linolo"; +$DPI_MODES{1270} = "linohi"; +$DPI_MODES{2540} = "linosuper"; + +# Where are the DC fonts stored and what base names can be used? +$DCR_DIR = '/usr/local/lib/fonts/free/dc/src'; +@DCR_GEN = ('dcb','dcbom','dcbx','dcbxsl','dcbxti','dccsc','dcdunh','dcff', + 'dcfi','dcfib','dcitt','dcr','dcsl','dcsltt','dcss','dcssbx', + 'dcssi','dctcsc','dcti','dctt','dcu','dcvtt' ); + +# Where are the Sauter fonts stored and what base names can be used? +$SAUTER_DIR = '/usr/local/lib/fonts/free/sauter/src'; +@SAUTER_GEN = ('cmb','cmbizx','cmbozx','cmbsy','cmbszx','cmbx','cmbxsl', + 'cmbxti', 'cmbz', 'cmbzx', 'cmcsc', 'cmdszc', 'cmdunh', + 'cmex', 'cmff', 'cmfi', 'cmfib', 'cminch', 'cmitt', 'cmmi', + 'cmmib', 'cmr', 'cmrcz', 'cmrisz', 'cmritz', 'cmriz', + 'cmrotz', 'cmroz', 'cmrsz', 'cmrtz', 'cmruz', 'cmrz', + 'cmsl', 'cmsltt', 'cmss', 'cmssbx', 'cmssdc', 'cmssi', + 'cmssq', 'cmssqi', 'cmsy', 'cmtcsc', 'cmtex', 'cmti', + 'cmtt', 'cmu', 'cmvtt', 'czinch', 'czssq', 'czssqi', + 'lasy', 'lasyb'); + +$SAUTER_ROUNDING{11} = '10.954451'; +$SAUTER_ROUNDING{14} = '14.4'; +$SAUTER_ROUNDING{17} = '17.28'; +$SAUTER_ROUNDING{20} = '20.736'; +$SAUTER_ROUNDING{25} = '24.8832'; +$SAUTER_ROUNDING{30} = '29.8685984'; + +# Get the command line arguments... +($NAME, $DPI, $BDPI, $MAG, $MODE, $FORCEDEST, $EXTRA) = @ARGV; + +open (TTY, ">/dev/tty"); # Open the TTY (so we can print messages +select (TTY); $| = 1; select(STDOUT); # even if STDERR and STDOUT are both + # redirected) + +if ($VERBOSE) { + print TTY "$0: font name: $NAME\n"; + print TTY "$0: dpi: $DPI\n"; + print TTY "$0: base dpi: $BDPI\n"; + print TTY "$0: magnification: $MAG\n" if $MAG; + print TTY "$0: mode: $MODE\n" if $MODE; + print TTY "$0: force destination directory: $FORCEDEST\n" if $FORCEDEST; + print TTY "$0: extra: $EXTRA\n" if $EXTRA; +} + +# Make sure we got enough arguments, but not too many... +die "$0: Invalid arguments.\n" if ($BDPI eq "" || $EXTRA ne ""); + +# Calculate the magnification from the requested resolutions if no +# magnification string was provided. +if (!$MAG) { + $MAG = "$DPI/$BDPI"; + print TTY "$0: magnification: $MAG\n" if $VERBOSE; +} + +# Calculate the mode if the mode was not given. Die if we don't know +# what mode to use for the requested base resolution. +if ($MODE eq "") { + $MODE = $DPI_MODES{$BDPI}; + die "$0: No mode for ${BDPI}dpi base resolution.\n" if $MODE eq ""; + print TTY "$0: mode: $MODE\n" if $VERBOSE; +} + +######################################################################## + +# Really start the work... +print TTY "Attempting to build PK file for: $NAME at ${DPI}dpi.\n"; + +$mfFile = $NAME; +$mfFile =~ /^(.*[^0-9])(\d+)$/; +$mfBase = $1; +$mfSize = $2; + +# Presumably, we got here because the PK file doesn't exist. Let's look +# for the MF file or the PFA or PFB file... + +# ... it's more complicated than that... + +# If the font is from a PFA/B file, it may have the name "rxxx" or +# "xxx0" because virtual fonts extract glyphs from the "raw" font. +# We need to find the PFA/B file and install the font with the right name. +# I'm not sure what the best solution would really be, but this will work. +# Luckily, it gets installed with the right name 'cause we already +# figured that out... +# +# A better solution on Unix machines might be to make "xxx0.pfa" or +# "rxxx.pfa" a symbolic link to "xxx.pfa". But that won't work for other +# architectures... + +$t1source = ""; +$t1source = $1 if $mfFile =~ /^r(.*)$/; +$t1source = $1 if $mfFile =~ /^(.*)0$/ && ($t1source eq ""); + +if ($t1source) { + $fontSource = &find_fonts($TEXFONTS, + ("$mfFile.mf", "$mfFile.pfa", "$mfFile.pfb", + "$t1source.pfa", "$t1source.pfb")); +} else { + $fontSource = &find_fonts($TEXFONTS, + ("$mfFile.mf", "$mfFile.pfa", "$mfFile.pfb")); +} + +if ($fontSource) { + if ($fontSource =~ /\.pfa$/ || $fontSource =~ /\.pfb$/) { + print TTY "Building PK file from PostScript source.\n"; + &make_and_cd_tempdir(); + &make_from_ps($fontSource); + } elsif ($fontSource =~ /\.mf$/) { + local($fpath, $fname); + print TTY "Building PK file from MF source.\n"; + &make_and_cd_tempdir(); + + if ($fontSource =~ /^(.*)\/([^\/]*)$/) { + $fpath = $1; + $fname = $2; + + $fpath = $CWD if $fpath eq "."; + $fpath = "$CWD/.." if $fpath eq ".."; + } else { + $fpath = ""; + $fname = $fontSource; + } + + &make_from_mf($fpath, $fname); + } else { + print TTY "$0: Cannot build PK font for $NAME.\n"; + print TTY " " x length($0), " Unprepared for $fontSource.\n"; + die "\n"; + } +} else { + if (grep(/^$mfBase$/, @DCR_GEN)) { + + print TTY "Building PK file from DC source.\n"; + + &make_and_cd_tempdir(); + + $MFBASE = "&dxbase"; + open (MFFILE, ">$mfFile.mf"); + print MFFILE "gensize:=$mfSize; generate $mfBase;\n"; + close (MFFILE); + + &make_from_mf("$DCR_DIR","$mfFile.mf"); + + } elsif (grep(/^$mfBase$/, @SAUTER_GEN)) { + + print TTY "Building PK file from Sauter source.\n"; + + &make_and_cd_tempdir(); + + if (defined($SAUTER_ROUNDING{$mfSize})) { + $designSize = $SAUTER_ROUNDING{$mfSize}; + } else { + $designSize = $mfSize; + } + + open (MFFILE, ">$mfFile.mf"); + print MFFILE "design_size := $designSize;\n"; + print MFFILE "input b-$mfBase;\n"; + close (MFFILE); + + &make_from_mf("$SAUTER_DIR","$mfFile.mf"); + + } else { + print TTY "$0: Cannot build PK file. Can't find source.\n"; + die "\n"; + } +} + +&cleanup(); + +exit 0; + +######################################################################## + +sub run { + local(@cmd) = @_; + local($rc); + + open (SAVEOUT, ">&STDOUT"); + open (SAVEERR, ">&STDERR"); + close (STDOUT); + open (STDOUT, ">&TTY"); + close (STDERR); + open (STDERR, ">&TTY"); + + # Chdir seems to return a funny exit code. So do it internally... + # (this is a hack) + if (@cmd[0] eq "chdir") { + $rc = chdir(@cmd[1]); + $rc = !$rc; + } else { + $rc = system(@cmd); + } + + close (STDOUT); + open (STDOUT, ">&SAVEOUT"); + close (SAVEOUT); + + close (STDERR); + open (STDERR, ">&SAVEERR"); + close (SAVEERR); + + if ($rc) { + printf TTY "%s\n", "*" x 72; + print TTY "$0 error : system return code: $rc\n"; + print TTY "$0 failed: @cmd\n"; + printf TTY "%s\n", "*" x 72; + } + + $rc; +} + +sub make_and_cd_tempdir { + &run ("mkdir", "$TEMPDIR"); + &run ("chdir", "$TEMPDIR"); +} + +sub cleanup { + &run ("chdir", "$CWD"); + &run ("rm", "-rf", "$TEMPDIR"); +} + +sub install_font { + local($source_path, $font, $subdir, $mode) = @_; + local($pkdirs, @paths, $ptarget); + local($target) = ""; + + if ($VERBOSE) { + print "Install: source_path: $source_path\n"; + print "Install: font : $font\n"; + print "Install: subdir : $subdir\n"; + print "Install: mode : $mode\n"; + } + + $pkdirs = $ENV{"TEXPKS"} || $ENV{"PKFONTS"} || ""; + @paths = split(/:|;/,$pkdirs); + + # Need to find an installable target for the PK files. Try + # ../glyphs/$subdir and ../$subdir then give up and use the best $pkdirs + # path... + + if (!$target) { + ($ptarget = $source_path) =~ s#/[^/]*$##; + $target = "$ptarget/glyphs/$subdir" + if -d "$ptarget/glyphs/$subdir" + || (-d "$ptarget/glyphs" + && -w "$ptarget/glyphs" + && ! -f "$ptarget/glyphs/$subdir"); + } + + if (!$target) { + ($ptarget = $source_path) =~ s#/[^/]*$##; + $target = "$ptarget/$subdir" + if -d "$ptarget/$subdir" + || (-d $ptarget && -w $ptarget && ! -f "$ptarget/$subdir"); + + # what a minute, suppose we just made a font in the current + # directory...let's put the PK file there too... + if (! -d "$target" && ($source_path eq $CWD)) { + $target = $source_path; + $USE_MODE_IN_DEST = 0; + } + } + + while (!$target && ($ptarget = shift @paths)) { + $target = $ptarget if ($ptarget ne "." && $ptarget ne ".." + && -d $ptarget && -w $ptarget); + } + + if ($target) { + if (! -d $target) { + &run ("mkdir", "$target"); + &run ("chmod", "777", "$target"); + } + + if ($USE_MODE_IN_DEST) { + $target .= "/$mode"; + if (! -d $target) { + &run ("mkdir", "$target"); + &run ("chmod", "777", "$target"); + } + } + + print TTY "Installing $font in $target.\n"; + &run ("cp", "$font", "$target/fonttmp.$$"); + &run ("chdir", "$target"); + &run ("mv", "fonttmp.$$", "$font"); + &run ("chmod", "a+r", "$font"); + &run ("chdir", "$TEMPDIR"); + print STDOUT "$target/$font\n"; + } else { + print TTY "$0: Install failed: no where to put $font.\n"; + } +} + +sub make_from_mf { + local ($source_path, $source_file) = @_; + local ($mfsource, $mfinputs, $cmd); + local ($gfname, $pkname, $realdpi, $testdpi); + local ($cmpath); + + print "source_path: $source_path\n" if $VERBOSE; + print "source_file: $source_file\n" if $VERBOSE; + + &run ("chdir", "$TEMPDIR"); + + if (!$source_file) { + $mfsource = $source_path; + ($source_path = $mfsource) =~ s#/[^/]*$##; + ($source_file = $mfsource) =~ s#^.*/([^/]*)$#$1#; + } + + $mfinputs = $ENV{"MFINPUTS"}; + $mfinputs =~ s/^:*(.*):*$/$1/ if $mfinputs; + $ENV{"MFINPUTS"} = ".:$source_path"; + $ENV{"MFINPUTS"} .= ":$mfinputs" if $mfinputs; + + print "MFINPUTS: $ENV{MFINPUTS}\n" if $VERBOSE; + + $cmpath = "/usr/local/lib/fonts/free/cm/src"; + if (-d $cmpath && $ENV{"MFINPUTS"} !~ /$cmpath/) { + $ENV{"MFINPUTS"} .= ":$cmpath"; + } + + $cmd = "$MFBASE \\mode:=$MODE; mag:=$MAG; scrollmode; " . + "\\input $source_file"; + print TTY "virmf $cmd\n"; + + $saveTERM = $ENV{"TERM"}; + $saveDISPLAY = $ENV{"DISPLAY"}; + delete $ENV{"DISPLAY"}; + $ENV{"TERM"} = "vt100"; + + $rc = &run ("virmf", "$cmd"); + + $ENV{"DISPLAY"} = $saveDISPLAY; + $ENV{"TERM"} = $saveTERM; + + $realdpi = $DPI; + $gfname = "./$mfFile.${realdpi}gf"; + + for ($testdpi = $realdpi-2; $testdpi < $realdpi+3; $testdpi++) { + $gfname = "./$mfFile.${testdpi}gf", $realdpi = $testdpi + if ! -f $gfname && -f "./$mfFile.${testdpi}gf"; + } + + $gfname = "./$mfFile.${realdpi}gf"; + $pkname = "./$mfFile.${realdpi}pk"; + + $rc = &run ("gftopk", "$gfname", "$pkname"); + + &install_font($source_path, "$mfFile.${realdpi}pk", 'pk', "$MODE"); +} + +sub make_from_ps { + local ($source_path, $source_file) = @_; + local ($pssource, @cmd); + local ($basename, $afmFile, $afmtest, $part); + + &run ("chdir", "$TEMPDIR"); + + if (!$source_file) { + $pssource = $source_path; + ($source_path = $pssource) =~ s#/[^/]*$##; + ($source_file = $pssource) =~ s#^.*/([^/]*)$#$1#; + } + + # Need to find the AFM file... + $afmFile = ""; + ($basename = $source_file) =~ s/\.pf[ab]$//; + # First, look in ../afm: + ($afmtest = $source_path) =~ s#/[^/]*$##; + $afmtest .= "/afm/$basename.afm"; + $afmFile = $afmtest if -r $afmtest; + + # Then, look in ../../afm: + ($afmtest = $source_path) =~ s#/[^/]*$##; + $afmtest =~ s#/[^/]*$##; + $afmtest .= "/afm/$basename.afm"; + $afmFile = $afmtest if !$afmFile && -r $afmtest; + + die "$0: Cannot find AFM file for $source_file.\n" if !$afmFile; + + @cmd = ('ps2pk', "-a$afmFile", "-X$DPI", + "$source_path/$source_file", "./$mfFile.${DPI}pk"); + + foreach $part (@cmd) { + print TTY "$part "; + } + print TTY "\n"; + + $rc = &run (@cmd); + + &install_font($source_path, "$mfFile.${DPI}pk", 'pk', "${DPI}dpi"); +} + +sub find_fonts { +# This subroutine searches for font sources. It looks in all the directories +# in the path specified. Recursive searches are preformed on directories +# that end in //, !, or !!. The emTeX directive "!", which should search +# only one level deep, is treated exactly like "!!". +# + local($path, @fonts) = @_; + local(@dirs, $dir, $font); + local(@matches) = (); + local(@recursive_matches); + + $path =~ s/!!/\/\//g; + $path =~ s/!/\/\//g; + $path =~ s/\\/\//g; + + print TTY "CWD: ", `pwd` if $VERBOSE; + print TTY "Find: @fonts\n" if $VERBOSE; + print TTY "Path: $path\n" if $VERBOSE; + + @dirs = split(/:|;/, $path); + while (@dirs) { + $dir = shift @dirs; + next if !$dir; + + if ($dir =~ /\/\//) { + @recursive_matches = &recursive_search($dir, @fonts); + push (@matches, @recursive_matches) + if @recursive_matches; + } else { + $dir =~ s/\/*$//; # remove trailing /, if present + foreach $font (@fonts) { + push (@matches, "$dir/$font") + if -f "$dir/$font"; + } + } + } + + $font = shift @matches; + + if (@matches) { + print TTY "$0: Found more than one match.\n"; + print TTY " " x length($0), " Using: $font\n"; + } + + $font; +} + +sub recursive_search { + local($dir, @fonts) = @_; + local(@matches) = (); + local(@dirstack, $rootdir, $font, $fontmask); + + $dir =~ /^(.*)\/\/(.*)$/; + $rootdir = $1; + $fontmask = $2; + + $rootdir =~ s/\/*$//; # remove trailing /'s + + # Note: this perl script has to scan them all, the mask is meaningless. + # Especially since I'm looking for the font *source* not the TFM or + # PK file... + + $fontmask =~ s/\$MAKETEX_BASE_DPI/$BDPI/g; + $fontmask =~ s/\$MAKETEX_MAG/$MAG/g; + $fontmask =~ s/\$MAKETEX_MODE/$MODE/g; + + print TTY "Search root=$rootdir\n" if $VERBOSE; + print TTY "Search mask=$fontmask (ignored by $0)\n" if $VERBOSE; + + @dirstack = ($rootdir); + + while ($rootdir = shift @dirstack) { + opendir (SEARCHDIR, "$rootdir"); + while ($dir = scalar(readdir(SEARCHDIR))) { + if ($dir ne "." && $dir ne ".." && -d "$rootdir/$dir") { + push(@dirstack, "$rootdir/$dir"); + foreach $font (@fonts) { + if (-f "$rootdir/$dir/$font") { + print TTY "Matched: $rootdir/$dir/$font\n" if $VERBOSE; + push(@matches, "$rootdir/$dir/$font"); + } + } + } + } + closedir (SEARCHDIR); + } + + @matches; +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-02 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-02 new file mode 100644 index 00000000000..7283ee9459e --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-02 @@ -0,0 +1,427 @@ +#!/usr/local/bin/perl +# +# MakeTeXTFM.pl version 1.0, Copyright (C) 1993,94 by Norman Walsh. +# NO WARRANTY. Distribute freely under the GNU GPL. +# +# This script attempts to make a new TeX TFM file, because one wasn't +# found. The only argument is the name of the TFM file, such as +# `cmr10.tfm' (*NOT* just `cmr10'). +# +# This script was designed with two goals in mind: to support recursive +# subdirectory searching for fonts and to provide support for PK files +# built from both MF fonts and PS fonts. It also supports the Sauter +# and DC fonts which can be built at any design size. +# +# This script was designed and tested with the following directory structure +# in mind: each typeface is stored in its own directory with appropriate +# subdirectories for font sources, metrics, and glyphs. The script may not +# work exactly right if you use a different directory structure (the font +# installation, in particular, will probably be incorrect). However, +# several other versions of MakeTeXPK exist which will handle simpler +# directory structures, so you need not feel compelled to use the one +# described here. +# +# For MF fonts: (... is usually something like /usr/local/lib/tex/fonts) +# +# .../typeface/src holds the sources +# /tfm holds the TFM files +# /glyphs root for glyphs +# /glyphs/mode holds the PK files for "mode". +# +# For PS fonts: (... is usually something like /usr/local/lib/tex/fonts) +# +# .../typeface/afm holds the AFM files +# /tfm holds the TFM files +# /vf holds the VF files +# /vpl holds the VPL files +# /glyphs root for glyphs +# /glyphs/pk/999dpi holds the PK files at 999 dpi created by ps2pk +# /glpyhs/type1 holds the type1 PFA/PFB sources for the fonts +# +# The TFM files constructed for PostScript fonts are mapped to the Old TeX +# encoding. +# + +require "getopts.pl"; +$rc = &Getopts ('v'); # Get options from the user... + +$VERBOSE = $opt_v || $ENV{"DEBUG_MAKETEXPK"}; # Verbose? + +chop($CWD = `pwd`); # Where are we? +$TEMPDIR = "/tmp/mkPK.$$"; # Where do temp files go? +$MFBASE = "&plain"; # What MF base do we use by default? + +# Where are fonts stored? +$TEXFONTS = $ENV{"TEXFONTS"} || ".:/usr/local/lib/fonts//"; + +# Define modes that should be used for base resolutions... +$DPI_MODES{300} = "laserwriter"; +$DPI_MODES{200} = "FAX"; +$DPI_MODES{360} = "lqhires"; +$DPI_MODES{400} = "nexthi"; +$DPI_MODES{600} = "QMSmoa"; +$DPI_MODES{100} = "nextscreen"; + +$DPI_MODES{100} = "videodisplayi"; +$DPI_MODES{110} = "videodisplayii"; +$DPI_MODES{118} = "videodisplayiii"; +$DPI_MODES{120} = "videodisplayiv"; +$DPI_MODES{124} = "videodisplayv"; +$DPI_MODES{130} = "videodisplayvi"; +$DPI_MODES{140} = "videodisplayvii"; +$DPI_MODES{150} = "videodisplayviii"; + +$DPI_MODES{72} = "MacTrueSize"; +$DPI_MODES{635} = "linolo"; +$DPI_MODES{1270} = "linohi"; +$DPI_MODES{2540} = "linosuper"; + +# Where are the DC fonts stored and what base names can be used? +$DCR_DIR = '/usr/local/lib/fonts/free/dc/src'; +@DCR_GEN = ('dcb','dcbom','dcbx','dcbxsl','dcbxti','dccsc','dcdunh','dcff', + 'dcfi','dcfib','dcitt','dcr','dcsl','dcsltt','dcss','dcssbx', + 'dcssi','dctcsc','dcti','dctt','dcu','dcvtt' ); + +# Where are the Sauter fonts stored and what base names can be used? +$SAUTER_DIR = '/usr/local/lib/fonts/free/sauter/src'; +@SAUTER_GEN = ('cmb','cmbizx','cmbozx','cmbsy','cmbszx','cmbx','cmbxsl', + 'cmbxti', 'cmbz', 'cmbzx', 'cmcsc', 'cmdszc', 'cmdunh', + 'cmex', 'cmff', 'cmfi', 'cmfib', 'cminch', 'cmitt', 'cmmi', + 'cmmib', 'cmr', 'cmrcz', 'cmrisz', 'cmritz', 'cmriz', + 'cmrotz', 'cmroz', 'cmrsz', 'cmrtz', 'cmruz', 'cmrz', + 'cmsl', 'cmsltt', 'cmss', 'cmssbx', 'cmssdc', 'cmssi', + 'cmssq', 'cmssqi', 'cmsy', 'cmtcsc', 'cmtex', 'cmti', + 'cmtt', 'cmu', 'cmvtt', 'czinch', 'czssq', 'czssqi', + 'lasy', 'lasyb'); + +$SAUTER_ROUNDING{11} = '10.954451'; +$SAUTER_ROUNDING{14} = '14.4'; +$SAUTER_ROUNDING{17} = '17.28'; +$SAUTER_ROUNDING{20} = '20.736'; +$SAUTER_ROUNDING{25} = '24.8832'; +$SAUTER_ROUNDING{30} = '29.8685984'; + +open (TTY, ">/dev/tty"); +select (TTY); $| = 1; select(STDOUT); + +$tfmFile = @ARGV[0]; +if (!$tfmFile) { + print TTY "$0 error: No TFM file specified.\n"; + die "\n"; +} + +print TTY "\nAttempting to build TFM file: $tfmFile.\n"; + +# This is the *wierdest* bug I've ever seen. When this script is called +# by virtex to build a TFM file, the argument (as interpreted by Perl) +# has (at least one) ASCII 16 attached to the end of the argument. This +# loop removes all control characters from the $tfmFile name string... +$tfmFile =~ /(.)$/; +$char = ord ($1); +while ($char <= 32) { + $tfmFile = $`; + $tfmFile =~ /(.)$/; + $char = ord ($1); +} + +# Now we know the name of the TFM file. Next, get the name of the MF file +# and the base name and size of the MF file. + +($mfFile = $tfmFile) =~ s/\.tfm$//; +$mfFile =~ /^(.*[^0-9])(\d+)$/; +$mfBase = $1; +$mfSize = $2; + +# Presumably, we got here because the TFM file doesn't exist. Let's look +# for the MF file or the AFM file... + +$tfmSource = &find_fonts($TEXFONTS, ("$mfFile.mf", "$mfFile.afm")); + +if ($tfmSource) { + if ($tfmSource =~ /\.afm$/) { + print TTY "Building $tfmFile from AFM source.\n"; + &make_and_cd_tempdir(); + &make_from_afm($tfmSource); + } elsif ($tfmSource =~ /\.mf$/) { + local($fpath, $fname); + print TTY "Building $tfmFile from MF source.\n"; + &make_and_cd_tempdir(); + + if ($tfmSource =~ /^(.*)\/([^\/]*)$/) { + $fpath = $1; + $fname = $2; + + $fpath = $CWD if $fpath eq "."; + $fpath = "$CWD/.." if $fpath eq ".."; + } else { + $fpath = ""; + $fname = $tfmSource; + } + + &make_from_mf($fpath, $fname); + } else { + print TTY "$0: Cannot build $tfmFile.\n"; + print TTY " " x length($0), " Unprepared for $tfmSource.\n"; + die "\n"; + } +} else { + if (grep(/^$mfBase$/, @DCR_GEN)) { + + print TTY "Building $tfmFile from DC source.\n"; + + &make_and_cd_tempdir(); + + $MFBASE = "&dxbase"; + open (MFFILE, ">$mfFile.mf"); + print MFFILE "gensize:=$mfSize; generate $mfBase;\n"; + close (MFFILE); + + &make_from_mf("$DCR_DIR","$mfFile.mf"); + + } elsif (grep(/^$mfBase$/, @SAUTER_GEN)) { + + print TTY "Building $tfmFile from Sauter source.\n"; + + &make_and_cd_tempdir(); + + if (defined($SAUTER_ROUNDING{$mfSize})) { + $designSize = $SAUTER_ROUNDING{$mfSize}; + } else { + $designSize = $mfSize; + } + + open (MFFILE, ">$mfFile.mf"); + print MFFILE "design_size := $designSize;\n"; + print MFFILE "input b-$mfBase;\n"; + close (MFFILE); + + &make_from_mf("$SAUTER_DIR","$mfFile.mf"); + + } else { + print TTY "$0: Cannot build $tfmFile. Can't find source.\n"; + die "\n"; + } +} + +&cleanup(); + +exit 0; + +sub run { + local(@cmd) = @_; + local($rc); + + open (SAVEOUT, ">&STDOUT"); + open (SAVEERR, ">&STDERR"); + close (STDOUT); + open (STDOUT, ">&TTY"); + close (STDERR); + open (STDERR, ">&TTY"); + + # Chdir seems to return a funny exit code. So do it internally... + # (this is a hack) + if (@cmd[0] eq "chdir") { + $rc = chdir(@cmd[1]); + $rc = !$rc; + } else { + $rc = system(@cmd); + } + + close (STDOUT); + open (STDOUT, ">&SAVEOUT"); + close (SAVEOUT); + + close (STDERR); + open (STDERR, ">&SAVEERR"); + close (SAVEERR); + + if ($rc) { + printf TTY "%s\n", "*" x 72; + print TTY "MakeTeXTFM error : system return code: $rc\n"; + print TTY "MakeTeXTFM failed: @cmd\n"; + printf TTY "%s\n", "*" x 72; + } + + $rc; +} + +sub make_and_cd_tempdir { + &run ("mkdir", "$TEMPDIR"); + &run ("chdir", "$TEMPDIR"); +} + +sub cleanup { + &run ("chdir", "$CWD"); + &run ("rm", "-rf", "$TEMPDIR"); +} + +sub install_font { + local($source_path, $font, $subdir) = @_; + local(@paths) = split(/:|;/,$ENV{"TEXFONTS"}); + local($target) = ""; + local($ptarget); + + if (!$target && $source_path =~ /\/src$/) { + $ptarget = $source_path; + $ptarget =~ s/(.*)\/src$/$1/; + $ptarget .= "/$subdir"; + $target = $ptarget if (-d $ptarget && -w $ptarget); + } + + if (!$target && $source_path =~ /\/afm$/) { + $ptarget = $source_path; + $ptarget =~ s/(.*)\/afm$/$1/; + $ptarget .= "/$subdir"; + $target = $ptarget if (-d $ptarget && -w $ptarget); + } + + if (!$target && ($source_path eq $CWD)) { + $target = $source_path; + } + + while (!$target && ($ptarget = shift @paths)) { + $target = $ptarget if ($ptarget ne "." && $ptarget ne ".." + && -d $ptarget && -w $ptarget); + } + + if ($target) { + print TTY "Installing $font in $target.\n"; + &run ("cp", "$font", "$target/fonttmp.$$"); + &run ("chdir", "$target"); + &run ("mv", "fonttmp.$$", "$font"); + &run ("chmod", "a+r", "$font"); + &run ("chdir", "$TEMPDIR"); + print STDOUT "$target/$font\n"; + } else { + print TTY "$0: Install failed: no where to put $font.\n"; + } +} + +sub make_from_mf { + local ($source_path, $source_file) = @_; + local ($mfsource, $mfinputs, $cmd); + + &run ("chdir", "$TEMPDIR"); + + if (!$source_file) { + $mfsource = $source_path; + ($source_path = $mfsource) =~ s#/[^/]*$##; + ($source_file = $mfsource) =~ s#^.*/([^/]*)$#$1#; + } + + $mfinputs = $ENV{"MFINPUTS"}; + $mfinputs =~ s/^:*(.*):*$/$1/ if $mfinputs; + $ENV{"MFINPUTS"} = ".:$source_path"; + $ENV{"MFINPUTS"} .= ":$mfinputs" if $mfinputs; + + print "MFINPUTS: $ENV{MFINPUTS}\n" if $VERBOSE; + + $cmd = "$MFBASE \\mode:=laserwriter; scrollmode; \\input $source_file"; + print TTY "virmf $cmd\n"; + + $saveTERM = $ENV{"TERM"}; + $saveDISPLAY = $ENV{"DISPLAY"}; + delete $ENV{"DISPLAY"}; + $ENV{"TERM"} = "vt100"; + + $rc = &run ("virmf", "$cmd"); + + $ENV{"DISPLAY"} = $saveDISPLAY; + $ENV{"TERM"} = $saveTERM; + + &install_font($source_path, $tfmFile, 'tfm'); +} + +sub make_from_afm { + local ($afmFile) = @_; + local ($source_path); + + print TTY "afm2tfm $afmFile -v $mfFile ${mfFile}0\n"; + $rc = &run ("afm2tfm", "$afmFile", "-v", "$mfFile", "${mfFile}0"); + + print TTY "vptovf $mfFile.vpl $mfFile.vf $mfFile.tfm\n"; + $rc = &run ("vptovf", "$mfFile.vpl", "$mfFile.vf", "$mfFile.tfm"); + + ($source_path = $afmFile) =~ s#/[^/]*$##; + &install_font($source_path, "$mfFile.tfm", 'tfm'); + &install_font($source_path, "${mfFile}0.tfm", 'tfm'); + &install_font($source_path, "$mfFile.vpl", 'vpl'); + &install_font($source_path, "$mfFile.vf", 'vf'); +} + +sub find_fonts { + local($path, @fonts) = @_; + local(@dirs, $dir, $font); + local(@matches) = (); + local(@recursive_matches); + + print "Find fonts on path: $path\n" if $VERBOSE; + + @dirs = split(/:|;/, $path); + while ($dir = shift @dirs) { + print "Search: $dir\n" if $VERBOSE; + if ($dir =~ /\/\//) { + @recursive_matches = &recursive_search($dir, @fonts); + push (@matches, @recursive_matches) + if @recursive_matches; + } else { + $dir =~ s/\/*$//; # remove trailing /, if present + foreach $font (@fonts) { + push (@matches, "$dir/$font") + if -f "$dir/$font"; + } + } + } + + $font = shift @matches; + + if (@matches) { + print TTY "$0: Found more than one match.\n"; + print TTY " " x length($0), " Using: $font\n"; + } + + $font; +} + +sub recursive_search { + local($dir, @fonts) = @_; + local(@matches) = (); + local(@dirstack, $rootdir, $font, $fontmask); + + $dir =~ /^(.*)\/\/(.*)$/; + $rootdir = $1; + $fontmask = $2; + + $rootdir =~ s/\/*$//; # remove trailing /'s + + # Note: this perl script has to scan them all, the mask is meaningless. + # Especially since I'm looking for the font *source* not the TFM or + # PK file... + + $fontmask =~ s/\$MAKETEX_BASE_DPI/$BDPI/g; + $fontmask =~ s/\$MAKETEX_MAG/$MAG/g; + $fontmask =~ s/\$MAKETEX_MODE/$MODE/g; + + print "Search root=$rootdir\n" if $VERBOSE; + print "Search mask=$fontmask (ignored by $0)\n" if $VERBOSE; + + @dirstack = ($rootdir); + + while ($rootdir = shift @dirstack) { + opendir (SEARCHDIR, "$rootdir"); + while ($dir = scalar(readdir(SEARCHDIR))) { + if ($dir ne "." && $dir ne ".." && -d "$rootdir/$dir") { + push(@dirstack, "$rootdir/$dir"); + foreach $font (@fonts) { + if (-f "$rootdir/$dir/$font") { + print "Matched: $rootdir/$dir/$font\n" if $VERBOSE; + push(@matches, "$rootdir/$dir/$font"); + } + } + } + } + closedir (SEARCHDIR); + } + + @matches; +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-03 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-03 new file mode 100644 index 00000000000..7a1158292a7 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-03 @@ -0,0 +1,215 @@ +@echo off +: ----------------------------------------------------------------------- +: DVIDXX Copyright (C) 1992,94 by Norman Walsh +: +: This file is free. You can do anything you like with it with one +: exception: if you change this file, you MUST rename it! +: +: Requirements: 4DOS, emTeX drivers 1.4s or higher, MAKEPK.BTM +: +: Usage: DVIDXX emtexDriver driverOptions +: +: Note: DVIDXX requires a fair amount of free environment space in order +: to function properly. +: +: Norman Walsh +: +: +: 12/09/1992: - Vers 0.5 +: - This is a first attempt. It works, but it doesn't have +: any bells and whistles. It would be nice, for example, +: if it noticed that PS2PK failed for a particular font... +: ----------------------------------------------------------------------- +: +: This batch file is a replacement for emTeX's dvidrv program. It offers +: one additional feature. In addition to using MFjob to build fonts that +: don't exist, DVIDXX can use PS2PK to build PK files for PostScript fonts. +: Note: You must have the AFM and PFA/B files for the PS fonts in question. +: +: Why did you write this as a 4DOS BTM file? For two reasons. First, I +: wanted it to be interpreted rather than compiled so that it would be +: easy to change, modify, and extend. Second, I did it in 4DOS BTM language +: because DOS's batch language is too primitive. Yes, maybe I _could_ have +: done it with a plain BAT file, but I had no desire to try. +: +: ----------------------------------------------------------------------- +: +: This file relies on MAKEPK.BTM to actually build the fonts with PS2PK. +: +: Both MAKEPK and DVIDXX are somewhat dependant on the layout of your +: hard disk. Well, on the layout of mine, actually ;-) +: +: Here's how my HD is organized: +: +: C:\PSFONTS\ Root of my PostScript fonts directory. +: This is stored in the %[PSFONTS] env. variable +: %[PSFONTS]\PFB Where .PFB files are kept +: %[PSFONTS]\AFM Where .AFM files are kept +: %[PSFONTS]\UTIL Where MAKEPK is kept +: +: ----------------------------------------------------------------------- +: Make sure this is 4DOS... +if "%@eval[2+2]" == "4" goto start +echo Sorry, this batch file can only be run with 4Dos. +goto end +: ----------------------------------------------------------------------- +: Call the driver (maybe we won't have to do anything else) +: In a network environment, you may have to make the mfjob-file unique +: for each user in some way... +: ----------------------------------------------------------------------- +:start +if not "%_dos" == "DOS" goto os2ok +iff %_env lt 128 then + echo Sorry, this batch file requires at least 128 bytes of free environment + echo space. Consult your 4DOS manual for information about increasing it. + goto end +endiff +:os2ok +setlocal +set MFJOBFN=dvidxx.mfj + +%1 %2$ +mfjob-file:%MFJOBFN +batch-mode +iff not errorlevel == 8 then + endlocal + goto end +endiff +: ----------------------------------------------------------------------- +: Ok, we have to build some fonts... +: +: NEWJOB = name of the MFjob file that will actually be used +: PSJOB = name of the batch file that will build fonts with PS2PK +: PSCNT = number of PS fonts to build +: MFCNT = number of MF fonts to build +: MFJOBLEN = number of lines in the original MFjob file +: LNUM = current line number (in original MFjob file) +: LINE = text of the current line +: FONT = name of font +: SIZE = ptsize of current font (assumes designsize of 10pt) +: PSFNT = 0/1 flag determines if the %FONT in question is PS or not +: ----------------------------------------------------------------------- +echo Looking at MFJob file... +set NEWJOB=%@unique[%@path[%MFJOBFN]] +set PSJOB=%@unique[%@path[%MFJOBFN]] +ren %NEWJOB %NEWJOB.mfj /q +ren %PSJOB %PSJOB.btm /q +set NEWJOB=%NEWJOB.mfj +set PSJOB=%PSJOB.btm +set PSCNT=0 +set MFCNT=0 +set MFJOBLEN=%@lines[%MFJOBFN] +set LNUM=0 + +: Create the batch file and the new MFjob file... +echo %% > %NEWJOB +echo pushd %PSFONTS > %PSJOB + +: ----------------------------------------------------------------------- +: Loop through the entire MFjob file. Lines that begin "{font=" are +: analyzed further to determine what kind of font it is. All other lines +: are simply copied to the new MFjob file. +: ----------------------------------------------------------------------- + +:looptop + +if %LNUM gt %MFJOBLEN goto loopover + +: Deleting this percent stuff will save a small amount of time, but +: since reading from the MFjob file is pretty slow, I find it reassuring... +set PERC=%@eval[%LNUM / %MFJOBLEN * 100] +set p=%@index[%PERC,.] +if %p gt 0 set PERC=%@substr[%PERC,0,%p] +echos %@CHAR[13]Working: +echos %[PERC]%% + +set LINE=%@line[%MFJOBFN,%LNUM] +: +: We employ a convoluted compound test because %@substr["%foo",1,5] fails +: with a "no closing quote" error if the %@len["%foo"] < 5... +: +set FOUND=0 +iff %@len["%LINE"] gt 5 then + if (%@substr["%LINE",1,5]) == ({font) set FOUND=1 +endiff + +: If we found a font, %FOUND will be 1 +iff %FOUND == 1 then + Rem Extract the font name and the size + set p=%@index["%LINE",;] + set FONT=%@substr["%LINE",7,%@eval[%p - 7]] + set p=%@index["%LINE",mag=] + set q=%@index["%LINE",}] + set SIZE=%@substr["%LINE",%@eval[%p+4],%@eval[%q-%p-5]] + set SIZE=%@eval[%SIZE*10] + + Rem This is where we test to see if it is a PS font. I've got a really + Rem simple test below. Basically, I keep all my PFB files for PS fonts + Rem in a single directory. If the font in question isn't in that directory, + Rem I assume it is an MF font. + set PSFNT=0 + gosub ispsfont + iff %PSFNT == 1 then + Echo %FONT at %[SIZE]pt will be built by PS2PK + Rem I keep MAKEPK in C:\PSFONTS\UTIL so that's what I write to the batch + Rem file. If you keep it somewhere else, you'll have to change this. + echo call %[psfonts]\util\makepk %FONT %SIZE >> %PSJOB + set PSCNT=%@eval[%PSCNT + 1] + else + Echo %FONT at %[SIZE]pt will be built by MFjob + echo %LINE >> %NEWJOB + set MFCNT=%@eval[%MFCNT + 1] + endiff +else + echo %LINE >> %NEWJOB +endiff + +set LNUM=%@eval[%LNUM + 1] +goto looptop +:loopover + +: ----------------------------------------------------------------------- + +: Finish up the PSJOB file and clean up the messages on the screen +echo popd >> %PSJOB +echos %@CHAR[13] %@CHAR[13] + +: ----------------------------------------------------------------------- + +: Go for it! +iff %MFCNT gt 0 then + echo Attempting to build %MFCNT fonts with MFjob + mfjob %NEWJOB +endiff +del %NEWJOB /q + +: Get back the environment space that we (may) need in MAKEPK... +unset MFJOBLEN LNUM LINE FONT SIZE PSFNT MFCNT NEWJOB + +iff %PSCNT gt 0 then + echo Attempting to build %PSCNT fonts with PS2PK + call %PSJOB +endiff +del %PSJOB /q + +: ----------------------------------------------------------------------- +: Try to run the driver again...this time it should succeed! + +del %MFJOBFN /q +%1 %2$ +mfjob-file:%MFJOBFN +batch-mode +iff errorlevel == 8 then + echo Font building must have failed for at least one font. Look in + echo the %MFJOBFN file to see which font(s) failed. +endiff + +endlocal +goto end + +: ----------------------------------------------------------------------- +: This really simple subroutine is how I look for PS fonts. This routine +: should set PSFNT=1 iff the %FONT variable names a PostScript font. +: +:ispsfont +if exist %[psfonts]\pfb\%FONT.pfb set PSFNT=1 +return + +: ----------------------------------------------------------------------- +:end diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-04 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-04 new file mode 100644 index 00000000000..7f096b4ca5d --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-04 @@ -0,0 +1,151 @@ +@echo off +: ----------------------------------------------------------------------- +: MAKEPK Copyright (C) 1992,94 by Norman Walsh +: +: This file is free. You can do anything you like with it with one +: exception: if you change this file, you MUST rename it! +: +: Requirements: 4DOS, ps2pk, afm2tfm, pfm2afm, pkbbox +: +: Usage: MAKEPK fontfn ptsize [pkfn] [-opts] +: +: Norman Walsh +: +: +: 12/09/1992: - Vers 0.5 +:-------------------------------------------------------------------------- +: See usage info below +: +: This batch file relies on the following directory structure: +: +: C:\PSFONTS\ Root of the PostScript fonts directory. +: This is stored in the %[PSFONTS] env. variable +: %[PSFONTS]\PFB Where .PFB files are kept +: %[PSFONTS]\AFM Where .AFM files are kept +: %[PSFONTS]\PFM Where .PFM files are kept (only required if the +: AFM file does not exist) +: %[PSFONTS]\TFM Where _all_ TFM files are kept for PS fonts +: C:\BIN\PS2PK Where all the PS2PK utils are kept +:-------------------------------------------------------------------------- +: Make sure the parameters are ok... +iff %# lt 1 then + echo Usage: %0 fontfn ptsize [pkfn] [-opts] + echo. + echo MAKEPK rasterizes 'fontfn' at 'ptsize' and stores it in 'pkfn'. The + echo default 'pkfn' is the name of the 'fontfn'. All fonts are stored in + echo the %[psfonts]\@Rrdpi\ directory. If -opts are supplied, they are + echo passed to PS2PK. + quit 1 +endiff + +: Setup local environment +setlocal +pushd %[psfonts] + +: Parse the command line +set pfbfn=%@name[%1] +set ptsz=%2 +set pkfn=%@name[%3] +shift 2 +:toshift +iff ³%@substr[%1,0,1]³ == ³-³ then + set pkopts=%pkopts %1 +else + set pkfn=%@name[%1] +endiff +shift +if %# gt 0 goto toshift +: ----------------------------------------------------------------------- +: Figure out the name of the appropriate PK directory. Create it if it +: doesn't exist. Abort if a filename exists with that name... +: +: TeX seems to underestimate the font size by a very small amount. We +: compensate (in the calculation of the directory) by adding the small +: amount 0.0005 to the point size before truncating to integer... +: +set pkres=%@int[%@eval[(%@eval[%ptsz+0.0005] * 300) / 10]] +set pkdir=%[pkres]dpi +if isdir %pkdir goto okdir +iff not exist %pkdir then + md %pkdir + goto okdir +endiff +echo MakePK: Cannot create directory: %pkdir +quit 1 +:okdir +: ----------------------------------------------------------------------- +: Setup the %PKFN if it wasn't set by a parameter +if "%pkfn" == "" set pkfn=%@name[%pfbfn] + +: If the font and TFM alread exist, don't bother making them +iff exist %[pkdir]\%[pkfn].pk .and. .\tfm\%@filesize[%[pkfn].tfm] gt 0 then + popd + quit 0 +endiff + +: Check to see if an AFM file exists (and has a reasonable size)... +iff %@filesize[.\afm\%[pfbfn].afm] gt 0 then + set afmok=1 +else + set afmok=0 +endiff +: ----------------------------------------------------------------------- +: Make sure we have everything we need...a PFB and an AFM or PFM... +set ok=1 +iff not exist .\pfb\%[pfbfn].pfb then + echo Cannot find PFB file: .\pfb\%[pfbfn].pfb + set ok=0 +endiff +iff not exist .\pfm\%[pfbfn].pfm .and. %afmok == 0 then + echo Cannot find PFM file (.\pfm\%[pfbfn].pfm) and + echo cannot find AFM file (.\afm\%[pfbfn].afm) + set ok=0 +endiff +if "%ok" == "0" quit 1 +set ok= +: ----------------------------------------------------------------------- +: If we didn't find an AFM file, make one... +iff %afmok == 0 then + echo PFMtoAFM... + \bin\ps2pk\pfm2afm .\pfm\%[pfbfn].pfm .\afm\%[pfbfn].afm +endiff + +: ----------------------------------------------------------------------- +: Build the font... +echo Rasterizing... +::: The lines marked *** MERGE *** should be joined onto the end of the +::: preceding line. They were broken only to fit within the margins of +::: this book. +echo ps2pk -P10 -X%[pkres] -a.\afm\%[pfbfn].afm %pkopts +*** MERGE *** .\pfb\%[pfbfn].pfb %[pkdir]\%[pkfn].pk +ps2pk -V -P10 -X%[pkres] -a.\afm\%[pfbfn].afm %pkopts +*** MERGE *** .\pfb\%[pfbfn].pfb %[pkdir]\%[pkfn].pk + +: If we didn't get a descent AFM then we built it with AFM2PFM. +: Unfortunately, the bounding boxes are missing if we did that. +: So add the bounding boxes with the UGLY HACKISH PKbbox program... +iff %afmok == 0 then + echo PKbbox to make bounding boxes... + set tempafm=%@unique[.] + c:\tex\util\pkbbox %pkdir\%pkfn.pk .\afm\%[pfbfn].afm > %tempafm + move %tempafm .\afm\%[pfbfn].afm +endiff + +: If there's no TFM, build it... +iff not exist .\tfm\%[pkfn].tfm then + echo AFMtoTFM... + afm2tfm .\afm\%[pfbfn].afm .\tfm\%[pkfn].tfm +endiff + +::: If we didn't build a 10pt font, scale it appropriately +::iff not "%ptsz" == "10" then +:: c:\tex\util\pkscale %[pkdir]\%[pkfn].pk .\tfm\%[pkfn].tfm /designsize:10 +:: del %[pkdir]\%[pkfn].bak /q +::endiff + +: +: ----------------------------------------------------------------------- +: We're all done... +popd +endlocal +quit 0 diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-05 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-05 new file mode 100644 index 00000000000..bb8e67689b3 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-05 @@ -0,0 +1,174 @@ +#! /usr/local/bin/perl +# +# Usage: enc-afm afm-file enc-file > encoded-afm-file +# +# Where: afm-file is the original AFM file with an arbitrary +# encoding enc-file is the encoding file (in PS +# format, a la dvips .enc files) encoded-afm-file is +# the new AFM file with 'enc-file' encoding. +# + +# what about .notdef? + +$afmfile = @ARGV[0]; +$encfile = @ARGV[1]; + +print STDERR "Reading encoding file: $encfile\n"; +&read_encfile($encfile); +print STDERR "Reading AFM file: $afmfile\n"; +&read_afmfile($afmfile); + +# Assign the correct encoding position to each char +$missing = 0; +for ($count = 0; $count < $vectorlen; $count++) { + $missing_glyphs{@encoding[$count]} = 1, $missing = 1 + if !defined($vectorplace{@encoding[$count]}) + && @encoding[$count] ne ".notdef"; + $vectorplace{@encoding[$count]} = $count; +} + +&print_long_list("Note: the following glyphs are missing " + . "from the AFM file: ", + sort (keys %missing_glyphs)) + if $missing; + +# Construct the CharMetrics lines +@output_encoding = (); +foreach $name (keys %metrics) { + push (@output_encoding, + sprintf("C %3d ; %s", + $vectorplace{$name}, $metrics{$name})); +} + +# Sort the CharMetrics lines +@sorted_encoding = sort (@output_encoding); + +# Move the unused characters to the end of the list +@output_encoding = grep(/^C\s+\d+/, @sorted_encoding); +@minusone_encoding = grep(/C\s+-1/, @sorted_encoding); +push(@output_encoding, @minusone_encoding); + +# Print the new AFM file +print $line, "\n" while ($line = shift @preamble); + +print "Comment Encoded with enc-afm from $encfile.\n"; +print "EncodingScheme $encname\n"; +printf "StartCharMetrics %d\n", $#output_encoding+1; +print $line, "\n" while ($line = shift @output_encoding); +print "EndCharMetrics\n"; + +print $line, "\n" while ($line = shift @postamble); + +exit 0; + +sub read_afmfile { + local ($afmfile) = @_; + local ($inpreamble, $inmetrics, $inpostamble) = (1,0); + local ($width, $name, $bbox, $prname); + + @preamble = (); + %metrics = (); + %vectorplace = (); + @postamble = (); + + open (AFM, $afmfile) + || die "Can't open afm file: $afmfile\n"; + + while () { + chop; + + push(@postamble, $_) if $inpostamble; + push(@preamble, $_) + if $inpreamble && ! /^EncodingScheme\s/i; + + if (/^EndCharMetrics/) { + $inmetrics = 0; + $inpostamble = 1; + } + + if ($inmetrics) { + $width = $1 if /[;\s]+WX\s+([0-9]+)[;\s]+/; + $name = $1 if /[;\s]+N\s+(\w+)[;\s]+/; + $bbox = $1 if /[;\s]+B\s+([^;]+)[;\s]+/; + die "Invalid line in AFM file: $_\n" + if ($name eq ""); + $metrics{$name} = sprintf("WX %4d ; N %s ; B %s ;", + $width, $name, $bbox); + $vectorplace{$name} = -1; + } + + if (/^StartCharMetrics/) { + $inpreamble = 0; + $inmetrics = 1; + } + } +} + +sub read_encfile { + local ($encfile) = @_; + local ($place, $line); + + open (ENC, $encfile) + || die "Can't open encoding file: $encfile\n"; + + $encname = ""; + @encoding = (); + $#encoding = 256; # set the array length + $vectorlen = 0; + $done = 0; + while () { + chop; + next if /^\s*%/; + + $line = $_; + if ($encname eq "") { + die "Invalid line in encoding file: $_\n" + if ! /\s*\/(.*)\s*\[(.*)$/; + $encname = $1; + $line = $2; + } + + $place = index($line, "%"); + $line = substr($line,$[,$place-1) if $place >= $[; + + $place = index($line, "]"); + if ($place >= $[) { + $line = substr($line,$[,$place-1); + $done = 1; + } + + while ($line =~ /^\s*\/(\S*)\s*(.*)$/) { + @encoding[$vectorlen++] = $1; + $line = $2; + } + + last if $done; + } +} + +############################################################ +# This routine prints a message followed by a potentially +# long list of items, seperated by spaces. It will never +# allow "word wrap" to occur in the middle of a word. There +# has to be a better way, using Perl's report generation to +# do this, but I haven't looked yet. +# +sub print_long_list { + local ($message,@thelist) = @_; + local ($line) = $message; + local ($item, $displaystring) = ("", ""); + + foreach $item (@thelist) { + if (length($line . $item) < 73) { + $line .= $item . ", "; + } else { + $displaystring .= $line . "\n"; + $line = $item . ", "; + } + } + + $line =~ s/(.*),\s*$/$1/; # remove the last ", "... + $displaystring .= $line . "\n"; + + print STDERR $displaystring; +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-06 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-06 new file mode 100644 index 00000000000..b7fb42f1853 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-06 @@ -0,0 +1,181 @@ +#!/usr/local/bin/bash +# +# This script file makes a new X/TeX screen font, because one wasn't +# found. Parameters are: +# +# name dpi bdpi magnification destdir +# +# `name' is the name of the font, such as `cmr10'. `dpi' is +# the resolution the font is needed at. `bdpi' is the base +# resolution, useful for figuring out the mode to make the font +# in. `magnification' is a string to pass to MF as the +# magnification. 'destdir' is the directory in which to cache the new +# font. +# +# Note that this file must execute Metafont, mftobdf, and then bdftosnf, +# and place the result in the correct location for X +# to find it subsequently. +# +# Of course, it needs to be set up for your site. +# +# TEMPDIR needs to be unique for each process because of the possibility +# of simultaneous processes running this script. +TEMPDIR=/tmp/bdf-snf.$$ +NAME=$1 +DPI=$2 +BDPI=$3 +MAG=$4 +MODE=$5 +DESTDIR=$6 +umask 0 + +#declare -i cmfound=0 +#MFDIRS=`echo $MFINPUTS | gawk -F: '{ for (i=1; i<=NF; i++) print $i }'` +#for f in $MFDIRS +#do +# if [ -r $f/$NAME.mf ]; then +# declare -i cmfound=1 +# fi +#done + +if [ -r /usr/local/lib/tex/fonts/ps-outlines/$NAME.pfa ] +then + echo Building X-font from PostScript outline + PStoXfont $1 $2 $3 $4 $5 $6 + exit 0 +else + echo Building X-font from MetaFont outline +fi + +# Something like the following is useful at some sites. +GFNAME=$NAME.$DPI'gf' +BDFNAME=$NAME.$DPI.'bdf' +SNFNAME=$NAME.$DPI.pcf + +COMPRESS=1 + +# check if we're not running with MIT server after all +if xdpyinfo|grep -s 'vendor string: *.*MIT.*'; then +# DESTDIR=/usr/lib/X11/fonts/xtex +# SNFNAME=$NAME.$DPI.'snf' + COMPRESS=0 + MITSERVER=1 +fi + +if test "$COMPRESS" = "1" +then + SNFZNAME=${SNFNAME}'.Z' +else + SNFZNAME=${SNFNAME} +fi + +# Clean up on normal or abnormal exit +trap "cd /; rm -rf $TEMPDIR $DESTDIR/bdftmp.$$ $DESTDIR/snftmp.$$" 0 1 2 15 + +mkdir $TEMPDIR +cd $TEMPDIR + +if test -r $DESTDIR/$BDFNAME +then + echo "$DESTDIR/$BDFNAME already exists!" + exit 0 +fi + +if test -r $DESTDIR/$SNFNAME +then + echo "$DESTDIR/$SNFNAME already exists!" + exit 0 +fi + +if test -r $DESTDIR/$SNFZNAME +then + echo "$DESTDIR/$SNZFNAME already exists!" + exit 0 +fi + + +## +# First try mftobdf, maybe it exists... +## + +echo "1st mftobdf -dpi" $DPI $NAME +mftobdf -dpi $DPI $NAME +if test ! -r $BDFNAME +then + pwd + echo mf "\mode:=$MODE; mag:=$MAG/1000; scrollmode; input $NAME $SNFNAME +else + /usr/bin/dxfc $BDFNAME > $SNFNAME +fi +if test ! -r $SNFNAME +then + echo "Font compiler failed for some reason on $SNFNAME" + exit 1 +fi + +# Install the BDF and SNF files carefully, since others may be doing +# the same as us simultaneously. + +#cp $BDFNAME $DESTDIR/bdftmp.$$ +cp $SNFNAME $DESTDIR/snftmp.$$ +cd $DESTDIR +#mv bdftmp.$$ $BDFNAME +mv snftmp.$$ $SNFNAME + +if test "$COMPRESS" = "1" +then + compress -f $SNFNAME +fi + +if [ $MITSERVER ]; then + mkfontdir $DESTDIR +else + /usr/bin/dxmkfontdir $DESTDIR +fi +xset +fp $DESTDIR +xset fp rehash + +exit 0 diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-07 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-07 new file mode 100644 index 00000000000..5ae9a0e61c2 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-07 @@ -0,0 +1,64 @@ +#!/usr/local/bin/bash +# +# This script file makes a new X/TeX screen font, because one wasn't +# found. Parameters are: +# +# name dpi bdpi mag mode destdir +# +# `name' is the name of the font, such as `cmr10'. `dpi' is +# the resolution the font is needed at. `bdpi' is the base +# resolution, useful for figuring out the mode to make the font +# in. `magnification' is a string to pass to MF as the +# magnification. 'destdir' is the directory in which to cache the new +# font. +# +# Note that this file must execute Metafont, mftobdf, and then bdftosnf, +# and place the result in the correct location for X +# to find it subsequently. +# +# Of course, it needs to be set up for your site. +# +# TEMPDIR needs to be unique for each process because of the possibility +# of simultaneous processes running this script. +# +# This temp directory has to be under /users/oos/bin (or somewhere globally +# accessible) because this script runs PS2PK on ibis even if it is started +# elsewhere (e.g. on a Sparc). To do so, it uses the "ibis [cmd]" shortcut +# and passes the temp directory. If the TEMPDIR was /tmp/whatever then, +# it would fail because /tmp on a Sparc isn't /tmp on ibis. +TEMPDIR=/users/oos/bin/PStemp/temp-X-PS.$$ + +NAME=$1 +DPI=$2 +BDPI=$3 +MAG=$4 +MODE=$5 +DESTDIR=$6 + +BASENAME=$NAME.$MAG.$BDPI +PTSIZE=`echo "2 k $MAG 100 / p q" | dc` +PFADIR=/usr/local/lib/tex/fonts/ps-outlines/ + +# Clean up on normal or abnormal exit +trap "cd /; rm -rf $TEMPDIR" 0 1 2 15 + +mkdir $TEMPDIR +cd $TEMPDIR + +echo Making ${PTSIZE}pt ${BDPI}dpi version of $NAME. +ps2pk -v -X$BDPI -P$PTSIZE -a$PFADIR/$NAME.afm \ + $PFADIR/$NAME.pfa $BASENAME.pk + +pktobdf $BASENAME.pk | gawk -vname=$NAME.$DPI -f \ + /usr/local/lib/tex/ps/PStoXfont.awk > $BASENAME.bdf +bdftopcf $BASENAME.bdf > $BASENAME.pcf +mv $BASENAME.pcf $DESTDIR + +mkfontdir $DESTDIR +xset +fp $DESTDIR +xset fp rehash + +exit 0 + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-08 b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-08 new file mode 100644 index 00000000000..7e860797a8e --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/examples/ex-D-08 @@ -0,0 +1,191 @@ +#!/usr/local/bin/perl +# +# txt2verb Copyright (C) 1993 by Norm Walsh +# Distribute freely under the terms of the GNU Copyleft. +# +# Converts a text "screen" into a form suitable for \inputing into TeX +# and printing as a screen dump. The original form is assumed to be +# a series of 80-byte lines with any character in the range 0-255 present +# (including CR and LF in the middle of a line). +# +# The output form is a series of lines of varying length. There is +# one output line for each input line. TeX special characters and all +# characters in the ranges 0-31 and 127-255 are replaced by control +# sequences. +# +# Usage: +# +# txt2verb screenfile +# +# If texfile is not specified, stdout is assumed. +# +# Options: +# +# -l File of lines. Input file contains lines of varying length, +# but no imbedded CR or LF chars. +# -v Verbose: print each input line as it's read. +# -q Quiet: no messages. +# -L # Set line length to '#' characters. +# +# To incorporate the resulting screen dump in your Plain TeX or LaTeX +# document, insert the following macro definitions before the first +# screen dump: +# +# \font\screenfont=cr-pc8 at 8pt % use any IBM OEM encoded fixed width font! +# +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +# % These macros are derived from The TeXbook pg 380-381 +# \def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials} +# \def\setupverbatim{\screenfont% +# \def\par{\leavevmode\endgraf\relax}% +# \obeylines\uncatcodespecials% +# \catcode`\\=0\catcode`\{=1\catcode`\}=2\obeyspaces} +# {\obeyspaces\global\let =\ } % let active space be a control space +# \def\screenlisting#1{\par\begingroup% +# \def\c##1{\char##1}\setupverbatim\input{#1}% +# \endgroup} +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +# \def\screenbox#1{% +# \vbox{\offinterlineskip% +# \parskip=0pt\parindent=0pt% +# \screenlisting{#1}}} +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +# % Input converted file '#1' and set it inside a box with '#2' padding +# % space around the image. +# \def\screendump#1#2{% +# \hbox{\vrule% +# \vbox{\hrule% +# \hbox{\hskip#2% +# \vbox{\vskip#2% +# \def\twentyxs{xxxxxxxxxxxxxxxxxxxx}% +# \setbox0=\hbox{\screenfont\twentyxs\twentyxs\twentyxs\twentyxs}% +# \hbox to \wd0{\screenbox{#1}\hss}% +# \vskip#2}% +# \hskip#2}% +# \hrule}% +# \vrule\hss}} +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +# +# To include the converted image 'screen.tex' in your document with 2pt +# of padding around the image, use: +# +# \screendump{screen}{2pt} +# +# in your document. Note: since this is set as an 'hbox', you may need +# to use \leavevmode\screendump{screen}{2pt} +# +########################################################################## + +require 'getopts.pl'; +do Getopts('lvqL:'); + +die "$0: options make no sense: -l and -L $opt_L.\n" if $opt_l && $opt_L; + +$FILEOFLINES = $opt_l; +$VERBOSE = $opt_v; +$QUIET = $opt_q; +$LINELENGTH = $opt_L || 80; + +$capturefile = @ARGV[0] || die "Usage: $0 capturefile "; +$texfile = @ARGV[1] || "-"; + +select(STDERR); $| = 1; select(STDOUT); # no buffering of stderr + +%badchars = (); # These characters are illegal on input + +# anything in the control character range +for ($byte = 0; $byte < 32; $byte++) { + $char = sprintf("%c", $byte); + $badchars{$char} = "\\c{$byte}"; +} + +# and anything over 126 +for ($byte = 127; $byte < 256; $byte++) { + $char = sprintf("%c", $byte); + $badchars{$char} = "\\c{$byte}"; +} + +$badchars{"\%"} = '\%'; +$badchars{"\$"} = '\$'; +$badchars{"\&"} = '\&'; +$badchars{"\#"} = '\#'; +$badchars{"\{"} = '\c{123}'; +$badchars{"\}"} = '\c{125}'; +$badchars{"\\"} = '\c{92}'; +$badchars{"\_"} = '\c{95}'; +$badchars{"\^"} = '\c{94}'; + +open (CAPTFILE, $capturefile) + || die "Can't open capture file: $capturefile\n"; +open (TEXFILE, ">$texfile") + || die "Can't open TeX file: $texfile\n"; +while ($line = &get_line()) { + print STDERR "." if $texfile ne "-" && !$VERBOSE && !$QUIET; + print STDERR "$line\n" if $VERBOSE; + + $outputbuf = ""; + while (length($line) > 0) { + $char = substr($line,0,1); + $line = substr($line,1); + + if (defined($badchars{$char})) { + $outputbuf .= $badchars{$char}; + } else { + $outputbuf .= $char; + } + } + print TEXFILE "$outputbuf\n"; +} + +close(CAPTFILE); +close(TEXFILE); + +exit 0; + +sub get_text_line { + local($line); + + if ($line = scalar()) { + chop($line); + } + + $line; +} + +sub get_data_line { + local($datalen, $line); + + if ($datalen = read(CAPTFILE, $line, $LINELENGTH)) { + # if we got a complete line, look to see if the next + # characters in the file are CR, CR/LF, or LF. If so, remove + # them (assume the are line breaks in the file) + if ($datalen = $LINELENGTH) { + $place = tell(CAPTFILE); + $datalen = read(CAPTFILE, $line, 1); + if ($line eq "\015") { + $place++; + $datalen = read(CAPTFILE, $line, 1); + if ($line ne "\012") { + seek(CAPTFILE, $place, 0); + } + } elsif ($line ne "\012") { + seek(CAPTFILE, $place, 0); + } + } + } else { + return undef; + } + + $line; +} + +sub get_line { + local($line); + if ($FILEOFLINES) { + $line = &get_text_line(); + } else { + $line = &get_data_line(); + } + + $line; +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/apa.html b/Master/texmf-doc/doc/english/make-tex-work/html/apa.html new file mode 100644 index 00000000000..5ac16b87c4b --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/apa.html @@ -0,0 +1,903 @@ + + + + + + + + + Appendix A. Filename Extension Summary + + + + + + + + + + + +
+
+
+

Appendix A. Filename + Extension Summary

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

This chapter summarizes many common filename extensions. + The extensions are listed in alphabetical order. All + extensions can be shortened to three letters for consistency + with operating systems that do not allow longer file + extensions. On other file systems, they may be slightly + different. For example, EPS files are sometimes + called EPSF files on unix systems, which allow + longer filenames.

+ +
+
+
abf
+ +
+

An Adobe binary screen font file contains a binary + encoding of a BDF (bitmap distribution format) file. + Binary encoding makes the files smaller, but it also + makes them less portable and unintelligible to humans. + The binary format is described in Adobe's ABF Format + Specification [abffiles]. BDF files are + described below.

+
+ +
afm
+ +
+

Adobe font metrics files are ASCII files distributed + with \ps Type 1 fonts. Type 1 fonts are the + linearly scalable fonts that \ps printer users are most + familiar with. Bounding boxes, an encoding vector (what + characters go where), kerning, and ligature information + are among the things described in this file. The AFM + file format is described completely in Adobe's AFM + Format Specification [afmfiles].

+ +

\ps fonts (available through commercial vendors or + from the Internet) are supplied with AFM files. + Generally, the only occasion that you would have to + modify an AFM file would be to change the encoding + vector.

+
+ +
aux
+ +
+

Auxiliary files are built by LaTeX each time it + formats a document. LaTeX writes information about + cross references, citations, etc., to the auxiliary + file for post-processing by other tools, or for TeX + processing the next time this document is + formatted.

+
+ +
bbl
+ +
+

Bibliography files are created by BibTeX from the + citations in your document, the bibliography databases + (BIB) that you specify, and the bibliography style + (BST) you use. BibTeX writes the resulting bibliography + to the BBL file, which is automatically included in + your LaTeX document at the place where you define the + bibliography.

+
+ +
bdf
+ +
+

Bitmap distribution format files are ASCII files + that describe a bitmap font. They are frequently used + to distribute bitmap versions of scalable fonts in + screen resolution at common sizes. They are resolution + specific, but they are portable from one architecture + to another. The BDF file format is described completely + in Adobe's BDF Format Specification [bdffiles].

+ +

Some fonts packages are distributed with BDF files. + Other BDF files are created as part of the conversion + process from native format to X11 format. It is + unlikely that you would ever create one purely by + hand.

+
+ +
bib
+ +
+

Bibliography databases contain bibliographic + information. These are generally handwritten and may + contain bibliographic information for all of the + sources that you are (ever) likely to cite. The BibTeX + program reads information about each work that you + FIXME: from the BIB file. Consult the documentation for + BibTeX for more information about the format of BIB + files.

+
+ +
blg
+ +
+

BibTeX log files record the status of the last run + of BibTeX.

+
+ +
bst
+ +
+

Bibliography style files are used by BibTeX to + define the layout of the citations. BibTeX produces + LaTeX commands in the BBL file that define the + citations in the format specified by the BST file.

+ +

You may eventually write or modify a bibliography + style file, but it is less common than modifying LaTeX + style files because bibliographies have a more rigidly + defined format. Consult the documentation for BibTeX + for more information about the format of BST files.

+
+ +
bzr
+ +
+

The GNU fontutils define the BZR format to hold + generic scalable font data. The file actually contains + the specification for a series of bezier curves. The + BZR file format is defined in the TeXinfo pages that + accompany the GNU fontutils. The GNU fontutils create + BZR files.

+
+ +
dvi
+ +
+

TeX produces device-independent output in the DVI + file. This file describes the TeXed document in a + simple stack language that can be rendered on any + device. The format of DVI files is described in the + \web documentation for DVItype, or in The DVI Drivers + Standard [dvi:standard].

+ +

TeX (and some MFware utilities) produces DVI + files.

+ +

\hyphenation{encap-sulated}

+
+ +
epsf
+ +
+

Encapsulated \ps files contain scalable \ps images + and extra information (such as the size of the image's + bounding box) that is necessary to scale the image + appropriately for printing, unlike generic \ps. Using + encapsulated \ps images in your TeX document requires a + DVI driver that understands \ps \specials. How to + include pictures and figures via encapsulated + PostScript is described in detail in Chapter Chapter 6, + Chapter 6.

+ +

You are unlikely to create encapsulated \ps files by + hand, but many drawing and drafting programs can create + them for you.

+
+ +
fig
+ +
+

FIG files are created by the XFig program + (and possibly other programs). The scalable + representation of a collection of graphics objects is + stored in ASCII form in FIG files. The transfig + program can translate FIG files into a number of other + formats including EPSF, HPGL, and a variety of LaTeX + environments.

+
+ +
fli
+ +
+

Font libraries are distributed with emTeX. They + contain a collection of PK files. Font libraries have + several advantages over a directory full of PK files: + they are easier to maintain (because you don't have to + deal with hundreds of files); they are faster to search + (because they are indexed more efficiently than a + directory); they are smaller (because each PK file wastes an + average of half a cluster of disk space); and the name + of each font is not limited to eight characters as it + is under MS-DOS file naming conventions.

+ +

Note: dvips can also use emTeX FLI files.

+
+ +
gf
+ +
+

Generic font files contain bitmap data for the + characters of a font. The GF format is very simple, and + many TeX related programs that create fonts produce GF + files. The disadvantage of GF files is that they are + very large (because no compression is performed). The + format of GF files is described in the \web + documentation for GFtoPK (or any of the + GF-related MFware programs).

+ +

MetaFont is the primary source for GF files. Some + other programs (some of the GNU fontutils, for example) + also produce GF files.

+
+ +
gif
+ +
+

Graphics interchange format is a CompuServe bitmap + graphics standard. GIF files are very popular, and a + number of converters (e.g., BM2FONT) can + translate GIF files into a format usable by TeX.

+
+ +
glo
+ +
+

Glossary files are produced by the LaTeX \glossary + command. They are analogous to the IDX files produced + by the \index commands. The glossary is inserted in + your document wherever the \makeglossary command + occurs.

+
+ +
gsf
+ +
+

Ghostscript fonts are scalable fonts very similar to + \ps Type 1 fonts. Theoretically, + Ghostscript can use \ps Type 1 fonts + directly, although I have never tried. Several GSF + fonts are distributed with Ghostscript.

+
+ +
hpgl
+ +
+

Hewlett-Packard GL is a plotter language. Many + programs can produce vector graphics in HPGL + format.

+
+ +
hptfm
+ +
+

Hewlett-Packard tagged font metric files are a lot + like TeX TFM files. It is unfortunate that both files + have the extension TFM because they are completely + incompatible. You can generate TeX TFM files from + HPTFMs with the HPTFM2PL program.

+
+ +
idx
+ +
+

Index files are produced automatically when you use + the \index commands in LaTeX. The IDX file contains raw + indexing data that will be used by the MakeIndex + program to build an index for your document. You must + include the makeidx style in your + documentstyle command, and you must turn on + indexing with \makeindex in the preamble of your + document if you wish to (re)build the index. See the + entry for IND files below for more information.

+
+ +
ilg
+ +
+

MakeIndex log files record the status of the + last run of MakeIndex.

+
+ +
img
+ +
+

The IMG format is a particular bitmapped image + format used by the GEM Window System (a PC-based + windowed desktop interface product). The GNU fontutils + read IMG files as their default format. The + PBMplus utilities[129] + can convert between many graphics file formats, + including IMG.

+ +

Some scanning software produces IMG files directly. + Other IMG files are distributed by the Free Software + Foundation as part of an ongoing project to produce + high-quality, free typefaces.

+
+ +
ind
+ +
+

Index files are produced by the MakeIndex and + automatically get included into your LaTeX document + wherever you put the \printindex command. The \index + commands in your LaTeX document write raw indexing data + to the IDX file. MakeIndex reads the IDX file, + sorts and formats the index according to the IST file, + and produces an IND file for your document.

+
+ +
ist
+ +
+

Index specification files are used by + MakeIndex to format the index file. Consult the + documentation for MakeIndex for more + information.

+
+ +
jpeg
+ +
+

JPEG files are compressed bitmap images. Because + JPEG files use a “lossy” compression + algorithm, they are frequently much smaller than other + formats.

+
+ +
lof
+ +
+

List of figures files are produced by the + \listoffigures command in LaTeX. After seeing + \listoffigures, LaTeX writes figure captions to the LOF + file. The next time the document is formatted, LaTeX + will insert the LOF file at the point where you issue + the \listoffigures command.

+
+ +
log
+ +
+

Log files are always produced by TeX and MetaFont. + The LOG file is generally uninteresting. Status and + warning messages deemed too trivial (or too detailed) + for the display are written to the log file (all + messages written to the display are also written to the + log).

+
+ +
lot
+ +
+

List of tables files are exactly analogous to LOF + files.

+
+ +
mf
+ +
+

Just as TeX reads TEX files, which are plain ASCII + descriptions of a typeset document, MetaFont reads MF + files, which are plain ASCII descriptions of a + typeface. MetaFont and MF files are the topic of + Knuth's \MFbook [kn:mfbook]. Unlike \ps + fonts, MetaFont fonts are not linearly scaled.[130]

+ +

The standard TeX distribution contains the MF files + for the Computer Modern fonts. Knuth has produced + several more MF files to demonstrate MetaFont. The + American Mathematical Society has extended Computer + Modern with several more. The MFpic macro + package produces MF files from a picture-like + environment in TeX. \TheMFbook describes how to create + your own fonts with MetaFont.

+ +

The List of + MetaFonts [lreq:metafonts] is + posted occasionally to the newsgroups + \path|comp.text.tex| and \path|comp.fonts|.

+ +

Chapter Chapter 11, + Chapter 11, + describes MetaFont in more detail. The TeX fonts + available in MetaFont format are listed in + Chapter Chapter 5, + Chapter 5.

+
+ +
mfj
+ +
+

MFjob files are plain ASCII files that contain + instructions for MFjob, an emTeX program that + builds groups of MetaFont fonts. MFJ files can be + created by hand to automate the process of building a + set of fonts. They are also created by the emTeX DVI + drivers if automatic font generation is being used.

+
+ +
msp
+ +
+

Microsoft Paint files contain bitmapped graphic + images. They can be included in a TeX document with + \special commands recognized by the emTeX DVI + drivers.

+
+ +
pbm
+ +
+

The portable bitmap format is a flexible bitmap + representation introduced by the PBMplus + package. The PBMplus utilities allow for the + conversion of PBM format files to and from almost + anything else. The PBM format (and all the utilities) + are described in the manpages that accompany the + PBMplus toolkit distribution.

+ +

The PBM toolkit and many other X11 graphics + utilities can read and write PBM files (e.g. XV).

+
+ +
pcf
+ +
+

The PCF format is one of several X11 bitmap font + formats. Architecture-specific versions of X11 use PCF + files. Other architectures use one of a number of other + architecture-specific formats (e.g., SNF). PCF files + are used by at least the DEC versions of the X11 + server. The X11 distribution for your architecture + includes a program that will convert BDF files to the + standard adopted for your architecture.

+ +

PCF files are almost invariably created from some + other source. It is unlikely that you will ever create + one by hand.

+
+ +
pcl
+ +
+

PCL files contain printer commands for HP LaserJet + printers. DVI drivers for HP LaserJet printers create + PCL files. It is possible to get information out of + some PCL files with pcltomsp.

+
+ +
pcx
+ +
+

PCX files contain bitmapped graphic images. They can + be included in a TeX document with \special commands + recognized by the emTeX DVI drivers.

+
+ +
pfa
+ +
+

Printer font ASCII files contain scalable outline + data that describes each character in a Type 1 + font. A large portion of this file is encrypted, so it + is an ASCII file only in the sense that the binary + portion is represented as a string of hexadecimal ASCII + digits. This is traditional \ps because it is pure + ASCII. See PFB below.

+ +

Type 1 outline fonts are created by special + font editing programs or conversion tools (e.g. the GNU + fontutils).

+
+ +
pfb
+ +
+

Printer font binary files, like PFA files, contain + the outline data for \ps Type 1 fonts. The binary + format was adopted to save space (they are generally + about half the size of their PFA counterparts).[131] Because they are + binary files, it is more difficult to transfer them + from one architecture to another (endian-ness, binary + transmission, etc.). \ps purists are apt to disparage + them.

+
+ +
pfm
+ +
+

Printer font metric files are a Microsoft Windows + standard. They are encountered frequently in archives + that contain Type 1 fonts. Unfortunately, these + archives occasionally fail to include AFM files, which + are more standard outside of the Windows community. + Even more unfortunately, PFM files do not contain all + of the information that is in an AFM file. However, the + PFM2AFM program can construct a partial AFM + file. I believe that the PFM file format is described + in a Microsoft technical note; however, I have never + seen it.

+ +

Unless you use Microsoft Windows, PFM files are + likely to be useless. If you need PFM files, the MS-DOS + program Refont can create them from AFM + files.

+
+ +
pk
+ +
+

Most TeX DVI conversion programs read packed bitmap + font files. The PK font format defines a clever scheme + that allows bitmap fonts to be compressed + significantly. The format of PK files is described in + the \web documentation for PKtype (or any of the + PK-related MFware programs).

+ +

You are unlikely to create PK files by hand, per se, + but there are a number of utility programs that + ultimately create PK files (e.g., GFtoPK, + MetaFont, MFpic, PS2PK).

+
+ +
pl
+ +
+

A property list file contains an ASCII + representation of a binary file. The property list + format was created during TeX development to allow + binary files (specifically TFM files) to be hand-coded. + Most users have no reason to create PL files; however, + some programs create PL files that must be converted + into TFM files with the TeXware program PLtoTF. + The PL format is described in the \web documentation + for PLtoTF.

+ +

If you need to edit TeX font metric information for + a particular font, you will almost certainly do so by + editing the PL file. You can create a PL file from a + TFM file with the TFtoPL utility.

+
+ +
ps
+ +
+

\ps is a page description language. The \ps language + is described in a series of volumes from Adobe Systems. + PS is a common extension for \ps files.

+ +

Unless you are inclined to enter the Obfuscated \ps + Contest, you are unlikely to create \ps files by hand. + \ps files are created by many common tools.

+
+ +
pxl
+ +
+

This format is obsolete. It has been completely + superseded by the PK format. If you still have PXL + files, you can convert them to PK format with the + PXtoPK program. If you are still using a DVI + driver that needs PXL files, you need an upgrade.

+
+ +
sfl
+ +
+

These files contain HP LaserJet softfonts in + landscape orientation. LaserJet softfonts are device + specific bitmap representations of a typeface. The + bitmap versions are described thoroughly in the LaserJet Technical Reference + Manual [pcl5:techref] for + each of the HP LaserJet printers. Newer laser printers + can perform automatic rotation of fonts (in 90 degree + increments, at least), so the distinction between + landscape and portrait font files is disappearing.

+
+ +
sfp
+ +
+

These files contain HP LaserJet softfonts in + portrait orientation. See the entry for SFL files, + above.

+
+ +
sfs
+ +
+

Scalable softfonts are HP LaserJet softfonts for the + new (HPLJ III and higher) LaserJet printers. These are + really in AGFA IntelliFont Scalable format [intellifont].

+
+ +
snf
+ +
+

Server native format fonts are another version of + X11 bitmap font. See the entry for PCF files, above, + for more information.

+
+ +
sty
+ +
+

Style files are used by LaTeX to define the layout + of a LaTeX document (by redefining the meaning of + commands like \section, for example). They are also + used commonly to extend LaTeX. See the LaTeX + manual [ll:latexbook] for + more information.

+ +

Style files are really just TeX files that perform + specific tasks. You will eventually write or modify a + style file, but it isn't something you are likely to do + every day.

+
+ +
tex
+ +
+

TEX files describe the layout of a typeset document + in the TeX programming language,[132] + as defined by The + TeXbook [kn:texbook]. Most + people use some form of macro package on top of TeX to + make the language easier to swallow. If a TeX file + begins with \documentstyle{} or has \begin{document} + somewhere near the top, it is probably a LaTeX + document. Otherwise, look for the \input commands to + see what macro packages are being included.

+ +

Documents that do not appear to be LaTeX documents + and do not appear to \input special macro packages may + be using a special format. Formats are + fast-loading precompiled macro packages. If you know + the name of the format file, you can tell TeX to use it + by typing &format-name as a + parameter to TeX.

+
+ +
tiff
+ +
+

TIFF files contain bitmapped or vector graphic + images in a very flexible form. The “T” in + TIFF stands for “tagged.” All of the + different kinds of information (regarding number of + colors, compression, etc.) that might appear in a TIFF + file are given unique tags that allow a TIFF file + reader to skip over information that it does not + understand.

+
+ +
tfm
+ +
+

TeX font metric files contain information about + fonts. TeX doesn't know anything about the intrinsic + shape of the characters that it lays down on the page. + TeX deals entirely with boxes. Every character is + described by the rectangular box that (usually) + surrounds it. The TFM file for a font describes the + size of each character's box, as well as ligature and + kerning information for the font. A human-readable + version of a TFM file can be produced with the + TFtoPL program. The format of TFM files is + described thoroughly in the \web documentation for + TFtoPL.

+ +

If you have reason to modify a TFM file, you will + almost certainly do so by converting it to PL format + first. You can convert it back into a TFM file with the + PLtoTF utility.

+ +

See also HPTFM files.

+
+ +
toc
+ +
+

Table of contents files are produced by the + \tableofcontents command in LaTeX. After seeing + \tableofcontents, LaTeX writes chapter, section, + subsection, etc., names to the TOC file. The next time + the document is formatted, LaTeX will insert the TOC + file at the point where you issue the \tableofcontents + command.

+
+ +
txt
+ +
+

Generic ASCII text.

+
+ +
vf
+ +
+

Virtual font files. They are described in more + detail in Chapter Chapter 5, + Chapter 5. + In short, a virtual font maps a character to an + arbitrary sequence of DVI file commands. This + may be another character in a different font, a + different character in the same font, or something else + entirely.

+
+ +
vpl
+ +
+

The virtual property list is a property list file + for virtual fonts (as opposed to being some sort of + property list file that was itself virtual ;-). VPL + files serve the same purpose for VF files that PL files + serve for TFM files. The VPL format is defined in the + \web documentation for VPtoVF.

+
+ +
xbm
+ +
+

X11 bitmap files contain a bitmapped image. X11 + icons are frequently stored in XBM files. They also + occur in .icon files and files without + extensions (e.g., in + /usr/include/X11/bitmaps). I mention them here + only because I like to use icons on my X11 desktop, and + I have used PKtoBM to create several nice ones + from TeX PK files.

+ +

X11 bitmap files are used for all bitmap displays in + the X11 server (not just icons). Because they are ASCII + and not binary, they are architecture independent, + which makes them very portable.\par

+
+
+
+ +
+
+
+ +
+

[129] {The PBMplus + utilities are a collection of programs that allow + conversion between different graphic formats by using the + PBM format as a transition step.}

+
+ +
+

[130] {Linear versus + non-linear scaling is a typographic issue better + discussed elsewhere. I mention it here just for + completeness.}

+
+ +
+

[131] {The proof is left as an + exercise to the reader (I always wanted to say + that).}

+
+ +
+

[132] You already knew this, + didn't you?

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/apb.html b/Master/texmf-doc/doc/english/make-tex-work/html/apb.html new file mode 100644 index 00000000000..87dccbe0fb9 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/apb.html @@ -0,0 +1,2557 @@ + + + + + + + + + Appendix B. Font Samples + + + + + + + + + + + +
+
+
+

Appendix B. Font + Samples

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

This appendix showcases a number of MetaFont fonts. First, + several examples of encoding vectors are presented and then + samples of many fonts from the CTAN archives are + provided.

+ +
+
+
+

Font Encodings

+
+
+ +

Font encoding vectors are described in Chapter Chapter 5, + Chapter 5. + Table  + Table B.1 shows the Computer Modern Text encoding, + Table  + Table B.2 shows the Computer Modern Math Italic + encoding, Table Table B.3 + shows the Cork encoding, and Table  + Table B.4 shows the Adobe Standard encoding.

+ +

\font\dcr=cmr12 \typeout{Setting CMR Encoding table}

+ +
+ + +

Table B.1. The Computer + Modern Roman Font Encoding

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\colcount=0\bf 0\bf 1\bf 2\bf 3\bf 4\bf 5\bf 6\bf 7\strut
\colnum{0}\row       
\cline{2-9}\row       
\colnum{1}\row       
\cline{2-9}\row       
\colnum{2}\row       
\cline{2-9}\row       
\colnum{3}\row       
\cline{2-9}\row       
\colnum{4}\row       
\cline{2-9}\row       
\colnum{5}\row       
\cline{2-9}\row       
\colnum{6}\row       
\cline{2-9}\row       
\colnum{7}\row       
\cline{2-9}\row       
 \bf 8\bf 9\bf A\bf B\bf C\bf D\bf E\bf F\strut
+
+ +

\font\dcr=cmmi12 \typeout{Setting CMIT Encoding + table}

+ +
+ + +

Table B.2. The Computer + Modern Math Italic Font Encoding

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\colcount=0\bf 0\bf 1\bf 2\bf 3\bf 4\bf 5\bf 6\bf 7\strut
\colnum{0}\row       
\cline{2-9}\row       
\colnum{1}\row       
\cline{2-9}\row       
\colnum{2}\row       
\cline{2-9}\row       
\colnum{3}\row       
\cline{2-9}\row       
\colnum{4}\row       
\cline{2-9}\row       
\colnum{5}\row       
\cline{2-9}\row       
\colnum{6}\row       
\cline{2-9}\row       
\colnum{7}\row       
\cline{2-9}\row       
 \bf 8\bf 9\bf A\bf B\bf C\bf D\bf E\bf F\strut
+
+ +

\typeout{Setting Cork Encoding table}

+ +
+ + +

Table B.3. The Cork Font + Encoding

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 \bf 0\bf 1\bf 2\bf 3\bf 4\bf 5\bf 6\bf 7\strut
 \bf 8\bf 9\bf A\bf B\bf C\bf D\bf E\bf F\strut
\endfoot \colnum{0}\row       
\cline{2-9}\row       
\colnum{1}\row       
\cline{2-9}\row       
\colnum{2}\row       
\cline{2-9}\row       
\colnum{3}\row       
\cline{2-9}\row       
\colnum{4}\row       
\cline{2-9}\row       
\colnum{5}\row       
\cline{2-9}\row       
\colnum{6}\row       
\cline{2-9}\row       
\colnum{7}\row       
\cline{2-9}\row       
\colnum{8}\row       
\cline{2-9}\row       
\colnum{9}\row       
\cline{2-9}\row       
\colnum{A}\row       
\cline{2-9}\row       
\colnum{B}\row       
\cline{2-9}\row       
\colnum{C}\row       
\cline{2-9}\row       
\colnum{D}\row       
\cline{2-9}\row       
\colnum{E}\row       
\cline{2-9}\row       
\colnum{F}\row       
\cline{2-9}\row       
+
+ +

\font\dcr=grlg at 12pt \typeout{Setting Adobe Standard + Encoding table}

+ +
+ + +

Table B.4. The Adobe + Standard Font Encoding

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 \bf 0\bf 1\bf 2\bf 3\bf 4\bf 5\bf 6\bf 7\strut
 \bf 8\bf 9\bf A\bf B\bf C\bf D\bf E\bf F\strut
\endfoot \colnum{0}\row       
\cline{2-9}\row       
\colnum{1}\row       
\cline{2-9}\row       
\colnum{2}\row       
\cline{2-9}\row       
\colnum{3}\row       
\cline{2-9}\row       
\colnum{4}\row       
\cline{2-9}\row       
\colnum{5}\row       
\cline{2-9}\row       
\colnum{6}\row       
\cline{2-9}\row       
\colnum{7}\row       
\cline{2-9}\row       
\colnum{8}\row       
\cline{2-9}\row       
\colnum{9}\row       
\cline{2-9}\row       
\colnum{A}\row       
\cline{2-9}\row       
\colnum{B}\row       
\cline{2-9}\row       
\colnum{C}\row       
\cline{2-9}\row       
\colnum{D}\row       
\cline{2-9}\row       
\colnum{E}\row       
\cline{2-9}\row       
\colnum{F}\row       
\cline{2-9}\row       
+
+
+ +
+
+
+

Font Samples

+
+
+ +

MetaFont, like TeX, has been widely ported and many + people have developed fonts using it. The remainder of this + appendix shows examples of many of the fonts available in + the CTAN archives in February, 1994.

+ +

\fontdir{fonts/ams/amsfonts/cyrillic} + \fontsample{wncyb10} \fontsample{wncyi10} + \fontsample{wncyr10} \fontsample{wncysc10} + \fontsample{wncyss10}

+ +

\fontdir{fonts/ams/amsfonts/euler} \fontsample{euex10} + \fontsample{eufb10} \fontsample{eufm10} \fontsample{eurb10} + \fontsample{eurm10} \fontsample{eusb10} + \fontsample{eusm10}

+ +

\fontdir{fonts/ams/amsfonts/extracm} \fontsample{cmbsy9} + \fontsample{cmcsc9} \fontsample{cmex9} + \fontsample{cmmib9}

+ +

\fontdir{fonts/ams/amsfonts/symbols} \fontsample{msam10} + \fontsample[-52pt]{msbm10}

+ +

\fontdir{fonts/apl} \fontsample{cmapl10}

+ +

\fontdir{fonts/astro} \fontsample{astrosym}

+ +

\fontdir{fonts/bard} \fontsample{bard}

+ +

\fontdir{fonts/bashkirian} \fontsample{jkbash10} + \fontsample{jkcyr10}

+ +

\fontdir{fonts/bbding} \fontsample{bbding10}

+ +

\fontdir{fonts/bbold} \fontsample{bbold10} + \fontsample{cspex10}

+ +

\fontdir{fonts/blackletter} \fontsample{blackletter}

+ +

\fontdir{fonts/calligra} \fontsample{callig15}

+ +

\fontdir{fonts/chess} \fontsample{chess10} + \fontsample{chessf10}

+ +

\fontdir{fonts/cirth} \fontsample{cirbf} + \fontsample{cirsl} \fontsample{cirss} + \fontsample{cirth}

+ +

\fontdir{fonts/cm} \fontsample{cmb10} + \fontsample{cmbsy10} \fontsample{cmbx10} + \fontsample{cmbxsl10} \fontsample{cmbxti10} + \fontsample{cmcsc10} \fontsample{cmdunh10} + \fontsample{cmex10} \fontsample{cmff10} \fontsample{cmfi10} + \fontsample{cmfib8} \fontsample{cmitt10} + \fontsample{cmmi10} \fontsample{cmmib10} \fontsample{cmr10} + \fontsample{cmsl10} \fontsample{cmsltt10} + \fontsample{cmss10} \fontsample{cmssbx10} + \fontsample{cmssdc10} \fontsample{cmssi10} + \fontsample{cmssq8} \fontsample{cmssqi8} + \fontsample{cmsy10} \fontsample{cmtcsc10} + \fontsample{cmtex10} \fontsample{cmti10} + \fontsample{cmtt10} \fontsample{cmu10} + \fontsample{cmvtt10}

+ +

\fontdir{fonts/cm/utility} \fontsample{grdov5} + \fontsample{logo10} \fontsample{logo10} + \fontsample{logobf10} \fontsample{logobf10} + \fontsample{logosl10} \fontsample{logosl10} + \fontsample{slaps4} \fontsample{sldov6}

+ +

\fontdir{fonts/cmastro} \fontsample{cmastro10}

+ +

\fontdir{fonts/cmcyr} \fontsample{cmcbx10} + \fontsample{cmcbxsl10} \fontsample{cmcbxti10} + \fontsample{cmcitt10} \fontsample{cmcsl10} + \fontsample{cmcss10} \fontsample{cmcssdc10} + \fontsample{cmcti10} \fontsample{cmctt10} + \fontsample{cmcyr10}

+ +

\fontdir{fonts/cmoefont} \fontsample{cmoebx10} + \fontsample{cmoer10} \fontsample{cmoesc10} + \fontsample{cmoesl10} \fontsample{cmoeti10} + \fontsample{cmoett10}

+ +

\fontdir{fonts/cmpica} \fontsample{cmpicab} + \fontsample{cmpicati} \fontsample{cmpica}

+ +

\fontdir{fonts/concrete} \fontsample{cccsc10} + \fontsample{ccmi10} \fontsample{ccr10} \fontsample{ccsl10} + \fontsample{ccslc9} \fontsample{ccti10}

+ +

\fontdir{fonts/duerer} \fontsample{cdb10} + \fontsample{cdi10} \fontsample{cdr10} \fontsample{cdsl10} + \fontsample{cdss10} \fontsample{cdtt10}

+ +

\fontdir{fonts/eiad} \fontsample{eiad10} + \fontsample{eiadbf10}

+ +

\fontdir{fonts/elvish} \fontsample{teng10}

+ +

\fontdir{fonts/engwar} \fontsample{engwar}

+ +

\fontdir{fonts/fc} \fontsample{b-fcbx10} + \fontsample{b-fcbxi10} \fontsample{b-fcbxsl10} + \fontsample{b-fcbxu10} \fontsample{b-fccsc10} + \fontsample{b-fci10} \fontsample{b-fcitt10} + \fontsample{b-fcr10} \fontsample{b-fcsibx10} + \fontsample{b-fcsitt10} \fontsample{b-fcsl10} + \fontsample{b-fcss10} \fontsample{b-fcssbx10} + \fontsample{b-fcssi10} \fontsample{b-fcsstt10} + \fontsample{b-fctt10} \fontsample{b-fcu10}

+ +

\fontdir{fonts/futhark} \fontsample{futhol10}

+ +

\fontdir{fonts/georgian} \fontsample{georgian} + \fontsample{mxed10} \fontsample{mxedbf10}

+ +

\fontdir{fonts/go} \fontsample{go10} + \fontsample{go1bla10} \fontsample{go1whi10} + \fontsample{go2bla10} \fontsample{go2whi10}

+ +

\fontdir{fonts/gothic} \fontsample{yfrak} + \fontsample{ygoth} \fontsample{yinit} + \fontsample{yswab}

+ +

\fontdir{fonts/greek/kd} \fontsample{kdbf10} + \fontsample{kdgr10} \fontsample{kdsl10} \fontsample{kdti10} + \fontsample{kdtt10}

+ +

\fontdir{fonts/greek/kelly} \fontsample{cmg10} + \fontsample{cmgb10} \fontsample{cmgi10} + \fontsample{cmgtt10}

+ +

\fontdir{fonts/greek/moschovakis} \fontsample{gecmbx10} + \fontsample{gecmml10} \fontsample{gecmr10} + \fontsample{gecmsc10} \fontsample{gecmsl10} + \fontsample{gecmss10} \fontsample{gecmti10} + \fontsample{gecmtt10}

+ +

\fontdir{fonts/greek/yannis} \fontsample{mrgrbf10} + \fontsample{mrgrrg10} \fontsample{mrgrsl10} + \fontsample{mrgrti10} \fontsample{rgrbf10} + \fontsample{rgrrg10} \fontsample{rgrsl10} + \fontsample{rgrti10}

+ +

\fontdir{fonts/halftone} \fontsample{halftone}

+ +

\fontdir{fonts/hge} \fontsample{hge}

+ +

\fontdir{fonts/hieroglyph} \fontsample{diacr10}

+ +

\fontdir{fonts/karta} \fontsample{karta15}

+ +

\fontdir{fonts/klinz} \fontsample{klinz}

+ +

\fontdir{fonts/knot} \fontsample{knot1} + \fontsample{knot2} \fontsample{knot3} \fontsample{knot4} + \fontsample{knot5} \fontsample{knot6} + \fontsample{knot7}

+ +

\fontdir{fonts/levy} \fontsample{grbld10} + \fontsample{grreg10} \fontsample{grtt10}

+ +

\fontdir{fonts/malvern} \fontsample{fmvX10} + \fontsample{fmvb10} \fontsample{fmvi10} + \fontsample{fmvr10}

+ +

\fontdir{fonts/ocr-a} \fontsample{ocr10}

+ +

\fontdir{fonts/ocr-b} \fontsample{ocrb10}

+ +

\fontdir{fonts/pandora} \fontsample{pnb10} + \fontsample{pnr10} \fontsample[-8pt]{pnsl10} + \fontsample{pnss10} \fontsample{pnssb10} + \fontsample[-8pt]{pnssi10} \fontsample{pntt9}

+ +

\fontdir{fonts/phonetic} \fontsample{cmph10} + \fontsample{cmphb10} \fontsample{cmphi10}

+ +

\fontdir{fonts/punk} \fontsample{punk10} + \fontsample{punkbx20} \fontsample{punksl20}

+ +

\fontdir{fonts/redis} \fontsample{redis10} + \fontsample{redisbx10} \fontsample{rediss10}

+ +

\fontdir{fonts/rsfs} \fontsample{rsfs10}

+ +

\fontdir{fonts/rune} \fontsample{rune} + \fontsample{srune}

+ +

\fontdir{fonts/srune} \fontsample{srune}

+ +

\fontdir{fonts/stmary} \fontsample{stmary10}

+ +

\fontdir{fonts/tengwar} \fontsample{tengwar}

+ +

\fontdir{fonts/tsipa} \fontsample{tsipa10}

+ +

\fontdir{fonts/twcal} \fontsample{twcal14}

+ +

\fontdir{fonts/va} \fontsample{va14} + \fontsample{vacal14}

+ +

\fontdir{fonts/wasy} \fontsample{wasy10}

+ +

\fontdir{fonts/wasy2} \fontsample{wasy10} + \fontsample{wasyb10}

+ +

\fontdir{fonts/wsuipa} \fontsample{wbxipa10} + \fontsample{wslipa10} \fontsample{wsuipa10}

+ +

\fontdir{macros/latex/distribs/latex/fonts} + \fontsample{lasy10} \fontsample{lasyb10} + \fontsample{lcircle10} \fontsample{lcirclew10} + \fontsample{lcmss8} \fontsample{lcmssb8} + \fontsample{lcmssi8} \fontsample{line10} + \fontsample{linew10}

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/apc.html b/Master/texmf-doc/doc/english/make-tex-work/html/apc.html new file mode 100644 index 00000000000..d43d0de1651 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/apc.html @@ -0,0 +1,1168 @@ + + + + + + + + + Appendix C. Resources + + + + + + + + + + + +
+
+
+

Appendix C. Resources

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

This appendix lists the resources described in this book. + Each of the tools (with the exception of tools mentioned only + in Chapter Chapter 16, + Chapter 16, + which are already listed in a similar format) described in + the book is presented here. Each entry credits the author and + provides information about where the software can be + obtained.

+ +

Most of the resources in this appendix are availble from + the CTAN archives. Where other sites are listed (for example, + oak.oakland.edu for MS-DOS software), the addresses + are only one possibility. Most of these archives are mirrored + around the world. When possible, use an FTP site that is + geographically nearby. If you are connected to the Internet, + the archie service can help you locate nearby + sites.

+ +
+
+
+

TUG: The TeX Users Group

+
+
+ +

The TeX Users Group TUG, + begun in 1980, is the international group for TeX users. + Their mission is to encourage and expand the use of TeX, + MetaFont, and related systems; to ensure the integrity and + portability of these systems; and to foster innovation in + high-quality electronic document preparation.

+ +

Membership includes the quarterly TUGboat, the + newsletter TTN (also a quarterly), and a membership + directory; as well, TUG + publishes an occasional series called TeXniques, for + special topics (e.g., PiCTeX, edmac.sty).

+ +

TUG annual meetings are + held in various locations, currently in North America and + Europe, in a regular rotation; proceedings are published in + TUGboat. Most of the publications now available on + TeX, MetaFont, and related systems are available from the + TUG office, which also + distributes the main public domain TeX implementations.

+ +

In addition to its publications, TUG promotes active development + work via the Technical Council and its Technical Working + Groups. \pagebreak Efforts here include the CTAN archive + work, multilingual TeX, TeX for the disabled, and the + intersection of TeX with SGML and with Acrobat.

+ +

Information about joining TUG, receiving TUGboat, and + attending the annual meetings is available from:

+ +

TeX Users Group \\ P.O. Box 869 \\ Santa Barbara, + California \\ 93102 USA

+ +
+
+
+

Other User Groups

+
+
+ +

There are also many other user groups, often based on + language or geography: German-speaking users ({\sc + DANTE}), French-speaking users ({\sc + GUT}enberg\hskip.25pt), Dutch-speaking users ({\sc NTG}), + users in the Nordic countries (the Nordic group), users + in the UK ({\sc UK} TeX Users Group). There are active + groups in existence in Japan, in Russia (CyrTUG), in Estonia, in Poland + ({\sc GUST}), and in the Czech Republic (CsTUG), to name but a few.

+ +

Contact TUG for details + on how to get in touch with these or other TeX user + groups.

+
+
+ +
+
+
+

TeX Software

+
+
+ +

\package{\cmactex} \author{Thomas R. Kiffe} + \ftp{CTAN:systems/mac/cmactex} \print

+ +

\package{\directex} \author{Wilfried Ricken} + \ftp{CTAN:systems/mac/directtex} \print

+ +

\package{\emTeX} \author{Eberhard Mattes} + \ftp{CTAN:systems/msdos/emtex} \print

+ +

\package{\gTeX} \author{Young U. Ryu} + \ftp{CTAN:systems/msdos/gtex} \print

+ +

\package{\oztex} \author{Andrew Trevorrow} + \files{$\Sigma$Edit} \ftp{CTAN:systems/mac/oztex}

+ +

\package{\PCTeX} \author{Personal \TeX, Inc.} + \address{12 Madrona Avenue\\Mill Valley, CA 94941\\USA} + \phone{(415) 388--8853 / (413) 388--8865 FAX} \print

+ +

\package{\sbTeX} \author{Wayne G. Sullivan} + \ftp{CTAN:systems/msdos/sbtex} \print

+ +

\package{\TeX} + \author{Donald Knuth} \ftp{CTAN:systems/web2c} \comment{The + \Web sources and the \Web2C programs are both available + here.} \print

+ +

\package{texas} \author{Shih-Ping Chan} + \ftp{CTAN:systems/msdos/texas} \print

+ +

\package{Textures} \author{Blue Sky Research} + \address{534 SW Third Avenue\\Portland, OR 97204\\USA} + \phone{(800) 622--8398 or (503) 222--9571 / (503) 222--1643 + FAX} \files{dvitool} \print

+ +

\package{\TurboTeX} \author{Kinch Computer Company} + \address{501 Meadow Street\\Ithaca, NY 14850\\USA} + \phone{(607) 273--0222 / (607) 273--0484 FAX} \print

+ +

\package{\utex} + \author{ArborText} \address{1000 Victors Way\\Ann Arbor, MI + 48108\\USA} \phone{(313) 996--3566 / (313) 996--3573 FAX} + \print

+ +

\package{\yyTeX} \author{\YY, Inc.} \address{106 Indian + Hill\\Carlisle, MA 01741\\USA} \phone{(508) 371--3286 / + (508) 371--2004 FAX} \print

+
+ +
+
+
+

TeX Shells

+
+
+ +

\vskip2pt

+ +

\package{\fourTeX} \author{Wietse Dol, Erik Frambach, + Arjen Merckens, and Maarten van der Vlerk} + \ftp{CTAN:systems/msdos/4tex} \print

+ +

\package{\PMTeX} \author{Guillaume Schiltz} + \ftp{CTAN:systems/os2/pmtex} \print

+ +

\package{\TeXPert} \author{Johannes Martin} + \ftp{CTAN:systems/msdos/texpert} \print

+ +

\package{\TeXShell} \author{J\"urgen Schlegelmilch} + \ftp{CTAN:systems/msdos/texshell} \print

+ +

\package{X\TeX{}Shell} \author{Michael Hofmann} + \ftp{tsx-11.mit.edu:pub/linux/packages/TeX} \print

+
+ +
+
+
+

Editors

+
+
+ +

\vskip2pt

+ +

\package{$\Sigma$Edit} \xref{\oztex}{ap03:oztex} + \print

+ +

\package{Alpha} \author{Pete Keheler} + \ftp{CTAN:systems/mac} \print

+ +

\package{BBEdit} \author{Rich Siegel} + \ftp{mac.archive.umich.edu:/mac/util/text} \print

+ +

\package{Brief} \author{Borland International, Inc.} + \address{1800 Green Hills Road\\P.O. Box 660001\\Scotts + Valley, CA 95067--0001} \phone{(408) 438--8400} \print

+ +

\package{demacs} \author{Manabu Higashida and Hirano + Satoshi} \ftp{oak.oakland.edu:/pub/msdos/demacs} \print

+ +

\package{Doc} \xref{idraw}{ap03:idraw} \print

+ +

\package{emacs} \xref{GNU emacs}{ap03:emacs} \print

+ +

\package{epm} \author{International Business Machines} + \ftp{ftp.cdrom.com:/pub/os2/ibm/epm} \print

+ +

\package{GNU emacs} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{Jove} \author{Jonathan Payne} + \ftp{oak.oakland.edu:/pub/msdos/editor} \print

+ +

\package{MathPad} \author{Roland Backhouse, Richard + Verhoeven, and Olaf Weber} \ftp{CTAN:support/mathpad} + \print

+ +

\package{MEwin} \author{Pierre Perret} + \ftp{oak.oakland.edu:/pub/msdos/windows3} \print

+ +

\package{MicroEMACS} \xref{MEwin}{ap03:mewin} \print

+ +

\package{Multi-Edit} \author{American Cybernetics} + \address{1830 West University Drive, Suite 112\\Tempe, AZ + 85821} \phone{(602) 968--1945 / (602) 966--1654 FAX} + \print

+ +

\package{Scientific Word} \author{TCI Software Research} + \address{1190 Foster Road\\Las Cruces, NM 88001\\USA} + \phone{(505) 522--4600 / (505) 522--0116} \print

+ +

\package{Xnot} \author{Julie Melbin} + \ftp{oak.oakland.edu:/pub/msdos/editor} \print

+
+ +
+
+
+

Macro Packages (Formats)

+
+
+ +

\vskip2pt

+ +

\package{\AMSTeX} \author{\ams} + \ftp{CTAN:fonts/ams/amstex} \print

+ +

\package{Eplain} \xref{Extended Plain \TeX}{ap03:eplain} + \print

+ +

\package{Extended Plain \TeX} \author{Karl Berry} + \ftp{CTAN:macros/eplain} \print

+ +

\package{Lame\TeX} \author{Jonathan Monsarrat} + \ftp{CTAN:misc/lametex} \print

+ +

\package{\LamSTeX} \author{Michael Spivak} + \ftp{CTAN:macros/lamstex} \print

+ +

\package{\LaTeX} \author{Leslie Lamport} + \ftp{CTAN:macros/latex/core} \print

+ +

\package{\LaTeXe} \author{Leslie Lamport, et. al.} + \ftp{CTAN:macros/latex2e/core} \print

+ +

\package{Lollipop} \author{Victor Eijkhout} + \ftp{CTAN:macros/lollipop} \print

+ +

\package{\MusicTeX} \author{Daniel Taupin} + \ftp{CTAN:macros/musictex} \print

+ +

\package{Plain \TeX} \author{Donald Knuth} + \ftp{CTAN:macros/plain/base} \print

+ +

\package{\SliTeX} \author{Leslie Lamport} + \ftp{CTAN:macros/latex/core} \print

+
+ +
+
+
+

Styles and Macros

+
+
+ +

\vskip2pt

+ +

\package{\AMSLaTeX} \author{\ams} + \ftp{CTAN:fonts/ams/amslatex} \print

+ +

\package{\arabTeX} \author{Klaus Lagally} + \ftp{CTAN:language/arabtex} \print

+ +

\package{ascii.sty} \author{R. W. D. Nickalls} + \ftp{CTAN:fonts/ascii} \print

+ +

\package{Babel} \author{J. L. Braams} + \ftp{language/babel} \print

+ +

\package{bibunits.sty} \author{Jose Alberto} + \ftp{CTAN:macros/latex/contrib/misc} \print

+ +

\package{chapterbib} \author{Niel Kempson and Donald + Arseneau} \ftp{CTAN:macros/latex/contrib/misc} \print

+ +

\package{Chem\TeX} \author{Roswitha T. Haas and Kevin C. + O'Kane} \ftp{CTAN:macros/latex/contrib/chemtex} \print

+ +

\package{ChemStruct} \author{Michael Ramek} + \ftp{CTAN:macros/latex/contrib/chemstruct} \print

+ +

\package{\DraTeX} \author{Eitan M. Gurari} + \ftp{CTAN:macros/generic/dratex} \print

+ +

\package{EDMAC} \author{John Lavagnino} + \ftp{CTAN:macros/plain/contrib/edmac} \print

+ +

\package{eepic.sty} \author{Conrad Kwok} + \ftp{CTAN:macros/latex/contrib/eepic} \print

+ +

\package{epic.sty} \author{Sunil Podar} + \ftp{CTAN:macros/latex/contrib/epic} \print

+ +

\package{epsf.tex} \xref{dvips}{ap03:dvips} \print

+ +

\package{epsfig.sty} \author{Sebastian Rahtz, Tom + Rokicki, Trevor Darrell, et. al.} + \ftp{CTAN:macros/latex/contrib/epsfig} \print

+ +

\package{\FoilTeX} \author{James Hafner} + \ftp{CTAN:macros/foiltex} \print

+ +

\package{idxmac.tex} \ftp{CTAN:indexing/makeindex/lib} + \print

+ +

\package{index.sty} \author{David Jones} + \ftp{CTAN:macros/latex/contrib/misc}

+ +

\package{\INRSTeX} \author{Michael J. Ferguson} + \ftp{CTAN:macros/inrstex} \print

+ +

\package{isolatin1.sty} + \ftp{CTAN:macros/latex/contrib/misc} \print

+ +

\package{Midnight} \author{Marcel van der Goot} + \ftp{CTAN:macros/generic/midnight} \print

+ +

\package{multind} \author{F. W. Long} + \ftp{CTAN:macros/latex/contrib/misc} \print

+ +

\package{\PiCTeX} \author{Michael Wichura} + \ftp{CTAN:graphics/pictex} \print

+ +

\package{\REVTeX} \author{American Physical Society, + American Institute of Physics, and Optical Society of + America} \ftp{CTAN:macros/latex/contrib/revtex} \print

+ +

\package{\ScriptTeX} \author{Adrian McCarthy} + \ftp{CTAN:macros/scripttex} \print

+ +

\package{Seminar} \author{Timothy Van Zandt} + \ftp{CTAN:macros/latex/contrib/seminar} \print

+ +

\package{\TeX/Mathematica} \author{Dan Dill} + \ftp{CTAN:macros/mathematica} \print

+ +

\package{\TeX{}sis} \author{Eric Myers and Frank E. + Paige} \ftp{CTAN:macros/texsis} \print

+ +

\package{Ver\TeX} \author{Hal Varian} + \ftp{CTAN:macros/plain/contrib} \print

+ +

\package{\XYPic} \author{Kristoffer H. Rose} + \ftp{ftp.diku.dk:/diku/users/kris} \print

+ +
+
+
+

Styles That Produced This + Book

+
+
+ +

This book was formatted with an extensively modified + version of the standard LaTeX book style. In addition to + the pstricks, index.sty, + epsfig.sty, epic.sty, and + eepic.sty files described above, the following + styles were used to format this book: \vskip6pt

+ +

\package{pageframe.sty} \author{Cameron Smith} + \ftp{CTAN:macros/latex/contrib/pageframe} \print

+ +

\package{footnpag.sty} \author{Joachim Schrod} + \ftp{CTAN:macros/latex/contrib/footnpag} \print

+ +

\package{fancybox.sty} \author{Timothy Van Zandt} + \ftp{CTAN:macros/latex/contrib/misc} \print

+ +

\package{fancyheadings.sty} \author{Piet van Oostrum} + \ftp{CTAN:macros/latex/contrib/fancyheadings} \print

+ +

\package{array.sty} \author{Frank Mittelbach and David + Carlisle} \ftp{CTAN:macros/latex/distribs/array} + \print

+ +

\package{dcolumn.sty} \author{David Carlisle} + \ftp{CTAN:macros/latex/distribs/array} \print

+ +

\package{tabularx.sty} \author{David Carlisle} + \ftp{CTAN:macros/latex/distribs/array} \print

+ +

\package{longtable.sty} \author{David Carlisle} + \ftp{CTAN:macros/latex/distribs/array} \print

+ +

\package{verbatim.sty} \author{Rainer Sch\"opf} + \ftp{CTAN:macros/latex/distribs/verbatim} \print

+ +

\package{vrbinput.sty} \author{Bernd Raichle} + \ftp{CTAN:macros/latex/distribs/verbatim} \print

+ +

\package{path.sty} \author{Philip Taylor} + \ftp{CTAN:macros/latex/contrib/misc} \print

+
+
+ +
+
+
+

Utilities

+
+
+ +

\vskip2pt

+ +

\package{afm2tfm} \xref{dvips}{ap03:dvips} \print

+ +

\package{amSpell} \author{Erik Frambach} + \address{Faculty of Econometrics\\University of + Groningen\\Netherlands} \ftp{CTAN:support/amspel} + \print

+ +

\package{animate} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{\auctex} \author{Kresten Krab Thorup and Per + Abrahamsen} \ftp{CTAN:support/auctex} \print

+ +

\package{awk} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \comment{The FSF's version of \program{awk} is + called \program{gawk}. Many commercial implementations of + \program{awk} are also available.} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{bbfig} \author{Ned Betchelder} + \ftp{CTAN:dviware/dvips/dvips/contrib/bbfig} \print

+ +

\package{bibclean} \author{Nelson H. F. Beebe} + \ftp{CTAN:bibtex/utils/bibclean} \print

+ +

\package{bibdb} \author{Eyal Doron} + \ftp{CTAN:support/bibdb} \print

+ +

\package{bibdestringify} + \xref{lookbibtex}{ap03:lookbibtex} \print

+ +

\package{bibextract} \author{Nelson H. F. Beebe} + \ftp{CTAN:biblio/bibtex/utils/bibextract} \print

+ +

\package{bibindex} \author{Nelson H. F. Beebe} + \ftp{CTAN:biblio/bibtex/utils/bibindex} \print

+ +

\package{biblook} \xref{bibindex}{ap03:bibindex} + \print

+ +

\package{bibsort} \author{Nelson H. F. Beebe} + \ftp{CTAN:biblio/bibtex/utils/bibsort} \print

+ +

\package{\BibTeX} \author{Oren Patashnik} + \ftp{CTAN:biblio/bibtex} \print

+ +

\package{bibview} \author{Holger Martin, Peter Urban, + and Armin Liebl} \comment{Available from volume 18 of the + \texttt{comp.sources.x} newsgroup.} \print

+ +

\package{Bitmap} \author{Davor Matic} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{Bm2font} \author{Friedhelm Sowa} + \ftp{CTAN:graphics/bm2font} \print

+ +

\package{citefind} \xref{bibextract}{ap03:bibextract} + \print

+ +

\package{citetags} \xref{bibextract}{ap03:bibextract} + \print

+ +

\package{combine} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{convert} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{crudetype} \author{R. M. Damerell} + \ftp{CTAN:dviware/crudetype} \print

+ +

\package{detex} \author{Daniel Trinkle} + \ftp{CTAN:support/detex} \print

+ +

\package{display} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{dvgt} \author{Geoffrey Tobin} + \ftp{CTAN:dviware/dvgt} \print

+ +

\package{dvi2tty} \author{Marcel J. E. Mol} + \ftp{CTAN:dviware/dvi2tty} \print

+ +

\package{dvi2xx} \author{Gustaf Neumann} + \ftp{CTAN:dviware/dvi2xx} \print

+ +

\package{dvicopy} \author{Peter Breitenlohner} + \ftp{CTAN:dviware/dvicopy} \print

+ +

\package{dvideo} \xref{\TurboTeX}{ap03:turbotex} + \print

+ +

\package{dvidot} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvidrv} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvidvi} \author{Tom Rokicki} + \ftp{CTAN:dviware/dvidvi} \print

+ +

\package{dvidxx} \comment{See + Example \ref{ex:dvidxx} in + Chapter \ref{app:examples}, + \textit{\nameref{app:examples}}.} \print

+ +

\package{dvihplj} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{DVILASER/HP} \xref{\utex}{ap03:utex} \print

+ +

\package{DVILASER/PS} \xref{\utex}{ap03:utex} \print

+ +

\package{\dvilaserhp} \xref{\utex}{ap03:utex} \print

+ +

\package{\dvilaserps} \xref{\utex}{ap03:utex} \print

+ +

\package{dvilj2} \xref{dvi2xx}{ap03:dvi2xx} \print

+ +

\package{dvimsp} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvimswin} \author{J. D. McDonald} + \ftp{CTAN:dviware/dvimswin} \print

+ +

\package{dvipaste} \author{Michael Spivak} + \ftp{CTAN:macros/lamstex/dvipaste} \print

+ +

\package{dvipcx} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvipm} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvips} \author{Tomas Rokicki} + \ftp{CTAN:dviware/dvips} \print

+ +

\package{dvipsk} \author{Karl Berry} + \ftp{CTAN:dviware/dvipsk} \comment{\program{dvips} enhanced + to support path searching for fonts.} \print

+ +

\package{dvipsone} \xref{\yyTeX}{ap03:yytex} \print

+ +

\package{dviscr} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{dvispell} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{DVITool} \author{Jeff W. McCarrell} + \ftp{CTAN:support/vortex/dvitool} \comment{Unrelated to the + \program{Textures} tool of the same name.} \print

+ +

\package{dvitovdu} \author{Andrew Trevorrow} + \ftp{CTAN:dviware/dvitovdu} \print

+ +

\package{dvitype} \xref{\texware}{ap03:texware} + \print

+ +

\package{dvivga} \ftp{CTAN:dviware/dvivga} \print

+ +

\package{dviwin} \author{Hippocrates Sendoukas} + \ftp{CTAN:dviware/dviwin} \print

+ +

\package{DVIWindo} \xref{\yyTeX}{ap03:yytex} \print

+ +

\package{enc-afm.pl} \comment{See + Example \ref{ex:encafmpl} in + Chapter \ref{app:examples}, + \textit{\nameref{app:examples}}.} \print

+ +

\package{epmtex} \author{Jon Hacker} + \ftp{CTAN:systems/os2/epmtex} \print

+ +

\package{epsfig} \author{Peter Whaite} + \ftp{CTAN:macros/latex/contrib/epsfig}

+ +

\package{Excalibur} \author{Rick Zaccone} + \ftp{CTAN:systems/mac/excalibur} \print

+ +

\package{Fig} \author{Supoj Sutanthavibul} \print

+ +

\package{\FigMF} \author{Anthony Starks} + \ftp{CTAN:graphics/fig2mf} \print

+ +

\package{fontinst} \author{Alan Jeffrey} + \ftp{CTAN:fonts/utilities/fontinst} \print

+ +

\package{fontlib} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{GFtoDVI} \xref{\mfware}{ap03:mfware} \print

+ +

\package{GFtoPK} \xref{\mfware}{ap03:mfware} \print

+ +

\package{Ghostscript} \author{Aladdin Enterprises} + \address{P.O. box 60264\\Palo Alto, CA 94306\\USA} + \phone{(415) 322--0103 / (415) 322--1734 FAX} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{Ghostview} \author{Timothy O. Theisen} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{gnuplot} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{GoScript} \author{LaserGo, Inc.} + \address{9369 Carroll Park Drive, Suite A\\San Diego, CA + 92121\\USA} \phone{(619) 450--4600 / (619) 450-9334 FAX} + \print

+ +

\package{GoScript Plus} \xref{GoScript}{ap03:goscript} + \print

+ +

\package{groff} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \comment{The FSF's version of \program{troff} + is called \program{groff}. Many commercial implementations + of \program{troff} are also available.} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{hp2xx} \author{Heinz W. Werntges} + \ftp{CTAN:support/hp2xx} \print

+ +

\package{HPTFM2PL} \author{Norman Walsh} + \ftp{CTAN:support/hp2pl} \print

+ +

\package{Hyper\BibTeX} \author{Evan Antwork} + \ftp{mac.archive.umich.edu:/mac/misc/tex} \print

+ +

\package{idraw} \ftp{interviews.stanford.edu} + \print

+ +

\package{Image Alchemy} \author{Handmade Software, Inc.} + \address{15951 Los Gatos Blvd., Ste. 17\\Los Gatos, CA + 95032\\USA} \phone{(408) 358--1292 / (408) 358--2694} + \ftp{oak.oakland.edu:/pub/msdos/graphics} \print

+ +

\package{Image Magick} \author{John Cristy} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{import} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{Info-Zip} \author{Mark Adler, et. al.} + \files{zip, unzip} \ftp{ftp.uu.net:/pub/archiving/zip} + \print

+ +

\package{\iniMF} \xref{\MF}{ap03:mf} \print

+ +

\package{\iniTeX} \xref{\TeX}{ap03:tex} \print

+ +

\package{ispell} \ftp{CTAN:support/ispell} \print

+ +

\package{ivd2dvi} \author{Larry Denenberg} + \ftp{CTAN:dviware/ivd2dvi} \print

+ +

\package{\jemtex} \author{Fran\c cois Jalbert} + \ftp{CTAN:systems/msdos/jemtex2} \print

+ +

\package{LaCheck} \author{Kresten Krab Thorup and Per + Abrahamsen} \ftp{CTAN:support/lacheck} \print

+ +

\package{lookbibtex} \author{John Heidemann} + \ftp{CTAN:biblio/bibtex/utils/lookbibtex} \print

+ +

\package{Mac\BibTeX} \xref{\BibTeX}{ap03:bibtex} + \author{Michael Kahn} \ftp{CTAN:systems/mac} \comment{This + is a Mac port of \BibTeX.} \print

+ +

\package{MacDVIcopy} \author{Yannis Haralambous} + \xref{dvicopy}{ap03:dvicopy} \comment{This is a Mac port of + \program{dvicopy}.} \print

+ +

\package{MacGS} \author{Martin Fong} + \xref{GhostScript}{ap03:ghostscript} + \ftp{mac.archive.umich.edu:/mac/graphics/graphicsutil} + \comment{This is a Mac port of \program{GhostScript}.} + \print

+ +

\package{MacMakeIndex} \author{Johnny Tolliver} + \xref{MakeIndex}{ap03:makeindex} \ftp{CTAN:systems/mac} + \comment{This is a Mac port of \program{MakeIndex}.} + \print

+ +

\package{makebst} \author{Patrick W. Daly} + \ftp{CTAN:macros/latex/contrib/custom-bib} \print

+ +

\package{makeidx.sty} \ftp{CTAN:indexing/makeindex/lib} + \print

+ +

\package{MakeIndex} \author{Pehong Chen} + \ftp{CTAN:indexing/makeindex} \print

+ +

\package{MakeIndx} \xref{MakeIndex}{ap03:makeindex} + \print

+ +

\package{MakeInfo} \xref{\TeXinfo}{ap03:texinfo} + \print

+ +

\package{maketcp} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{MakeTeXPK} \xref{dvips}{ap03:dvips} + \comment{There are several versions of this file available. + See Example \ref{ex:maketexpk} in + Chapter \ref{app:examples}, + \textit{\nameref{app:examples}}.} \print

+ +

\package{MakeTeXTFM} \comment{See + Example \ref{ex:maketextfm} in + Chapter \ref{app:examples}, + \textit{\nameref{app:examples}}.} \print

+ +

\package{\MF} + \author{Donald Knuth} \ftp{CTAN:systems/web2c} \comment{The + \Web sources and the \Web2C programs are both available + here.} \print

+ +

\package{\MF for Textures} \author{Blue Sky Research} + \address{534 SW Third Avenue\\Portland, OR 97204\\USA} + \phone{(800) 622--8398 or (503) 222--9571 / (503) 222--1643 + FAX} \ftp{CTAN:systems/mac/metafont/bluesky} \print

+ +

\package{MFjob} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{\MFpic} \author{Thomas Leathrum} + \ftp{CTAN:graphics/mfpic} \print

+ +

\package{MFT} \xref{\mfware}{ap03:mfware} \print

+ +

\package{\mfware} \author{Donald Knuth} + \ftp{CTAN:systems/web2c} \comment{The \Web sources and the + \Web2C programs are both available here.} \print

+ +

\package{mogrify} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{montage} \xref{Image Magick}{ap03:imagemagick} + \print

+ +

\package{Nikon II} \author{Bitware, Software & + Services} \address{P.O. Box 3097\\Manuka A.C.T. + 2603\\Australia} \ftp{ftp.cdrom.com:/pub/os2/2_x/graphics} + \print

+ +

\package{nroff} \xref{groff}{ap03:groff} \print

+ +

\package{PBMplus} \author{Jef Poskanzer} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{pbmtopk} \author{Angus Duggan} + \ftp{CTAN:graphics/pbmtopk} \print

+ +

\package{pfatopfb} \xref{\tutils}{ap03:t1utils} + \print

+ +

\package{pfbtopfa} \xref{\tutils}{ap03:t1utils} + \print

+ +

\package{PFM2AFM} \author{Ken Borgendale} + \ftp{CTAN:fonts/utilities/pfm2afm} \print

+ +

\package{pixmap} \author{Lionel Mallet} + \ftp{ftp.x.org:/contrib/pixmap} \print

+ +

\package{PKBBOX} \author{Norman Walsh} + \ftp{CTAN:fonts/utilities/pkbbox} \print

+ +

\package{PKEdit} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{PKtoGF} \xref{\mfware}{ap03:mfware} \print

+ +

\package{pktopbm} \xref{pbmtopk}{ap03:pbmtopk} + \print

+ +

\package{pktops} \xref{\yyTeX}{ap03:yytex} \print

+ +

\package{PKtoPX} \xref{\mfware}{ap03:mfware} \print

+ +

\package{PKtoSFP} \author{Norman Walsh} + \ftp{CTAN:font/softfonts} \print

+ +

\package{PKtype} \xref{\mfware}{ap03:mfware} \print

+ +

\package{PLtoTF} \xref{\texware}{ap03:texware} + \print

+ +

\package{PM-Cam} \author{J. von Kaenel} + \ftp{ftp.cdrom.com:/pub/os2/ibm/ews} \print

+ +

\package{\pmc} \author{Tom Ridgeway} + \ftp{CTAN:fonts/poorman} \print

+ +

\package{\pmj} \author{Tom Ridgeway} + \ftp{CTAN:fonts/poorman} \print

+ +

\package{Pmjpeg} \author{Norman Yee} + \ftp{ftp.cdrom.com:/pub/os2/2_x/graphics} \print

+ +

\package{ps2epsi} \xref{ghostscript}{ap03:ghostscript} + \print

+ +

\package{PS2PK} \author{Piet Tutelaers} + \ftp{CTAN:fonts/utilities/ps2pk} \print

+ +

\package{\PSTricks} \author{Timothy Van Zandt} + \ftp{CTAN:graphics/pstricks} \print

+ +

\package{PTI Jet} \xref{\PCTeX}{ap03:pctex} \print

+ +

\package{PTI Laser/HP} \xref{\PCTeX}{ap03:pctex} + \print

+ +

\package{PTI Laser/HP4} \xref{\PCTeX}{ap03:pctex} + \print

+ +

\package{PTI Laser/PS} \xref{\PCTeX}{ap03:pctex} + \print

+ +

\package{PTI View} \xref{\PCTeX}{ap03:pctex} \print

+ +

\package{PXtoPK} \author{Peter Breitenlohner} + \ftp{systems/msdos/utilities} \print

+ +

\package{RCS} \author{Walter F. Tichy} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{Recode} \author{Francois Pinard} + \ftp{prep.ai.mit.edu:/pub/gnu} \print

+ +

\package{REXX} \author{International Business Machines} + \print

+ +

\package{\sbMF} \xref{\sbTeX}{ap03:sbtex} \print

+ +

\package{sed} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \ftp{prep.ai.mit.edu:/pub/gnu} \comment{Many + commercial implementations of \program{sed} are also + available.} \print

+ +

\package{\SeeTeX} \author{David Grunwald} + \ftp{CTAN:dviware/seetex} \print

+ +

\package{sffx} \xref{Sfware}{ap03:sfware} \print

+ +

\package{Sfload} \xref{Sfware}{ap03:sfware} \print

+ +

\package{SFPtoPK} \author{Norman Walsh} + \ftp{CTAN:font/softfonts} \print

+ +

\package{Sfware} \author{Norman Walsh} + \ftp{CTAN:font/softfonts/sfware} \print

+ +

\package{tangle} \xref{\Web2c}{ap03:web2c} \print

+ +

\package{tar} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \ftp{prep.ai.mit.edu:/pub/gnu} \comment{Many + commercial implementations of \program{tar} are also + available.} \print

+ +

\package{tex386} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{\TeX Preview} \xref{\utex}{ap03:utex} + \print

+ +

\package{texcad} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{texchk} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{texconv} \xref{\emTeX}{ap03:emtex} \print

+ +

\package{\TeXinfo} \author{Free Software Foundation} + \address{675 Massachusetts Avenue\\Cambridge, MA + 02139\\USA} \ftp{prep.ai.mit.edu:/pbu/gnu} \print

+ +

\package{\TeXtoXfont} \comment{See + Example \ref{ex:textoxfont} in + Chapter \ref{app:examples}, + \textit{\nameref{app:examples}}.} \print

+ +

\package{\texware} \author{Donald Knuth} + \ftp{CTAN:systems/web2c} \comment{The \Web sources and the + \Web2C programs are both available here.} \print

+ +

\package{TFtoPL} \xref{\texware}{ap03:texware} + \print

+ +

\package{Tgif} \author{William Chia-Wei Cheng} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{\Tib} \author{James C. Alexander} + \ftp{CTAN:biblio/tib} \print

+ +

\package{\tpre} \xref{\utex}{ap03:utex} \print

+ +

\package{troff} \xref{groff}{ap03:groff} \print

+ +

\package{\tutils} \author{I. Lee Hetherington} + \ftp{CTAN:fonts/utilities/t1utils} \print

+ +

\package{txt2pcx} \author{DECISIONS Software} + \address{P.O. Box 31418\\Phoenix, AZ 85046\\USA} + \phone{(602) 992--0310} \print

+ +

\package{unzip} \xref{Info-Zip}{ap03:info-zip} + \print

+ +

\package{VFtoVP} \xref{\mfware}{ap03:mfware} \print

+ +

\package{VPtoVF} \xref{\mfware}{ap03:mfware} \print

+ +

\package{wbr} \xref{dviwin}{ap03:dviwin} \print

+ +

\package{wdviwin} \xref{\TurboTeX}{ap03:turbotex} + \print

+ +

\package{weave} \xref{\Web2c}{ap03:web2c} \print

+ +

\package{xbibtex} \author{Nicholas Kelly and Christian + H. Bischof} \ftp{CTAN:biblio/bibtex/utils/xbibtex} + \print

+ +

\package{Xdvi} \author{Paul Vojta} + \ftp{CTAN:dviware/xdvi} \print

+ +

\package{\XeT} \ftp{noa.huji.ac.il:/tex} + \comment{Several implementations of \XeT-{}-\TeX are + available here.} \print

+ +

\package{xfig} \author{Brian V. Smith} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{xloadimage} \author{Jim Frost} + \ftp{ftp.x.org:/contrib} \print

+ +

\package{xpaint} \author{David Koblas} + \ftp{ftp.x.org:/contrib}

+ +

\package{\XTeX} \xref{See\TeX}{ap03:seetex} \print

+ +

\package{Xtexcad} \comment{Available from volume 17 of + the \texttt{comp.sources.x} newsgroup.} \print

+ +

\package{xv} \author{John Bradley} + \ftp{ftp.x.org:/contrib} \print

+
+ +
+
+
+

Miscellaneous

+
+
+ +

\vskip2pt

+ +

\package{4DOS} \author{JP Software Inc.} \address{P.O. + Box 1470\\E. Arlington, MA 02174\\USA} \phone{(617) + 646--3975} \ftp{oak.oakland.edu:/pub/msdos/4dos} \print

+ +

\package{4OS2} \author{JP Software Inc.} \address{P.O. + Box 1470\\E. Arlington, MA 02174\\USA} \phone{(617) + 646--3975} \ftp{ftp.cdrom.com:/pub/os2/2_x/sysutils} + \print

+ +

\package{Channel 1\regtm} \address{1030 Massachusetts + Avenue\\Cambridge, MA 02138} \phone{(617) 864--0100 voice / + (617) 354-3230 v32.bis modem} \comment{The Channel 1 BBS + carries a \TeX conference with many MS-DOS tools available + for downloading to registered users.} \print

+ +

\package{edb} \author{Michael Ernst} + \ftp{theory.lcs.mit.edu:/pub/emacs/edb} \comment{Database + manager for GNU Emacs.} \print

+ +

\package{Linux} \author{Linus Torvalds} + \ftp{ftp.cdrom.com:/pub/linux} \print

+ +

\package{mewltx} \author{Michael F. Reid} + \ftp{CTAN:support/mewltx} \comment{\LaTeX extensions for + \filename{MicroEMACS}.} \xref{MEwin}{ap03:mewin} \print

+ +

\package{modes.mf} \author{Karl Berry} + \ftp{CTAN:fonts/modes} \print

+ +

\package{Perl} \author{Larry Wall} \print

+ +

\package{TeX-index} \author{David Jones} + \ftp{CTAN:info} \comment{Also known as + \filename{tex-styles-and-macros.txt}.} \print

+ +

\package{tex-styles-and-macros.txt} + \xref{TeX-index}{ap03:texindex} \print

+ +

\package{\Web2c} \author{Karl Berry} + \ftp{CTAN:systems/web2c} \print

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/apd.html b/Master/texmf-doc/doc/english/make-tex-work/html/apd.html new file mode 100644 index 00000000000..e7e99b4f4b9 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/apd.html @@ -0,0 +1,229 @@ + + + + + + + + + Appendix D. Long Examples + + + + + + + + + + + +
+
+
+

Appendix D. Long + Examples

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

This appendix contains the source for several scripts that + seemed too long to place in the running text. These scripts + are provided as examples only, they may not run on your + system without some modification.

+ +

These examples are available online, see the Preface for + more information about retrieving online examples.

+ +

The \program{MakeTeXPK.pl} script builds PK files from + MetaFont and PostScript fonts.

+ +
+ + +

+ Example D.1. MakeTeXPK.pl

+
+
+
+
+ +

The \program{MakeTeXTFM.pl} script builds TFM files from + \MF\ and PostScript (\ext{AFM} file) fonts.

+ +
+ + +

+ Example D.2. MakeTeXTFM.pl

+
+
+
+
+ +

The \program{dvidxx.btm} script is written in + \program{4DOS}'s extended batch language. It performs + automatic font generation for \MF\ and PostScript fonts using + \emTeX's drivers (version 1.4s).

+ +
+ + +

+ Example D.3. dvidxx.btm

+
+
+
+
+ +

The \program{makepk.btm} script is used by + \program{dvidxx.btm}, shown in Example~\ref{ex:dvidxx} in + this appendix.

+ +
+ + +

+ Example D.4. makepk.btm

+
+
+
+
+ +

The \program{enc-afm.pl} script changes the encoding + vector in an \ext{AFM} file.

+ +
+ + +

+ Example D.5. enc-afm.pl

+
+
+
+
+ +

The \program{TeXtoXfont} script is a \Unix\ shell script + (written in \program{bash}) which builds an X11 font from a + \MF\ or PostScript font.

+ +
+ + +

+ Example D.6. TeXtoXfont

+
+
+
+
+ +

The \program{PStoXfont} script is used by + \program{TeXtoXfont}, shown in Example~\ref{ex:textoxfont} in + this appendix.

+ +
+ + +

+ Example D.7. PStoXfont

+
+
+
+
+ +

The \program{txt2verb.pl} script translates arbitrary text + lines into a format suitable for including in + \verb|\verbatim| material in \TeX.

+ +
+ + +

+ Example D.8. txt2verb.pl

+
+
+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ape.html b/Master/texmf-doc/doc/english/make-tex-work/html/ape.html new file mode 100644 index 00000000000..6e68d8f0bba --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ape.html @@ -0,0 +1,639 @@ + + + + + + + + + Appendix E. GNU Free Documentation + License + + + + + + + + + + + +
+
+
+

Appendix E. GNU Free + Documentation License

+
+
+ +

Version 1.1, March 2000

+ +
+

Copyright (C) 2000 Free Software Foundation, Inc. 59 + Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone + is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed.

+
+ +
+
+
+

PREAMBLE

+
+
+ +

The purpose of this License is to make a manual, + textbook, or other written document "free" in the sense of + freedom: to assure everyone the effective freedom to copy + and redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit + for their work, while not being considered responsible for + modifications made by others.

+ +

This License is a kind of "copyleft", which means that + derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public + License, which is a copyleft license designed for free + software.

+ +

We have designed this License in order to use it for + manuals for free software, because free software needs free + documentation: a free program should come with manuals + providing the same freedoms that the software does. But + this License is not limited to software manuals; it can be + used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend + this License principally for works whose purpose is + instruction or reference.

+
+ +
+
+
+

APPLICABILITY AND DEFINITIONS

+
+
+ +

This License applies to any manual or other work that + contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. The + "Document", below, refers to any such manual or work. Any + member of the public is a licensee, and is addressed as + "you".

+ +

A "Modified Version" of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into + another language.

+ +

A "Secondary Section" is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly + within that overall subject. (For example, if the Document + is in part a textbook of mathematics, a Secondary Section + may not explain any mathematics.) The relationship could be + a matter of historical connection with the subject or with + related matters, or of legal, commercial, philosophical, + ethical or political position regarding them.

+ +

The "Invariant Sections" are certain Secondary Sections + whose titles are designated, as being those of Invariant + Sections, in the notice that says that the Document is + released under this License.

+ +

The "Cover Texts" are certain short passages of text + that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under + this License.

+ +

A "Transparent" copy of the Document means a + machine-readable copy, represented in a format whose + specification is available to the general public, whose + contents can be viewed and edited directly and + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to + text formatters. A copy made in an otherwise Transparent + file format whose markup has been designed to thwart or + discourage subsequent modification by readers is not + Transparent. A copy that is not "Transparent" is called + "Opaque".

+ +

Examples of suitable formats for Transparent copies + include plain ASCII without markup, Texinfo input format, + LaTeX input format, SGML or XML using a publicly available + DTD, and standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and + the machine-generated HTML produced by some word processors + for output purposes only.

+ +

The "Title Page" means, for a printed book, the title + page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear + in the title page. For works in formats which do not have + any title page as such, "Title Page" means the text near + the most prominent appearance of the work's title, + preceding the beginning of the body of the text.

+
+ +
+
+
+

VERBATIM COPYING

+
+
+ +

You may copy and distribute the Document in any medium, + either commercially or noncommercially, provided that this + License, the copyright notices, and the license notice + saying this License applies to the Document are reproduced + in all copies, and that you add no other conditions + whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or + further copying of the copies you make or distribute. + However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies + you must also follow the conditions in section 3.

+ +

You may also lend copies, under the same conditions + stated above, and you may publicly display copies.

+
+ +
+
+
+

COPYING IN QUANTITY

+
+
+ +

If you publish printed copies of the Document numbering + more than 100, and the Document's license notice requires + Cover Texts, you must enclose the copies in covers that + carry, clearly and legibly, all these Cover Texts: + Front-Cover Texts on the front cover, and Back-Cover Texts + on the back cover. Both covers must also clearly and + legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of + the title equally prominent and visible. You may add other + material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title + of the Document and satisfy these conditions, can be + treated as verbatim copying in other respects.

+ +

If the required texts for either cover are too + voluminous to fit legibly, you should put the first ones + listed (as many as fit reasonably) on the actual cover, and + continue the rest onto adjacent pages.

+ +

If you publish or distribute Opaque copies of the + Document numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque + copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access + to download anonymously at no charge using public-standard + network protocols. If you use the latter option, you must + take reasonably prudent steps, when you begin distribution + of Opaque copies in quantity, to ensure that this + Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents + or retailers) of that edition to the public.

+ +

It is requested, but not required, that you contact the + authors of the Document well before redistributing any + large number of copies, to give them a chance to provide + you with an updated version of the Document.

+
+ +
+
+
+

MODIFICATIONS

+
+
+ +

You may copy and distribute a Modified Version of the + Document under the conditions of sections 2 and 3 above, + provided that you release the Modified Version under + precisely this License, with the Modified Version filling + the role of the Document, thus licensing distribution and + modification of the Modified Version to whoever possesses a + copy of it. In addition, you must do these things in the + Modified Version:

+ +
+
    +
  1. +

    Use in the Title Page (and on the covers, if any) + a title distinct from that of the Document, and from + those of previous versions (which should, if there + were any, be listed in the History section of the + Document). You may use the same title as a previous + version if the original publisher of that version + gives permission.

    +
  2. + +
  3. +

    List on the Title Page, as authors, one or more + persons or entities responsible for authorship of the + modifications in the Modified Version, together with + at least five of the principal authors of the + Document (all of its principal authors, if it has + less than five).

    +
  4. + +
  5. +

    State on the Title page the name of the publisher + of the Modified Version, as the publisher.

    +
  6. + +
  7. +

    Preserve all the copyright notices of the + Document.

    +
  8. + +
  9. +

    Add an appropriate copyright notice for your + modifications adjacent to the other copyright + notices.

    +
  10. + +
  11. +

    Include, immediately after the copyright notices, + a license notice giving the public permission to use + the Modified Version under the terms of this License, + in the form shown in the Addendum below.

    +
  12. + +
  13. +

    Preserve in that license notice the full lists of + Invariant Sections and required Cover Texts given in + the Document's license notice.

    +
  14. + +
  15. +

    Include an unaltered copy of this License.

    +
  16. + +
  17. +

    Preserve the section entitled "History", and its + title, and add to it an item stating at least the + title, year, new authors, and publisher of the + Modified Version as given on the Title Page. If there + is no section entitled "History" in the Document, + create one stating the title, year, authors, and + publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as + stated in the previous sentence.

    +
  18. + +
  19. +

    Preserve the network location, if any, given in + the Document for public access to a Transparent copy + of the Document, and likewise the network locations + given in the Document for previous versions it was + based on. These may be placed in the "History" + section. You may omit a network location for a work + that was published at least four years before the + Document itself, or if the original publisher of the + version it refers to gives permission.

    +
  20. + +
  21. +

    In any section entitled "Acknowledgements" or + "Dedications", preserve the section's title, and + preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein.

    +
  22. + +
  23. +

    Preserve all the Invariant Sections of the + Document, unaltered in their text and in their + titles. Section numbers or the equivalent are not + considered part of the section titles.

    +
  24. + +
  25. +

    Delete any section entitled "Endorsements". Such a + section may not be included in the Modified + Version.

    +
  26. + +
  27. +

    Do not retitle any existing section as + "Endorsements" or to conflict in title with any + Invariant Section.

    +
  28. +
+
+ +

If the Modified Version includes new front-matter + sections or appendices that qualify as Secondary Sections + and contain no material copied from the Document, you may + at your option designate some or all of these sections as + invariant. To do this, add their titles to the list of + Invariant Sections in the Modified Version's license + notice. These titles must be distinct from any other + section titles.

+ +

You may add a section entitled "Endorsements", provided + it contains nothing but endorsements of your Modified + Version by various parties--for example, statements of peer + review or that the text has been approved by an + organization as the authoritative definition of a + standard.

+ +

You may add a passage of up to five words as a + Front-Cover Text, and a passage of up to 25 words as a + Back-Cover Text, to the end of the list of Cover Texts in + the Modified Version. Only one passage of Front-Cover Text + and one of Back-Cover Text may be added by (or through + arrangements made by) any one entity. If the Document + already includes a cover text for the same cover, + previously added by you or by arrangement made by the same + entity you are acting on behalf of, you may not add + another; but you may replace the old one, on explicit + permission from the previous publisher that added the old + one.

+ +

The author(s) and publisher(s) of the Document do not by + this License give permission to use their names for + publicity for or to assert or imply endorsement of any + Modified Version.

+
+ +
+
+
+

COMBINING DOCUMENTS

+
+
+ +

You may combine the Document with other documents + released under this License, under the terms defined in + section 4 above for modified versions, provided that you + include in the combination all of the Invariant Sections of + all of the original documents, unmodified, and list them + all as Invariant Sections of your combined work in its + license notice.

+ +

The combined work need only contain one copy of this + License, and multiple identical Invariant Sections may be + replaced with a single copy. If there are multiple + Invariant Sections with the same name but different + contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or + else a unique number. Make the same adjustment to the + section titles in the list of Invariant Sections in the + license notice of the combined work.

+ +

In the combination, you must combine any sections + entitled "History" in the various original documents, + forming one section entitled "History"; likewise combine + any sections entitled "Acknowledgements", and any sections + entitled "Dedications". You must delete all sections + entitled "Endorsements."

+
+ +
+
+
+

COLLECTIONS OF DOCUMENTS

+
+
+ +

You may make a collection consisting of the Document and + other documents released under this License, and replace + the individual copies of this License in the various + documents with a single copy that is included in the + collection, provided that you follow the rules of this + License for verbatim copying of each of the documents in + all other respects.

+ +

You may extract a single document from such a + collection, and distribute it individually under this + License, provided you insert a copy of this License into + the extracted document, and follow this License in all + other respects regarding verbatim copying of that + document.

+
+ +
+
+
+

AGGREGATION WITH INDEPENDENT + WORKS

+
+
+ +

A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on + a volume of a storage or distribution medium, does not as a + whole count as a Modified Version of the Document, provided + no compilation copyright is claimed for the compilation. + Such a compilation is called an "aggregate", and this + License does not apply to the other self-contained works + thus compiled with the Document, on account of their being + thus compiled, if they are not themselves derivative works + of the Document.

+ +

If the Cover Text requirement of section 3 is applicable + to these copies of the Document, then if the Document is + less than one quarter of the entire aggregate, the + Document's Cover Texts may be placed on covers that + surround only the Document within the aggregate. Otherwise + they must appear on covers around the whole aggregate.

+
+ +
+
+
+

TRANSLATION

+
+
+ +

Translation is considered a kind of modification, so you + may distribute translations of the Document under the terms + of section 4. Replacing Invariant Sections with + translations requires special permission from their + copyright holders, but you may include translations of some + or all Invariant Sections in addition to the original + versions of these Invariant Sections. You may include a + translation of this License provided that you also include + the original English version of this License. In case of a + disagreement between the translation and the original + English version of this License, the original English + version will prevail.

+
+ +
+
+
+

TERMINATION

+
+
+ +

You may not copy, modify, sublicense, or distribute the + Document except as expressly provided for under this + License. Any other attempt to copy, modify, sublicense or + distribute the Document is void, and will automatically + terminate your rights under this License. However, parties + who have received copies, or rights, from you under this + License will not have their licenses terminated so long as + such parties remain in full compliance.

+
+ +
+
+
+

FUTURE REVISIONS OF THIS + LICENSE

+
+
+ +

The Free Software Foundation may publish new, revised + versions of the GNU Free Documentation License from time to + time. Such new versions will be similar in spirit to the + present version, but may differ in detail to address new + problems or concerns. See http://www.gnu.org/copyleft/.

+ +

Each version of the License is given a distinguishing + version number. If the Document specifies that a particular + numbered version of this License "or any later version" + applies to it, you have the option of following the terms + and conditions either of that specified version or of any + later version that has been published (not as a draft) by + the Free Software Foundation. If the Document does not + specify a version number of this License, you may choose + any version ever published (not as a draft) by the Free + Software Foundation.

+
+ +
+
+
+

How to use this License for your + documents

+
+
+ +

To use this License in a document you have written, + include a copy of the License in the document and put the + following copyright and license notices just after the + title page:

+ +
+

Copyright (c) YEAR YOUR NAME. Permission is granted to + copy, distribute and/or modify this document under the + terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software + Foundation; with the Invariant Sections being LIST THEIR + TITLES, with the Front-Cover Texts being LIST, and with + the Back-Cover Texts being LIST. A copy of the license is + included in the section entitled "GNU Free Documentation + License".

+
+ +

If you have no Invariant Sections, write "with no + Invariant Sections" instead of saying which ones are + invariant. If you have no Front-Cover Texts, write "no + Front-Cover Texts" instead of "Front-Cover Texts being + LIST"; likewise for Back-Cover Texts.

+ +

If your document contains nontrivial examples of program + code, we recommend releasing these examples in parallel + under your choice of free software license, such as the GNU + General Public License, to permit their use in free + software.

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch01.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch01.html new file mode 100644 index 00000000000..0a685eef905 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch01.html @@ -0,0 +1,2103 @@ + + + + + + + + + Chapter 1. The Big Picture + + + + + + + + + + + +
+
+
+

Chapter 1. The Big + Picture

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +
+
+
+

What Is TeX?

+
+
+ +

TeX is a typesetting system. It is + a collection of programs, files, and procedures for + producing professional quality documents with minimum + effort.

+ +

TeX's job is to translate the text you type into a + beautiful typeset page. The key word here is + “beautiful,” and it is a very lofty + goal.[1] What I mean by beautiful + is that TeX, when presented with several paragraphs of + plain text and left to its own devices, produces a + remarkably aesthetic page. Despite the fact that TeX may + have to contend with multiple fonts and mathematics, it + still manages to typeset pages in which each of the + following aesthetic principles hold simultaneously:

+ +
+
    +
  • +

    The right margin is justified.

    +
  • + +
  • +

    Proper justification is achieved without + letterspacing.

    +
  • + +
  • +

    Interword spacing is neither too tight nor too + loose.

    +
  • + +
  • +

    The page is evenly gray.

    +
  • + +
  • +

    The baselines of multiple + fonts are properly aligned.

    +
  • + +
  • +

    Hyphenation is automatic, if required, and + usually correct.

    +
  • + +
  • +

    Ladders are avoided.

    +
  • +
+
+ +

TeX processes documents a paragraph at a time, rather + than a line at a time like most other programs. Internally, + TeX computes a value called badness for + each line of the paragraph. Anything that + detracts from the appearance of a line (tight or loose + spacing, a hyphen, etc.) increases the badness associated + with that line. Every paragraph that TeX produces is + optimal in terms of the total amount of badness present. + Because TeX searches for an optimal solution, changing the + last word of a paragraph can affect the spacing of the + first line of the paragraph. After you've gained a little + bit of experience with TeX, you'll be able to override any + one, or all, of the rules it uses to compute badness, but + in most situations you won't want to. I will describe more + of TeX's approach to text formatting and how it differs + from that of word processors, desktop publishers, and other + markup languages in the following sections.

+ +

TeX is not a simple program, but a set of programs, + tools, fonts, and other types of files. Two programs form + the core of the TeX typesetting system. One of them is TeX + itself, the program that reads your input files and + transforms them into typeset form. The other program is + MetaFont, a tool for creating fonts. Producing TeX + documents involves a series of steps, including editing the + document, running TeX itself, and processing TeX's output + in various ways.

+ +

Over the years, TeX has been made available on almost + every computer platform, so it is probably available for the + computer system that you use. Compiling TeX on different + systems has been possible, in large part, because TeX is a + text formatter and not a word processor. Unlike a word + processor, TeX never deals directly with displaying text on + the screen or interacting with input from the keyboard + (except in a very basic way). These features of an + application are typically the most difficult to port from + one system to another.

+ +

Beyond the technical details that make translation from + one system to another possible, Donald Knuth + added an important stipulation to the free distribution of + TeX: in order for any program to be called + “TeX,” it must pass a rigorous test suite. + This means that the TeX you use behaves exactly like the + TeX I use.[2] This feature has + contributed greatly to TeX's success. It means that a large + community of TeX users can transparently share + documents.

+
+ +
+
+
+

TeX for Beginners

+
+
+ +

If you are already familiar with TeX, you may find some + of the material in this section repetitive. If so, just + skim it quickly. This section will help you understand how + TeX interprets the things you type into your input file. + When you understand the concepts discussed here, you'll be + ready to write really, really simple documents in TeX.

+ +
+
+
+

Boxes and + Glue

+
+
+ + +

Despite the apparent complexity of TeX's job, it uses + a very simple metaphor: all typographic elements are + boxes. The simplest boxes, individual + characters have a set shape defined by the + font they come from. There are three parameters that + define a box: width, height, and depth. + The distinction between height and depth is a bit subtle. + When a row of characters is typeset, every character + rests on an imaginary line called the baseline. Some + characters, like the lowercase “g,” descend + below the baseline. The distance from the baseline to + the top of a box is its height; the distance from the + baseline to the bottom is its depth.

+ +

Figure  + Figure 1.1 shows the character boxes formed by + the Computer Modern Roman letters “g” and + “h.” The x-y distance of each box + is its height and the y-z distance is its + depth. The reference + point of the box, marked with an r, is on the leftmost + edge of the box where the height and depth meet. + Characters that have no descenders (no + elements that go below the baseline), have a depth of + zero. TeX uses the character box metrics, but font + designers are free to allow glyphs to extend outside the + box (for example, at the top of the “g”).

+ +
+ + +

Figure 1.1. The Letters + “g” and “h” inside their + boxes.

+ +
+ The Letters 'g' and 'h' inside their boxes +
+
+ +

The following paragraph demonstrates how TeX uses the + metrics from the physical dimensions of each character to + build word, line, and paragraph boxes.

+ +

TeX “glues” character boxes + together to form words. When boxes are joined, they are + always joined so their reference points are horizontally + aligned as shown in + Example 1.1.[3] + Character-boxes (like this) are joined to form words, + word-boxes (like this) are joined to form lines, and + line-boxes form paragraphs. TeX accomplishes + the task of forming a justified paragraph by allowing the + glue between words to stretch and shrink a + little bit and by occasionally breaking the glue between + characters to insert a hyphen. Although the rules are + slightly different, TeX builds a page out of vertical + boxes (paragraphs, figures, etc.) in an analogous + manner.

+ +

This is a very generalized overview. In reality, a lot + of subtlety is required to capture all of the nuances of + typographical appearance.

+ +
+ +
+
+
+

Control Sequences

+
+
+ +

A control sequence is a special + “word” that you put in your document. These + extra words are instructions for TeX, and they do not + usually appear in your typeset document. Example  + Example 1.1 shows a contrived example of a TeX + document that uses several control sequences.

+ +
+ + +

Example 1.1. An Example + of a TeX Document

+
+\def\ora{O'Reilly \& Associates}
+\font\orafont=grlg10
+\parskip=\baselineskip
+\parindent=0pt
+\pageno=5
+This book is published by \ora in
+the \textit{Nutshell} series.
+\bye
+
+
+ +

In most macro packages, a control sequence is a + backslash followed by a sequence of letters.[4] TeX is case-sensitive, + so the control sequence \large is different from \Large + (these control sequences switch to large and very large + fonts in the LaTeX macro package). Control sequences end + with the first non-letter, even if it isn't a space. For + example, \parskip0pt is the control sequence \parskip + followed by 0pt. This control sequence tells TeX + to insert zero points of extra space between + paragraphs.

+ +

Unless instructed otherwise (with control sequences), + TeX builds rectangular paragraphs out of lines of words. + Changing fonts, building tables, and typesetting + mathematical equations are examples of situations in your + document where TeX needs extra information.

+ +

The number of control sequences used in a TeX document + may seem overwhelming at first. Luckily, every control + sequence falls into one of several categories:

+ +
+
+
Macro control + sequences
+ +
+

Macro control sequences associate a + name with an arbitrary string of text (including + other control sequences). They are interpreted by + replacing the control sequence with the text of its + definition.[5]

+ +

Macro control sequences are the root of TeX's + tremendous flexibility. By defining control + sequences with meaningful names, like \chapter and + \footnote, TeX can present a reasonably simple + interface to the user. By redefining those control + sequences, the typeset output can be modified + without requiring you to retype large quantities of + text.

+ +

In + Example 1.1, the macro control sequence + \ora is defined as a shortcut for typing + “O'Reilly & Associates.” This is a + simple example of how a macro control sequence can + be used.

+
+ +
Font control sequences
+ +
+

In + Example 1.1, the line \font\orafont=grlg10 + creates a font control sequence called \orafont. + When \orafont is used, TeX will begin typesetting + in the font grlg10. The name of the font, + grlg10 in this case, refers to an external + file that contains font metric information. Fonts + are discussed in Chapter Chapter 5, + Chapter 5.

+
+ +
Registers
+ +
+

Registers are like variables in a + programming language. They hold a single value of a + particular type. Many types of values can be + stored: numbers (also called “count” + values because they are simple counting numbers + like 1, 2, 17, or -5), dimensions (also called + “lengths”; they are distances like + 3.5pt or 2in), boxes, glue, and token lists (an + internal representation of your document used by + TeX).[6]

+ +

If you are unfamiliar with computer programming, + think of these registers as place holders. When TeX + needs to save a piece of information, like how much + space should be inserted between paragraphs, it + stores the information in a register. When the + information is needed again, in this case when TeX + has finished typesetting one paragraph and is about + to start another, it can retrieve that information + from the register. Registers are usually given + names that at least hint at how they are used. This + helps people read and modify the rules that TeX + uses to typeset documents.

+ +

In Example  + Example 1.1, \parskip, \baselineskip, and + \parindent are dimension registers. The \pageno + control sequence is a count register.

+ +

There are only 256 registers of each type. The + type of information (number, dimension, or token + list) that a register can contain is defined when + the control sequence is created. Once a variable + like \parindent is created to hold a dimension, it + can never hold a number or a token list.[7]

+ +

Registers may seem unnecessary now that you know + about macro control sequences, which can store + arbitrary information. However, registers differ + from macro control sequences not only in the types + of values they can hold, but also in the types of + operations that can be performed on them. There is + a TeX command called \advance, for example, that + can increment the value stored in a register by an + arbitrary amount. You can't \advance a macro + control sequence.

+
+ +
Built-in commands
+ +
+

A number of control sequences + are built into TeX. These “primitive” + operations form the basis for all higher-level + functionality. There are a wide variety of control + sequences of this type. Everything that can be done + in TeX can be reduced to a sequence of primitive + operations.

+ +

There is no way to know, simply by inspection, + if a control sequence is one of the built-in + sequences or not. Luckily, it doesn't matter very + often; it really only matters when you are writing + complex macros.

+ +

The \font control sequence in + Example 1.1 is a built-in control + sequence. So is \advance, mentioned above.

+
+
+
+ +

The number and kind of control sequences available + depends upon the macro package that you are using. (Macro + packages are discussed fully in Chapter Chapter 4, + Chapter 4.) + For the rest of this chapter, the default settings of + Plain TeX are assumed.[8] There + are other macro packages, like LaTeX, Lollipop, and + TeXinfo, which have different default values.

+
+ +
+
+
+

Special + Characters

+
+
+ + +

In addition to control sequences, TeX reserves several + characters for special purposes. Most of them + do not occur very frequently in ordinary text, but you + must be aware of them because there will be very + surprising consequences if you use them incorrectly.

+ +

Table  + Table 1.1 shows all of the special characters in + Plain TeX.[9] Most of these + characters are special in other macro packages as well. + Font-specific characters are not reserved by TeX, but + they don't produce the results you would expect when + typeset in Computer Modern because of the way TeX expects + fonts to be laid out. Fonts are discussed in detail in + Chapter Chapter 5, + Chapter 5.

+ +
+ + +

Table 1.1. Special + Characters in Plain TeX

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CharacterMeaning
#Used for parameter definition in macros and + tables
$Toggles in and out of math mode
%A comment (TeX ignores everything to the end + of the line)
&The column separator in tables
~The active space (an unbreakable space)
_Marks a subscript (valid only in math + mode)
^Marks a superscript (valid only in math + mode)
\Begins a control sequence
{Begins a group
}Ends a group
|Produces an em-dash (—) + (font-specific)
<Produces an upside down exclamation mark (¡) + (font-specific)
>Produces an upside down question mark (¿) + (font-specific)
"Incorrect for quoted text; use “ and + ” instead (font-specific)
+
+ +

It is best to avoid these characters until you are + familiar with TeX. If you need to typeset + one of these characters, + Table 1.2 shows what to put in your document. + You should also avoid characters outside the standard + printable ASCII character set (characters with + ASCII values below 32 and above 126). TeX can be + configured to accept characters outside the printable + ASCII range, to support non-English languages, for + example, but it is not configured to do so “out of + the box.” Chapter  + Chapter 7, + Chapter 7, discusses the issues of + typesetting in different languages.

+ +
+ + +

Table 1.2. How to Typeset + Special Characters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
To GetPut This in Your Document
#\#
$\$
%\%
&\&
``
''
~\~
{$\{$
}$\}$
<$<$
>$>$
|$|$
_$\underbar{\hbox{\ }}$
^$\hat{\hbox{ }}$
\$\backslash$
+
+ + + +

The braces “{” and “}” + are a very special case. TeX uses curly braces to delimit + arguments and make changes (like switching fonts) that + are local to a small section of the document. These are + called grouping characters in TeX jargon. + For example, to typeset a single word in boldface, you + put {\bf word} into your input file. The \bf control + sequence switches to boldface type, and the curly braces + localize the effect to the single word word. As a result, it is very + important that you avoid braces (except when you use them + as delimiters) and that you carefully match all opening + and closing braces. One of the most common errors in TeX + is to forget a closing brace.

+ +

One last special character is the blank space. + For the most part, TeX doesn't care how you space your + lines of text. Any space that occurs is simply a word + break to TeX, and inserting multiple spaces doesn't + influence how TeX typesets the line. TeX also considers + the end of a line an implicit space. If you are trying to + control the layout of your input text and want to break a + line without introducing a space, place a comment + character (% in most macro packages) at the very end + of the line. If the last character of a line is the + comment character, TeX ignores the line break and all the + leading spaces on the following line. This allows you to + use indentation to make your input file more + readable. \goodbreak

+ +

For example, the following lines in your input + file:

+
+“This                      is some ex
+      ample text.”
+
+ +

and this line:

+
+“This is some example text.”
+
+ +

both produce:

+ +
+

+ “This is some example text.”

+
+ +

in your typeset document.

+
+
+ +
+
+
+

Text Formatting Versus Word + Processing

+
+
+ +

For many people, writing documents with a computer + implies using a word processor like WordPerfect or + Microsoft Word. The word processing program controls + every aspect of what you do: it's where you type your text, + where you see what it will look like, where you print, and + where you do everything else. Some of these environments, + the so-called WYSIWYG (what-you-see-is-what-you-get) + programs, attempt to show you what the printed document + will actually look like while you edit it.[10]

+ +

If WYSIWYG environments are what you're used to, or what + you expect, TeX's approach may seem very strange at first + because TeX is a text + formatter, not a word processor. Instead of + trying to show you what your document will look like while + you type, TeX expects you to do all the typing somewhere + else, and then pass it a source file containing all of your + text plus control sequences that tell TeX how you'd like it + printed.

+ +

In The Psychology of Everyday + Things [dn:psyeveryday], Donald + Norman describes these two modes of + interaction as first person and third person. First person + interaction provides the user with the ability to directly + manipulate the elements of a task, whether it's flying an + airplane or resizing text. Third person interaction, on the + other hand, occurs where the user is expected to type + commands to the computer in an appropriate command + language; the shell prompt is a good example of third + person interaction.

+ +

Is first person interaction really better? Well, it + depends. Norman writes, “Although they [WYSIWYG + environments] are often easy to use, fun, and entertaining, + it is often difficult to do a really good job with + them.” The problem which arises is that the user is + required to do the task, and he or she may not be very good + at it. Third person systems are better when the computer + program can be trusted to do a better job of the task than + the user.

+ +

Is TeX really better than a word processor? Well, it + depends on the task and the person doing it. TeX probably + isn't better for designing one page flyers with lots of + fonts and graphics (although I've done it). But for longer + documents, TeX offers all of these advantages:

+ +
+
    +
  • +

    TeX has a precise understanding of the rules of + typesetting, so you don't have to.

    +
  • + +
  • +

    Predefined styles allow experts to extend (or + bend) the rules of typesetting without burdening the + user.

    +
  • + +
  • +

    Journals and magazines can achieve consistency of + appearance much more reliably because the consistency + is in the style files.

    +
  • + +
  • +

    TeX runs on cheap systems (old PCs with monochrome + monitors and no graphics capability, for + example).

    +
  • + +
  • +

    Although complex and difficult to learn, TeX + offers incredibly flexible table construction + tools.

    +
  • + +
  • +

    Few, if any, word processors can provide running + headers and footers as flexibly as TeX. Imagine the + task of writing a dictionary: the left and right hand + side headers change on each page, each time a new + entry is added.

    +
  • + +
  • +

    TeX offers flexible bibliography layouts.

    +
  • + +
  • +

    TeX is extensible. Its behavior + can be modified by defining new commands and + environments without changing the actual program.

    +
  • +
+
+ +

There are some other good reasons to separate document + creation from text formatting:

+ +
+
    +
  • +

    Documents are portable. Because the + source files are just plain text without any + nonprintable characters, they can easily be copied + from one system to another.

    +
  • + +
  • +

    TeX is portable. TeX runs everywhere. You can + process your documents with TeX on unix workstations; + personal computers running MS-DOS, OS/2, and Windows; + IBM mainframes running VM/CMS; workstations running + VAX/VMS; Macintoshes; Amigas; Ataris; and just about + every other computer with a reasonable amount of + memory. And the typeset output will be the same! This + adds another dimension of portability to your + documents.

    +
  • + +
  • +

    TeX is free. You can afford to have it on every + system you use. Several sources of TeX software are + listed in the preface of this book.

    +
  • + +
  • +

    TeX allows you to separate markup and output. + Logical divisions in the text (chapters, sections, + itemized lists, etc.) are identified by control + sequences. An entirely different page layout can + result from simply changing the definition of a few + control sequences.

    + +

    This means that the look of your documents can be + changed (to fit the style guidelines of a particular + journal or publisher, for example) without changing + the text of your documents at all.

    +
  • + +
  • +

    Plain text files are easier to manipulate with + other tools than specially encoded word processor + files are. This means that you can use standard + utilities on your documents: revision control, grep, + shell scripts, etc. This is a less common practice in + non-unix environments, but it is still + convenient.

    +
  • + +
  • +

    You can continue to use your favorite editing + tools. The extent to which you find this advantageous + is dependent, naturally, on the extent to which you + have a favorite editing program. Nevertheless, this + can be a considerable advantage. For example, users + familiar with emacs can continue + to rely on all of the features they are used to, + including interactive spellchecking, access to online + services like Webster's dictionary, customized editor + macros, and convenient services like reading + mail.

    +
  • + +
  • +

    You get better looking output. TeX gives you far + more precise control over the placement of elements + on the page than most word processing programs. And + TeX is very intelligent about typesetting (paragraph + breaking, kerning, ligatures, etc.).

    +
  • +
+
+ +
+
+
+

What About Desktop + Publishing?

+
+
+ +

Desktop publishing systems like Ventura + Publisher and Aldus PageMaker + are noted for their ability to incorporate multiple fonts + and graphics into a document. As word processors become + more sophisticated, the line between word processing and + desktop publishing is becoming blurry.

+ +

This book shows you many ways that TeX can provide + access to the same sophisticated features. TeX can + incorporate pictures and figures in a number of ways + (just take a look at the way I've wrapped text around + this kiwi),[11] and TeX can use + almost any font that another program can use---it can + certainly use all + of the popular types of fonts. Like typical word + processors, desktop publishing programs force you to use + a single application to create your entire document, and + they lack the flexibility required to combine just the + pieces that you want. All of the advantages of text + formatting over word processing also apply to desktop + publishing programs. I'll grant, however, that WYSIWYG + environments are easier for first-time users. But that + doesn't make them better, it just makes them more + popular.

+
+ +
+
+
+

What About troff?

+
+
+ +

troff is the “other” text + formatting system. If you've ever tried to read a unix + reference page without formatting it first, you've seen + troff. For a long time it was distributed as part + of all unix systems. Now it is more likely an extra-cost + option. The Free Software Foundation's groff + processor is a free, troff-compatible system.

+ +

On the surface, it is easier to compare TeX and troff + than to compare TeX to the other document preparation + systems described in this chapter. In reality, the + differences are subtle: TeX and troff have the same + general paradigm; they are equally powerful to a large + extent, and both have advantages and disadvantages.

+ +

troff is similar to TeX in many ways. Like TeX, + troff processes a plain text file and produces a typeset + document. TeX and troff differ in the way that formatting + information is inserted into the text. TeX uses control + sequences, where troff uses a mixture of + control sequences[12] and “dot” + commands (lines of text that begin with a period and + contain typesetting commands).

+ +

Although I am inclined to say that troff documents are + far more cryptic than TeX documents, I am certain that + there are plenty of troff users who would disagree + (strongly).

+ +

Objectively, TeX handles mathematical typesetting + far better than troff and probably has better support for + multilingual documents. The nroff processor, which + produces plain text output from a troff document, at one + time provided a strong argument in favor of troff for + typesetting documents required in both typeset and plain + text formats. However, the TeXinfo macro package for + TeX has largely defeated that argument. In troff's + defense, TeXinfo is very, very different from other TeX + macro packages, so it really is necessary to plan ahead + and learn a very different set of macros to typeset both + plain text and typeset documents with TeXinfo. + Chapter Chapter 10, + Chapter 10, + discusses this issue further.

+ +

In my experience, there is more free support for TeX + than troff. TeX is supported by a large community of + users actively producing new, useful document-preparation + formats, styles, and tools. In addition, TeX is more + widely available than troff: a TeX port exists for almost + every practical computer system, whereas troff is still + mostly confined to unix systems (although the Free + Software Foundation's groff package has been + ported to similar systems like MS-DOS, Windows NT, and + OS/2).

+ +

The following fragments show a side-by-side comparison + of TeX commands, on the left, and troff commands, on the + right:

+
+\begin{figure}                    .(z
+ \begin{center}                   .hl
+   \hrule                         Text to be floated.
+   \vspace{8pt}                   .sp
+   Text to be floated.            .ce
+   \hrule                         .hl
+   \caption{Example figure...}    Figure \*[fig]: Example figure...
+   \vspace{8pt}                   .)z
+ \end{center}
+\end{figure}
+
+ +

Both examples produce a floating figure that looks + like this:

+ +
+ + +

Figure 1.2. Example + figure produced by both TeX and troff

+ +
+ + + + + + + + + + +
Text to be floated.
+
+
+
+ +
+
+
+

What About SGML?

+
+
+ +

The Standard Generalized Markup Language (SGML) is + a document description language. SGML aims to separate + the content of a document from its presentation. In other + words, SGML identifies the features of a document + (chapter headings, paragraphs, etc.) without specifying + how they are to be presented.

+ +

This means that all SGML documents must interact with + a document formatter of some sort. Many people are + finding that TeX is a natural choice when selecting a + document formatter for their SGML environment. In fact, + LaTeX already provides many SGML-like + commands because it was designed to separate markup from + presentation. One of the specific goals of an effort + (currently underway) to develop a new version of LaTeX is + to make SGML and LaTeX work together easily, cleanly, and + efficiently. For more information about the goals of this + project and information about what you can do to help, + please read The LaTeX3 + Project [l3:project].

+
+
+ +
+
+
+

How TeX Works

+
+
+ +

A functioning TeX system in which you are + producing documents of medium size and complexity is really + a collection of tools and files that are related to each + other in well defined (if somewhat subtle) ways.

+ +

One of the fundamental goals of this book is to shed + light on these relationships and allow you to put together + a TeX system that quickly and easily does the jobs you need + to accomplish.

+ +
+
+
+

TeXing a Simple + Document

+
+
+ +

This section briefly describes what you need to know + about how TeX processes a simple document (that is, one + that does not contain complex document elements like a + table of contents, indexes, bibliographies, etc.). + Figure Figure 1.3 + shows how the standard TeX tools fit together at the most + basic level.

+ +
+ + +

Figure 1.3. A high-level + view of TeX

+ +
+ +
+
+ +

Figure  + Figure 1.4 expands on Figure Figure 1.3, + showing additional tools and files that you'll often need + to use.

+ +
+ + +

Figure 1.4. High-level + view of TeX including more detail

+ +
+ +
+
+ +
+
+
+

Editing your document

+
+
+ +

The most tangible and important part of your TeX + system is your document. This is the + file (or files) in which you write down what you want + to typeset with TeX. In addition to the actual text, + you include control sequences to describe how you want + the final text to appear (size, font, justification, + etc.). The section “the section called “What Is + TeX?”” earlier in this chapter tells + you briefly what goes into your document file.

+ +

The most common way to create a document is with an + editor, + which can provide you with a number of features to make + typing TeX documents easier. For example, an editor can + help you insert common control sequences + automatically, run TeX automatically (from within the + editor), and keep you from making common mistakes (like + typing a left brace, but not the matching right one). + These features and how they work in editors including + GNU Emacs, aucTeX, and Multi-Edit are described in + Chapter Chapter 2, + Chapter 2.

+
+ +
+
+
+

Running TeX

+
+
+ +

Once you have prepared your document file, it is + time to run the TeX program + itself. This may not be as easy as it sounds. You need + to determine the name of the TeX program at your site, + to make sure all of the files TeX needs are available + to it; you also need to specify the correct + command-line options. Chapter Chapter 3, + Chapter 3, + describes everything you need to know.

+ +

TeX may find errors in your document (places where + TeX doesn't understand the instructions you used; not + spelling or grammatical errors, unfortunately ;-). + Chapter Chapter 3 + also describes the most common errors you're likely to + make and gives advice for interpreting error + messages.

+ +

If TeX is successful in formatting your document + (i.e., your document doesn't contain any errors), it + produces a DVI (DeVice Independent) + file. The DVI file is a device-independent + representation of the typeset output of your document. + DVI files are transitory. Although there are a + few programs that can manipulate them (to rearrange the + order of the pages in the output, for example), most of + the time you will immediately transform them into + something else---either printed output or previewed + output on the screen. (See the following section + “the section called “Using + macros”.”)

+
+ +
+
+
+

Using macros

+
+
+ +

The control sequences that you insert + in your document are defined by a macro package.[13] + Macro packages are collections of TeX commands (macros) + that extend TeX. Macro packages are frequently stored + in format files, specially compiled versions of the + macro package. The iniTeX program + interprets all of the control sequences in a macro + package to create a format file that TeX reads when it + runs.

+ +

Many macro packages are particularly effective in + implementing particular document styles or supporting + particular types of writing. Two of the most common are + Plain TeX and LaTeX. + Chapter Chapter 4, + Chapter 4, + describes Plain TeX, LaTeX, and a number of other macro + packages that extend the power and ease of TeX.

+
+ +
+
+
+

Using fonts

+
+
+ +

One of TeX's strengths is its support for a myriad + of predefined fonts and its ability to let you create + fonts of your own. In addition to your document and the + format file, when TeX runs it needs font information as + well. This is provided in the form of a set of + TFM (TeX Font Metric) files that tell + TeX the size and shape (roughly speaking, at least) of + each character, as well as some other information about + how characters are related to each other.

+ +

Historically, the MetaFont program was the + way a TeX user created fonts. Like TeX itself, MetaFont + is about ten years old. Ten years ago, it was a unique + program that was indispensible for creating the type of + output TeX produces. Today there are many competing + font technologies, all of them more common than + MetaFont, and MetaFont's role is diminishing. Many + people use TeX today without ever using MetaFont at + all. Nevertheless, MetaFont still has some importance, + and we describe how to run and use it in + Chapter Chapter 11, + Chapter 11. + Because the standard fonts that come with TeX are still + the fonts produced by MetaFont, it will also be + mentioned elsewhere in this book.

+ +

If you are writing complex documents, you may need + to learn a lot about fonts and how to define and use + them. Chapter Chapter 5, + Chapter 5, + tells you everything you need to know, including + information about the New Font Selection Scheme, a new + way of describing and selecting fonts in TeX.

+
+ +
+
+
+

Previewing or printing TeX + documents

+
+
+ +

After you have produced a DVI file, as + described in the section “the section called + “TeXing a Simple Document”,” + later in this chapter, you run another program + (generically called a DVI driver) to translate + the DVI file so you can either preview or + print your document. Driver programs need your + DVI file and some collection of fonts (usually + PK (packed) + font files).[14] Many different + kinds of fonts are described in Chapter Chapter 5.

+ +

Chapter Chapter 8, + Chapter 8, + tells you how to print + your documents and deal with the problems you may + encounter using bitmapped or scalable fonts, printing + pictures and figures, and other printing issues.

+ +

Often you will want to look at your document before + you actually print it. Because TeX is not a WYSIWYG + system,[15] you cannot do this + until you have processed the DVI file. There + are a number of good previewing products, including + xdvi, dvimswin, and + dviscr, that let you look at your + processed document on the screen before you decide + whether to print it. See Chapter Chapter 9, + Chapter 9, + for complete information.

+
+
+ +
+
+
+

TeXing More Complex + Documents

+
+
+ +

This section briefly describes how TeX processes a + more complex document (that is, one that includes + elements like a table of contents, indexes, + bibliographies, etc.).

+ +

Many TeX formats implement sophisticated + cross-referencing schemes. Cross references + may sound rather esoteric, but they occur frequently. + Tables of contents, figure and table numbers, indexes, + and bibliographic references are all flavors of cross + referencing.

+ +

Cross references make your document more complex + because they require more information than is immediately + available when TeX initially processes your document. For + example, if you refer to a figure which occurs later in + the document, TeX has no way of knowing what figure + number to insert into the text at the point of the + reference. These are called forward references.

+ +

TeX macro packages that support cross referencing + overcome the difficulty of forward references by + requiring you to process your document more than once. + Each time your document is processed, the necessary + reference information is stored into a separate file. If + that file exists when you process your document, the + information saved last + time is loaded so that it is available this time. The practical + implication of this functionality is that documents with + cross references frequently have to be processed twice. + Occasionally, you may have to process a document three + times. This occurs when the inserted reference causes TeX + to format a paragraph differently, which in turn causes + TeX to change a page break.[16] + Because most changes are incremental while revising a + document, this is normally only an issue the first time + you process a document.

+ +

The following sections describe the LaTeX methods for + constructing a table of contents, figure references, an + index, and a bibliography. LaTeX is used in this example + because it is a very common macro package and is typical + of the way macro packages provide these features. Similar + mechanisms exist in most formats, except Plain TeX.

+ +

Figure  + Figure 1.5 shows the relationships between many + of the components described in the following sections. + LaTeX creates several sorts of auxiliary files depending + on the kind of cross references required by your document + and the style files you use. These auxiliary files may be + modified (and others may be created) by other sorts of + post-processing programs (like MakeIndex + for constructing indexes or BibTeX for constructing + bibliographies). LaTeX uses these auxiliary files, if + they exist, to update your document when it is processed + again.

+ +
+ + +

Figure 1.5. TeXing a More + Complex Document

+ +
+ +
+
+
+ +
+
+
+

Building a Table of + Contents

+
+
+ +

A table of contents is the simplest form of cross + reference. In LaTeX, you request a table of contents by + inserting the \tableofcontents command wherever you want + it to appear in your document. If you request the table + of contents at the end of your document rather than the + beginning, your document can be printed with only one + pass through TeX.

+ +

LaTeX uses a file with the same name as your document + and the extension .toc to hold the table of + contents entries. You can control the level of detail in + your table of contents by setting the \secnumdepth + counter. A value of zero includes only chapters; one + includes chapters and sections; two includes chapters, + sections, and subsections, and so on.

+ +

The LaTeX commands \listoftables and \listoffigures + perform the same functions as \tableofcontents for lists + of tables and figures. They use external files with the + extensions .lot and + .lof, respectively. As with the table of + contents, your document can be correctly formatted in one + pass if the \listoftables and \listoffigures commands are + placed at the end of the document.

+
+ +
+
+
+

Figure References

+
+
+ +

Figure references are a special case of LaTeX's cross + referencing mechanism. The LaTeX command + \label{string} creates a referent. You + refer to the label with the command + \ref{string}. In normal body text, the + label refers to the current section or subsection. In a + figure or table environment, the label refers to that + figure or table.

+ +

If your document contains no forward references + (if all \label commands occur before the \ref's that + refer to them) then it can be formatted in one pass. + Otherwise, TeX will have to be run two or three times to + make all of the references correct.

+
+ +
+
+
+

Indexes and Glossaries

+
+
+ +

Indexes and glossaries differ from the + preceding forms of reference in that they must be + processed by a separate program. In general, this is true + regardless of the macro package or format you use. An + external program is required because indexes and + glossaries must be alphabetized, and in indexes, + consecutive page numbers have to be converted into + ranges, and so on.

+
+ +
+
+
+

Bibliographies

+
+
+ +

LaTeX works in conjunction with another program, + called BibTeX, to provide a flexible, convenient + way to construct bibliographies. The \cite + commands allows you to refer to other documents in much + the same way that the \ref command allows you to refer to + other portions of the same document.

+ +

You make a citation by placing the command + \cite{string} where you wish the citation + to occur. The string is a key that + refers to the document in your bibliography database that + you wish to cite. Example  + Example 1.2 is a typical entry in a bibliography + database. It describes Knuth's classic book + The + TeXbook [kn:texbook]. The key for + this entry is “kn:texbook.”

+ +
+ + +

Example 1.2. A typical + bibliography database entry

+
+@Book{kn:texbook,
+  author    = "Donald E. Knuth",
+  title     = "The {TeX}book",
+  publisher = "Addison-Wesley",
+  year      = 1989,
+  edition   = "Fifteenth",
+  isbn      = "0-201-13447-0"
+  note      = "Paperback ISBN: 0-201-13448-9"
+}
+
+
+ +

Each entry in the database consists of a type (book, + article, magazine, etc.), a key, and a number of fields. + The number and names of the fields depend on the type of + entry. The database is simply a plain ASCII file + containing any number of entries. You can have multiple + databases.

+ +

These are the commands you use, in addition to \cite, + to include a bibliography in your document:

+
+\bibliographystyle{plain}
+\bibliography{textools,refbooks}
+
+ +

The \bibliographystyle command tells BibTeX how to + format the bibliography, and the \bibliography command + identifies which bibliographic databases contain the + citations that you have made. The “plain” + style of bibliography is selected, and the + textools and refbooks files contain the + bibliographic information for the documents cited. + Document styles can be used to alter the format of + citations in your text. The default extension for + bibliographic styles is .bst. The default + extension for database files is .bib.

+ +

LaTeX places citations and bibliography information + into the .aux file. BibTeX reads the + .aux file and constructs a bibliography, + which it places into a file with the extension + .bbl, using the entries you cited and + the bibliography style you selected.

+
+ +
+
+
+

Special Things

+
+
+ +

Sometimes, producing a complex document requires the + ability to interface with objects outside of TeX + (pictures or figures created by high-end graphics + packages, special features of a particular printer, + etc.). To support this kind of communication, TeX + provides a control sequence called \special. The + arguments passed to the \special command are written + directly to the DVI file for the DVI driver. It + is the responsibility of the DVI driver to handle them. + DVI drivers typically ignore \special commands that they + do not recognize.

+ +

You will find \special commands of various kinds + described throughout this book, particularly when + discussing color typesetting in Chapter Chapter 4, + Chapter 4, + and graphics in Chapter Chapter 6, + Chapter 6.

+
+
+ +
+
+
+ +
+

[1] Before I proceed, the + notion of beautiful in this context needs some + explanation. Several people have pointed out that the + logo type used by many TeX-related programs (including + TeX itself) is intrinsically ugly. These same folks argue + that a sentence like “TeX is designed to typeset + beautiful pages” is self-contradictory because it + begins with such an ugly construction. Obviously, TeX + can't prevent you + from typesetting ugly things. But TeX can typeset + beautiful things too. We at O'Reilly & Associates + think that this book, typeset completely in TeX, is an + excellent example.

+
+ +
+

[2] This is not a whole-truth. + Implementors of TeX may make some system-dependent + alterations as long as the resulting program still passes + the test suite; so our TeXs may not behave exactly the same way. + They will, however, produce identical documents given + identical input (unless the input relies on + system-dependent features not available in both TeXs, + naturally. ;-)

+
+ +
+

[3] This is subtly different + from saying that they are joined at the baseline. There + are TeX commands which can change the position of the + reference point in a box, whereas the baseline is an + imaginary line that depends solely on the shape of the + character.

+
+ +
+

[4] Technically, it's any + character defined to be in the “escape” + category followed by any sequence of characters defined + to be in the “letter” category or a single + character in the “other” category.

+
+ +
+

[5] Actually, macro expansion + differs from pure textual replacement in a number of + technical ways, but they aren't important here.

+
+ +
+

[6] Technically, several other + kinds of values are stored this way as well, but they are + less common and won't be discussed in this book at + all.

+
+ +
+

[7] Most control sequences can + be redefined to hold different kinds of values, but they + can never hold different kinds of values at the same + time. A dimension register can be redefined to hold + tokens, for example, but then it can't hold dimensions + anymore (unless it is redefined again).

+
+ +
+

[8] Plain TeX is the name of a + particular macro package. I selected it for the purpose + of example in this chapter because it is always installed + with TeX. Most of what follows in this chapter is true in + other macro packages as well, but some of the details are + different. See Chapter Chapter 4 + for more information.

+
+ +
+

[9] All of these special + characters are configurable, but most macro packages use + the Plain TeX defaults.

+
+ +
+

[10] TeX pundits, and other + folks who have been frustrated by the limitations of + these environments, frequently refer to this as + WYSIAYG—what you see is all you get.

+
+ +
+

[11] TeX doesn't do this sort + of thing automatically, but it isn't hard to do. Why the + kiwi? It was on my business card at the time.

+
+ +
+

[12] Although it has a very + different notion of what constitutes a control + sequence.

+
+ +
+

[13] Well, actually, they're + TeX primitives, are defined by a macro package, defined + in a file loaded by a macro package, or defined in your + document.

+
+ +
+

[14] Some drivers may also + benefit from loading the TFM files used to + create your document.

+
+ +
+

[15] Textures for the Mac and + Scientific Word offer WYSIWYG-like environments, + but that's not the point ;-)

+
+ +
+

[16] With extreme cleverness + or extreme bad luck you can create a document which will + never format + correctly.

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch02.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch02.html new file mode 100644 index 00000000000..77c3f6ec357 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch02.html @@ -0,0 +1,2438 @@ + + + + + + + + + Chapter 2. Editing + + + + + + + + + + + +
+
+
+

Chapter 2. Editing

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

This chapter describes several writing environments + available for creating and modifying TeX documents. In + practice, you can use almost any editing program you + wish, but I'll focus on GNU emacs in this chapter. I've + chosen GNU emacs for two reasons: it is a popular and very + powerful editor available on many platforms (unix, NeXT, + MS-DOS, OS/2, Macintosh, VMS, Amiga, $…$), and it has + the most comprehensive TeX editing environment that I've ever + seen. At the end of the chapter, I'll discuss several other + editors for MS-DOS and OS/2 that also have TeX editing + environments.

+ +

The sole requirement for a TeX editor is that it must save + files in a flat, ASCII format without any additional + formatting characters or special encodings. Word processors, + such as Microsoft Word, usually add special formatting + information to your document when they save it to disk. TeX + will not understand this information, so you cannot use a + word processor to edit TeX documents.[17]

+ +

A program that allows you to edit flat ASCII files is + usually called an editor (as opposed to a word processor, for + example). Choosing an editor is a remarkably personal + decision. Computer programmers and other people who use + editors every day frequently become very attached to a + particular editor. This chapter explores a number of features + that an editor can provide to make editing TeX documents + easier. If possible, choose an editor that offers these + features. In any event, make sure you choose an editor you + will be comfortable using. You'll spend a lot of time using + it.

+ +

Many editors have some sort of built-in programming + language. The features described in this chapter rely on + modifying the behavior of the editor with its programming + language. This does not mean that you will have to do any + programming. All of the editors discussed in this chapter + have TeX editing environments already available. However, if + you use another editor and it doesn't have a programming + language, it's unlikely that these features will be available + to you.

+ +

The next section explores some helpful editor features. + All of the editors in this chapter provide some or all of the + features discussed, and require little or no programming on + your part.

+ +
+
+
+

What Can an + Editor Do?

+
+
+ +

You will do most of your work with TeX in the editor. + There are two ways that an editor can help you edit TeX + documents. One is to provide typing shortcuts that are + either intuitive replacements for cumbersome operations or + quick ways of typing common TeX commands. The other way + that an editor can help is by running TeX for you and + automatically displaying the location of formatting errors + in your document.

+ +
+
+
+

Quoting Automatically

+
+
+ + +

Most typewriters and many word processors use the same + symbol for opening and closing quotations. You are + probably used to typing the double-quote key to insert + quotation marks into your text. However, if you look + carefully at TeX output (or any professionally typeset + document) you will notice that the opening and closing + quotation marks do not look the same. The proper way to + type an opening quote (“) in TeX is with two single + back-quotes in a row (``). A closing quote + (”) is entered with two single quotes (apostrophes) + in a row (''). This process is tedious and + error-prone since you are used to typing something + else.

+ +

If you accidentally use the double quote symbol in + your input, you most frequently get text that looks like + ”this.” The exact result is actually + dependent upon the font you are using. This is explained + in Chapter Chapter 5, + Chapter 5. + Most programmable editors can change the meaning of the + double-quote key to insert the correct quotation + marks.

+ +

If you are interested in programming your editor to do + this, you can use the following algorithm to select the + correct quotation marks most of the time: if the + character to the immediate left of the cursor is a space, + opening brace, parenthesis, or bracket, insert opening + quotes; otherwise, insert closing quotes. As a further + enhancement, double quotes should be inserted immediately + following a backslash.

+
+ +
+
+
+

Matching Braces

+
+
+ + +

Braces, as mentioned in Chapter Chapter 1, + Chapter 1, + are used by TeX to delimit sections of text; they appear + often in TeX documents. GNU emacs, Multi-Edit, + and Brief can all be programmed to highlight + the matching open brace whenever you type a closing + brace.

+ +

For example, if you have entered the text

+
+\footnote{This is {\it not} the only case.}
+
+ +

and the next character that you type is }, the + open brace immediately following the word \footnote is + highlighted, or all of the text between that brace and + the current cursor position is highlighted. This feature + makes it easier to find places where you have forgotten + to insert a closing brace.

+ +

If you usually work in “insert” mode, you + may also find it convenient to have the editor insert + braces in pairs and then insert text between them. This + can be accomplished in almost any editor that can be + programmed, even one that isn't equipped to handle brace + matching.

+
+ +
+
+
+

Inserting Common Control + Sequences

+
+
+ +

Most editors can be programmed to insert arbitrary + text when a special key is pressed. This feature can be + used to insert common control sequences. For example, you + might have Alt-c insert the \chapter control + sequence or Ctrl-e insert \begin{enumerate}.

+
+ +
+
+
+

Running TeX Automatically

+
+
+ +

One of the nicest features that an editor can provide + is the ability to run TeX automatically without leaving + the editor. This is a feature that programmers demand + because it allows them to run compilers directly from the + editor. Editors that provide this feature usually include + some mechanism for programming the editor to locate the + position of errors reported by the compiler. The editor + searches for error messages in the output + generated by the compiler, and it positions the cursor at + the location of each error. This speeds up the + traditional edit/compile/debug cycle of programming. You + can take advantage of these features to shorten the + edit/typeset/rewrite cycle of creating a TeX + document.

+ +

All of the editors discussed in this chapter can + easily be adapted to run TeX in this way. If you already + have a favorite editor and want to add this functionality + for TeX, see the section “the + section called “Running TeX”” later + in this chapter; it describes the process at a very + general level.

+
+
+ +
+
+
+

GNU Emacs

+
+
+ +

This section describes the TeX modes distributed as part + of GNU emacs. Emacs is one of the most popular and + most powerful editors around. Distributed by the Free + Software Foundation (FSF), GNU emacs is the + de facto standard editor in many unix environments. + Recently, GNU emacs has been ported to many other + platforms, including MS-DOS (demacs), OS/2, Macintosh, + VMS, Amiga, and NeXT.

+ + + +

Customizing some of the features of GNU emacs requires + familiarity with GNU emacs lisp, which is also + described in the Info pages.

+ +
+
+
+

Starting TeX Mode

+
+
+ +

GNU emacs provides two similar TeX editing + modes: one designed for editing Plain TeX documents + (plain-tex-mode) + and the other for editing LaTeX documents (latex-mode). The latex-mode is a superset + of plain-tex-mode + that provides additional shortcut keys for some LaTeX + control sequences.

+ +

There are three ways to start TeX mode in GNU + emacs:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
M-x tex-modeAttempts to select the correct mode.
M-x plain-tex-modeAlways selects Plain TeX mode.
M-x latex-modeAlways selects LaTeX mode.
+
+ +

If you use M-x tex-mode, emacs examines the top + of the buffer in order to select the appropriate mode. If + the control sequences \documentstyle or \begin{document} + occur near the top of the buffer, latex-mode is selected; + otherwise, the default mode is selected. The default mode + is stored in the emacs lisp variable + TeX-default-mode.

+ +

You can also tell emacs to invoke TeX mode + automatically whenever you edit a file that has a name + ending in .tex. To do so, add + the following lines to your emacs startup file, + usually called .emacs in your home + directory:[18]

+
+(setq auto-mode-alist (append '(("\\.tex$" . tex-mode))
+                               auto-mode-alist))
+
+
+ +
+
+
+

Typing in Emacs

+
+
+ +

The emacs TeX modes change the meaning of several keys + to provide features useful for editing TeX documents. + These special key bindings apply only to buffers + that you edit while emacs is in plain-tex-mode or latex-mode.

+ +

Automatic quotation, brace balancing in paragraphs, + inserting brace pairs, skipping over unmatched braces, + and closing open environments are supported.

+
+ +
+
+
+

Running TeX Automatically

+
+
+ +

When TeX typesets your document, it produces + processing and error messages. By running TeX for + you, emacs can capture these messages and display them in + a window. You can use this feature to help locate and + correct errors.

+ +

Functions that run TeX from inside the editor rely on + emacs' ability to run a subshell. Some + implementations of emacs, particularly implementations + for MS-DOS, which is unable to run concurrent processes, + cannot use this feature. aucTeX, a different editing + environment for GNU emacs, does allow you to use these + features with MS-DOS ports of GNU emacs. + (aucTeX is described in the next section.)

+ +

GNU emacs supports processing of both buffers and + regions. These modes don't locate errors for you + automatically, but they do place the output from TeX in + an emacs buffer so that you can find them yourself. + Chapter Chapter 3, + Chapter 3, + describes how to interpret TeX output and find the + location of errors.

+
+
+ +
+
+
+

aucTeX

+
+
+ +

This section provides an overview of aucTeX, a + powerful emacs macro package for editing LaTeX documents. + aucTeX is available on the CTAN archives in + support/auctex. More detailed information about + installing and customizing aucTeX can be found in the + documentation distributed with the package.

+ +

aucTeX provides extensive support for editing TeX and + LaTeX documents in emacs. It provides many more features + than the ordinary GNU emacs TeX modes. Although useful for + both Plain TeX and LaTeX documents, aucTeX is designed with + the LaTeX user in mind.

+ +

aucTeX is a lot + more complex than GNU emacs TeX mode. In fact, it is so + complex that it may not be useful if you have a relatively + slow computer.[19] On my machine,[20] aucTeX's performance + leaves a lot to be desired. On the other hand, aucTeX is + extensively configurable, and it is possible to streamline + it quite a bit.

+ +

The descriptions that follow are for aucTeX version 8.0. + The versions change frequently as new features are added. + Consult the documentation which comes with aucTeX for a + list of the new features that have been added since this + book was published.

+ +
+
+
+

Starting aucTeX

+
+
+ +

The instructions provided with each release of aucTeX + describe how to build and install the software so that + aucTeX will automatically be invoked when you edit a + file with a name ending in .tex.

+ +

If you think aucTeX is already installed on your + system (because the emacs Info page for it is present, + for example), ask your system administrator where it is + installed. One common location is + /usr/local/lib/emacs/site-lisp/auctex.

+ +

Adding the following line to your emacs startup file + (typically .emacs in your home directory) will + load aucTeX each time you start emacs:

+ +
+
+  (load-file "/path/for/auctex/tex-site.elc")
+
+
+
+ +
+
+
+

Typing in aucTeX

+
+
+ +

aucTeX provides a large number of typing shortcuts. + Many of the keystroke shortcuts are designed specifically + to aid in typing LaTeX documents. In addition to command + keys, aucTeX provides another typing shortcut---command + completion for LaTeX control sequences with + C-c TAB.

+ +

If you type a backslash followed by the beginning of a + control sequence name into a buffer and then type + C-c TAB, aucTeX completes as much of the + control sequence as possible. Every time aucTeX adds + another letter to the control sequence name, it compares + the resulting name to a configurable list of LaTeX + control sequences. If it reaches a point where the + control sequence could be continued in two different + ways, it stops and displays all the possible completions. + For example, there are two control sequences in standard + LaTeX that begin with \re: \renewcommand and + \renewenvironment.

+ +

If you type:

+ +
+
+\re C-c TAB
+
+
+ +

aucTeX will insert new because that much of + the control sequence name can be deduced from the known + possibilities. This changes the text in your document + to:

+
+\renew
+
+ +

Because aucTeX cannot figure out which of the + possibilities you want, it displays a list of the LaTeX + commands that begin with \renew. You can complete the + command by typing c or + e and pressing + C-c TAB again. If you want the + \renewcommand function, type:

+ +
+
+\renewcC-c TAB
+
+
+ +

Now, aucTeX will insert ommand and return to + normal typing mode with the cursor positioned just after + the control sequence name:

+
+\renewcommand _
+
+ +

aucTeX has special support for LaTeX sectioning + commands and environments, changing fonts, commenting out + sections of a document, reformatting the input text, and + entering mathematics.

+ +

TeX contains a lot of support for typesetting + mathematics. In that spirit, aucTeX provides + a minor mode[21] for + entering mathematical formulae.

+ +

In mathematics minor mode, pressing ` changes + the meaning of the next character you type. The next + character is interpreted as an abbreviation for a + mathematical symbol or function. For example, in aucTeX, + typing

+ +
+

$ C-c ~ ` a + ` < ` b $

+
+ +

inserts

+
+$α \leq β$
+
+ +

into your document (which is typeset like this: + α≤β).

+ +

Table  + Table 2.1 lists all of the abbreviations. The + first column of the table displays the shortcut keys. The + second and third columns show the command inserted in + your document and the typeset symbol, respectively .

+ +
+ + +

Table 2.1. aucTeX Math + Operators in Mathematics Minor-mode

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeysControl SequenceSymbolKeysControl SequenceSymbol
`a\alpha$\alpha$`C-f\rightarrow$\rightarrow$
`b\beta$\beta$`C-p\uparrow$\uparrow$
`d\delta$\delta$`C-n\downarrow$\downarrow$
`e\epsilon$\epsilon$`<\leq$\leq$
`f\phi$\phi$`>\geq$\geq$
`g\gamma$\gamma$`~\tilde$\tilde{\phantom{a}}
`h\eta$\eta$`I\infty$\infty$
`k\kappa$\kappa$`A\forall$\forall$
`l\lambda$\lambda$`E\exists$\exists$
`m\mu$\mu$`!\not$\not\phantom{=}$
`n\nu$\nu$`i\in$\in$
`o\omega$\omega$`*\times$\times$
`p\pi$\pi$`.\cdot$\cdot$
`q\theta$\theta$`@{\subset$\subset$
`r\rho$\rho$`@}\supset$\supset$
`s\sigma$\sigma$`[\subseteq$\subseteq$
`t\tau$\tau$`]\supseteq$\supseteq$
`v\vee$\vee$`\\backslash$\backslash$
`u\upsilon$\upsilon$`/\setminus$\setminus$
`x\chi$\chi$`+\cup$\cup$
`y\psi$\psi$`-\cap$\cap$
`z\zeta$\zeta$`(\langle$\langle$
`D\Delta$\Delta$`)\rangle$\rangle$
`G\Gamma$\Gamma$`C-e\exp$\exp$
`Q\Theta$\Theta$`C-s\sin$\sin$
`L\Lambda$\Lambda$`C-c\cos$\cos$
`Y\Psi$\Psi$`C-^\sup$\sup$
`P\Pi$\Pi$`C-_\inf$\inf$
`S\Sigma$\Sigma$`C-d\det$\det$
`U\Upsilon$\Upsilon$`C-l\lim$\lim$
`V\Phi$\Phi$`C-t\tan$\tan$
`O\Omega$\Omega$`^\hat$\hat{\phantom{a}}$
`C-b\leftarrow$\leftarrow$   
+
+ +

Additional miscellaneous commands in aucTeX provide + automatic quotation, completion of “items” in + appropriate environments (itemize and + enumeration environments, for example), and + insertion of brace pairs and skeletal + control sequences.

+
+ +
+
+
+

aucTeX Outline Mode

+
+
+ +

Outline mode is a convenient way to edit large + documents. In outline mode, portions of the document that + you are not editing are hidden from view. They aren't + removed or deleted. Emacs indicates hidden text with + ellipses.

+ +

For example, in a large document with many sections, + you can use outline mode to hide all text except the + section headings, and then selectively expand just the + sections that you wish to edit.

+
+ +
+
+
+

Intelligent Paragraph + Reformatting

+
+
+ +

aucTeX understands the TeX constructions for many + kinds of environments (the list environments, for + example) and performs paragraph reformatting + within the restrictions of these environments. aucTeX + won't concatenate a whole series of list items together + into one huge paragraph, for example.

+
+ +
+
+
+

Multi-file Documents

+
+
+ +

It is often convenient to edit a large document in + small pieces rather than in one huge file. For + example, when writing a book, it is convenient to work on + chapters independently and store them in different files. + If you are working on a collaborative project, it may be + absolutely necessary to separate the document into + pieces.

+ +

The TeX \input command allows you to construct a + driver file that automatically combines the individual + files that make up your document when you run TeX. The + driver file contains the document style options and other + setup information for the whole document. Each chapter + contains just the necessary text. When TeX encounters an + \input command, it typesets all of the text in the + specified file before continuing with the current + document. Example Example 2.1 + shows an example of a driver file.

+ +
+ + +

Example 2.1. A Simple + Driver File

+
+\documentstyle[ora]{book}
+\begin{document}
+   \input{intro}
+   \input{chap1}
+   \input{chap2}
+\end{document}
+
+
+ +

aucTeX provides seamless support for multi-file + documents. In order to provide this support, aucTeX + relies on the “file variables” feature of + emacs, which allows you to associate editor variables + with particular buffers. An editor variable is + a named variable that is local to the current buffer and + accessible by macro packages like aucTeX running under + emacs. Look up file variables in your emacs reference for + a more complete description. Example  + Example 2.2 shows some common local variables in + aucTeX.

+ +

When you run TeX on a buffer, aucTeX looks for the + editor variable TeX-master. If + TeX-master is set to a filename, aucTeX runs TeX + on that file instead of running it directly on the file + you are editing. This is a tremendously useful feature + because it means that you do not have to put macro + definitions, document style options, and other setup + information at the top of each chapter. Simply set the + TeX-master variable in each chapter to name the + driver file.

+ +

If you do not set the TeX-master variable, + aucTeX will prompt you for it the first time you run a + command. If the \documentstyle command occurs near the + top of your document, aucTeX assumes that the current + buffer is the + master (because it contains setup information) and will + not prompt you for a different master file.

+ +

Editor variables are defined by a “Local + Variables” declaration at the bottom of your file. + aucTeX inserts a Local Variables declaration + automatically if it prompts you for a master file. + Example  + Example 2.2 shows how local variables + TeX-master and TeX-command-default + can be set to driver.tex and LaTeX, + respectively. Because these lines begin with a percent + sign, they are considered comments by TeX and do not + appear in the output. These should be the last lines in + the file.

+ +
+ + +

Example 2.2. Local + Variables in an Emacs Buffer

+
+% Local Variables:
+% TeX-master: "driver.tex"
+% TeX-command-default: "LaTeX"
+% End:
+
+
+
+ +
+
+
+

Running TeX

+
+
+ +

Like GNU emacs TeX mode, aucTeX allows you to run + TeX directly from within emacs as a + subshell. Running a program inside emacs creates a + process. You can have only one active + process for each document, plus one process for TeXing a + region. If you try to run two processes on + the same document, aucTeX will ask for permission to kill + the first before running the second. aucTeX supports the + processing of both the documents and the regions of a + document.

+
+ +
+
+
+

Finding Errors

+
+
+ +

No matter how much experience you have with TeX, some + of the documents that you write will contain errors. + aucTeX eases the burden of correcting these errors by + locating them automatically in your document.

+
+
+ +
+
+
+

Multi-Edit

+
+
+ +

Multi-Edit is an editor for + the MS-DOS environment. This section describes the + text-based version of Multi-Edit. A Windows version + is in the works, and it may exist by the time you read + this.

+ +

Built to be a programmer's editor, Multi-Edit has + a number of features designed to add language-specific + intelligence to the editing environment. These features + (template editing, a customizable spellchecker, and + configurable brace matching) can be exploited for TeX as + readily as for any programming language. For several years, + at least since version 5.0, Multi-Edit has included + support for TeX.

+ +
+
+
+

Setting Up TeX Support

+
+
+ +

Support for TeX is included as a language type in + Multi-Edit. Language types are selected by + filename extension; this means that you configure + Multi-Edit to provide support for the “TeX + language” whenever you edit files with the + extension .tex (and other + extensions if you choose).

+ +

Selecting the “Other/Install/Filename + extensions...” menu displays a list of configured + extensions. If TEX is not listed, press Insert to + add it. You will see a screen like the one shown in + Figure  + Figure 2.1.

+ +
+ + +

Figure 2.1. Extension + setup in Multi-Edit

+ +
+ Screenshot +
+
+ +

Customize the right margin, tab spacing, indent style, + and colors to values that you find comfortable. The edit + mode should be “text,” and the tab settings + should be set to “use tab and margin settings, + ignore format line.”

+ +

Select TEX as the language type, and add TeX as a + compiler. One possible setting for TeX as a compiler (for + LaTeX documents, in this case) is shown in Figure  + Figure 2.2.

+ +
+ + +

Figure 2.2. LaTeX as a + compiler in Multi-Edit

+ +
+ Screenshot +
+
+
+ +
+
+
+

Typing in Multi-Edit

+
+
+ +

Brace matching is provided automatically with + Multi-Edit's template expansion support. Consult your + Multi-Edit reference for more information about + templates.

+ +

Multi-Edit language support does not include any TeX + key bindings by default. However, the macros are + provided, and you can install them with the + “Other/Install/Key mapping...” menu. The + following macros are available:

+ +
+
    +
  • +

    tex^texquote inserts the appropriate + quotation marks. This macro can be bound to + " to provide smart quoting.

    +
  • + +
  • +

    tex^texnquote inserts the literal + double quote. It can be bound to Alt-", for + example.

    +
  • + +
  • +

    tex^texreformat is a replacement for + the reformat macro. If the filename extension is + .tex, this macro reformats the paragraph + with sensitivity to TeX macros. Otherwise it calls + the default reformatting macro.

    +
  • +
+
+
+ +
+
+
+

Running TeX

+
+
+ +

Running TeX within Multi-Edit is accomplished by + specifying a compiler for TeX or LaTeX documents. + In Figure  + Figure 2.2, a batch file called TEXIT + is being used as the compiler for documents with the + extension .tex.

+ +

Automatic compilation and location of errors is + provided by Multi-Edit language support when you have + selected TEX as the language-type for + .tex files.

+
+
+ +
+
+
+

Brief

+
+
+ +

Brief is a powerful programmer's editor + recently acquired by Borland International. It is available + for both DOS and OS/2 systems. Like the other editors + discussed in this section, Brief offers a strong set + of programming features, including the ability to run + compilers automatically, and a flexible, C-like macro + programming language that allows you to customize the + editor.

+ +

There is a LaTeX editing environment for Brief in + the CTAN archives. It includes multiple-language support + (currently supporting Norwegian) and control-key shortcuts + for many common LaTeX commands.

+ +

The installation and setup program includes instructions + for defining program compilers. TeX can be defined to + process files with particular extensions. Once again, it is + a good idea to have the editor run a batch file so that the + batch file can determine what format file to use when + processing the document.

+
+ +
+
+
+

MicroEMACS

+
+
+ +

MicroEMACS is a powerful emacs-like editor for + MS-DOS and Microsoft Windows.[22] + Figure  + Figure 2.3 shows an example of MicroEMACS + editing a LaTeX document. In this case, the LaTeX + extensions to MicroEMACS have been loaded, and + “Help” is selected.

+ +
+ + +

Figure 2.3. Editing a file + with MicroEMACS

+ +
+ Screenshot +
+
+ +

The online help for LaTeX is shown in Figure  + Figure 2.4. This is a Microsoft Windows help file, + available independently of MicroEMACS (although it + is nicely integrated here).

+ +
+ + +

Figure 2.4. Microsoft + Windows online help for LaTeX

+ +
+ Screenshot +
+
+ +

The MicroEMACS environment also has the ability + to run other programs (including TeX to process documents) + and process the error output to aid in locating errors.

+
+ +
+
+
+

epm: OS/2's Enhanced Editor

+
+
+ +

epm, the enhanced editor for OS/2, can be + used to edit TeX documents. The epmtex + package adds a TeX item to the menu bar as shown in + Figure  + Figure 2.5.

+ +
+ + +

Figure 2.5. Editing a TeX + document with epm under OS/2

+ +
+ Screenshot +
+
+
+ +
+
+
+

Other Tools

+
+
+ +

There are many other editors that can be effective tools + for editing TeX documents. Some of the editors that you + might want to consider are Jove, an emacs-like + editor; Xnot, a Windows port of emacs; + LSedit, the VMS language-sensitive editor; + and Alpha and BBedit, two Macintosh + editors described in Chapter Chapter 15, + Chapter 15.

+ +

There are also a number of tools designed specifically + for editing TeX documents. Scientific Word, a + commercial environment, is described in Chapter Chapter 14, + Chapter 14. + Several free tools (MathPad, Doc, and + XTeXShell, for example) also exist, although + none were available[23] in time for review in + this edition of Making TeX Work.

+ +

Another helpful tool is LaCheck, a LaTeX syntax + checker. LaCheck attempts to find and identify + problems with your document that will cause it to format + incorrectly. It runs much more quickly than TeX over a long + document and may identify some things (like

+ +

missing italic correction) that are potentially + incorrect, even though they are not errors that will + prevent the document from formatting.

+
+ +
+
+
+

TeX as a Compiler

+
+
+ +

This section discusses how to use TeX like a compiler from + within your editor, and it is rather technical. You should + read this section before you attempt to program your own + editor to run TeX (if it doesn't already include support + for TeX). You may not be interested in this material if you + aren't planning to do that programming yourself. More + details on the types of TeX output used in this section can + be found in Chapter Chapter 3, + Chapter 3.

+ +

Many editors can run a compiler, capture the error + messages that the compiler produces, and walk through the + source file highlighting each error. Most editors with this + functionality can run TeX as a “compiler” for + documents.

+ +

The discussion that follows is at a very abstract level. + The details vary so much from one editor to the next that + presenting more detail only confuses the issue further. To + implement this feature, you'll need to read your editor + reference carefully, and probably experiment on your own a + little bit.

+ +
+
+
+

Processing a Document

+
+
+ +

Establish the TeX program as a compiler using whatever + features your editor provides to set up a compiler. + Experiment with your editor until you can process an + error-free document.

+ +

After you have everything working, it may be desirable + to modify the compiler to run a batch file or shell + script instead of invoking the TeX program directly. This + will allow you to program the shell script so that it can + determine which format file to use.

+ +

Running TeX is only the first step. Next, you have to + interpret the error messages that TeX + produces. As a concrete example, Example Example 2.3 + shows some contrived output which demonstrates an + “undefined control sequence” error on line 6 + of the file wilma.tex.

+ +
+ + +

Example 2.3. A Contrived + Error

+
+This is TeX version 3.141...
+** (flintstone.tex
+some
+messages [1]
+(fred.tex [2]
+some more
+messages
+[3] ) (wilma.tex [4]
+! Undefined control sequence.
+the dog \dino
+              tipped over the car.
+l.6 the dog \dino tipped over the car.
+
+
+ +

Here are some suggestions for attacking the problem of + programming your favorite editor to process TeX error + messages:

+ +
+
+
Using the log file
+ +
+

Don't worry about capturing the error messages + that TeX produces. It is much easier to get the + information from the log file. Log files + are described in the section called “the + section called “Log Files”” + in Chapter Chapter 3, + Chapter 3.

+
+ +
Finding error + messages
+ +
+

Any line in the log file that begins with an + exclamation point is an error message. In + Example Example 2.3, + the line that begins

+
+! Undefined control sequence.
+
+ +

is an example of an error message.

+
+ +
Finding the source + line
+ +
+

Following the error message, TeX shows the + context in which the error occurred. After that, + the line that begins with + l.nnn (where + nnn is some decimal + number) identifies the line of the input file that + TeX was processing when the error occurred (in + Example Example 2.3, + TeX was on line 6 when the error occurred).

+
+ +
Finding the source + file
+ +
+

When processing a document that uses the \input + command to include other files, there is no + guaranteed method of finding out the name of the + file TeX was processing when the error occurred. + Whenever TeX starts processing a file, it prints an + open parenthesis followed by the name of the file. + When it finishes processing the document, it prints + a close parenthesis.[24] So the + following algorithm usually identifies + what file the error occurred in:

+ +

Beginning at the line in the log file that + announces the error message (the line beginning + with “!”), search backwards for the + first unmatched open parenthesis. The word + following that open parenthesis is probably the + name of the file TeX was processing when the error + occurred.

+
+ +
Ignoring errors
+ +
+

When you run TeX “by hand,” you want + TeX to stop and report errors to you as they occur + in your document. But if your editor is going to + handle any errors that occur, it is inconvenient to + have TeX stop and ask questions. In fact, it may + not be possible to run TeX from your editor in a + way that makes it even feasible for TeX + to stop and ask questions. You can use several + built-in control sequences to control the way TeX + responds to errors. They are summarized in + Table  + Table 2.2.

+ +
+ + +

Table 2.2. TeX + Modes of Interaction

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModeTeX's Behavior
\errorstopmodeStop on errors (the + default behavior)
\scrollmodeScroll errors, stop on + missing files
\nonstopmodeScroll errors and missing + files
\batchmodeScroll both and don't + summarize on screen
+
+ +

One common way of invoking TeX from an editor to + process a document is to use the command:

+
+tex \nonstopmode \input flintstone
+
+ +

This uses the features discussed in the section + “the section called + “The Command Line”” in + Chapter Chapter 3 + to pass a command to TeX on the command line. In + this case, the command tells TeX not to stop on any + kind of error.

+
+ +
Handling other + errors
+ +
+

When searching for errors in the log file, you + may find it helpful to search for lines that begin + with the words “Overfull box” or “Underfull + box” as well as lines that begin + with an exclamation point. Because TeX does not + print the l.nnn form of line-number + message in this case, you will have to look for the + line numbers in the warning message.

+ +

Overfull box messages have the form:

+ +
+
+Overfull box (99.9pt too wide) in paragraph at lines n--m
+
+
+ +

The box will be either + hbox, indicating that something is too + wide, or vbox indicating that something is + too tall or too deep. The distance, + 99.9pt, indicates how + badly the box is overfull, and + n is the first line of the + paragraph in which the error occurs. Underfull box + messages are the same, except that they begin with + the word “Underfull.”

+ +

There are several control sequences that you can + use to control how sensitive TeX is to + “bad” boxes. Any good TeX reference + will discuss these parameters in detail.

+
+
+
+
+
+ +
+
+
+

Spellchecking

+
+
+ +

Checking for spelling mistakes is an important + part of any document creation process. Checking TeX + documents is difficult because these documents contain + control sequences that aren't words in the traditional + sense.

+ +

Some editors offer ways of customizing the spellchecker. + Multi-Edit, for example, allows you to indicate that any + word beginning with a backslash should be ignored for the + purpose of spellchecking. Figure  + Figure 2.6 shows the “Other/Install/Edit + Settings...” dialog where word delimiters are + controlled. This simple customization goes a long way + towards making spellchecking tolerable.

+ +

External spellcheckers, such as the ones described here, + can also frequently be customized to ignore TeX control + sequences.

+ +
+ + +

Figure 2.6. Edit settings + control word delimiters

+ +
+ Screenshot +
+
+ +
+
+
+

ispell

+
+
+ +

ispell is a common unix spellchecker. In + addition to being available from the shell prompt, GNU + emacs includes an ispell-mode that handles + TeX documents intelligently.

+
+ +
+
+
+

amSpell

+
+
+ +

amSpell is an MS-DOS spellchecker that + includes special support for TeX documents. When + spellchecking a TeX document, amSpell ignores all + TeX control sequences, as well as mathematics and the + arguments to reference and citation commands. The + standard accent primitives are also recognized, and + amSpell can identify and correct misspellings in + words that use them.

+ +

An example of amSpell checking a document is + shown in Figure  + Figure 2.7.

+ +
+ + +

Figure 2.7. Spellchecking + a document with amSpell

+ +
+ Screenshot +
+
+
+
+ +
+
+
+

Revision Control

+
+
+ +

Revision control allows you to track modifications to + a file. It is frequently associated with programming where + the ability to find and correct bugs relies on being able + to recreate a problem exactly. It can be just as useful for + writers wishing to keep track of changes to an evolving + document. For example, I use revision control to keep track + of which versions of each chapter my editor has seen.

+ +

One of the most common revision control systems is RCS, + which was derived from SCCS, a commercial + package. RCS is freely available under the GNU license. It + is possible to use RCS under unix, MS-DOS, and OS/2.

+ +

The TeX macros shown in Example  + Example 2.4 can be used to include RCS information + as marginal notes in a document. The marginal notes in this + example are printed only when a draft is being + produced.

+ +

These macros are my own, you will find others in the + CTAN archives in the directory + macros/latex/contrib/misc.

+ +
+ + +

Example 2.4. Revision + Control Macros for TeX Documents Using RCS}

+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% RCS definitions...
+\newif\ifdraft
+\def\RCSID$#1${
+  \ifdraft{\tolerance=100000
+           \hbadness=100000
+           \raggedright
+           \marginpar{\tiny Draft #1}}
+           \typeout{Draft #1}
+  \else\typeout{Production run #1}\fi
+}
+
+\def\RCSmargid$#1: #2 #3 #4 #5 #6 #7${
+% #1 = “Id”
+% #2 = filename
+% #3 = vers
+% #4 = date
+% #5 = time
+% #6 = author
+% #7 = state [locker]
+  \ifdraft
+    \setbox0=\hbox to 0pt{
+        \tolerance=100000
+        \hbadness=100000
+        \parbox{4in}{
+          \rm\tiny #2\\ #3\\ #4}
+        \hss}
+    \marginpar{\box0}
+    \typeout{Draft Id: #2 #3 #4 #5 #6 #7}
+  \fi
+}
+
+
+
+ +
+
+
+

TeX Shells

+
+
+ +

The iterative nature of TeX (edit, TeX, BibTeX, make + indexes, preview, repeat) can be tedious to perform by + hand. As a result, several TeX “shells” have + been developed which provide a more automatic interface to + many aspects of the TeX process. Several of these packages + are described below. In everyday use, they make TeX much + more user friendly.

+ +
+
+
+

TeXShell

+
+
+ +

TeXShell was designed as an add-on for + emTeX (it installs directly into the + emTeX directory hierarchy). This character-based + interface is available for both MS-DOS and OS/2. TeXShell + provides an editor, a complete help system, and fully + customizable push-button access to TeX. An example of the + TeXShell interface is shown in Figure Figure 2.8. + The default TeX menu and help windows are shown.

+ +
+ + +

+ Figure 2.8. TeXShell

+ +
+ Screenshot +
+
+
+ +
+
+
+

TeXPert

+
+
+ +

TeXPert is a character-based shell for TeX. + MS-DOS and OS/2 versions of TeXPert are available in + either German or English. The default configuration files + for TeXPert are designed to work with emTeX, but TeXPert + does not install directly into the emTeX directory + heirarchy. The TeXPert interface is shown in + Figure Figure 2.9.

+ +
+ + +

+ Figure 2.9. TeXPert

+ +
+ Screenshot +
+
+ +

TeXPert provides an editor, an archive tool for speedy + access to commonly used files, and an interface to + grep for quickly scanning files. The exact look + and feel of TeXPert can be customized.

+
+ +
+
+
+

4TeX

+
+
+ +

The 4TeX system uses the 4DOS + extended batch language and a number of utilities to + integrate emTeX with a wide variety of free, + shareware, and commercial tools. The system is well + documented in a manual that describes installation, + setup, use, and customization. The 4TeX interface is + shown in Figure Figure 2.10.

+ +
+ + +

Figure 2.10. 4TeX

+ +
+ Screenshot +
+
+
+ +
+
+
+

PMTeX

+
+
+ +

PMTeX is an OS/2 presentation manager + program. Although it does not provide a built-in editor, + it can control four independent DOS and OS/2 sessions, + one each for editing, TeX processing, previewing, and + printing. The options passed to each program can be + controlled from the PMTeX Options menu.

+ +

PMTeX was designed to work with emTeX, but can be + configured to use any TeX system. PMTeX was also designed + to support two preprocessors for phonetic transcription: + the TeuTeX-P and ALDTeX-P scanners. These + scanners are useful in dialectology and are available + separately from PMTeX's author.

+ +

A example of the PMTeX interface is shown in + Figure Figure 2.11. + Note that the menu bar is very wide and does not fit in a + standard 640x480 VGA window.

+ +
+ + +

+ Figure 2.11. PMTeX

+ +
+ Screenshot +
+
+
+ +
+
+
+

TeXit

+
+
+ +

The TeXit shell (which I wrote) is much less + ambitious in many ways. Written entirely in Perl, TeXit + does not offer a full screen interface or an editor at + all. Instead, it provides a simple menu of choices as + shown in Figure Figure 2.12 + (all of the menu choices are completely + customizable).

+ +
+ + +

+ Figure 2.12. TeXit

+
+Processing: ./driver.tex
+Again? [?]status, [T]eX & View, [b]ibtex, [c]leanup, 
+       [e]dit a file, [p]rint, [q]uery printer, [t]ex, 
+       [v]iew, e[x]it:
+
+
+ +

One of TeXit's strengths is its ability to parse the + log file created by TeX and to determine when additional + actions are required. For example, TeXit will recognize + when a document contains unresolved references and + citations and can automatically run BibTeX and repeatedly + run TeX to resolve the references. With the addition of a + few “user specified” rules in the document, + TeXit can easily handle index construction and other more + sophisticated relationships.

+
+
+ +
+
+
+ +
+

[17] Most word processors can + be coerced into saving your document in plain text. If + your word processor can do this, you may be able to edit + TeX documents with it.

+
+ +
+

[18] On file systems that + don't allow filenames to begin with a period, the name + frequently begins with an underscore instead.

+
+ +
+

[19] That's one of the reasons + that the regular GNU emacs TeX modes are described + first.

+
+ +
+

[20] A 16MHz 386SX machine + with only 8Mb of memory struggling to run GNU emacs under + OS/2. ;-)

+
+ +
+

[21] A minor mode is a kind of + editing environment provided by GNU emacs. If you are + unfamiliar with minor modes, consult your emacs + reference.

+
+ +
+

[22] There are two versions of + the program; the one discussed here is the version for + Windows.

+
+ +
+

[23] Or known to me, + anyway.

+
+ +
+

[24] Unfortunately, + parentheses can occur in the log file for other + reasons.

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch03.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch03.html new file mode 100644 index 00000000000..788caf7f753 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch03.html @@ -0,0 +1,1894 @@ + + + + + + + + + Chapter 3. Running TeX + + + + + + + + + + + +
+
+
+

Chapter 3. Running + TeX

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

The heart of processing a document with TeX is running the + TeX program. In this chapter, you'll learn what happens + between the time you first start the TeX program and the time + it finishes. You'll also learn what files TeX really needs + (in addition to your document) and what to do when TeX finds + things in your document that it doesn't understand.

+ +
+
+
+

What Do You Run?

+
+
+ +

The first thing you have to know is what program to run. + Unfortunately, the actual file you have to execute varies + between platforms and implementations. If you have built + and/or installed TeX yourself, you probably already know + what program to run. You'll have to ask your system + administrator for help if you can't figure out what the + name of the TeX executable is on your computer. The rest of + this chapter assumes that the command tex runs + TeX. You should substitute the name of the executable + program on your own system for tex in + the examples that follow.

+ +

Most implementations of TeX have some hard-coded memory + limits. These limitations may cause problems + if you are trying to run a very complex document through + TeX. To combat this problem, some distributions include two + versions of the TeX executable. One version is a + “small” TeX that generally runs faster but has + less memory available to process your documents. The other + version, a “big” TeX, can process more + complex documents but may run more slowly. If you get a + “TeX capacity exceeded” error, and you have a + big TeX available on your system, try processing your + document with the big TeX.

+ +

If you still get an error, you have a document that is + simply too complex for your implementation of TeX to + handle, or you have an error in one of the macros in your + document. By examining the error log, described later in + this chapter in the section “the section + called “Log Files”,” you can + determine what macro TeX is interpreting when the error + occurs. If the error occurs in a macro that you wrote, + check to make sure the macro functions the way you intended + by using it in a small test document.

+
+ +
+
+
+

What Files Does TeX Need?

+
+
+ +

Naturally, TeX needs your input file in order to process + it. However, TeX must be able to find several other files as + well. The files that TeX needs are normally created during + the installation process. Here is a common directory layout + for TeX on a unix system:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
/usr/local/lib/tex/formatsFormat files
/usr/local/lib/tex/poolPool files
/usr/local/lib/tex/formatsFormat files
/usr/local/lib/tex/inputs“System” input files
/usr/local/lib/tex/macros(styles, macros, and miscellaneous
/usr/local/lib/tex/libfiles distributed with TeX)
/usr/local/lib/tex/psPostScript support files
/usr/local/lib/tex/fonts/pkPK fonts
/usr/local/lib/tex/fonts/vfVirtual fonts
/usr/local/lib/tex/fonts/tfmTFM metrics
+
+ +

A similar layout is frequently used on other operating + systems, except that the TeX files are often stored in a + top-level directory (for example, C:$\$TEX under + MS-DOS). Because TeX is very flexible and has many + different implementations, the exact directory structure + varies. Pool files are sometimes placed in the format file + directory (which is sometimes called fmt or + fmts, rather than formats). Input files + may occur in one or more of the standard places listed + above (inputs, macros, and lib) + as well as a number of other places (texinputs is + another common name).

+ +

The files under the TeX tree usually come from outside + distributions, so you don't have to change them often. (You + definitely shouldn't + put your personal macro files in that tree, even if you do + have access to it.)

+ +

The following sections describe, in more detail, each of + the files that TeX needs.

+ +
+
+
+

Pool Files

+
+
+ +

Pool files contain string constants used by TeX at + runtime. Each time TeX is compiled, it creates a pool + file unique to the version being + compiled. The pool file from one version of TeX will not + work with a different version.

+ +

In contrast to format files (discussed in the next + section), if you don't have a pool file, there's nothing + you can do about it. If you obtained precompiled programs + (from the Internet, from a friend, or commercially) and + you don't have a pool file, you received an incomplete + distribution.

+ +

If you did not install TeX yourself, but find that the + pool file is missing, contact the system administrator + who performed the installation. He or she did something + wrong.

+
+ +
+
+
+

Format Files

+
+
+ +

As mentioned in the section “the section called “Boxes + and Glue”” in Chapter Chapter 1, + Chapter 1, + all of the control sequences and macros that your + document uses must be defined somewhere. One way to do + this is to use the \input command to load all of the + definitions at the beginning of each document. However, + with large macro packages like LaTeX, this process can be + very time consuming. Format files are a way of + predefining control sequences and macros so they don't + have to be interpreted by TeX every time they're used. If + TeX didn't use format files, you'd have to wait for TeX + to interpret all of LaTeX every time you processed a + document that used LaTeX.

+ +

Format files are created + by a special version of TeX, usually called iniTeX. + Some implementations combine TeX and iniTeX into one + program. In this case, you must select iniTeX with a + special option when you run TeX. IniTeX interprets all + the control sequences in a macro package and builds the + in-memory data structures that the TeX program needs. + After loading the whole macro package, iniTeX writes the + memory image it has constructed to a format file. When + TeX later loads the format file, it simply copies it into + memory; no interpretation is necessary. This is why + loading a format file is such a fast way to define + control sequences. This is also why format files are + not usually portable from one system to another,[25] or even between + different versions of TeX on the same system. Different + versions of TeX are stored differently in memory, and + this difference in loading makes the format files + incompatible. For this reason, you need a + “big” iniTeX to make format files for a big + TeX and a “small” iniTeX for a small TeX.

+ +

You will find a complete discussion of macro packages + and instructions for building format files for many of + the common macro packages in Chapter Chapter 4, + Chapter 4.

+
+ +
+
+
+

User Files

+
+
+ +

When you run TeX, you have to tell it what file to + process. If you specify a complete pathname, TeX will + load the specific file that you request. For example, I + could process the document myreport.tex in the + directory /home/norm/tex/ by running:

+
+\$ tex /home/norm/tex/myreport
+
+ +

This example applies to both unix and PC + implementations of TeX. Even though MS-DOS and OS/2 + typically use the backslash to separate directory names, + always use a + forward slash when entering filenames for TeX.

+ +

If you specify a simple filename without a path, TeX + looks for the file in several user-defined and, possibly, + system-defined locations. In the following example, TeX + will attempt to locate the file myreport.tex in + order to process it:

+
+\$ tex myreport
+
+ +

If the file myreport.tex exists in several + directories, TeX will process the first file it finds + without looking for any others. TeX always prints the + complete name of the file it processes both on the + display and in the log file, so you can always tell what + file was really processed.

+ +

The most common way to specify user-defined locations + is by setting the TEXINPUTS environment + variable[26] to a list of + subdirectories where TeX documents are kept. Setting + TEXINPUTS specifies where TeX should look for + documents (files + that you input with \input or some other construct, style + files, and macros). To change where TeX looks for other + kinds of files (fonts, formats, pool files, etc.), + setting different environment variables or performing + some other customization is required. The format of the + environment variable differs according to the platform + you use. On unix systems, it is a list of directory names + separated by colons. Here is a typical example:

+
+.:/usr/local/lib/tex/inputs:/home/norm/tex/inputs
+
+ +

On MS-DOS and OS/2 systems, it is a list of directory + names separated by semicolons. A typical example looks + like this:[27]

+
+.;\tex\inputs;\tex\styles;\tex\macros
+
+ +

Consult the documentation for your particular + implementation of TeX for more information about + system-defined locations where TeX looks for input files. + Unfortunately, this is not always well documented. For + example, an undocumented feature of version 1.4s of emTeX + always searches in the directory + \emtex\texinputs even if it does not occur in + the TEXINPUTS path. In fact, there is no way to + tell it not to + look there, short of renaming the directory (which is + what I did).

+ +

If TeX cannot find a file you specify, for example + rpt-data.tex, it displays a prompt like this + one:

+
+! I can't find file `rpt-data.tex'.
+<*> \input rpt-data
+
+Please type another input filename:
+
+ +

The general form of TeX error messages is discussed in + the section called “the section called “What + About Errors?”” later in this chapter. + TeX announces an error by printing the error message on a + line that begins with an exclamation mark. Below the + error, TeX provides the context in which the error + occurred. In the example above, TeX encountered the + command \input rpt-data and tried to find the file + rpt-data.tex which it could not locate.

+ +

Notice that TeX automatically added the extension + .tex to the name of the file it was + looking for. In any context where you specify a filename, + TeX will append .tex unless you specify an + alternate extension.

+ +

TeX responds to a “can't find file” error + by asking you to type the name of a different file. Some + implementations of TeX allow you to abort by typing + Ctrl-C or Ctrl-D at this point,[28] but + other implementations insist that you enter a filename. + In this case, you'll find it convenient to create an + empty file called nul.tex in a directory in + your TEXINPUTS path so you can get around this + requirement by supplying a dummy answer to the prompt. + nul.tex is part of many standard + distributions.

+
+
+ +
+
+
+

The Command + Line

+
+
+ +

Except for the name of a document, TeX has very few + command-line options. The only option that is regularly + used is the name of a format file, but the use of this + option is frequently buried inside a batch file or shell + script.

+ +

It is helpful to think of TeX, LaTeX, SliTeX, + etc. as different text processors (they aren't really; + they're all TeX with different format files). This illusion + is easy to provide with shell scripts or batch files. For + example, on an MS-DOS system, you could easily have three + batch files called tex.bat, latex.bat, + and slitex.bat:

+ +
+
    +
  • +

    The tex.bat file runs the TeX executable + with the plain format file specified as an + option.

    +
  • + +
  • +

    The latex.bat file runs TeX with the + lplain format file.

    +
  • + +
  • +

    The slitex.bat file runs TeX with the + splain format file.

    +
  • +
+
+ +

Now typing tex filename + processes Plain TeX documents; typing latex filename + processes LaTeX documents; and typing slitex filename + processes SliTeX documents.[29] The + role of format files and macro packages is described fully + in Chapter Chapter 4, + Chapter 4.

+ +
+
+
+

Command-line + Options

+
+
+ +

A formal specification of the TeX command line + looks like this:

+ +
+
+$ tex <switches> <&format> <|document> <tex-commands>
+
+
+ +

If this looks confusing, have no fear. I'll explain + what it means in English.

+ +

After the name of the TeX program (or batch file), the + first things that can go on the command line are + implementation-dependent switches and options. For + example, implementations of TeX that combine iniTeX and + TeX into a single program may use /I as the switch to specify + that iniTeX processing is desired (iniTeX, you may + remember, was described in the section “the section called “What + Do You Run?”,” earlier in this chapter). + There are no system-independent switches for TeX. Consult + the documentation that comes with your implementation for + more information about system-dependent switches.

+ +

After any system-dependent switches, the first thing + that you can put on the TeX command line is the name of + the format file to use. If you specify this option, + you must include it before any other options, and you + must put an ampersand (&) in front of the + format file name. If you do not specify a format file, + TeX will use a default format, usually Plain TeX.

+ +

After the format, TeX looks for the name of a document + to process. If TeX finds a filename on the command line, + it will process the document contained in that + file before looking at any other options that may + follow.

+ +

Finally, you can insert arbitrary TeX commands on the + command line by typing them just as you would in a + document. The section “the + section called “Running TeX”” in + Chapter Chapter 2, + Chapter 2, + describes one particular instance where this is very + useful, but it isn't something that you are likely to do + very often.

+
+ +
+
+
+

Command-line Cautions

+
+
+ +

There are some special restrictions on file names used + on the command line and on the way TeX interprets the + command line. These restrictions are summarized here.

+ +
+
+
+

Misinterpretation + of the command line

+
+
+ +

Command lines that are typed at the operating system + prompt are actually seen by your operating system's + “command processor” before they are seen by + TeX. You must be aware of special processing that might + be performed by the command processor. Under unix, for + example, the backslash is frequently + interpreted as a shell + escape character, and the + ampersand has another special meaning + related to job control. The ampersand + is also special under some MS-DOS and OS/2 command + processors where it is the default command separation + character and will not be passed to TeX as you would + expect.

+ +

To insert these troublesome characters literally, + you must enclose the relevant sections of the command + line in quotation marks or use some + form of shell escape mechanism. Under unix, place the + name of the format file, including the ampersand, in + double or single quotes and use two backslashes in a + row if you include TeX control sequences on the command + line. For example, type:

+ +
+
+$ tex '&lplain' \\nonstopmode \\input doc1
+
+
+ +

instead of

+ +
+
+$ tex &lplain \nonstopmode \input doc1
+
+
+ +

When using OS/2, place a ^ in front of an ampersand + to prevent it from being interpreted as a command + separator.

+
+ +
+
+
+

Filenames and + TeX

+
+
+ +

+ It is easy for TeX to recognize the presence of a + format file on the command line; it must be the first + option and it must begin with an ampersand.[30] After the format + file, TeX determines whether the next option is a file + name by looking at the first character of the option. + If the first character is not a backslash, it is a + filename; otherwise it is a TeX command, and TeX + assumes that no filename is present.

+ +

On some systems, notably MS-DOS and OS/2, the + backslash is used to delimit the + subdirectory components of a file name. On other + systems, a forward slash is used. Regardless of the + system you use, filenames passed to TeX must use forward + slashes to delimit filenames.

+ +

For example, TeX will not process the file + letter.tex in the \tex\docs directory + of the current drive if you execute the following + command line on an MS-DOS system:

+ +
+
+\$ tex \tex\docs\letter
+
+
+ +

Instead, you must type the following, regardless of + the operating system you're using:

+ +
+
+\$ tex /tex/docs/letter
+
+
+ +

If you don't, TeX will complain that the control + sequence \tex is undefined. Even more confusing errors + may result if the first subdirectory happens to be a + valid control sequence.

+ +

Unfortunately, filenames containing forward slashes + are not always recognized by operating systems that use + backslashes to delimit filenames. For example, under + MS-DOS, IF EXIST C:/CONFIG.SYS returns + false, even when a file called + config.sys exists in the root directory of + drive C:. Therefore, it is most convenient to use + filenames with backslashes when other commands will be + used (for example in a batch file). Filenames in batch + files must have any backslashes translated into forward + slashes before being passed to TeX. MS-DOS's command + processor isn't really powerful enough, but the task is + quite doable with JP Software's 4DOS + command processor. 4DOS is a + replacement for MS-DOS's normal command processor; it + offers many advantages over the normal processor. You + can get a shareware version of 4DOS from many + large MS-DOS archive sites on the Internet[31] as well as most + large bulletin board systems. The following lines, + written in 4DOS's extended + batch language, will translate all backslashes in the + environment variable TEXFN to forward + slashes:

+
+:FixBacks
+  Set Count=%@Index[%TexFn,\]
+  If "%Count" eq "-1" Goto FixDone
+  Set Place=%@Eval[%Count+1]
+  Set TexFn=%@SubStr[%TexFn,0,%Count]/%@SubStr[%TexFn,%Place]
+  Goto FixBacks
+:FixDone
+
+ +

These lines also work under OS/2 with JP Software's + 4OS2 command processor (akin to 4DOS; + shareware versions of 4OS2 are also available). + The same task can be completed in a single line with + REXX under OS/2:

+
+TEXFN = TRANSLATE(TEXFN, '\', '/')
+
+ +

REXX is an interpreted systems-programming + language distributed with OS/2. REXX runs under + many other IBM operating systems in addition to OS/2. + Several versions of REXX are available for + MS-DOS and unix systems, too.

+
+ +
+
+
+

Multiple documents

+
+
+ +

Keep in mind that TeX interprets only the + first option after the format file name as a document + name. If you type the command line:

+ +
+
+\$ tex doc1 doc2
+
+
+ +

TeX will process only doc1.tex as a + document. The result of the above command line + will be exactly as if you had typed the literal word + “doc2” at the very end of the file + doc1.tex.

+ +

To get TeX to process both doc1 and + doc2 as documents, type a command like the + following:

+ +
+
+\$ tex doc1 \input doc2
+
+
+ +

or, for complete clarity,

+ +
+
+\$ tex \input doc1 \input doc2
+
+
+ +

In either case, the structure of your document files + must allow them to be concatenated together. TeX does + not process doc1 and then process + doc2 separately. Instead, it processes all of + doc1 and appends the text in the file + doc2 directly onto the end of + doc1.

+
+
+
+ +
+
+
+

TeX Without Options

+
+
+ +

If you run TeX without specifying any options at + all, it prints out some introductory information, then + produces a ** prompt and stops. Here's + what emTeX's tex386 produces:

+
+This is emTeX (tex386), Version 3.141 [3c-beta8]
+**
+
+ +

This is the only situation where the ** prompt + occurs. TeX now expects you to enter text. TeX will + interpret anything you type after the ** prompt + exactly as if you + had typed it on the command line. All of the rules + regarding slashes (described in “the section + called “Misinterpretation of the command + line”” earlier) apply to commands that you + type at the ** prompt. Remember, however, that + input entered at the ** prompt is not seen by the + operating system, so don't use quotation marks or doubled + backslashes.

+ +

The last line of a document is usually a command telling + TeX that the document is finished. TeX responds by writing + the last page of the document and ending (returning control + to the operating system). If a document doesn't end with + such a command, TeX will wait for more input. When TeX runs + out of input, it displays the * prompt + (single asterisk). Anything you type at the * + prompt is interpreted exactly as if it occurred in the + document that TeX was processing. You cannot specify an + alternate format or name a document at the * + prompt. You can, however, use \input to insert another + file.

+ +

If emTeX processes a document called + unended.tex:

+
+% This is UNENDED.TEX
+Now is the time for all good men
+to come to the aid of their country.
+% Note: there's no \bye command to end 
+% TeX's processing...
+
+ +

the following output appears on the terminal:

+
+This is emTeX (tex386), Version 3.141 [3c-beta8]
+**unended
+(unended.tex)
+*
+
+ +

You can exit from the TeX program at the * + prompt by telling TeX that it should stop processing the + current document. Exactly how you get out depends on the + format file you use. The following table shows the stop + commands for some TeX macro packages.

+ +
+ + +

Table 3.1. 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PackageCommand
Plain TeX\bye
LaTeX\end{document}
SliTeX\end{document}
Lollipop\Stop
TeXinfo@bye
+
+ +

If you do not know which format is in use, you can + almost always get out with the following steps:[32]

+ +
+
    +
  1. +

    Type a control sequence that TeX will not + recognize (control sequences \undefined and + \gobbledygook will work). TeX will respond with the + question mark prompt.

    +
  2. + +
  3. +

    Enter x at the + prompt. The question mark prompt is discussed fully + in the section “the section + called “Interpreting TeX Error + Messages”,” later in this + chapter.

    +
  4. +
+
+ +

To continue the above example, if I type \undefined at + the * prompt, TeX will respond:

+
+This is emTeX (tex386), Version 3.141 [3c-beta8]
+**unended
+(unended.tex)
+*\undefined
+! Undefined control sequence.
+<*> \undefined
+
+?
+
+ +

If I enter x at the + question mark prompt, TeX will print several informative + messages and then end, returning control to the operating + system.

+
+This is emTeX (tex386), Version 3.141 [3c-beta8]
+**unended
+(unended.tex)
+*\undefined
+! Undefined control sequence.
+<*> \undefined
+
+? x
+No pages of output.
+Transcript written on unended.log.
+
+ +

One word of caution: some macro packages redefine the + meaning of the backslash (\) character so that + it doesn't function as the beginning of a control sequence + (for example, the TeXinfo format uses the at-sign, + “@”). In this case, you must precede the + undefined control sequence by the escape character, even if + it isn't the backslash.

+
+ +
+
+
+

What About + Errors?

+
+
+ +

When you write TeX documents, you will occasionally make + mistakes and as a result, TeX won't be able to + process your document. There are six broad classes of + mistakes you're likely to make:

+ +
+
    +
  1. +

    Naming documents or files that TeX cannot + find.

    +
  2. + +
  3. +

    Misspelling the name of a TeX control + sequence.

    +
  4. + +
  5. +

    Failing to close an environment or forgetting to + insert a closing brace after an opening brace.

    +
  6. + +
  7. +

    Using math operators outside of math mode or + forgetting to close an opened math environment.

    +
  8. + +
  9. +

    Requesting a font that TeX cannot find.

    +
  10. + +
  11. +

    Everything else.

    +
  12. +
+
+ +

TeX is legitimately criticized for having error messages + that are very difficult to understand. TeX frequently + provides far more information than you really need or want, + and the excess information often obscures the actual cause + of the error.

+ +

Nevertheless, understanding what TeX does when it + encounters an error will help make error messages easier to + understand. Let's begin with an example. Example Example 3.1 + shows a simple LaTeX document using the New Font Selection + Scheme (NFSS), which contains an error.[33] The error is that the + control sequence \Large, which has been redefined to + request a 17pt font, contains a typo: + \cs[fontsize]{fontsiz} should be \fontsize.[34]

+ +
+ + +

Example 3.1. The Document + BADFONT.TEX

+
+\documentstyle{article}
+% The following definition changes the font that LaTeX
+% uses for the 'Large' font.  I have introduced a typo
+% into the definition, “\fontsiz” should be “\fontsize”.
+% The  first time a \Large font is requested, an error will occur.
+\renewcommand{\Large}{\fontsiz{17}{20pt}\selectfont}
+\begin{document}
+
+This text precedes the first section header.
+
+% Note: LaTeX uses the \Large font in section
+% headers...this will fail in a confusing way
+% because the error is deep within the definition
+% of \section where \Large is used...
+\section{First Section}
+
+This is the first and only sentence of the first section.
+
+\end{document}
+
+
+ +

When TeX processes this file, using LaTeX with the New + Font Selection Scheme, it produces these error + messages:

+
+This is TeX, Version 3.1415 (C version 6.1)
+LaTeX Version 2.09 <25 March 1992> with NFSS2
+(badfont.tex (/work/nutshell/texguide/styles/latex/article.sty
+Standard Document Style `article' <14 Jan 92>.
+(/work/nutshell/texguide/styles/latex/art10.sty)) (badfont.aux)
+(/usr/local/lib/tex/inputs/nfss2/T1cmr.fd)
+! Undefined control sequence.
+\Large ->\fontsiz{17}{20pt}\selectfont 
+<argument> \reset@font \Large 
+                              \bf 
+\@sect ...x \ifdim \@tempskipa >\z@ \begingroup #6
+                                      \relax \@hangfrom {\hskip ...
+l.21 \end{section}
+\section{First Section}
+
+?
+
+ +

These messages exemplify the kind of confusing error + messages that TeX produces. Remember the following rule: + Always look at the first and last line of the TeX error + message when trying to figure out what went wrong and where + it went wrong. In this case, the first line is:

+
+! Undefined control sequence.
+
+ +

and the last line is:

+
+l.21 \end{section}
+\section{First Section}
+
+ +

The error is that the control sequence + \cs[fontsize]{fontsiz} is not defined and TeX was + processing line 21 of the file when it occurred.

+ +
+
+
+

Log Files

+
+
+ +

You don't have to remember or write down the error + messages that TeX produces. When TeX processes a + document, it produces a transcript of everything + that occurs; you can refer to this transcript later if + you need to recall what errors occurred when you + processed your document. TeX stores this transcript in a + file which has the same name as the document and the + extension .log. For example, if you process + main.tex, TeX produces a transcript in + main.log.

+ +
+

Note

+ +

Log files go in the current directory. TeX always + places the log file in the current directory, even if + you specify a path when you format your document. For + example, if you process lectures/main.tex, TeX + produces a transcript in main.log, not in + lectures/main.log as you might expect.

+
+
+ +
+
+
+

Interpreting TeX Error + Messages

+
+
+ +

The first line of a TeX error message begins with an + exclamation point followed by the text of the message. + The lines that follow it show the context in which the + error occurred.[35] In the previous + example, the error message indicates an Undefined + control sequence. This means that TeX encountered a + control sequence which was not previously defined.

+ +

The final line, which says l.21 \section{First + Section}, occurs right above the question mark + prompt. It identifies the line in your document that TeX + was processing when it encountered the error. The error + occurred when TeX was at line 21 of the file, and that + line began with \section{First Section}.

+ +

Between the first and last lines, TeX prints a + detailed description of how the error occurred. This is + necessary because the error may have occurred inside the + replacement text of a macro that you used. When TeX + encounters a control sequence, like \section, it has to + look up the definition to figure out how to typeset your + document. The definition of a control sequence may + contain other control sequences which also have to be + interpreted. It is possible for TeX to be several levels + deep, as it was in this case, when an error occurs. To + give the person who wrote the definition of the control + sequence an opportunity to figure out what went wrong, + TeX prints out a trace + back of what happened before the error. + As you gain experience with a particular macro package, + you'll find the intervening lines more meaningful.

+ +

Correcting an error depends entirely on the nature of + the error. In this case, all you need to do is correct + the typo.

+ +

As stated above, there are six general classes of + errors you might encounter when you run TeX. The + following sections briefly describe each class.

+
+ +
+
+
+

Naming a File TeX Cannot + Find

+
+
+ +

Missing documents are discussed in the section called + “the section called “User + Files”,” earlier in this chapter.

+ +

If you request a format file that cannot be + found, TeX issues the following warning message:

+
+Sorry, I can't find that format; will try the default
+
+ +

TeX then attempts to typeset your document with Plain + TeX.[36] To correct this + problem, run TeX with the correct format file name. If + the format file isn't available, you will have to build + it. Chapter Chapter 4, + Chapter 4, + describes how to build format files for several common + macro packages.

+
+ +
+
+
+

Misspelling a Control Sequence + Name

+
+
+ +

Misspelling a control sequence name is one of the + most common errors. For example, you might type + \ipnut{chap1} in your document instead of \input{chap1}. + The solution is straightforward and usually easy to + identify. In many cases, you can simply proceed after + encountering this error. Although TeX may not typeset + your document correctly, you can continue to look for + other errors. The section called “the section + called “Interpreting TeX Error + Messages”,” later in this chapter, + describes how to continue after an error.

+ +

In some cases, TeX may become badly confused by a + misspelled control sequence name, in which case you + should give up and fix the spelling error before trying + to process your document further. This may happen if you + misspell a LaTeX environment name (\begin{itemze} instead + of \begin{itemize}, for example),[37] + which will make LaTeX misinterpret many of the control + sequences which follow.

+ +

Sometimes TeX will complain that a control sequence is + undefined when you know that the control + sequence is spelled correctly. When this occurs, make + sure that you are using the correct format file (see the + section “the section called “The + Command Line”” earlier in this chapter), + loading the correct macro files, and using the correct + style options.

+
+ +
+
+
+

Failure to Close an + Environment

+
+
+ +

Failure to close an environment is another very + common error. There are several distinct errors in this + category:

+ +
+
    +
  • +

    Failure to insert a closing brace (}) + for each opening brace may cause a “TeX + capacity exceeded” error when TeX processes + your document. This happens because sometimes TeX + tries to read everything between braces into + memory. If the closing brace is absent, TeX may run + out of memory.

    + +

    If the braces are supposed to enclose the + argument to a macro, you may also get this error:

    +
    +! Paragraph ended before macro was complete.
    +
    + +

    In order to help detect errors of this type, TeX + doesn't ordinarily allow the argument of a macro to + consist of more than one paragraph, so the first + blank line after the place where you failed to type + the closing brace may produce this error.

    +
  • + +
  • +

    Failure to close a begin/end environment pair + causes LaTeX to complain about a mismatch when it + encounters the next + \end{\texttt{environment}} + command.

    +
  • + +
  • +

    If your document ends with an open environment, + TeX will warn you that:

    +
    +! (\end occurs inside a group at level n)
    +
    + +

    where n is the number + of open groups, usually 1.

    +
  • + +
  • +

    Failure to close a mathematics environment will + result in the error:

    +
    +! Missing $ inserted
    +
    + +

    when TeX reaches a macro that does not make + sense in mathematics mode (like \section) or when a + surrounding group ends.

    +
  • +
+
+
+ +
+
+
+

Math Outside of Math Mode

+
+
+ +

TeX has a lot of operators for special treatment of + mathematical formulas. These operators must occur inside + mathematics mode, + which is usually delimited by dollar signs in your + document.

+ +

If you attempt to use math operators, superscripts, + subscripts, or other math-mode control sequences outside + of mathematics mode, the following error will occur:

+
+! Missing $ inserted
+
+ +

This is your clue that a mathematics environment has + not been closed properly or that you failed to open one + before using a math-mode operator.

+ +

For example, the underscore character is usually + defined to be a math-mode operator which starts a + subscript, in other words H${}_2$O produces + “H${}_2$O” in your document.[38] If you use the + underscore outside of mathematics mode, such as in + regular text:

+
+The file “test_one” contains the ...
+
+ +

TeX will respond:

+
+! Missing $ inserted
+<inserted text>
+                $
+<to be read again>
+                  _
+The file “test_
+                one” contains the ...
+?
+
+ +

In LaTeX, the easiest way around this problem is to + enclose the offending text in a “verbatim” + macro, like this:

+
+  The file “test_one” contains the ...
+
+ +

Note that the argument to the macrois + delimited by any two identical characters (in this case, + two “+” signs).

+ +

In Plain TeX or another format, the problem can be + circumvented in similar ways; consult the reference for + the format you are using. Also consult Table  + Table 1.2 in Chapter Chapter 1, + Chapter 1, + for a list of special characters and how to type them in + your documents.

+
+ +
+
+
+

Missing Fonts

+
+
+ +

The first time that you use each font, TeX + loads font metric information about the font. The font + metric information, stored in a TFM file, + includes information about the sizes of each character as + well as kerning and ligature information. These topics + are discussed fully in Chapter Chapter 5, + Chapter 5.

+ +

If you request a font that does not exist, for example + crm10 (a misspelling of cmr10), TeX + cannot find a TFM file for the font and + therefore displays:

+
+Font \myfont=crm10 not loadable: Metric (TFM) file not found
+
+ +

This means that TeX attempted to associate the font + described by the TFM file crm10.tfm + with the control sequence \myfont, but the TFM + file didn't exist. You must have a TFM file for + every font that you use.

+ +

A second kind of error---actually, a warning---occurs + when you are using the New Font Selection Scheme (NFSS). + The NFSS performs font substitution, if possible, when an + unknown font is requested. The NFSS is described in + Chapter Chapter 4, + Chapter 4, + in the “the section called + “LaTeX”” section.

+
+ +
+
+
+

Everything Else

+
+
+ +

There are, unfortunately, lots of other errors that + can occur. Some of the errors are directly related to TeX + while others are warning and error messages associated + with particular macro packages. There is no way to + catalog every one of them or suggest what can be done in + every case.

+ +

The best advice I can offer is to isolate the problem + in as small a document as possible, consult the + references you have available very carefully, and, if all + else fails, forward your problem to one of the electronic + forums that deal with TeX (the Info-TeX mailing + list and the comp.text.tex + newsgroup, for example).

+
+
+ +
+
+
+

The Question Mark Prompt

+
+
+ + +

When TeX encounters an error, it displays an error + message and a summary of the error, as described in the + section called “the section called “What + About Errors?”” earlier in this chapter. + Following the error, TeX normally stops and displays the + question mark prompt.

+ +

If you type a question mark of your own at the prompt, + TeX displays the actions available to you:

+
+? ?
+Type <return> to proceed,
+S to scroll future error messages,
+R to run without stopping, Q to run quietly,
+I to insert something, E to edit your file,
+1 or ... or 9 to ignore the next 1 to 9 tokens
+of input, H for help, X to quit.
+?
+
+ +

You can type any of the following responses at the + question mark prompt:

+ +
+
+
Type Return to + proceed.
+ +
+

Simply typing Return will cause TeX to ignore the + error and proceed. Depending on the nature of the + error, this may cause more errors immediately or + later on.

+
+ +
Type S to scroll future + error messages.
+ +
+

Typing S tells TeX to continue and not to + stop for most future errors. TeX will continue to + print the error messages, both to the terminal and to + the log file, but it will not display the question + mark prompt again.

+ +

TeX will still stop and ask about missing + files.

+
+ +
Type R to run without + stopping.
+ +
+

The R option is just like S except + that it tells TeX to ignore missing files as well. + TeX will proceed blindly forward as best as it can. + You will still see all of the error messages scroll + by as TeX proceeds.

+
+ +
Type Q to run + quietly.
+ +
+

This option is just like R except that + error messages are not displayed on the screen. The + messages are saved in the log file, however, even + though they are not displayed.

+
+ +
Type I to insert + something.
+ +
+

If you notice a simple typo, you can correct it + with the I command. For example, suppose that + TeX complains of an undefined control sequence: + \cte{kn:art1}. You recognize that this should have + been \cite{kn:art1}. You can insert the correct + control sequence by responding i\cite to the + question mark prompt. TeX will ignore the misspelled + control sequence and insert the (correct) sequence + \cite in its place.

+ +

Inserting words or commands at the question mark + prompt does + not change your input file. It simply + instructs TeX to pretend that your + file contained a different sequence of words and + commands. You must change the input file with an + editor, or the same error will occur the next time + you format the document.

+
+ +
Type E to edit your + file.
+ +
+

This option terminates TeX. If your system is + configured appropriately, an editor will be loaded + automatically, and the cursor will be placed at the + offending line in your input file. This is not + possible in all environments.

+
+ +
Type n, + where n is a number between 1 and + 9.
+ +
+

This option tells TeX to ignore some of the input. + After skipping over the number of tokens you request, + TeX returns to the question mark prompt so that you + can delete more tokens.

+ +

What's a token? When TeX reads an input file, + it breaks each line down into the smallest, + indivisible chunks that have meaning. These are + called tokens. For the most part, tokens are + individual characters. The exceptions are control + sequences, which are single tokens, and + white spaces which are also single tokens. There + are other + exceptions (and more technical definitions of + “token”), but that's the gist of it.

+
+ +
Type H for + help.
+ +
+

Typing H displays a slightly more verbose + description of the error that occurred and, usually, + suggests the nature of the corrective action that you + might take.

+
+ +
Type X to + quit.
+ +
+

Typing X tells TeX to stop immediately and + ends the TeX program. If there are any completed + pages (pages processed before the error, in other + words), they are written to the DVI file + before TeX ends.

+
+
+
+
+ +
+
+
+ +
+

[25] {The exception occurs in + some unix versions of TeX where provisions are made for + different architectures to share the same format files. + The exact same version of TeX must be running on both + architectures for this to work.}

+
+ +
+

[26] {The exact name of the + environment variable differs between + implementations.}

+
+ +
+

[27] You will notice that I've + used backslashes to separate directory components in + the path. Environment variables are handled by the + system-dependent portions of TeX, so it's okay to use + backslashes here. You can also use forward slashes, but I + use backslashes because that is more typical of MS-DOS + and OS/2 environments.

+
+ +
+

[28] {MS-DOS and OS/2 + implementations of TeX may use Ctrl-Z (possibly followed + by a carriage return) instead of Ctrl-C or Ctrl-D.}

+
+ +
+

[29] {On unix systems, the + same effect is often achieved with symbolic links. Most + unix implementations look for different standard format + files based upon the name of the executable that starts + them.}

+
+ +
+

[30] {In the unlikely event + that you have a TeX document stored in a file with a name + beginning with an ampersand, use the following trick to + process that file: instead of running tex + &file, run tex \input &file (or even + tex &format \input &file).

+
+ +
+

[31] {For example, + oak.oakland.edu in the directory + /pub/msdos/4DOS.}

+
+ +
+

[32] {Typing the break + character (Ctrl-C or Ctrl-Break, for + example) sometimes works as well, but some + implementations of TeX don't respond to the break + character at every prompt. On unix systems, use + Ctrl-D. EmTeX responds to Ctrl-Z followed + by Return.}

+
+ +
+

[33] {The details of LaTeX and + the NFSS are discussed in Chapter Chapter 4, + Chapter 4. + It is simply convenient to use a concrete example in this + case. Do not be concerned if you do not use LaTeX or the + NFSS.}

+
+ +
+

[34] {In practice, redefining + a control sequence like $\$Large in a document + is a bad idea. I've done it here only to provide an + example of an error that occurs inside another + macro.}

+
+ +
+

[35] {The number of lines of + context shown in the error message is determined by the + value of the built-in parameter + $\$errorcontextlines.}

+
+ +
+

[36] {It is possible to make + other formats the default, but in practice I've never + seen it done.}

+
+ +
+

[37] Technically, LaTeX + environment names are not a control sequence names, but + they behave in very much the same way in LaTeX.

+
+ +
+

[38] {The empty curly braces + are necessary in this example because otherwise there + wouldn't be anything in front of the subscript command + for TeX to subscript below. Typically, another digit or + symbol would come in front of the subscript command. In + this case, I didn't want the “H” and + “O” in the math environment because letters + are printed in math-italics in math mode.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch04.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch04.html new file mode 100644 index 00000000000..a64b3e597fb --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch04.html @@ -0,0 +1,2206 @@ + + + + + + + + + Chapter 4. Macro Packages + + + + + + + + + + + +
+
+
+

Chapter 4. Macro + Packages

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Everyone who uses TeX uses a macro package (also + called a “format”). A macro package extends TeX + to provide functionality that is suited to a particular task + or set of tasks.

+ +

This chapter provides a summary of TeX macro packages. + General-purpose packages designed to typeset a wide range of + documents---articles, books, letters, and reports---are + examined first. The general-purpose packages described are + Plain TeX, Extended Plain TeX, LaTeX2e, LaTeX, AMSTeX, + AMSLaTeX, Lollipop, and TeXinfo. After surveying the + general-purpose packages, several special-purpose packages + designed to handle specific tasks---typesetting + transparencies, music, chemistry or physics diagrams, + etc.---are described. The special-purpose packages surveyed + are SliTeX, FoilTeX, Seminar, MusicTeX, ChemStruct, and + ChemTeX.

+ +

There are a lot of overlapping features and similar + commands in the general-purpose packages. To understand why + this is the case, consider how a new macro package comes into + existence. An ambitious person, who is very familiar with + TeX, decides that there are some things she would like to + express in her documents that are difficult to express with + existing formats. Perhaps, for example, no existing format + produces documents that match the precise specifications + required for publishing in her field, or perhaps she has in + mind a whole new document structuring paradigm. A more + mundane possibility is simply that she has been customizing + an existing format for some time and now feels it has enough + unique features to be useful to others.

+ +

In any event, a new format is born. Now, if this format is + designed for a very specific task, writing multiple-choice + mathematics exams, for example, it might not have very many + general-purpose writing features. On the other hand, if it is + designed for writing longer, more general documents (e.g., + history textbooks or papers to appear in a particular + journal) then there are a number of features that it is + likely to include; provisions for numbered lists, cross + references, tables of contents, indexes, and quotations are + all examples of features common to many documents.

+ +

To support these common features, many macro packages have + similar control sequences. This stems from the fact that they + are all built on top of a common set of primitives and + that macro package authors tend to copy some features of + other packages into their own.

+ +

You may find that you'd like to use the features of + several different packages in the same document. + Unfortunately, there is no provision for using multiple + formats to process a single document. The features required + to process most documents are shared by all of the + general-purpose formats, however. You are more likely to need + multiple macro packages if you want to use a special format + to construct a diagram or figure and incorporate it into a + document. Chapter Chapter 6, + Chapter 6, + describes several ways to take “electronic + snippets” of one document and insert them into another, + which is one possible solution to this problem.

+ +

If you're beginning to feel a little lost, have no fear. + Most general-purpose formats are sufficient for most + documents. And there's no reason why every document you write + has to be done with the same format. Many people find LaTeX + and Plain TeX sufficient, but if you're writing an article + for a particular journal and someone has written a format + specifically for that journal's documents, by all means use + it. It is more likely, however, that someone has written a + style file which tailors LaTeX to the requirements + of the journal.

+ +

In addition to describing some common macro packages in + this chapter, I'll describe how to build format files for + them. If the packages that you want to use have already been + installed at your site, you can ignore the installation + sections.

+ +

The packages that you find most convenient will depend on + the tasks you perform and how well each package suits your + work style. The list of packages in this chapter is not meant + to be all-inclusive, nor is it my intention to suggest which + packages are best. Use the ones you like, for whatever + reasons.

+ +

I can hear some of you already, “I don't really need + a macro package,” you say, “I can roll my own + with just TeX.”

+ +

And you are absolutely correct.

+ +

I don't recommend it, however. It's akin to using your + compiler without any of the built-in functions. Most TeX + primitives offer little support by themselves for writing + documents.

+ + + +
+
+
+

Installation: + Making Format Files

+
+
+ +

A format file, as described in Chapter Chapter 3, + Chapter 3, + is a special “compiled” version of a macro + package. The iniTeX program interprets all of the control + sequences in a macro package and writes the corresponding + memory image into a file. Loading a format file is much + faster than loading individual macro packages in your + document because TeX does not have to interpret any of the + control sequences while it is also processing text.

+ +

In general, all format files should be stored in the + same directory.[40] If you install TeX in a + directory called tex, then formats typically go in + a directory called formats in the tex + directory. This is not universally the case + because you need separate format directories for big and + small TeXs.[41]

+ +

Usually, an environment variable indicates where the + format files are located. Environment variables are a + common way of customizing your interaction with programs. + They are usually set in your AUTOEXEC.BAT file for + MS-DOS, CONFIG.SYS for OS/2, or the + rc-file for a shell + (i.e., .cshrc, .kshrc) on unix systems. + Any good reference book for your operating system or shell + will describe how to use environment variables.

+ +

A common name for the environment variable that + indicates where TeX formats are located is + TEXFORMATS. Implementations that provide big and + small TeXs need another variable to indicate the directory + that contains formats for big TeX.

+ +

IniTeX is not always a separate program. Some + implementations of TeX combine the functionality of TeX and + iniTeX into a single program and use a special switch at + runtime to determine which function to perform. In this + chapter, all of the examples use the program name + initex to identify iniTeX. If you use an + implementation that doesn't provide a separate iniTeX + program, you should use the TeX program with the iniTeX + switch instead. For example, for emTeX, use + tex /i instead of initex when you build a + format.

+ +

Like TeX, iniTeX needs to be able to find input files. + Usually, this is accomplished by searching the directories + listed in the TEXINPUTS environment variable. + Place the input files that iniTeX needs in a directory on + the TEXINPUTS path before running iniTeX unless + otherwise directed. The TEXINPUTS environment + variable is discussed in the “the + section called “User Files”” section + of Chapter Chapter 3.

+ +
+
+
+

Hyphenation Patterns

+
+
+ +

In order for TeX to correctly hyphenate words, every + format file must contain a set of hyphenation patterns. + The patterns are part of an algorithmic solution to the + problem of breaking a word into syllables for + hyphenation.

+ +

The details of the hyphenation algorithm (given in + Appendix H of The + TeXbook [kn:texbook]) are too + complex to describe here, but two aspects of this + solution deserve particular emphasis. First, using + patterns means that a dictionary of hyphenated words is + not necessary.[42] This saves a lot of + space and time. Second, by loading different sets of + patterns, TeX can achieve equal success at hyphenating + any language---even English ;-). There are actually at + least two sets of hyphenation patterns for English, one + for British English and one for American English. + Chapter  + Chapter 7, + Chapter 7, describes how to load + multiple sets of hyphenation patterns for typesetting + multilingual documents.

+
+
+ +
+
+
+

General-purpose Formats

+
+
+ +

This section describes several macro packages that + are designed for formatting standard documents like + articles or books. In order to provide some form of + comparative measure, each macro package is used to create + the same document, a one-page report that looks like + Figure Figure 4.1. + I constructed this example to demonstrate a few common + elements in a document: several sizes of headings, a + paragraph of text, inline and displayed mathematics, and a + few fonts. There are lots of other things that aren't shown + (tables, figures, footnotes, etc.), and these elements vary + as much as any other in the different macro packages.

+ +
+ + +

Figure 4.1. Sample + page

+ +
+ +
+
+ +

Observant readers will notice that the examples are + shown in the Computer Modern fonts while the rest of this + book uses different fonts.[43] There + are a number of reasons why the example is shown in + Computer Modern. For one thing, all of the formats + discussed here use the Computer Modern fonts by default. + Using a different set of fonts would only add more + complexity to each example. A more subtle problem is that I + do not have appropriate mathematics fonts for Garamond. + There are a number of complex issues involving the use of + fonts in TeX. They are discussed in Chapter Chapter 5, + Chapter 5.

+ +
+
+
+

Plain TeX

+
+
+ +

Plain TeX is the format written by Donald + Knuth during the development of TeX. It + is described fully in The + {TeX}book [kn:texbook].

+ +

Plain TeX ties together the TeX primitives in + a way that makes it practical to work in TeX. If you do + not have a computer programming background, you may find + Plain TeX a little bit intimidating. It is definitely a + “roll your own” environment. Although it + demonstrably contains all of the functionality required + to write everything from letters to books, there is very + little “user-friendly” packaging around the + internals of TeX.

+ +

Aside from user interface considerations, which are + highly subjective, Plain TeX lacks some functionality + when compared to other formats. There is no provision in + Plain TeX for automatically numbered sections, labelled + figures, tables of contents, indexes, or bibliographies. + Any of these functions can be constructed in Plain TeX if + you are willing to invest the time and energy required to + write your own macros, but they are not built into Plain + TeX.

+ +

If you enjoy writing your own macros or plan to + produce novel types of documents, a firm grasp of Plain + TeX will allow you to write anything in TeX. A firm grasp + of Plain TeX also makes it easier to understand and + modify other formats (like LaTeX) that are built on top + of Plain TeX.

+ +

In addition, Plain TeX is the only format that is + always distributed with TeX. The other formats discussed + in this chapter are freely available but do not come with + TeX.

+ +

The Plain TeX input that produces the report in + Figure Figure 4.1 + is shown in Example Figure 4.2.

+ +
+ + +

Figure 4.2. Plain TeX + Input

+ +
+ +
+
+ +
+
+
+

Building the Plain TeX + format

+
+
+ +

To build Plain TeX, you need only + two files: plain.tex and + hyphen.tex. These files are distributed with + TeX so they should be available as soon as you have + installed TeX. The hyphen.tex file is + language-dependent. Readers who frequently work with + non-English text should read Chapter  + Chapter 7 for more information about obtaining + non-English hyphenation patterns.

+ +

The command:

+
+\$ initex plain \dump
+
+ +

will create the Plain TeX format. Move the resulting + files, plain.fmt and + plain.log, into your TeX formats + directory.

+
+
+ +
+
+
+

Extended Plain TeX

+
+
+ +

Extended Plain TeX extends Plain TeX in a number of + useful ways without forcing you to use any particular + “style” of output. The argument is this: + although Plain TeX really doesn't provide all of the + features that you need (tables of contents, cross + references, citations, enumerated lists, convenient + access to verbatim input, etc), many of these features + don't have any direct impact on the appearance of your + document. Unfortunately, other general-purpose macro + packages like LaTeX, which do provide these features, + tend to force you to accept their notion of what the + typeset page should look like.[44]

+ +

Extended Plain TeX is an attempt to solve that + problem. It provides many behind-the-scenes features + without providing any general page layout commands (like + \chapter or \section), which means that these features + can be used inside Plain TeX without much difficulty and + without changing the layout of typeset pages.

+ +
+
+
+

Building the Extended Plain + TeX format

+
+
+ +

To build the Extended Plain TeX format, + you need the plain.tex and + hyphen.tex files required to + build the Plain format as well as the + eplain.tex file distributed + with Extended Plain TeX.[45] + Make and install the Plain TeX format first, then + change to the directory that contains the Extended + Plain TeX distribution.

+ +

The command:

+
+$ initex \&plain eplain \dump
+
+ +

will create the Extended Plain TeX format. Move the + resulting files, eplain.fmt and + eplain.log, into your TeX formats + directory.

+
+
+ +
+
+
+

LaTeX2e Versus LaTeX

+
+
+ +

The tremendous popularity of LaTeX in the TeX + community has had an unfortunate side effect: because it + is a very familiar and flexible format, many people have + used it as the basis for extensions of one sort or + another. This has resulted in a wide range of (slightly) + incompatible formats and a lot of frustration.

+ +

This situation is being rectified by a new release of + LaTeX, currently called LaTeX2e. The new release + replaces the existing dialects of LaTeX (LaTeX with and + without NFSS, SliTeX, AMSLaTeX, etc.) with a single core + system and a set of extension packages. LaTeX2e includes + a compatibility mode which will allow it to continue to + format existing documents without change (provided that + they do not rely on local modifications to the LaTeX + format, of course). Local modifications can also be + incorporated into the LaTeX2e system as extension + packages, making LaTeX2e a complete replacement for all + existing versions of LaTeX and packages closely derived + from LaTeX.

+ +

The most significant and least compatible difference + between LaTeX and LaTeX2e is the font + selection scheme. There are many control sequences for + selecting fonts in LaTeX. Some control the typeface (\rm, + \tt, \sc, etc.); some the size (\small, \normalsize, + \large, etc.); and some the appearance (\it, \bf, \em, + etc.). Under the Old Font Selection Scheme (OFSS), + the control sequences for selecting a font completely + override any font selection already in place. Consider, + for example, the control sequences \it and \bf, which + switch to italic and boldface. Using \bf\it produces + italic text, and \it\bf produces boldface text, and neither produces + boldfaced-italic text (which is probably what you + wanted).

+ +

Under the New Font Selection Scheme, typeface (called + family in NFSS + parlance), appearance (called series and shape), and size are + viewed as orthogonal components in font selection. + Because these parameters are independent, selecting an + italic appearance with the \it control sequence switches + to italic in the current typeface and size. Under the + NFSS, \bf\cs{it} does select + boldface-italic in both the current typeface and size (if + it is available).

+ +

LaTeX2e supports only the NFSS, version 2 (called + NFSS2). For more than a year, the NFSS + (initially version 1, and more recently version 2) has + been available as an extension for LaTeX 2.09. However, + in light of stable test releases of LaTeX2e, the NFSS2 + package for LaTeX 2.09 has been withdrawn. The discussion + of NFSS in this book applies equally well to LaTeX 2.09 + with NFSS2, but it is described in terms of LaTeX2e in an + effort to be more applicable in the future. The NFSS is + discussed in more detail in Chapter Chapter 5.

+
+ +
+
+
+

LaTeX2e

+
+
+ +

Leslie Lamport's LaTeX format is probably the most + commonly used TeX format. It is described in LaTeX: A Document Preparation + System [ll:latexbook] and many + other TeX books. LaTeX2e is the new + standard LaTeX. It is described in {The LaTeX + Companion} [latexcompanion]. The + next edition of LaTeX: A + Document Preparation System [ll:latexbook] will also + describe LaTeX2e.

+ + + +

The central theme of LaTeX is “structured + document preparation.” An ideal LaTeX document is + described entirely in terms of its structure: chapters, + sections, paragraphs, numbered lists, bulleted items, + tables, figures, and all the other elements of a document + are identified descriptively. For example, you enclose + figures in a figure environment identified + by the control sequences \begin{figure} and + \end{figure}.

+ +

When you are ready to print your document, select an + appropriate document class, and LaTeX + formats your document according to the rules of the + selected style. In the case of the ideal document, it + might first be printed in a magazine or newsletter using + the article class. Later, when it is incorporated into a + book, selecting the book class is all that is required to + produce appropriate output; the document itself is + unchanged.

+ +

LaTeX is written on top of Plain TeX. This means that + almost any control sequence or macro that you + learn about in Plain TeX can also be used in LaTeX. Of + course, LaTeX insulates you from many Plain TeX commands + by wrapping a much more user-friendly interface around + them.

+ +

The LaTeX2e input that produces the sample page in + Figure Figure 4.1 + is shown in Example Figure 4.3. + The only difference between this document and an old + LaTeX document is the use of the \documentclass + declaration instead of the \documentstyle + declaration.[46] For more complex + documents, other minor changes may also be necessary.

+ +
+ + +

Figure 4.3. LaTeX2e + Input

+ +
+ +
+
+ +
+
+
+

Building the LaTeX2e + format

+
+
+ +

The LaTeX2e distribution is available from the + directory macros/latex2e/core in the CTAN + archives.

+ +

The following steps will build the LaTeX2e format. + For more complete installation instructions, read the + file install.l2e in the LaTeX2e + distribution.

+ +
+
    +
  1. +

    Place the LaTeX2e distribution in a temporary + directory and make that directory the current + directory. After the installation is complete, + you will need to move only selected files into + the standard places.

    +
  2. + +
  3. +

    Restrict to only the current directory the + directories that TeX searches for input files

    + +

    This can usually be accomplished by setting + the environment variable + TEXINPUTS[47] to a single + period or the absolute path name of the current + directory.

    +
  4. + +
  5. +

    Copy the hyphen.tex file from the Plain TeX + distribution into the current directory.

    +
  6. + +
  7. +

    Issue the command:

    +
    +\$ initex unpack2e.ins
    +
    + +

    This will unpack all of the distribution + files.

    +
  8. + +
  9. +

    Build the format file by issuing the + command:

    +
    +\$ initex latex2e.ltx
    +
    + +

    Move the resulting files latex2e.fmt + and latex2e.log into the TeX formats + directory.

    +
  10. + +
  11. +

    In addition to the files needed to build the + format, unpacking the LaTeX2e distribution + creates many files that are needed for formatting + documents. These files must be placed in a + location where TeX will find them. However, in + order to maintain a functioning LaTeX 2.09 + system, you must not place the new files in the + same input directory as the existing + files.[48]

    + +

    Create a new directory (or folder) for the new + files. On the unix system that I use, where + existing input files are stored in a directory + called /usr/local/lib/tex/inputs, I + created /usr/local/lib/tex/latex2e to + store the new files. You will have to add the new + directory to the front of the + list of directories that TeX searches for input + files whenever you format a document with + LaTeX2e.

    + +

    Move the files that the installation script + produces into the new directory. Move the files + docstrip.tex, latexbug.tex, + sfontdef.ltx, slides.ltx, + testpage.tex, and all of the files that + end in .cfg, .cls, + .clo, .def, .fd, and + .sty. You should also move the files + gglo.ist and gind.ist someplace + where MakeIndex can find them. + (MakeIndex is described in Chapter  + Chapter 12, + Chapter 12.)

    + +

    One of the aspects of the test releases that + continues to change is the exact list of files + that must be moved. Consult the + install.l2e file in the distribution for + the exact list. The list above is from the test + version of January 28, 1994.

    +
  12. +
+
+
+
+ +
+
+
+

LaTeX

+
+
+ +

This section briefly covers LaTeX version 2.09. This + version of LaTeX is still very widely used but it is + being phased out.

+ +

The LaTeX input to produce the sample page in + Figure Figure 4.1 + is shown in Example Figure 4.4.

+ +
+ + +

Figure 4.4. LaTeX Input + File

+ +
+ +
+
+ +

Support for the NFSS in LaTeX 2.09 has been withdrawn. + If you need to build a format with support for NFSS, + consult the “the section called + “LaTeX2e”” section of this + chapter.

+ +
+
+
+

Building the LaTeX + format with the OFSS

+
+
+ +

The LaTeX distribution[49] includes three + subdirectories, sty, doc, and + general. All of the LaTeX files required to + build the format file are in the general + subdirectory. You will also need the + hyphen.tex file required to + build the Plain format.

+ +

In the general subdirectory, the + command:

+
+\$ initex lplain
+
+ +

will create the LaTeX format. Move the resulting + files, lplain.fmt and + lplain.log, to the TeX formats directory. In + order to complete the installation, copy the files from + the sty directory in the LaTeX distribution + into a directory where TeX searches for input + files.

+
+
+ +
+
+
+

AMSTeX

+
+
+ +

When the American Mathematical Society + selected TeX as a document preparation system, they + decided to extend it in a number of ways to make the + creation of papers and journals easier. They had two + goals: to make it easier for authors to write + mathematical papers in TeX and to make the resulting + papers conform to a particular set of style + specifications. AMSTeX is described completely in The Joy of TeX [ms:joyoftex].

+ +

AMSTeX provides many commands that resemble LaTeX + environments. These have the form + \environment … + \endenvironment. In addition, AMSTeX + provides the notion of a document style to control + style-related formatting issues.

+ +

Another important contribution made by the American + Mathematical Society when creating AMSTeX was the + construction of a large number of new fonts. + The American Mathematical Society provides fonts with + many more mathematical symbols than the fonts that come + with TeX. These fonts are available as a separate package + and can be used with any TeX macro package, not just + AMSTeX.

+ +

The AMSTeX input required to produce the document in + Figure Figure 4.6 + is shown in Example Figure 4.5. + The result of formatting this document does not appear + exactly like Figure Figure 4.1 + because AMSTeX uses the style conventions of the American + Mathematical Society.

+ +
+ + +

Figure 4.5. AMSTeX Input + File

+ +
+ +
+
+ +
+ + +

Figure 4.6. AMS sample + page

+ +
+ +
+
+ +
+
+
+

Building the AMSTeX + format

+
+
+ +

In order to build the AMSTeX format, you need the + plain.tex and hyphen.tex files + from Plain TeX and the amstex.ini + and amstex.tex files from the + AMSTeX distribution.

+ +

The command:

+
+\$ initex amstex.ini
+
+ +

will create the AMSTeX format. Move the resulting + files, amstex.fmt and + amstex.log, into your TeX formats + directory.

+
+
+ +
+
+
+

AMSLaTeX

+
+
+ +

AMSLaTeX, like AMSTeX, provides many + features to make typesetting mathematics convenient while + meeting the standards of the American Mathematical + Society for publication. However, AMSTeX + lacks many of the features that are present in LaTeX, + like automatically numbered sections and tools for + creating tables of contents and indexes.

+ +

When LaTeX gained popularity, many authors requested + permission to submit articles to the American + Mathematical Society in LaTeX. In 1987, the American + Mathematical Society began a project to combine the + features of AMSTeX with the features of LaTeX. The result + is AMSLaTeX.

+ +

AMSLaTeX provides all of the functionality of LaTeX + because it is an extension of LaTeX. It also provides the + functionality of AMSTeX in LaTeX syntax and access to + additional mathematical constructs and math symbols not + present in LaTeX. .

+ +

The input required to produce Figure Figure 4.1 + is not shown because they do not differ significantly + from the LaTeX sample. Because the sample document + doesn't use any of AMSLaTeX's additional features, it is + exactly the same as the LaTeX document.

+ +
+
+
+

Building the AMSLaTeX + format

+
+
+ +

The AMSLaTeX macros are embodied entirely in style + files for LaTeX. It is not necessary to build a special + format file. However, the AMSLaTeX macros + require the New Font Selection Scheme (NFSS). Consult + the section on LaTeX, above, for instructions on + building the LaTeX format with NFSS.

+
+
+ +
+
+
+

Lollipop

+
+
+ +

It can be argued that LaTeX has the following + deficiency: although there are many different style + options available, it is not easy for a novice user to + change a style option. Changing the internals of most + LaTeX style options requires a deep understanding of + TeX.

+ +

The Lollipop format is very different from the + other formats. The central thrust of Lollipop is that it + should be easy to change and customize document styles. + All Lollipop documents are built from five different + generic constructs: headings, lists, text blocks, page + grids, and external items.

+ +

The Lollipop input required to produce a document like + the sample page in Figure Figure 4.1 + is shown in Example Figure 4.7.

+ +
+ + +

Figure 4.7. Lollipop + Input File

+ +
+ +
+
+ +
+
+
+

Building the Lollipop + format

+
+
+ +

To make the Lollipop format, you need the + Lollipop distribution and the file hyphen.tex + from the Plain TeX distribution.

+ +

This command will create the Lollipop format:

+
+\$ initex lollipop \dump
+
+ +

It should be performed in the directory where you + installed the Lollipop distribution so that all of the + Lollipop files can be located. Move the resulting files + lollipop.fmt and + lollipop.log into your TeX + formats directory.

+
+
+ +
+
+
+

TeXinfo

+
+
+ +

The TeXinfo format is a general-purpose format, but it + was designed to support a particular application: to + produce both online documentation and professional + quality typeset documentation from the same source file. + It is discussed in more detail in Chapter Chapter 10, + Chapter 10.

+ +

The input file shown in Example Figure 4.8 + produces the typeset output shown in Figure Figure 4.9. + The input file for this example is complicated by the + fact that it contains mathematics. None of TeX's + sophisticated mechanisms for handling mathematics are + applicable to plain ASCII online documentation. The + online documentation produced by the example in + Example Figure 4.8 + is shown in Figure  + Figure 4.10.

+ +

The TeXinfo format is the official + documentation format of the Free Software Foundation + (FSF). Although less commonly used, a + LaTeX variant called LaTeXinfo is also + available.

+ +
+ + +

Figure 4.8. TeXinfo + Input

+ +
+ +
+
+ +
+ + +

Figure 4.9. TeXinfo + sample page

+ +
+ +
+
+ +
+ + +

Figure 4.10. Online + documentation produced by MakeInfo

+
+
+
+
+
+ +
+
+
+

Other Formats

+
+
+ +

There are a number of other macro packages available + for TeX. Some of them are summarized below. The fact that + they are not discussed more fully here (or listed below, + for that matter) is not intended to reflect on the + quality of the format. The formats discussed above are + examples of the ways in which TeX can be extended. All of + the formats below extend TeX in a way similar to one of + the formats already mentioned. For any particular + application, one of these macro packages might be a + better choice than the formats discussed above.

+ +
+
+
EDMAC
+ +
+

Provides support for typesetting critical + editions of texts in a format similar to the Oxford + Classical Texts with marginal line numbers and + multiple series of footnotes and endnotes keyed by + line number. EDMAC is available from the CTAN + archives in the directory + macros/plain/contrib/edmac.

+
+ +
INRSTeX
+ +
+

Provides support for multilingual documents in + French and English. INRSTeX is + available from the CTAN archives in the directory + macros/inrstex.

+
+ +
LamSTeX
+ +
+

Extends AMSTeX with LaTeX-like features and + improved support for commutative diagrams. + LamSTeX is + available from the CTAN archives in + macros/lamstex.

+
+ +
REVTeX
+ +
+

Extends LaTeX to provide support for typesetting + articles for journals of the American Physical + Society, the Optical Society of + America, and the American Institute + for Physics. REVTeX is available in the directory + macros/latex/contrib/revtex of the CTAN + archives.

+
+ +
TeXsis
+ +
+

Provides facilities for typesetting articles, + papers, and theses. It is particularly tuned for + physics papers. TeXsis also provides support for + other kinds of documents, such as letters and + memos. It is based upon Plain TeX. TeXsis is + available from the CTAN archives in the directory + macros/texsis.

+ +

In addition to REVTeX and TeXsis, there are + several other packages in the macros + directory on CTAN that were designed for + typesetting documents about physics: PHYSE, PHYZZX, and + PSIZZLE.

+
+ +
TeX/Mathematica
+ +
+

Supports interactive use of Mathematica on unix workstations running + GNU emacs. Mathematica explorations can be + annotated with TeX/LaTeX, and Mathematica graphics + can be incorporated into documents. + TeX/Mathematica is + available from the CTAN archives in the directory + macros/mathematica.

+
+ +
ScriptTeX
+ +
+

Supports typesetting screenplays in TeX. + ScriptTeX is + available from the CTAN archives in the directory + macros/scripttex.

+
+ +
VerTeX
+ +
+

Supports typesetting articles for economic + journals. VerTeX is + available from the CTAN archives in the directory + macros/plain/contrib/vertex.

+
+
+
+
+
+ +
+
+
+

Special-purpose Formats

+
+
+ +

In addition to the general-purpose packages + discussed above, there are dozens, if not hundreds, of + extensions to TeX that are designed for very specific + tasks. Many of the extensions are LaTeX style files; they + provide styles for many academic journals, university + theses, resum\'es, diagrams of various sorts, PostScript + interfaces, linguistics, multinational language support, + unix “man” pages, program listings, and + countless other tasks.

+ +

To give you a feel for the range of tasks that TeX can + perform, I've selected a few packages to highlight the + latitude of customization that is possible. Figure Figure 4.11 + shows the chemical structure of caffeine (a molecule dear + to my heart) rendered with the ChemTeX package. The source + is shown in Example  + Figure 4.12. Another chemistry package, + ChemStruct, was used to draw Figure  + Figure 4.13. Its source is shown in + Example  + Figure 4.14. Taking TeX in another direction, the + MusicTeX package was used to typeset the first + two bars of Mozart's K545 sonata in C-major in + Figure Figure 4.15. + The MusicTeX input is shown in Example  + Figure 4.16. Several more examples are presented + in Chapter Chapter 7 + where formats for typesetting non-English languages are + described.

+ +
+ + +

Figure 4.11. Caffeine by + ChemTeX

+ +
+ +
+
+ +
+ + +

Figure 4.12. The ChemTeX + Source for Caffeine

+ +
+ +
+
+ +
+ + +

Figure 4.13. A lithium + cation rendered by ChemStruct

+ +
+ +
+
+ +
+ + +

Figure 4.14. The ChemStruct + Source for the Lithium Cation

+ +
+ +
+
+ +
+ + +

Figure 4.15. A little + Mozart…

+ +
+ +
+
+ +
+ + +

Figure 4.16. The MusicTeX + Source for Figure Figure 4.15

+ +
+ +
+
+ +

Another popular special-purpose application of TeX is + the production of transparencies, also called + foils or slides. There are a few + different options for this application.

+ +
+
+
+

SliTeX

+
+
+ +

SliTeX is part of the standard LaTeX distribution. + Input to SliTeX consists of a main file and a slides + file. Individual slides are composed in a slide + environment.

+ +

SliTeX has provisions for black-and-white + slides, color slides, and overlays. Unlike the other + slide-making formats, which rely on \special printer + commands[50] to incorporate color, + SliTeX produces separate output pages for each color. For + example, if you use red to highlight words on an + otherwise black-and-white slide, SliTeX will produce two + output pages for the slide: one with all the black text + (excluding the words in red) and one with just the red + words. Both of these pages will be printed in black. You + must construct the colored slide by copying the pages + onto colored transparencies and overlaying them. + Producing slides with overlays in the same color is + accomplished with a special “invisible” + color. This method of producing colored transparencies + has been made obsolete by modern color printers. Of + course, nothing prevents you from using the \special + extensions of your DVI driver in SliTeX to produce + colored transparencies directly on a color printer.

+ +

SliTeX has always been a separate macro package, + distinct from and not 100\% compatible with LaTeX. With + the introduction of LaTeX2e, SliTeX is simply an + extension package to the LaTeX2e core format. Support for + a separate SliTeX format is being phased out.

+
+ +
+
+
+

FoilTeX

+
+
+ +

FoilTeX is an extension of LaTeX for + producing slides. The primary advantage of FoilTeX over + SliTeX is that it is completely compatible with + LaTeX.[51] Note, however, that + the defaults in many cases are not precisely the same as + LaTeX because of the radically different goal of + FoilTeX.

+ +

FoilTeX provides support for running headers and + footers, modified theorem environments for better + mathematics in slides, support for AMS and PostScript + fonts, and colors.

+ +

Color slides in FoilTeX are handled by DVI driver + \special commands (most commonly dvips \specials). + However, FoilTeX includes a number of new and extended + features for better handling of color. See the section + “the section called + “AMSTeX”” later in this chapter for + a detailed discussion of using color in TeX.

+
+ +
+
+
+

Seminar

+
+
+ +

The Seminar style is another alternative for + producing slides and notes. Like FoilTeX, the Seminar + style is designed to work on top of LaTeX. (Seminar also + works with AMSLaTeX.) \ The Seminar style is designed to + produce output for a PostScript printer. It isn't + strictly necessary to produce PostScript output, but if + you do not, many of Seminar's features will be + unavailable to you.

+ +

Seminar provides for a mixture of portrait and + landscape styles and can support color using either a + color-separation technique (similar to SliTeX's method) + or direct use of PostScript color. In either case, the + PSTricks macro package is required. (Consult + the section “the section called + “PSTricks”” in Chapter Chapter 6, + Chapter 6, + for more information.)

+ +

The Seminar style has support for a number of + interesting options (including two-up printing of + slides), automatic resizing by changing a magnification + parameter, instructions for converting your SliTeX + slides, and several extensive demonstration files. Also + included are explicit instructions for placing + Encapsulated PostScript drawings in your slides.

+
+
+ +
+
+
+

TeX in Color

+
+
+ +

With color printers and copiers becoming more common, the + application of color, especially in transparencies, is more + important than ever. Unfortunately, TeX knows nothing about color.

+ +

A little reflection about the design of TeX will make it + clear why this is the case. TeX produces device-independent + output. Even when color printers are as common as + “regular” printers, if that ever becomes the + case, it will always be true that color is an inherently + device-dependent attribute. It does not make sense for TeX + to understand color. However, this does not prevent TeX + from using color.

+ +

At the lowest level, all that is required to use color + in TeX is some way of telling the printer “start + printing in <color> here.” + This is easily accomplished with a \special command. In the + discussion that follows, the dvips \special commands + are used as concrete examples, but conceptually, any color + printer can be used in this way.

+ +
+
+
+

Setting Up Color

+
+
+ +

Color support at the DVI driver level is + provided by \special commands, but these are not + typically convenient to enter directly into your + document. Frequently, these commands are specified in + terms of percentages of red, green, and blue (RGB color) + + or cyan, magenta, yellow, and black (CMYK color).

+ +

Higher-level support is provided by a collection of + color control sequences. These sequences are loaded + either by inputting the file colordvi.tex + (in Plain TeX, for example) or using the + colordvi style file (in LaTeX).

+ +

dvips defines the colors in terms of + “crayon names.” If you need very precise + control of the colors, you can adjust the precise mix of + CMYK values in the file colordvi.tex after + comparing the output of your printer with a standard + scale (typically, the PANTONE scale). The following color + names are standard in dvips.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApricotEmeraldOliveGreenRubineRed
AquamarineForestGreenOrangeSalmon
BittersweetFuchsiaOrangeRedSeaGreen
BlackGoldenrodOrchidSepia
BlueGrayPeachSkyBlue
BlueGreenGreenPeriwinkleSpringGreen
BlueVioletGreenYellowPineGreenTan
BrickRedJungleGreenPlumTealBlue
BrownLavenderProcessBlueThistle
BurntOrangeLimeGreenPurpleTurquoise
CadetBlueMagentaRawSiennaViolet
CarnationPinkMahoganyRedVioletRed
CeruleanMaroonRedOrangeWhite
CornflowerBlueMelonRedVioletWildStrawberry
CyanMidnightBlueRhodamineYellow
DandelionMulberryRoyalBlueYellowGreen
DarkOrchidNavyBlueRoyalPurpleYellowOrange
+
+ +
+
+
+

Using Color

+
+
+ +

After dvips has loaded colordvi, + typesetting text in color is simply a matter of using the + appropriate color control sequence. For example, to + typeset something in red, use the \Red control sequence + in your document, like this:

+
+\Red{something in red}
+
+ +

Alternatively, you can change the default text color + with the \text\texttt{color} control + sequences. To make default color for all text blue, + enter:

+
+\textBlue
+
+ +

To change the background color, use the \background + macro. For example, to make the current and all future + pages yellow, enter:

+
+\background{Yellow}
+
+ +

You can enter a precise color by specifying it in + terms of its CMYK components. The \Color and \textColor + macros exist for this purpose. To typeset some text in a + color that is 25\% cyan, 35\% magenta, 40\% yellow, and + 10\% black,[52] enter:

+
+\Color{.25 .35 .4 .1}{some text}
+
+
+ +
+
+
+

Now I've Got Color, but I Need + Black and White!

+
+
+ +

If you have reason to print a colored TeX document on + a black and white printer, you don't have to tear out all + of the color commands. dvips includes a + blackdvi file (analogous to + colordvi---an input file or style file + depending on your macro package), which translates all + color commands into black and white.

+ +

Alternatively, “good” implementations of + PostScript in a black and white printer should translate + all colors into shades of grey. This can be an + inexpensive way to preview a color document. Most screen + previewers simply ignore color commands so they print in + black and white even if the document is colored.

+
+ +
+
+
+

Color Under LaTeX2e

+
+
+ +

At the time of this writing, the LaTeX2e + team has not officially adopted a standard for using + color. However, it is likely to follow a slightly + different model than the one described above. The final + design should provide color selection commands that are + device-independent at the DVI driver level (in other + words, the color commands will not insert device-specific + commands, like snippets of PostScript, into the + DVI files).

+
+ +
+
+
+

Color Is Subtle

+
+
+ +

Color commands implemented as \special commands may + introduce occasional problems. For example, if TeX + introduces a page break in a paragraph that you have + typeset in yellow (\Yellow{This is a long + paragraph...}), the resulting output may print the + page footer (and even the header) in yellow, although + that was not intended.

+ +

Circumventing these problems may require careful use + of color commands in front of text that you want to + appear black. For example, in Plain TeX the difficulty + described above can be avoided by specifying that the + page number should be printed this way:

+
+\footline{\Black{\hss\tenrm\folio\hss}}
+
+ +

This definition guarantees that the page number will + be set in black, and because it is a local color change, + colored text can flow across the page around it.

+ +

You may want to make sure that other typographic + elements are printed in the current global color (which + may vary). dvips provides a local color macro + called \globalColor for that purpose. Every time the text + color is changed globally (with a \text\texttt{Color} command), + \globalColor is redefined to print text in that + color.

+
+ +
+
+
+

Further Reading

+
+
+ +

Read the documentation for your DVI driver carefully + with respect to color. Because it is device-dependent, + there is a lot of room for interpretation, and it may not + always be obvious why some things appear the way they do. + And DVI drivers are free to implement color in any way + they choose.

+
+
+ +
+
+
+ +
+

[39] At the time of this + writing, it's actually still in test-release, but it may + be available as a standard release by the time you read + this.

+
+ +
+

[40] On Macintosh systems and + other environments that don't have directories, format + files are typically stored in their own folders (or other + metaphorically appropriate place ;-).

+
+ +
+

[41] The distinction between + big and small TeX is described in the section called + “the section called “What + Do You Run?”” in Chapter Chapter 3.

+
+ +
+

[42] {A small set of + exceptions is maintained because the algorithm isn't + perfect.}

+
+ +
+

[43] {Really observant readers + may have noticed that it's a version of Garamond ;-)}

+
+ +
+

[44] {Of course, that's not + strictly true. You can change the page layout of LaTeX + (and most other packages) to be almost anything, but it + does require learning a lot about the macro package. If + you are already familiar with Plain TeX (or some other + Plain TeX-derived package), you probably have a set of + macros that produce documents in the style you like. Why + reinvent the wheel?

+
+ +
+

[45] {Extended Plain TeX is + available in the macros/eplain directory in the + CTAN archives.}

+
+ +
+

[46] {LaTeX2e will process + documents that use \ documentstyle in LaTeX 2.09 + compatibility mode.}

+
+ +
+

[47] {Under emTeX, this + variable is called TEXINPUT. On the Macintosh, + file searching is frequently controlled by a + configuration file or dialog box.}

+
+ +
+

[48] {Strictly speaking, this + is only true for files that have the extension + .sty because the old version of LaTeX will not + attempt to use the other files.}

+
+ +
+

[49] {LaTeX is available in + the macros/latex/distribs/latex directory in the + CTAN archives.}

+
+ +
+

[50] {The $\$special + mechanism is a way of passing arbitrary information + through TeX to the DVI driver that will ultimately print + the document.}

+
+ +
+

[51] {With the caveat that it + still uses the Old Font Selection Scheme.}

+
+ +
+

[52] {I made these numbers up. + I take no responsibility for the artistic merits (or lack + thereof) of the resulting color.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch05.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch05.html new file mode 100644 index 00000000000..ac0558358d6 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch05.html @@ -0,0 +1,3711 @@ + + + + + + + + + Chapter 5. Fonts + + + + + + + + + + + +
+
+
+

Chapter 5. Fonts

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

All of the common TeX macro packages use the Computer + Modern fonts by default. In fact, the Computer + Modern fonts are so frequently used in TeX documents that + some people believe they are the TeX fonts and that no + other options are available.

+ +

This is not the case. In fact, using different fonts in + TeX is quite easy. However, many interrelated font issues can + be quite complicated, and it is possible to do things that + make your documents print incorrectly (or make them + unprintable).

+ +

This chapter explores all of the issues related to fonts + and how these issues are resolved by a combination of font + files, TeX macros, DVI drivers, and careful planning. At a + high level, it works like this:

+ +
+
    +
  1. +

    TeX macros select a font (by assigning + \font\fontid=fonttfm). The macros may be very simple or + quite complex (as is the case in LaTeX's New Font + Selection Scheme).

    +
  2. + +
  3. +

    TeX loads the metric information from + fonttfm.tfm. Many implementations of TeX look + for this file in the directories on the + TEXFONTS path. TeX cannot process your + document if it cannot find the TFM file.[53]

    +
  4. + +
  5. +

    TeX writes a DVI file. The + DVI file contains the name of each font (the + name of the TFM file) and the magnification + used (magnification is discussed in the section + “the section called + “What TeX Needs To Know”” later + in this chapter).

    +
  6. + +
  7. +

    The DVI driver attempts to locate font files for + each font used at each magnification. Depending on the + DVI driver, fonts can come from many places. Many + drivers consult a list of built-in fonts to see if the + desired font resides in the printer. Some also consult + a list of font substitutions. (This can be used to + substitute existing fonts for fonts that you do not + have, like Computer Modern Roman in place of Times + Roman if you don't have Times Roman.)

    + +

    Assuming that the font is not built-in + or replaced by substitution of a built-in font, the DVI + driver looks for a font file. Most modern DVI drivers + look for PK fonts, although some also look for + GF and PXL fonts + as well.

    + +

    The exact location of these files varies. Some + implementations look in the directories on the + TEXFONTS path, others look in the + TEXPKS or PKFONTS paths.

    + +

    A typical font directory on a unix system is + /usr/local/lib/tex/fonts/pk. The files in this + directory typically have names of the form + tfmname.999pk; where tfmname is the name of + the font and 999 + is the resolution.

    + +

    On file systems which have short filenames (for + example, MS-DOS) a typical font directory is \bs + tex\bs fonts\bs 999dpi (or \bs tex\bs fonts\bs + dpi999).[54] The files are then + simply tfmname.pk.

    + +

    Some DVI drivers employ automatic font generation to + attempt to create the font if it cannot be found.

    +
  8. + +
  9. +

    The DVI driver produces output suitable for a + particular device. This may include one or more forms + of downloaded fonts as well as requests for built-in + fonts that are assumed to exist.

    +
  10. +
+
+ +
+

Note

+ +

TeX output isn't printable directly. TeX typesets a + document in a device-independent fashion; it's the DVI + driver that actually prints the document. This + is important because many of the font issues are really DVI + driver issues more than TeX issues, and because the + distinction between TeXing a document and printing a + document is another layer of complexity that can be a + source of difficulty.,

+
+ +
+
+
+

What + TeX Needs To Know

+
+
+ +

TeX needs remarkably little information about a font. + Recall from Chapter Chapter 1, + Chapter 1, + that TeX typesets each page using “boxes and + glue.” In order to perform this + function, TeX needs to know only the size of each character + (its width, height, and depth). In practice, TeX + fonts contain a little bit more information than simply the + size of each character. Generally, they contain ligature + and kerning information as well.

+ +

Ligatures are + a typographic convention for replacing some letter + combinations with single symbols. In English, this is done + solely to improve the appearance of the letter + combinations. Figure  + Figure 5.1 shows a common ligature in English, + “fi.” Other common ligatures in English are + “ff”, “fl”, and the combinations + “ffi” and “ffl.” Other languages + have different ligatures.

+ +
+ + +

+ Figure 5.1. “fi” as two + characters and as a ligature

+ +
+ +
+
+ +

Kerning is + the process of adding or removing small amounts of space + between characters to improve the appearance of particular + letter combinations. Although every character has a natural + width, some combinations of characters give the illusion of + too much or too little space. Figure Figure 5.2 + shows a common example in the word “We.”

+ +
+ + +

+ Figure 5.2. “We” unkerned and + kerned

+ +
+ +
+
+ +

This is all the information that TeX needs, and it is + all that is contained in the TFM files that TeX + uses.[55]

+ +
+
+
+

Selecting a Font in TeX

+
+
+ +

TeX's macro language includes a \font primitive for + loading a font. This primitive operation + associates a control sequence with the metrics + in a particular TFM file. For example, the + following line associates the control sequence \tinyfont + with the metrics in cmr5.tfm (the Computer + Modern Roman 5pt font):

+
+\font\tinyfont=cmr5
+
+ +
+

Note

+ +

Remember, only letters can appear in a TeX control + sequence. You cannot say \font\cmr5=cmr5 because \cmr5 + is not a valid control sequence.

+
+ +

The control sequence defined with \font can + subsequently be used to change the current font. After + the above command, \tinyfont in your document selects the + Computer Modern Roman 5pt font as the current font.

+ +

In practice, using the primitive operations to select + fonts has a number of disadvantages. Later in this + chapter, the worst of these disadvantages is described + and a better alternative is offered. For simplicity, the + primitive operations are used in most of the examples in + this chapter.

+
+ +
+
+
+

Which Character Is Which?

+
+
+ +

How does TeX know which character to use when it + reads a symbol from an input file? The answer is simple: + TeX considers each font to be an array of characters. It + uses the numeric ASCII code of each character to determine + what element in the array to use.[56] This + is a reasonable and efficient scheme as long as the ASCII + values of the characters in your input file are the same + as the metric information that TeX is using.

+ +

The section called “the section called + “Declaring a family”” in this + chapter describes how the ordering of characters in a + font is determined. It also discusses some of the + problems that can arise when TeX and your printer have + conflicting information about the arrangement of + characters in the font. The “the section called “Virtual + Fonts”” section describes the TeX + mechanism for constructing fonts with different + arrangements of characters.

+
+
+ +
+
+
+

The Issue of Size

+
+
+ +

In the purest sense, selecting a font determines only + what shape each character will have; it does not + determine the size of the font. Unfortunately in + practice, the issue of shape and size cannot be separated. + The same shapes appear to be different at + different sizes. Optical + scaling uses different designs to make + letters at different sizes appear to have the same shape. + Conversly, linear scaling produces characters + with exactly the same shape at different sizes, although + they appear slightly different.

+ +

Because the size of an object affects the way that the + human eye and the brain perceive its shape, a simple linear + scaling of each character does not produce the most + aesthetically pleasing results. To overcome this problem, + TeX uses two different quantities to express the notion of + size: design size and magnification.

+ +

Design size + addresses the issue of perception: a font looks most like + the way it was designed to appear when printed at or close + to its design size. Furthermore, two fonts with different + design sizes (say 8pt and 12pt) that are the same typeface + should appear + identical when printed at 8pt and 12pt, respectively, even + though the actual shapes may be slightly different. The + design size of a font is intrinsic to the font itself and + cannot be changed or influenced by TeX. It is important + because it has a direct impact on the aesthetics of the + typeset page.

+ +

Magnification + addresses the notion of linear scaling. Changing + magnifications changes the size of each character without + altering its actual shape. Although, as noted above, + changing its size may change its apparent shape. In + general, you should print fonts as close to their design + size as possible---in other words, with a magnifcation as + close to 1.0 as possible. Figure  + Figure 5.3 demonstrates how different characters + may look when printed at very large magnifications.

+ +
+ + +

Figure 5.3. The Computer + Modern Roman letter “R” at 150pt: (a) from a + 5pt design; (b) from a 17pt design

+ +
+ +
+
+ +
+
+
+

Expressing Design Size in + TeX

+
+
+ +

The design size of a font is an integral part of + the TFM file (because it is intrinsic to the + font that the TFM file describes). In + order to select a different design size, you must select + a different TFM file. For example, the Computer + Modern Roman font is usually distributed at eight design + sizes: 5, 6, 7, 8, 9, 10, 12, and 17 points. Metrics for + these sizes are stored in the TFM files + cmr5.tfm, cmr6.tfm, cmr7.tfm, + $…$, and cmr17.tfm.

+ +

Every font that you select has a specific design size, + even though you may elect to use the font at another + size.

+
+ +
+
+
+

Expressing Magnification in + TeX

+
+
+ +

Magnification can be expressed either implicitly + or explicitly in TeX. Implicitly, magnification can be + expressed by selecting a particular font at a + particular size. For example, the following line defines + the control sequence \big to be the Computer Modern Roman + 10pt font at a size of 12pt (an implicit + magnification of 120\%):

+
+\font\big=cmr10 at 12pt
+
+ +

Explicit magnification is selected by requesting a + font scaled to a particular extent. For example, + the following line defines the control sequence \bigger + to be the Computer Modern Roman 10pt font at a + magnification of 144\% (in other words, at 14.4pt):

+
+\font\bigger=cmr10 scaled 1440
+
+ +

As you can see, TeX expects the scaled + magnification to be ten times the percentage of + magnification. The magnification that you request must be + an integer (you can't say scaled 1440.4). + Multiplying the magnification by 10 allows TeX to accept + fractional percentages like 104.5\%.

+
+ +
+
+
+

Standard Magnifications

+
+
+ +

TeX provides seven standard magnifications. There are + several good reasons to use these magnifications whenever + possible. The most important is that most TeX systems can + easily print fonts at these sizes. As described later in + the section “the section called “Printing + Fonts”,” TeX's ability to select any font + at any magnification does not guarantee that it can be + printed at that size. By using standard sizes, you + increase the likelihood that your document will be + printable on your system and on other TeX systems (if + portability is an issue). Using standard sizes will also + give consistency to your documents. If you write many + documents separately that may eventually be collected + together (as a collection of short stories or a series of + technical reports, for example), the internal consistency + of sizes will make them appear more uniform. Finally, the + standard sizes have aesthetic characteristics as well. + Each size is 1.2 times the preceding size. The geometric + relationship between the sizes is designed to make them + appear pleasing when mixed together.

+ +

The standard sizes can be selected with the \magstep + control sequence. The standard sizes (or steps) are + called magsteps in + TeX jargon. The natural size of a font is its \magstep0 + size. The \magstep1 size is 20\% larger. And \magstep2 is + 20\% larger than that (44\% larger than the original + design), etc. To select the Computer Modern Roman 10pt + font at its next largest standard size, use:

+
+\font\larger=cmr10 scaled\magstep1
+
+ +

For those occasions when you want a font that is only + a little bit larger, TeX includes the control sequence + \magstephalf which is halfway between \magstep0 and + \magstep1.

+ +

Most TeX formats that are based upon Plain TeX define + seven magsteps: \magstep0, \magstephalf, and \magstep1 + through \magstep5.

+ +

By using different design sizes and different standard + magnifications, you gain access to a very wide range of + sizes. For example, given the seven standard design sizes + and seven standard magsteps, it is possible to print + Computer Modern Roman at any of the following sizes (all + sizes are in points):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
57.679.610.9513.1516.5919.9129.38
5.4889.8611.5213.821720.429.86
68.4101214.417.2820.7435.25
6.578.6410.0812.114.5217.4222.3942.3
78.7610.3712.4414.9318.6224.487.2
910.812.9615.5518.6624.88  
+
+ +
+
+
+

Where Do TFM Files Come + From?

+
+
+ +

In order to use any font in TeX, you + must have a TFM file for it. How you can acquire + TFM files for the fonts you use depends on + the kinds of fonts and where they were developed. The + following list offers suggestions for the most commonly + used fonts:

+ +
+
+
PostScript fonts
+ +
+

Every vendor that supplies PostScript fonts (either as + font files or built-in to a printer or cartridge) + should also supply Adobe Font Metric (AFM) + files. AFM files provide complete metric + information about the fonts.[57] The + AFM files can be converted into + TFM files with the afm2tfm utility + distributed with dvips.

+
+ +
LaserJet built-in + fonts
+ +
+

The complete metric information for LaserJet + built-in fonts is supplied by + Hewlett-Packard in “Tagged Font Metric” + files. These are available directly from + Hewlett-Packard (unfortunately, they are not + distributed with the printers). The Tagged Font + Metrics can be converted into TeX TFM + files with hptfm2pl, a free utility written + by, well, me, actually.

+ +

A collection of TFM files for the + standard built-in fonts on the LaserJet III and IV + printers is available in the CTAN archives in + /tex-archive/fonts/ljmetrics.

+
+ +
LaserJet softfonts
+ +
+

Bitmapped LaserJet softfonts can be + converted into TeX fonts with the SFPtoPK utility. The resulting font + includes both TeX PK and TFM + files.

+ +

Scalable LaserJet softfonts should be + distributed with Hewlett-Packard Tagged Font Metric + files. These can be converted into TeX TFM + files with the free utility hptfm2pl.

+
+ +
TeX fonts + (MetaFont)
+ +
+

The MetaFont program renders TeX + MF files and + produces a TFM file. Usually it produces a + GF file as well, but the special mode + tfmonly can + be used to create just the TFM + file.[58] MetaFont modes + and other aspects of font creation with MetaFont + are described in Chapter Chapter 11, + Chapter 11.

+
+ +
TrueType fonts
+ +
+

Incomplete metrics are frequently distributed in the form of + Windows' PFM files. Some + commercial previewers for Windows can extract + metric information and build a TFM file. + However, at present, I do not know of any free + utilities which can build TeX metrics from TrueType + fonts.

+
+
+
+
+
+ +
+
+
+

The New Font Selection Scheme

+
+
+ +

The New Font Selection Scheme is a method for + selecting fonts in Plain TeX and LaTeX. It was introduced + briefly in the section “the section + called “Installation: Making Format + Files”” of Chapter Chapter 4, + Chapter 4. + This section describes release two of the New Font + Selection Scheme (known as the NFSS2) as it exists in the + LaTeX2e format. Because version one is now obsolete, it + is not described.

+ +

The NFSS defines a method of font selection used in + place of TeX's primitive \font command. The problem with + font selection using \font is that it ties a control + sequence to a particular font at a particular size, which + has unpleasant consequences when more than one font is used + in a document. Consider the definition \font\it=cmti10. + This associates the control sequence \it with the italic + Computer Modern font (at 10pt). After this definition, a + sentence like:

+
+This requires emphasis.
+
+ +

has the desired result, if Computer Modern Roman at 10pt + is the font in use when \it is encountered:

+
+\fontfamily{cmr}\selectfont
+This requires emphasis.
+
+ +

If you are using some other font, perhaps in a chapter + heading, you get:

+
+\fontfamily{cmr}\fontseries{bx}\fontsize{14}{16pt}\selectfont
+This requires {\fontfamily{cmr}\fontseries{m}\fontsize{10}{12pt}\selectfont
+\it emphasis}.
+
+ +

This is almost certainly not what you wanted. The NFSS + overcomes this difficulty by describing each font with five + independent parameters: encoding, family, series, shape, + and size.

+ +
+
+
Font encoding
+ +
+

The encoding parameter identifies the + encoding vector of the font. Encoding vectors play an + important role in the selection of characters in a + font. Encoding vectors are described more thoroughly + later in this chapter. TeX Text, TeX Math Italic, and + Adobe Standard are all encoding vectors.

+
+ +
Font family
+ +
+

The family parameter describes the typeface of the + font. Computer Modern, Times Roman, + Helvetica, Galliard, and Gill Sans are all families.

+
+ +
Font series
+ +
+

Font series describes the joint notions of + weight and width. Weight is a measure + of how darkly each character is printed, and width is a measure of how wide or + narrow the font is. Standard abbreviations for weight + and width are shown in Table  + Table 5.1. Normal, bold-compressed, + extrabold-ultraexpanded, and light-medium are all + examples of font series.

+ +
+ + +

Table 5.1. Standard + Weight and Width Designations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\rm\bf Abbr\bf Weight\rm\bf Abbr\bf Width 
ulUltra-lightucUltra-condensed 
elExtra-lightecExtra-condensed 
lLightcCondensed 
slSemi-lightscSemi-condensed 
mMedium (normal)mMedium 
sbSemi-boldsxSemi-expanded 
bBoldxExpanded 
ebExtra-boldexExtra-expanded 
ubUltra-bolduxUltra-expanded 
+
+ +

The general rule for combining weight and width to + form a series abbreviation is to use the abbreviation + for weight followed by the abbreviation for width, + unless one is “medium,” in which case it + is left out. Table  + Table 5.2 shows how several weight/width + combinations are used to form the series. The series + designation for a light-medium font demonstrates that + a single medium attribute is omitted. If both the + width and weight are medium, use a single + “m” for the series.

+ +
+ + +

Table 5.2. Weight and + Width Are Combined to Form Series

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Weight and Width\bf Series
Bold extendedbx
Light mediuml
Medium extra-expandedex
Light extra-expandedlex
Normal (medium, medium)m
+
+
+ +
Font shape
+ +
+

The shape, in conjunction with series, + defines the appearance of the font. Shape generally + refers to the style of the face. Bold, italic, + slanted, and outline are all examples of font + shape.

+ +

The standard designations of font shape are shown + in Table  + Table 5.3.

+ +
+ + +

Table 5.3. Standard + Abbreviations of Font Shape

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\rm\bf Abbr.\bf Shape
nNormal
itItalic
slSlanted
scSmall caps
uUpright italics
+
+
+ +
Font size
+ +
+

Font size defines both the size of the + characters and the spacing between lines of text in + that size. The distinction between design size and + magnification, discussed at length in the first part + of this chapter, is hidden within the NFSS; you need + only select the size you want.[59]

+ +

The spacing between lines of text is described as + the (vertical) distance between the baselines of two + consecutive lines of type. It is usually about 20\% + larger than the size of the font. For example, a 10pt + font is usually printed with 12pts between the + baselines of consecutive lines. The inter-line + distance that looks best depends on the font and + other design elements of the document. There really + isn't a good rule for the value that looks best, + which is why you have to specify it.

+
+
+
+ +
+
+
+

Selecting Fonts with + the New Font Selection Scheme

+
+
+ +

One of the most visible differences in the NFSS2 is + that you are encouraged to change the way you select + fonts. The NFSS2 defines nine control sequences + for user-level font selection. They are shown in + Table  + Table 5.4.

+ +
+ + +

Table 5.4. User-level + Font Selection Control Sequences in NFSS2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Control Sequence\bf Resulting Change
\textrm\verb|{}|Switch to roman family
\textsf\verb|{}|Switch to sans-serif family
\texttt\verb|{}|Switch to typewriter family
\textbf\verb|{}|Switch to bold face + weight/width
\textmedium\verb|{}|Switch to medium + weight/width
\textit\verb|{}|Switch to italic shape
\textsl\verb|{}|Switch to slanted shape
\textsc\verb|{}|Switch to small-caps shape
\emph\verb|{}|Switch to emphasized text
+
+ +

Instead of using \it, for example, to change to an + italic font within a group, you should use the \textit + command with the text as an argument. For example, + instead of using:

+
+This is some italic text.
+
+ +

you should use:

+
+This is some italic text.
+
+ +

The advantage of the new scheme is that these macros + are much more intelligent than the old ones. Notice that + I did not specify italic correction () in the second + case. This is because the \textit macro is able to + determine if the correction is necessary, and if so, + inserts it automatically.\ff{If you wish to suppress + italic correction, use \cs{nocorr} at the end (or + beginning) of the text.} The macros can also be + nested.

+ +

The NFSS2 allows you to use the old font selection + macros, so existing documents will not be affected. If + you want to set several paragraphs in a different font, + you should continue to use the old selection macros + because you cannot pass more than one paragraph of text + to a macro.\ff[2]{It is possible to write macros that + accept multiple paragraphs of text, but the NFSS2 font + selection macros do not do so.}

+ +
+
+
+

Low-level interface to + NFSS

+
+
+ +

The user-level font selection commands are + implemented in terms of six low-level commands. At this + level, you must specify the encoding, family, series, + shape, and size of the font in order to select it. + There are six control sequences for selecting a font: + one each for specifying the font parameters and one for + actually switching to the new font. This strategy + allows the parameters to be independent; any parameters + that you do not explicitly change remain the same as + the current font.

+ +

These six control sequences are:

+ +
+
+
\fontencoding{enc}
+ +
+

Selects the encoding scheme + \textitenc. The + encoding schemes officially supported by the + NFSS2 are shown in Table  + Table 5.5.

+ +
+ + +

+ Table 5.5. Encoding Schemes + Supported by NFSS2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Encoding 
\bf Scheme\bf Encoding Name
T1TeX text Cork + encoding
OT1Old TeX text encoding + (the CMR encoding)
OT2University of Washington + Cyrillic encoding
OT3University of Washington + IPA encoding
OMLTeX math (italic) + letters
OMSTeX math symbols
OMXTeX math extended
UUnknown encoding
+
+
+ +
\fontfamily{fam}
+ +
+

Selects the family \textitfam.

+
+ +
\fontseries{ser}
+ +
+

Selects the series \textitser.

+
+ +
\fontshape{shp}
+ +
+

Selects the shape \textitshp.

+
+ +
\fontsize{ptsize}{ + bskip}
+ +
+

Selects the font size \textitptsize + with a distance of \textitbskip between + lines. Note that \textitptsize is a + simple number, whereas \textitbskip is a + TeX distance and you must specify units after the + number. Under the NFSS2, \textitptsize + specifies the actual size of + the font,\ff{Under the NFSS1, the + \textit{\texttt{ptsize}} was simply a label; the + actual font loaded was the nearest magstep.} but + the NFSS2 will attempt to find a closest match if + there is no exact match for the requested size. A + warning message is issued if the size does not + exist and a closest match has to be selected. You + can control the sensitivity of the warning with + the \fontsubfuzz parameter. It is initially set + to 0.4pt, meaning that any font within 0.4pt of + the requested size will be used without issuing a + warning.

+
+ +
\selectfont
+ +
+

Switches to the font described by the current + values of encoding, family, series, shape, and + size.

+
+
+
+ +

From this description, can you figure out how the + control sequence could be defined under + the NFSS? See this footnote[60] + for the answer.

+
+
+ +
+
+
+

Defining Fonts with NFSS2

+
+
+ +

The standard Computer Modern fonts and most PostScript + fonts can be selected by using the appropriate style + files or inputting the appropriate macros. However, if + you have nonstandard fonts or fonts for some other + device, you can easily add them to the NFSS.

+ +

The internal interface to the NFSS has been entirely + redesigned. The new interface is much cleaner than the + interface to the NFSS1, but similar in design.

+ +

If you are not very familiar with TeX, what follows + may be a bit confusing; treat this example as a sort of + “cookbook recipe” and substitute the font you + wish to define for the logo font (the + logo font is the typeface used for the MetaFont + logo).

+ +
+
+
+

Declaring a + family

+
+
+ +

In order to add a new typeface, you must declare a + new font family with the control sequence + \DeclareFontFamily. If you are only adding new sizes or + shapes to an existing family, do not redeclare the + family.

+ +

The parameters to \DeclareFontFamily are the + encoding, name, and loading options for the family. + Loading options are any commands that should be + executed every time this family is selected. For most + fonts, there are no loading options.[61]

+ +

The following declaration creates the logo family with the + old TeX encoding and no loading options:

+
+\DeclareFontFamily{OT1}{logo}{}
+
+
+ +
+
+
+

Declaring shapes

+
+
+ +

After a family has been created, you must specify + what font shapes are available with + \DeclareFontShape. To make the font usable, you must + declare at least one font shape for each family.

+ +

The general form of a call to \DeclareFontShape + is:

+
+\DeclareFontShape{enc}
+   {fam}
+   {series}
+   {shape}
+   {sizes}
+   {loading options}
+
+ +

The family fam (with the + appropriate encoding enc) must + already have been created with \DeclareFontFamily. The + series and + shape parameters identify the + name of the series and shape. Table  + Table 5.2 and Table  + Table 5.3 list some common series and shapes. + The \textitsizes parameter is a list of font-shape + declarations, described below, and the + \textitloading options, if specified, override + the loading options for the font family.

+ +

Each font-shape declaration indicates how the + request for a font should be handled. The complete + syntax for font-shape declarations is described in + Interface Description of + NFSS2 [nfss2interface]. + Here we look at three simple cases: substituting + another font for the one requested, generating the name + of the TFM file for the requested font, and + identifying a particular TFM file for a size + or range of sizes. Each of these techniques is used in + the declaration of the medium, normal logo font in + Example  + Example 5.1. There should be no extra spaces + in the font size parameter. If you spread it over + multiple lines in your input file, make sure that a + comment character (\%) appears at the end of each + line.

+ +
+ + +

Example 5.1. Font-shape + Declaration with NFSS2

+
+\DeclareFontShape{OT1}{logo}{m}{n}{
+  <-8>sub * cmr/m/n
+  <8><9><10>gen * logo
+  <10.95>logo10 at 10.95pt
+  <12->logo10}{}
+
+
+ +

Each font-shape declaration begins with one or more + size specifications in angle brackets. + This indicates either a specific size + (<10> for a 10pt font) or a range of + sizes (<8-9> for any size larger than or + equal to 8pt and less than 9pt, <-8> for + all sizes less than 8pt, or <10-> for + all sizes larger than or equal to 10pt).

+ +

In Example  + Example 5.1, the first font-shape declaration + indicates that font substitution should be performed + for any request at a size smaller than 8pt. The string + cmr/m/n indicates that medium, normal, + Computer Modern Roman should be substituted in its + place. In general, the substitution specifies the + family/shape/ + series to be substituted.

+ +

The second declaration indicates that the name of + the external font for 8pt, 9pt and 10pt fonts should be + generated from the string logo and the size + (at 8pt, logo8 will be used; at 9pt, + logo9; and at 10pt, logo10).

+ +

The third declaration demonstrates that the font + specified ({logo10 at 10.95pt}) can be any + valid TeX font selection command. After special + declarations have been processed (substitution, + generation, etc.), the remaining declaration text is + passed to the TeX \font primitive.

+ +

The last declaration specifies that any size larger than + 12pt is valid. Any size larger than 12pt will use the + font logo10, scaled appropriately. Automatic + font generation, if it is being used, can take care of + actually generating the font. Example  + Example 5.1 was constructed to demonstrate + several features of the font-shape declaration syntax. + A simpler, more likely declaration for the medium + normal logo font is shown in Example  + Example 5.2.

+ +
+ + +

Example 5.2. Font-shape + declaration with NFSS2 (simplified)

+
+\DeclareFontShape{OT1}{logo}{m}{n}{
+  <-8>sub * cmr/m/n
+  <8-9>logo8
+  <9-10>logo9
+  <10->logo10}{}
+
+
+ +

The 8pt design could have been scaled down for sizes + less than 8pt, but you should try to avoid large + deviations from the design size. Because the design for + my book does not require the logo font at sizes less + than 8pt, substitution was the best choice.[62]

+
+
+ +
+
+
+

Storing Font Definitions

+
+
+ +

The NFSS will load your font definitions automatically + if you store them in FD files in + a directory where TeX looks for input files. Whenever an + unknown encoding/family is requested, NFSS attempts to + load the file encfamily.fd. For example, if the + font declarations described in the preceding sections are + stored in a file called OT1logo.fd, nothing + special has do be done to use the logo family. The first + time the logo family is selected, the definitions will be + read from OT1logo.fd.

+ +

If you are using LaTeX2e (or LaTeX with the NFSS), + there must already be a large number of FD files + on your system. For more information about building the + LaTeX2e format (which includes the NFSS2), consult the + section “the section called + “Building the LaTeX2e format”” in + Chapter Chapter 4, + Chapter 4.

+
+ +
+
+
+

Changing the Defaults

+
+
+ +

Sometimes you want the fonts that you define to + replace the standard Computer Modern fonts. This is + easily accomplished. The NFSS defines control sequences + which identify the default fonts. These control sequences + are listed in Table Table 5.6.

+ +
+ + +

Table 5.6. Default + Fonts

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Control Sequence\bf Font
\rmdefaultThe default normal (roman) + font
\bfdefaultThe default boldface font
\sfdefaultThe default sans-serif font
\itdefaultThe default italic font
\scdefaultThe default caps and small-caps + font.
\defaultshapeThe default shape + (n)
\defaultseriesThe default series + (m)
+
+ +

If you have defined a new font, perhaps + garamond as I did for this book, you can make it + the default normal font by changing \rmdefault. In LaTeX, + the following command makes garamond the default + normal font:

+
+\renewcommand{\rmdefault}{garamond}
+
+ +

In Plain TeX, it's written like this:

+
+\def\rmdefault{garamond}
+
+
+ +
+
+
+

NFSS Pitfalls

+
+
+ +

Defining your own fonts with the NFSS is + straightforward, but it is not without its subtleties. + There are several things going on behind the scenes that + you must be aware of if you are going to define your own + fonts.

+ +

The first consideration is font substitution. When + NFSS cannot find a font, it tries to substitute a + different one. First, it tries to find the font you + requested in the default shape, then in the default + series, and finally, in the default family. You can + change the defaults used by NFSS2 with the + \DeclareFontSubstitution command:

+
+\DeclareFontSubstitution{encoding}{family}{series}{shape}
+
+ +

You must specify the defaults for each encoding you + use because the encoding is never substituted.

+ +

The next consideration is the use of mathematics, + which is typeset using an entirely different set of + fonts. Even if you don't use any math in your document, + the NFSS is prepared to function in math-mode at a + moment's notice. In order to be prepared, it has to know + what fonts to use. Ordinarily, mathematics is typeset + using fonts at the same size as the current text font. + This means that every time you change font sizes for + text, NFSS changes font sizes for mathematics as + well.

+ +

By default, the NFSS defines math fonts + only at the following sizes: 5, 6, 7, 8, 9, 10, 11, 12, + 14, 17, 20, and 25pt. If you define a new font at a + different size, 24pt for example, the first time you try + to use that font, you will get several warning messages + indicating that cmr/m/n/24 (Computer Modern + Roman), cmm/m/it/24 (Computer Modern Math + Italic), cmsy/m/n/24 (Computer Modern Math + Symbols), and lasy/m/n/24 (LaTeX Symbols, if + using LaTeX), are not available. This is very confusing + because it won't appear that you have selected 24pt + Computer Modern anywhere in your + document.

+ +

There are two ways to solve this problem:[63]

+ +
+
    +
  • +

    Redefine the required fonts at the sizes + requested. This involves copying the definition of + each of the fonts from NFSS FD files and adding new sizes.

    +
  • + +
  • +

    Tell NFSS to use existing math sizes for the new + text sizes that you define. This option is + reasonable only if you won't be using any math at + the new sizes (or the sizes are so close that the + mathematics doesn't appear disproportional). NFSS + includes a macro called \DeclareMathSizes for this + purpose. Insert it directly after the + \DeclareFontShape command that declares the new + font sizes. You must call \DeclareMathSizes once + for each new size. For example, to use the 25pt + math sizes with 24pt text, insert the following + control sequence after you define the 24pt + font:

    +
    +\DeclareMathSizes{25}{24}{20}{17}
    +
    + +

    The general form of a call to \DeclareMathSizes + is:

    +
    +\DeclareMathSizes{text-size}
    +   {math-size}
    +   {script-size}
    +   {script-script-size}
    +
    + +

    Where math-size, + script-size, + and script-script-size + are the normal (123), script ($x^{123}$), and + script-script ($x^{y^{123}}$) math sizes for the + specified text-size.

    +
  • +
+
+ +

LaTeX sometimes resets the current font to the + \rmdefault font. For example, it does this when a \ref is + going to be printed. This means that the font you define + as the \rmdefault font should be available in every size + that you use. This may require redefining the Computer + Modern Roman font, as described above, if you add a new + size but leave Computer Modern as the default font.

+
+
+ +
+
+
+

PostScript Fonts Under NFSS

+
+
+ +

PostScript fonts and other scalable font technologies + like TrueType differ from the way the + “standard” TeX fonts work. They do not separate + the notions of design size and magnification. Instead, + PostScript fonts can be rendered at any size from a single + design. In daily use, the PostScript fonts under NFSS are + indistinguishable from non-PostScript fonts. The NFSS + distribution includes style files for accessing the 35 + standard PostScript fonts.

+ +
+
+
+

Adjustments to Scale

+
+
+ +

Some combinations of PostScript + fonts, particularly PostScript fonts with Computer Modern + mathematics, look bad because there is a large + discrepancy between the apparent sizes of the fonts. For + example, as a consequence of design, 10pt Helvetica looks + bigger than 10pt Computer Modern Math Italic. In order to + correct this problem, you can specify a scaling factor + when declaring PostScript fonts.[64] The + scaling factor is specified in square brackets at the + beginning of the font-shape declaration in the + \DeclareFontShape command.

+ +

The easiest way to find an approximation of the + correct scaling factor is to look at the x-height of each + font.[65] The x-height is the + height of a lowercase “x” in the font. The + following macro will print the x-height of a font:

+
+\def\showxheight#1{
+  \font\fontfoo=#1 at 10pt
+  \message{The x-height of #1 at 10pt is \the\fontdimen5\fontfoo}}
+
+ +

The following TeX input will print the x-heights of + Helvetica and Computer Modern Roman (assuming that your + Helvetica font is called phvr):

+
+\input showxheight
+\showxheight{phvr}
+\showxheight{cmr10}
+\bye
+
+ +

On my system, the x-height of Helvetica is 5.23pt and + the x-height of Computer Modern Roman is 4.30554pt. The + following font declaration makes Helvetica have the same + apparent size as Computer Modern Roman:

+
+\DeclareFontShape{OT1}{phv}{m}{n}{
+  <-> [0.8232] phvr}{}
+
+ +

Compare scaled Helvetica to unscaled Helvetica:

+ +

FIXME: Unscaled Helvetica, Computer Modern Roman, + Scaled Helvetica

+ +

Unscaled Helvetica looks much larger than Computer + Modern, but the scaled Helvetica appears a little too + small. Experimentation is the only way to find the scale + that looks best.

+
+
+ +
+
+
+

When Things Go Wrong

+
+
+ +

A number of font-related problems can arise + which either prevent you from formatting and printing your + document or cause the output to differ from what you + anticipated. The following sections describe many common + problems and their solutions.

+ +
+
+
+

When TeX Complains

+
+
+ +

The first time an error can occur is when TeX is + processing your document. Some of these errors prevent + TeX from continuing while others are simply warnings.

+ +
+
+
! Font \myfont=xxxxx not + loadable: Metric (TFM) file not + found.
+ +
+

This error indicates that TeX tried to process a + \font control sequence which assigned the font + xxxxx to the control sequence \myfont, but + TeX could not find a TFM file for the font + xxxxx. All the characters from the missing + font will be blank in the resulting DVI + file.

+ +

You cannot process your document until this + error is corrected, which is a matter of fixing the + offending \font command if you are using the old + font selection scheme.

+ +

Under the NFSS2, this error occurs if you + specify an invalid font in the command + \DeclareFontShape. Examine the font that you were + attempting to select and make sure that it + exists.

+
+ +
Warning Font/shape `x/y/z' + undefined on input line + n
+ +
+

This is a warning message from the NFSS. It + indicates that you requested the font family + x, series y, and shape + z, but the requested font does not exist. + This message is followed by another indicating + which font NFSS chose to substitute in place of the + one you requested. NFSS substitutes the closest + possible font to the one you requested. It is + usually an acceptable replacement.

+ +

For example, if you are currently using Computer + Modern Bold Extended and you select Computer Modern + Typewriter, the NFSS will report that there is no + bold-extended-typewriter font and that normal + typewriter is being substituted in its place.

+
+ +
! Font x/y/z/999 not + found.
+ +
+

This is a fatal error from the NFSS. It + indicates that you selected font family x, + series y, shape z at a size of + 999pts and that no such font exists. This error + occurs when the size 999 is not defined in the + \DeclareFontShape command for x/y/z.

+
+ +
Missing character: There + is no X in font foo!
+ +
+

This is a warning message from TeX. Usually it + occurs only in the log file. This error occurs when + you attempt to access a character that does not + exist in the current font. This can happen if you + select the wrong font or if the selected font has a + different encoding vector than anticipated. See the + section “the section called + “Declaring a family”” in this + chapter for more information.

+
+
+
+
+ +
+
+
+

When the DVI Driver + Complains

+
+
+ +

Getting TeX to successfully produce a DVI + file is only half the battle. The next + hurdle is getting a DVI driver to print it. Here are some + of the things that can go wrong:

+ +
+
+
+

Can't find PK file

+
+
+ +

When a DVI driver complains that it cannot find the + appropriate PK file, there are several things + that could be wrong.

+ +
+
    +
  • +

    The font is built into the printer.

    + +

    If the DVI driver complains that it cannot + find the PK file for a built-in font, + you need to adjust the DVI driver's configuration + to indicate that the font is built-in. Exactly + how this is done depends on the DVI driver that + you are using. For example, if you are using + dvips, add an entry to the + psfonts.map file. If you + are using emTeX, add an entry to the font + substitution file specified in the configuration + file. Consult the references for your particular + DVI driver for more information about using + built-in fonts.

    +
  • + +
  • +

    The font does not exist on the printer you are + using.

    + +

    This is the same problem as the error above + except that it cannot be fixed. For example, I + have TFM files for many PostScript fonts + at home because it helps me format bits of + documentation that I bring home from work without + error. However, if I try to print one of these + documents without first changing the fonts, the + DVI driver complains that it cannot find several + fonts. There is no way that I can correct this + because the missing fonts are built-in fonts for + a printer that I do not have at home. In this + case, font substitution by the DVI driver may + allow you to preview (and even print) the + document, but it won't look very good unless the + font metrics of the substituted font are very + close to the metrics for the original.

    +
  • + +
  • +

    Uncommon size or font (no PK + file).

    + +

    The Computer Modern family contains a number + of fonts that are very rarely used. If you don't + keep PK files for these fonts around all + the time and attempt to use one of them (or + attempt to use a common font at a very unusual + size), the DVI driver will not be able to find + the necessary PK file. You have to build + the PK file first. Consult + Chapter  + Chapter 11 for more information about + building PK files with MetaFont. Also + consult the section called “the + section called “Automatic Font Generation + by DVI Drivers”” later in this + chapter.

    +
  • +
+
+
+ +
+
+
+

Accents don't work or the + wrong characters are printed

+
+
+ +

This problem is usually caused by a bad encoding + vector. See the section “the section called + “Declaring a family”” in this + chapter for more information.

+
+ +
+
+
+

Printer prints the right + characters but the wrong font

+
+
+ +

This is usually an indication that you are trying to + use a font that does not exist on the printer. + PostScript printers, for example, substitute Courier + for any font that does not exist.

+ +

Another possibility is that you have configured your + DVI driver incorrectly. I once told dvips to + download Galliard when I used Garamond. It took me + quite a while to find that error. Make sure that the + printer contains the fonts that you think it does and + make sure that you are mapping the TeX font names to + the correct printer fonts.

+
+
+
+ +
+
+
+

Encoding Vectors

+
+
+ +

An encoding vector describes the order and position of + characters within a font. The purpose of this section is to + help you understand the role that encoding vectors play in + the translation of text from your input file to printed + output.

+ +

Encoding vectors cause a lot of confusion. Whenever the + characters that you type in your input file are printed + incorrectly (“flight” in your input + file prints out as “ight”; + “\oe{}vres” prints out as + “\'uvres”; or “---” prints + out as “-{}-{}-” instead of “---”), + you've probably encountered some sort of encoding + problem.

+ +

The root of this problem is that the characters in your + input file are really just numbers between 0 and + 255.[66] The number 65 is + usually a capital A, but there is nothing intrinsic to the + value 65 to signify this. In order to display these byte + values, they have to be translated into symbols.

+ +

These problems arise because there are at least four + different translations occurring between what you type and + what appears on the printed (or previewed) page:

+ +
+
    +
  1. +

    You type some symbols on the keyboard, and they + are displayed by your editor. The configuration of + your system determines how these characters appear. + Sometimes they are from the ISO Latin-1 symbol set, + sometimes US ASCII, sometimes something else, and + sometimes it is user configurable. If you confine + yourself to pure ASCII, you're pretty safe, but + that's not convenient for languages other than + English. When you are typing documents in Spanish, + it's very convenient to be able to type + “\ n” directly in your document.

    +
  2. + +
  3. +

    TeX reads your input file and translates it into + an internal encoding (basically ASCII). (The reverse + translation is performed before TeX prints any output + to the terminal or the log file.) The translation + tables used in this step are generally determined + when the TeX program is compiled, but several modern + TeXs allow you to modify these tables at runtime.

    + +

    TeX assumes that fonts use TeX's internal + encoding. For example, on an IBM mainframe, which + uses the EBCDIC character set, TeX + translates a capital A (EBCDIC 193) into ASCII 65 and + assumes that position 65 of the metric information + for the current font contains the information + (including ligature and kerning information) for a + capital A.

    +
  4. + +
  5. +

    If you use control sequences to represent special + characters (\oe for “\oe”, for example), + the macro package you use is responsible for defining + those control sequences so they produce the correct + characters. If the macro package assumes that the + “\oe” character appears at position 247 + of the current font, the output will not be correct + in a font with a different encoding.

    +
  6. + +
  7. +

    The DVI driver reads TeX's DVI file and + assumes that the encoding vector of each font used in + the DVI file is the same as the encoding + vector of the actual fonts in the output device. For + PK fonts, this is probably true (since the + DVI driver sends the font to the printer), but for + fonts built into the printer, it is less likely to be + true.

    +
  8. +
+
+ +

You may think of a font as a collection of 1 to 256 + different symbols in a particular order. This is really a + font plus a particular encoding vector. It is more accurate + to think of a font as simply a collection of symbols (with + no particular number or ordering). An encoding vector + selects which symbols are used and in what order they + appear. Typically, an encoding vector can contain only 256 + different symbols. It is important to note that changing an + encoding vector of a font does not simply permute the order + of the characters in the font, it can change which symbols + are actually present as well.

+ +

Encoding vectors are either implicit or explicit. Most + fonts have an implicit encoding, but some (for example, + Adobe Type 1 fonts) contain an explicit, configurable + encoding. TeX fonts have an implicit encoding. TeX actually + uses several different encoding vectors (it uses more than + one because it has both text or body fonts and several + kinds of math and symbol fonts). The character set tables + in Appendix Appendix B, + Appendix B, + show the encoding of several different fonts.

+ +

\font\mathit=cmmi10 Most macro packages assume that the + TEX TEXT encoding is being used. For example, Plain TeX + defines the control sequence \AE as an abbreviation for + character number 29 in the current font. Even when control + sequences aren't involved, problems can arise if the output + font does not have the anticipated encoding. The byte-value + 34 in your input file is almost always the literal double + quote character (") and usually prints as a double + quote (which is probably what your editor displays and + probably what you expect). If the font encoding is + something different, the result will not be what you + expect. For example, if the current font has the TEX MATH + ITALIC encoding, the result is + “{\mathit\char34}”.

+
+ +
+
+
+

Virtual Fonts

+
+
+ +

Virtual fonts (stored in VF files[67]) are a + relatively new addition to the TeX family. When TeX was + originally defined in 1970, Knuth chose a character + encoding that suited his purposes, and very little effort + was made to parameterize the encoding. (In fact, any TeX + macro writer can use any encoding she wants, + but no general mechanism for identifying the encoding + exists.[68]) Virtual fonts combat + this problem by allowing the creator to define a virtual + font in terms of (multiple) characters from one or more + fonts.

+ +

Virtual fonts are used most commonly to change the + encoding vector of a font. This provides a convenient way + of mapping different fonts into the required encoding so + that they are easy to use in TeX. A virtual font consists + of a VF file and a TFM file. TeX uses the + TFM file as it would any other.

+ +

Figure Figure 5.4 + shows how a virtual font is used by the TeX system. In this + case, a virtual font ctmr has been created + combining characters from the fonts trr0n, + trr6m, trr6j, and trr10j.

+ +
+ + +

Figure 5.4. How TeX uses a + virtual font

+ +
+ +
+
+ +

The document uses the font ctmr. TeX uses the + font metric information in ctmr.tfm to compose the + DVI file. The DVI driver, however, discovers a + VF file named ctmr, so it uses the + instructions in the virtual font to select characters from + the four built-in fonts. This is a practical example. It + shows how the HP LaserJet built-in fonts may be accessed + with the standard TeX text encoding.

+ +

In practice, virtual fonts suffer from one limitation: A + virtual font can only permute the encoding vector; it + cannot access characters that do not appear in the encoding + vector of the “real” font. For example, an + Adobe Type 1 font might contain all of the characters + that appear in the TeX text encoding, but many of them do + not appear in the standard Adobe encoding vector. A virtual + font alone cannot remap the characters into the TeX text + encoding. The encoding vector of the font must also be + changed. Several PostScript DVI drivers have this + ability.

+ +

Virtual fonts are binary files and are very difficult to + edit. To make it possible to construct virtual fonts by + hand, TeX includes standard utilities (VFtoVP and + VPtoVF) for converting the binary + VF format into a human-readable VPL + format. The VPL files are text files that can be + edited with a text editor.

+ +

A complete description of how to create virtual fonts is + beyond the scope of this book. If you are interested in + experimenting with virtual fonts, I strongly recommend that + you examine the fontinst package.[69] fontinst + allows you to construct VPL files with TeX + documents. This isn't as strange as it first sounds. + Virtual font files have to include the metric information + from TFM files for each font that they include. + Because TeX can easily read this information, and the + output is a plain text document anyway, TeX is a very + capable, if somewhat slow, tool.

+
+ +
+
+
+

Automatic + Font Generation by DVI Drivers

+
+
+ +

Recent releases of many popular DVI drivers (\dvips, + xdvi, \SeeTeX, and emTeX's + DVI drivers, to name a few) include the ability to generate + missing fonts automatically. Automatic font + generation overcomes two problems simultaneously: it + reduces disk space requirements, and it makes font + generation easier. Most implementations of TeX are + distributed with a complete set of Computer Modern fonts at + seven or more magnifications. This can easily amount to + several megabytes of disk space (even more if you are using + other fonts, like the \AmS fonts from the American + Mathematical Society). In practice, you probably use only + a small subset of these fonts.

+ +

One way to combat the disk-space problem is to delete + all of the TeX fonts on your system and build just the ones + you actually use. In the days before automatic font + generation, this would have been quite unpleasant. The + first time you discovered that you needed a font that you + did not have, you would have to stop your DVI driver, + figure out what size was missing, figure out how to get + MetaFont to build the font that was missing at the + appropriate resolution, run MetaFont, store the font in the + right place, and return to your DVI driver. Moments later, + you might discover that you had to do the whole process + again for some other font.

+ +

Using a driver that provides automatic font generation + makes it nearly painless to delete fonts and let them be + built automatically.[70] The + DVI driver determines the resolution required, runs + MetaFont with the appropriate parameters, stores the font + in the correct place, and continues processing the document + uninterrupted.

+ +

The down side of automatic font generation is that you + must keep the MetaFont program around and make available + the source files for the Computer Modern fonts (and any + other MetaFont fonts that you use). If you do not already + have these files on your hard disk, the potential disk + space savings are somewhat reduced. (MetaFont is discussed + fully in Chapter Chapter 11.) + Moreover, automatic font generation can only build + PK files; if TFM files are also + missing, you will have to build those by hand before TeX + can process your document.[71]

+ +

Another benefit of automatic font generation is that it + can be used to provide previewers, even non-PostScript + previewers, with the ability to preview documents that use + PostScript fonts, provided that you have the Printer Font + ASCII (PFA) or Printer Font Binary + (PFB) font sources and Adobe Font Metric + (AFM) for your PostScript fonts.

+ +

The following lines, added to the MakeTeXPK + script distributed with dvips, provide automatic + font generation for PostScript fonts with ps2pk. + This is useful even on systems where PostScript printers + are used for output, because previewers like xdvi also + use MakeTeXPK to build missing fonts.

+
+# Look for a PostScript outline font...
+if [ -r /usr/local/lib/tex/ps/outlines/$NAME.pfa ] 
+then
+  echo Building TeX font from PostScript outline
+  # Hack.  If $6 is null, $DESTDIR => $6 ...
+  PStoTeXfont $1 $2 $3 $4 $5 $6 $DESTDIR
+  exit 0
+else
+  echo Building TeX font from MetaFont outline
+fi
+
+ +

In this example, PostScript fonts are stored in the + /usr/local/lib/tex/ps/outlines directory. You + should change this directory to something appropriate for + your system. On a unix system, the PStoTeXfont + script shown in Example Example 5.3 + is appropriate.[72] A Perl version + of MakeTeXPK that handles both MetaFont and + PostScript fonts is shown in Example Example D.1 + in Appendix Appendix D, + Appendix D.

+ +
+ + +

Example 5.3. The + PStoTeXfont script

+
+#!/usr/local/bin/bash
+#
+#   This script file makes a new TeX font from a PS outline.  
+#
+#   Parameters are:
+#
+#   name dpi bdpi [mag mode destdir]
+#
+#   `name' is the name of the font, such as `ptmr'.  `dpi' 
+#   is the resolution the font is needed at.  `bdpi' is 
+#   the base resolution.
+#
+#   This script ignores the remaining parameters.  They are 
+#   left here to document the fact that the caller may provide 
+#   them.  They may be provided because the caller thinks 
+#   MetaFont is going to do the work...
+#
+#   Of course, this needs to be set up for your site.
+#
+# TEMPDIR needs to be unique for each process because of the 
+# possibility of simultaneous processes running this script.
+
+TEMPDIR=/tmp/temp-tex-PS.$$
+NAME=$1
+DPI=$2
+BDPI=$3
+
+LOCALDIR=/usr/local/lib/mf/fonts
+DESTDIR=$LOCALDIR/pk
+
+BASENAME=$NAME.$DPI
+PFADIR=/usr/local/lib/tex/ps/outlines
+
+# Clean up on normal or abnormal exit
+trap "cd /; rm -rf $TEMPDIR" 0 1 2 15
+
+mkdir $TEMPDIR
+cd $TEMPDIR
+
+# We proceed by making a 10pt font at the resolution 
+# requested...
+echo Making ${DPI}dpi version of $NAME.
+ps2pk -X$DPI -P10 -a$PFADIR/$NAME.afm      $PFADIR/$NAME.pfa ${BASENAME}pk
+
+mv ${BASENAME}pk $DESTDIR
+
+exit 0
+
+
+ +

A similar script for using automatic font generation + under emTeX with 4DOS is shown in Examples Example D.3 + and Example D.4 + in Appendix Appendix D. + Several other options are available for performing + automatic font generation on a number of platforms, + including a REXX version for OS/2 and a compiled + program called MKTeXPK.

+
+ +
+
+
+

Math Fonts in + TeX

+
+
+ +

Changing math fonts is more difficult than changing text + fonts. In addition to the large number of special symbols + that must be available, TeX needs a lot more information to + use the fonts because the characters are combined more + frequently and in more complex ways. For example, the open + brace character (\{) in math mode is + “extensible;” this means that it can be as + large as required. In order for TeX to construct a brace of + arbitrary size, one of the math fonts (the math extensions + font) contains four different characters that TeX combines + to form the brace:

+ +

FIXME: brace pieces

+ +

Extensible recipes for characters like “\{”, + “\}”, “(”, and “)” are + examples of additional metric information that must be + available in math fonts for TeX.

+ +

In addition to the Computer Modern math fonts, there are + really only three other choices at present: the \AmS + fonts (MetaFont fonts freely distributed by + the American Mathematical Society which extend but do + not replace the Computer Modern math fonts), the Lucida + Bright+New Math fonts, and the MathTime fonts. + Lucida Bright and MathTime are both sets of commercial + PostScript Type 1 fonts.

+
+ +
+
+
+

Concrete Examples

+
+
+ +

The following sections describe by example how you can + use several different kinds of fonts in TeX. The tools + described are generally free and generally available for + multiple platforms. Where specific commercial tools are + used, free alternatives are discussed.

+ +

The specific tools I mention here are not the only tools + available nor are they necessarily the best, although I + hope I've found the best ones. If you have found a + different and better solution, don't abandon it in favor of + what I use here. But please do tell me about the method + that you have found. With every passing day, more free + software becomes available.

+ +
+
+
+

MetaFont Fonts

+
+
+ +

Chapter Chapter 11 + describes how to use MetaFont to create fonts for TeX. If + you have MetaFont installed, you can easily create fonts + that are usable in TeX.

+ +

MetaFont reads MF files, which are plain text + files that describe a font analogous to the way TeX reads + TEX files that describe a document.

+ +

Appendix Appendix B, + Appendix B, + contains examples of many MetaFont fonts. Consult the + “Definitive List of All Fonts Available for + {MetaFont}” [lreq:metafonts] for + an up-to-date list with availability information.

+
+ +
+
+
+

PostScript Type 1 Fonts

+
+
+ +

PostScript printers have many PostScript Type 1 + fonts built in. If you want to use built-in fonts, you + only need the metric information for them and a + PostScript DVI driver. The dvips driver is the + most popular free DVI driver. Several commercial drivers + are also available.

+ +

The metric information should be available in the form + of Adobe Font Metric (AFM) files + from the printer vendor or directly from Adobe Systems, + Inc. You need a program that will convert AFM + files into TFM files. There are + several free programs that will do this conversion (one + is included with dvips), and your DVI driver may + have included one. In general, if one came with your DVI + driver, that is the one you should use.

+ +

If you want to use PostScript Type 1 fonts on + non-PostScript devices, like most screen previewers, you + need the “sources” for the fonts that you + want to use. Many font vendors sell fonts in Adobe + Type 1 format. In addition, there are many + Type 1 fonts available on the Internet and on + bulletin board systems.[73]

+ +

Several companies have made complete, high-quality + fonts available. They are:

+ +
+ + +

Table 5.7. 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
IBM CourierURW Antiqua
Bitstream CourierURW Grotesk Bold
Bitstream CharterNimbus Roman No9
+
+ +

Check the license that accompanies these fonts to make + sure that you can use them legally.

+ +

PostScript Type 1 font sources are available in + Printer Font ASCII (PFA) and Printer Font + Binary (PFB) formats.[74] The + PFB format is more compact, but less portable. + unix systems usually use PFA files, while MS-DOS + and OS/2 systems use PFB files. Several existing + programs can convert PFB files into PFA + files and vice-versa. For the remainder of this section, + I will consistently refer to PostScript Type 1 + source files as PFA files, although you can use + PFB files instead if they are supported on your + platform.

+ +

In addition to the PFA files, you will also + need metric information for the fonts. The metric + information should + be available in AFM format. If you purchased + fonts from a vendor and did not receive AFM + files, you should complain. Fonts from free sources, like + Internet archive sites and bulletin board systems + sometimes include only Printer Font Metric + (PFM) files. These are Microsoft Windows + printer metric files, and they do not contain enough + information to make a TFM file.

+ +

It is possible to create a TFM file from the + PFM file, but the metrics are not particularly + good. To do this:

+ +
+
    +
  1. +

    Convert the PFM file into an incomplete + AFM file with the PFM2AFM utility.

    +
  2. + +
  3. +

    Use the PS2PK program to + make a PK file.

    +
  4. + +
  5. +

    Use PKBBOX to create a + more complete AFM file from the incomplete + AFM file and the PK file.

    +
  6. +
+
+ +

The AFM file manufactured in this way can be + used to create a TFM file. The PK file + can be used by any DVI driver that understands TeX + PK fonts (almost all drivers have this + ability).

+ +

Creating PK files does require more disk + space, but it has the advantage that you can print TeX + documents which use PostScript Type 1 fonts on + non-PostScript devices. This includes fast, + PK-based screen previewers like xdvi and + emTeX's dviscr that do not understand + PostScript.

+ +

Programs like dvipsone and + dviwindo which run under the Microsoft + Windows environment can use PostScript fonts directly if + Adobe Type Manager (ATM) is installed on + the system. However, it is still necessary to construct + the TFM files for TeX.

+ +
+
+
+

{Using a new PostScript font + in TeX (for PostScript printers)}

+
+
+ +

This section presents a step-by-step description of + how to use a new PostScript font in TeX with a + PostScript printer or previewer. In this situation, you + have a PostScript printer, and you use dvips to + print your documents. This method also allows you to + preview your documents with Ghostscript.

+ +

For either method, you must first obtain the + PostScript sources for the font that you want to use. + You must have a + PFA or PFB file and an AFM + file. As a concrete example, I'll use the “Nimbus + Roman 9L Regular” font. For this font, I obtain + unmr.pfa and unmr.afm. These fonts + are available from the CTAN archives in the directory + fonts/urw.[75] In + order to use the font in TeX, you must create TeX font + metrics for it using afm2tfm (in particular, + the version of afm2tfm that comes with + dvips).

+ +

First, however, we must decide what encoding vector + to use. Frequently, the fonts you obtain use Adobe + Standard Encoding. The problem with this encoding is + that it isn't very complete; it leaves out a lot of + standard TeX characters (like the ligatures + “fi” and “fl” as well as many + accented and international letters). Instead of using + Adobe Standard Encoding, I recommend + using the Cork Encoding. The Cork + Encoding has several advantages; it is a superset of + the original TeX text encoding; it is becoming a new + standard for TeX; and it is supported by the NFSS2. Of + course, the Cork Encoding is not suitable for all + fonts; there's no reason to try to re-encode a symbol + font into the Cork Encoding---that doesn't even make + any sense.

+ +

Luckily, using the Cork Encoding is no more + difficult than using whatever encoding the distributed + font contains. afm2tfm will do all the work. You + only need to obtain the appropriate encoding file. In + this case, the file is ec.enc, and it is + distributed with both dvips and NFSS2. Use + afm2tfm to generate the metrics:

+
+\$ {\bf afm2tfm unmr.afm -v unmr.vpl -T ec.enc unmr0.tfm}
+
+ +

This command reads unmr.afm, the original + AFM file with an arbitrary encoding, and the + encoding vector ec.enc. It creates the virtual + font unmr.vpl and the TFM file + unmr0.tfm.

+ +

The relationship between these files is subtle. The + AFM file contains metric information for all + the possible glyphs in the font. The encoding file + establishes the encoding vector---which particular + characters occur in exactly what order. These two files + are combined to produce character metric information + for the specific encoding vector. This information is + saved in the TFM file. This is a + “raw” TFM file.[76] It does not have + any ligature or kerning information and may have a different + encoding from the virtual font (although, in this case + it has the same encoding).

+ +

The next step is to produce a virtual font from the + VPL file:

+
+\$ {\bf vptovf unmr.vpl unmr.vf unmr.tfm}
+
+ +

This produces a virtual font file, unmr.vf, + and an appropriate TFM file. This TFM + file has ligature and kerning information for the + characters in the font as well as the metrics for the + individual glyphs.

+ +

The names of the virtual font files and the related + TFM files are entirely arbitrary. You can give + them any names you wish. In the long run, you will + benefit if you choose a naming scheme that allows you + to determine which files are which simply by examining + the names. If you have a lot of fonts, take a look at + {Filenames for + Fonts} [tug:filenames-fonts]. + It is also available electronically from CTAN in the + directory info/filename.

+ +

Now you should install the VF and + TFM files in the appropriate directories and + proceed to use the unmr font. TeX will do the + right thing because the TFM file contains the + appropriate metric information, and the DVI driver will + do the right thing because it has a virtual font which + specifies how the characters should be mapped into the + printer.

+ +

Now that TeX is happy, we have the additional + problem of making the PostScript printer happy. The + easiest way to do this is to tell dvips to do it + for us. The psfonts.map file used by + dvips identifies which fonts are built into the + printer and which fonts need to be downloaded.

+ +

Each line in the psfonts.map file describes + how a particular TeX font should be interpreted. The + simplest lines identify the PostScript name of fonts + built into the printer. For \linebreak

+ +

example, the following line indicates that + dvips should use the PostScript font + Times-Roman (which is assumed to be resident in the + printer) everywhere that the DVI file uses the + font rptmr:

+
+rptmr Times-Roman
+
+ +

To automatically download a PostScript font, + add <fontfile to + the corresponding line in the psfonts.map + file. The following entry indicates that the PostScript + font CharterBT-Roman should be used where + rbchr is used in the document. In addition, + dvips should download the font from the file + /usr/local/lib/fonts/psfonts/bchr.pfa if it is + used in the document.

+
+rbchr CharterBT-Roman </usr/local/lib/fonts/psfonts/bchr.pfa
+
+ +

Additional PostScript commands can be added to the + entry to perform special effects. Some of these are + described in the documentation for dvips. They + require a knowledge of PostScript that is beyond the + scope of this book.

+ +

Adding the following line to psfonts.map + will download and use the Nimbus URW font we installed + above. (It is shown on two lines only because of the + constraints of the page; you should enter it on one + line):

+
+unmr0 NimbusRomanNo9L-Regular <unmr.pfa
+      "ECEncoding ReEncodeFont" <ec.enc
+
+ +

This line identifies the font unmr0 as the + NimbusRomanNo9L-Regular PostScript font, re-encoded + with the ECEncoding described in the file + ec.enc. Because this font is not resident in + the printer, you must also tell dvips to + download the font from unmr.pfa. If you keep + encoding files or PostScript fonts (PFB or + PFA files) in nonstandard locations, you will + have to specify the full path of ec.enc and/or + unmr.pfa.

+ +

Notice that you specify the raw font in the + psfonts.map file. TeX and dvips will + use the virtual font to determine which character(s) + from which raw font(s) should actually be used to + print your document. afm2tfm prints the line + that should be added to the font map file when it is + finished converting the font, so you don't always have + to remember which is which.

+ +

The psfonts.map file (and the encoding and + font files) are typically stored in a system-default + location. On unix systems, this is frequently + /usr/local/lib/tex/ps. If you can't (or don't + want) to change files in this directory, you can use + your own font map file.

+ +

When you run dvips, it loads a initialization + file (typically ~/.dvipsrc). If you put the + following line in that file:

+
+p +/home/jdoe/myfonts.map
+
+ +

it extends the system-wide font map using the file + /home/jdoe/myfonts.map, which has the same + format as the psfonts.map file.

+ +

If you use the <font.pfa syntax in your + font map file to download PostScript fonts, you may + discover that dvips is producing very large + output files (or takes a long time to print, if output + is going directly to a printer). The reason is that + dvips is downloading the font at the beginning + of every document that uses it. If you have a few fonts + that you use all the time, it may be faster and more + convenient to download the fonts manually at the + beginning of the day and then remove the + <font.pfa portion of the font mapping line + (leave the encoding file, however). This will produce + smaller output files because dvips will assume + that the fonts are already downloaded. Of course, the + trade-off is that your documents will not print + correctly (because the appropriate fonts are not + attached to the PostScript file) if you mail them to a + colleague who doesn't download the same fonts you do, + or if you forget to download the fonts again after + someone power-cycles the printer.[77]

+
+ +
+
+
+

{Using a new PostScript font + in TeX (for non-PostScript devices)}

+
+
+ +

Using PostScript fonts for screen previewing or + printing on non-PostScript printers is a very different + process from printing on PostScript devices. You still + need the AFM and PFA files.

+ +

This time you're going to create PK files + with ps2pk, so virtual fonts are less + useful. In fact, you have to give the AFM file + the correct encoding in order to get the right + PK file, so we'll avoid virtual fonts + altogether. Of course, if you need several different + encodings (perhaps TeX Text, Cork, and Adobe Standard) + for different documents, you'll be better off with one + or two raw font files and several virtual fonts, but + for the moment let's imagine that that is not the + case.

+ +

Example Example D.5 + in Appendix Appendix D, + Appendix D, + is a Perl script that changes the encoding vector in an + AFM file to reflect the encoding specified in + an encoding file (like the ones used in the preceding + section). This is an important step because + ps2pk uses the encoding in the AFM file + to determine which glyphs to render.[78]

+ +

To install this script, save it in a file called + enc-afm.pl and change the top of the script + (the #! line) to reflect where Perl is + installed on your system. Users of Perl on non-unix + systems may have to work a little harder, or simply use + the syntax {perl + enc-afm.pl} to run the script. unix users + can create a symbolic link to enc-afm.pl + called enc-afm, and mark it as executable.

+ +

Using this script, transform unmr.afm into + unmrX.afm:

+
+\$ enc-afm unmr.afm ec.enc > unmrX.afm
+
+ +

Now the unmrX.afm file has the Cork + encoding. We can use this file to create a TFM + file for TeX:

+
+\$ afm2tfm unmrX.afm unmr.tfm
+
+ +

This TFM file should be moved to the + directory where you store TFM files for + TeX.

+ +

Unlike PostScript fonts on PostScript devices, + different PK files must be created for each + size required. As a concrete example, let's assume we + want a 14pt font. The easiest way to create a 14pt font + with ps2pk is to use the -P parameter to + specify the size. Unfortunately, this will cause some + DVI drivers to complain because -P sets the design + size of the PK file, and it won't match the + design size in the TFM file. A better solution + is to determine the resolution you need with the + following formula:

+ +

$$\hbox{resolution} = {{\hbox{base resolution} * + \hbox{point size}}\over{10}}$$

+ +

The factor 10 is used because it is the nominal + design size of PostScript fonts (at least, that's what + afm2tfm uses). For example, if we are creating a + 14pt font for a 300dpi laser printer, the desired + resolution is $300*14/10 = 420$. Now we can create the + font:

+
+\$ ps2pk -X420 -aunmrX.afm unmr.pfa unmr.420pk
+
+ +

This command creates a 420dpi PK file using + the AFM file unmrX.afm. The font + source comes from unmr.pfa, and the resulting + PK file is called unmr.pk. On MS-DOS + systems, name the output PK file + unmr.pk because unmr.420pk is not a + valid filename. Move the resulting PK file to + the appropriate directory. On unix systems, it is + probably /usr/local/lib/tex/fonts/pk; while on + MS-DOS and other systems, it is probably something like + /texfonts/420dpi.

+
+
+ +
+
+
+

HP LaserJet Softfonts

+
+
+ +

Bitmapped HP LaserJet Softfonts can easily be + converted into TeX PK files with the + SFPtoPK utility. Then they can be used with almost + any DVI driver.

+ +

Scalable LaserJet Softfonts can be used by TeX if two + conditions are met: metric information is available, and + the DVI driver that you are using can access built-in + printer fonts. Metric information for Scalable LaserJet + Softfonts distributed by Hewlett-Packard come in the form + of Tagged Font Metric files. Tagged Font Metric files + have the extension TFM, but they should not be + confused with TeX TFM files. The utility + hptfm2pl converts Tagged Font Metric files into + TeX PL files (PL is a human-readable + text format of TFM files). PL files are + transformed into TFM files by the standard TeX + utility PLtoTF.

+ +

To use Scalable LaserJet Softfonts, you must convert + the metric information into TeX TFM files so + that TeX can use the font, and then you must inform your + DVI driver that the fonts are built into the printer. + Before printing your document, download the Scalable + LaserJet Softfont to your printer. The sfload + utility that is part of Sfware can download Scalable + LaserJet Fonts. Many other free and shareware font + downloading programs exist, too.

+
+ +
+
+
+

TrueType Fonts

+
+
+ +

At present, TrueType fonts can be used only + on systems that have built-in TrueType support (the + Macintosh and MS-DOS computers running Microsoft Windows + 3.1 fall into this category). You must use DVI drivers + that communicate with the printer through the system's + printer interface.

+
+
+ +
+
+
+ +
+

[53] {Some fonts may be + preloaded in the format file. TeX does not need + TFM files for those fonts since the metric + information is already available.}

+
+ +
+

[54] {Older DVI drivers may + still use PXL files. They are frequently stored + in directories with names like pxl999.}

+
+ +
+

[55] {Actually, TFM + files contain a little bit more information. The width of + a space, the amount of stretch and shrink allowed between + words, the amount of extra space allowed after a + punctuation mark, and some specialized information used + only in fonts for mathematics also appear in the + TFM files. In principle, TFM files + can contain even more information, although they rarely + do. For a complete, detailed description of the + information stored in a TFM file, consult + Appendix F of The + TeXbook [kn:texbook] and {The TF To PL + Processor} [texware:tftopl].}

+
+ +
+

[56] {This is true even if + your computer's natural character set is not ASCII. It is + the responsibility of the implementor to map the + computer's natural character set into ASCII.}

+
+ +
+

[57] {Actually, for math + fonts, TeX requires several metrics that are not usually + provided. afm2tfm has options which + allow you to specify these extra metrics when you convert + the AFM file.}

+
+ +
+

[58] {If your MetaFont + distribution does not include a tfmonly mode, you can + find one in the modes.mf file on CTAN. Consult + Chapter Chapter 11, + Chapter 11, + for more information.}

+
+ +
+

[59] {This doesn't mean that + every size you want is available. See the section + “ + the section called “Selecting Fonts with the New + Font Selection Scheme”” for information + about defining font sizes in the NFSS.}

+
+ +
+

[60] + “$\backslash$fontshape{it}$\backslash$selectfont

+
+ +
+

[61] {One possible use of + loading options is to inhibit hyphenation in fixed-width + fonts intended for use in verbatim material. The loading + options {\ hyphenchar\ font=-1} have this + effect.}

+
+ +
+

[62] {The only reason that + sizes less than 8pt need to be declared at all is that + marginal notes (used for editorial comments while the + book was in revision) were set in 5pt, and the logo font + occasionally turned up in a marginal note.}

+
+ +
+

[63] {Under earlier versions + of the NFSS, this problem actually resulted in an error + rather than a warning. If you wish, you can simply ignore + the warning; you no longer have to fix the problem.

+
+ +
+

[64] {Actually, you can + declare a scaling factor in any font declaration, + although it seems to make less sense for non-PostScript + fonts.}

+
+ +
+

[65] {Usually, scaling fonts + to the same x-height makes them look acceptable together, + but depending on the particular fonts involved, a little + more or a little less scaling may be required to achieve + a pleasant balance.}

+
+ +
+

[66] {In some special versions + of TeX, notably those for handling languages like + Japanese, this may be extended to a much larger number, + but the problem is the same.}

+
+ +
+

[67] {For a complete + description, consult {The VP + To VF Processor} [texware:vptovf] and + {The VF to VP + Processor} [texware:vftovp].}

+
+ +
+

[68] {Version 2 of NFSS + includes “encoding” as a parameter in font + selection. In the long run, this will allow macro writers + to hide many of these difficulties, dramatically reducing + the burden currently placed on the user.}

+
+ +
+

[69] {You can retrieve the + fontinst package from the CTAN archives in the + directory fonts/utilities/fontinst.}

+
+ +
+

[70] {It's still a bit + tedious, at least on slow machines, but now you can walk + away and get a cup of coffee ;-). All the fonts will be + built automatically.}

+
+ +
+

[71] {Recent versions of TeX + derived from the \Web2C package can build TFM + files automatically as well.}

+
+ +
+

[72] {OK, so not every example in this + book is in Perl.}

+
+ +
+

[73] {Before you use these + “free” fonts, be aware that many are of + questionable legality.}

+
+ +
+

[74] {PostScript fonts for the + Macintosh are stored in PFB format (essentially) + in the resource fork of the printer font file. The metric + information is stored in the screen font, which also + contains bitmaps for on-screen display.}

+
+ +
+

[75] {The Nimbus fonts + actually come with TFM and VF files + which makes some of the following steps redundant. But + because most fonts don't come with TeX + metrics, the example is important.}

+
+ +
+

[76] {Raw TFM files + used to be identified with an “r” prefix, but + recently the trend has turned towards a “0” + suffix. For a more complete discussion of font names, + consult Filenames for + Fonts [tug:filenames-fonts].}

+
+ +
+

[77] {Some spooling software + will transparently handle these problems (by downloading + fonts that you forget) if the fonts are available.}

+
+ +
+

[78] {This step isn't + necessary when using a PostScript printers because the + PostScript font always contains all the glyphs. The font + created by ps2pk will only contain the characters + in a single encoding.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch06.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch06.html new file mode 100644 index 00000000000..a89d17fadf5 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch06.html @@ -0,0 +1,3381 @@ + + + + + + + + + Chapter 6. Pictures and Figures + + + + + + + + + + + +
+
+
+

Chapter 6. Pictures + and Figures

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Pictures and figures are an important + component of many documents. This chapter explores how they + can be incorporated into your TeX documents. There are many + ways to include pictures and figures in TeX. The most + important considerations are the type of image, the + type of printer you will be using, what platform you are + using, and how portable the document must be.

+ +
+
+
+

Different + Kinds of Images

+
+
+ +

Images come from many, many different + sources, but they can be divided into two broad classes: + bitmapped and scalable (or vector). Bitmapped images are + produced whenever an image is scanned from a drawing, + photograph, or other printed work. They are also produced + by most simple paint programs. Scalable images are + produced by some more sophisticated drawing programs, many + commercial sources, and some other applications. Both + classes have advantages and disadvantages.

+ +

Files that contain graphic images usually end with an + extension that identifies the format of the + image. The extension is a common and convenient nickname + for the image format. In this chapter, I refer to graphic + image formats by their extension (for example, GIF images + or XBM images) without explanation. I do this partly + because it is easy, but also because it is the most common + way of referring to them, and you don't really need to know + anything about the image formats to use them. If your DVI + driver understands PCX images, you just need a PCX image; + you don't have to have a detailed understanding of the + format (thank goodness). If you want to know more, refer to + the filename extension glossary in Appendix Appendix A, + which will help you identify each of the formats discussed + in this chapter.

+ +
+
+
+

Bitmapped Images

+
+
+ +

Photographs and images with a lot of subtle + detail are almost always stored as bitmaps. Scanners + always produce bitmapped images. Some bitmap + images can be converted into scalable formats. High-end + graphic packages like \product{CorelDRAW} + and \product{\idx{Adobe Illustrator}} can do this, but + most cannot. The exceptions are line drawings and other + very high contrast images. Bitmaps are also + “cheap” to print. Neither the computer nor + the printer must do very much work to print a + black-and-white bitmap image. (Color bitmap images must + be dithered before they can be printed, but that's a + separate consideration because it need be done only once, + not every time the image is printed.) Bitmapped images + are also easy to convert from one format to another.

+ +

Unfortunately, bitmap images are very + device-dependent. They are stored as a two-dimensional + array of dots, which gives them a fixed resolution. A + $3\times5$-inch bitmap image that prints correctly on + your 300dpi laser printer will only be a + $\frac{3}{4}\times1\frac{1}{4}$-inch picture if you make + your final copy on a 1200dpi photo-typesetter.

+ +

Bitmap images also require considerable memory and + disk space to store. The $3\times5$ image described above + requires more than 150Kb of memory (if it is + uncompressed).

+ +

A final consideration is that bitmap images do not + scale very well. Enlarging or reducing the image requires + either removing some dots (causing a loss of detail) or + inserting extra dots (frequently giving slanted lines a + very jagged appearance). Rescaling images by exact + integer amounts (doubling or tripling its size, for + example, but not making it 2$\frac{1}{2}$ times as large) + works reasonably well (except for jagged edges). Shaded + regions, which are composed of a regular pattern of black + and white dots, are frequently disrupted by irregular + “blotching” if non-integral scaling is + used.

+
+ +
+
+
+

Scalable Images

+
+
+ +

Many graphic images can be represented more compactly + as a collection of lines, curves, and other discrete + elements. Images of this type are called scalable or vector images. + Instead of storing every pixel in a rectangular array, + vector images store the encoded instructions for + “drawing” the image. This provides a compact + representation. A circle, no matter how large, can be + represented with just a few data points: the position of + the center, the radius, the width and color of the line + that forms the circle, and the pattern that fills the + circle. It is also easy to change the size of the image; + if you halve every measurement, the image is drawn at one + half the size with minimal loss of detail.

+ +

One drawback of scalable images is that they require + considerable computational power to render. Every printer + ultimately prints the page as a large bitmap; the print + engine has to translate the lines, curves, and fills of a + scalable image into a bitmap before this is + possible.[79] Previewing scalable + images requires translating them into bitmaps to display + them. This can be a noticeably slow process unless you + have a very fast computer.

+ +

The other significant drawback of scalable images is + that they are difficult to translate from one format to + another. For example, to translate a PostScript image + into something that can be printed on a non-PostScript + printer, you have to have a program that understands all + of the commands in the PostScript file. A bitmap + conversion, on the other hand, doesn't require any + understanding of graphics commands; it simply has to know + how to rearrange the bits in the array. What it boils + down to is this: it's a lot easier to write a translation + program to “reverse the order of all the bits in + each byte in each row” than it is to write one that + can “draw the bezier curve with these three control + points using a dashed, light-blue line $\frac{1}{8}$ of + an inch wide.”

+
+
+ +
+
+
+

Device Independence Revisited

+
+
+ +

Pictures and figures are a foreign + concept to TeX. Remember, TeX cares only about building + pages out of boxes and glue. TeX's notion of a picture is + frequently nothing more than “something special goes + here (I don't know what) and it's 5 inches wide, 2 inches + high, and 1 inch deep.” This is device independence, + of a sort, but many of the easiest ways to include pictures + and figures in TeX do rely on features of a specific DVI + driver or a specific kind of printer. If document + portability is an issue, consider carefully before you + select a particular way of including pictures and + figures.

+ +

On the bright side, most DVI drivers provide some + mechanism for incorporating pictures and figures. As long + as it is possible to convert the images from the format + originally used to a format that another DVI driver + understands, document portability can be achieved. For + example, it is possible to print PostScript figures on a + non-PostScript device if they are first converted into + another format with Ghostscript or some other + PostScript interpreter. Unfortunately, it is usually + inconvenient to convert pictures from one format to + another, and some conversions may distort the images a + little bit (or a lot).

+
+ +
+
+
+

Using Only + TeX

+
+
+ +

This section describes picture and figure environments + that don't use any external programs. Graphics created in + this way are entirely device-independent and can be printed + with any DVI driver.

+ +
+
+
+

Plain TeX

+
+
+ +

Plain TeX has no built-in provision for + creating pictures or figures. It is possible to do simple + diagrams and graphs by writing macros that place + individual points on the page. Figure  + Figure 6.1 shows several data points plotted in + Plain TeX. The input was derived from macros presented in + Appendix D of The + TeXbook [kn:texbook]; it is shown + in Example  + Example 6.1.

+ +
+ + +

Figure 6.1. An example + diagram in Plain TeX

+
+FIXME:
+
+
+ +
+ + +

Example 6.1. The Input + for the Plain TeX Diagram

+
+
+
+
+ +

With special-purpose fonts, it is possible to make + more complex figures in Plain TeX. However, LaTeX + provides a picture environment which greatly + simplifies the process.

+
+ +
+
+
+

LaTeX

+
+
+ +

The picture environment in LaTeX is + implemented on top of the kinds of primitive operations + shown in Example  + Example 6.1. Working in the picture + environment is a lot like working on graph paper: you + begin by specifing how big the graph paper is and the + distance between lines on the paper (the lines aren't + really there; they're just used for reference), and then + inside the picture environment, you put picture elements down on + the page at the intersections of the lines on the + grid.

+ +

LaTeX provides picture elements for text, boxes, solid + and empty circles, lines, and arrows. Lines and arrows + can be drawn at angles, but they are formed by taking + characters from a special set of fonts so there is a + limited number of angles available. The advantage of + using special fonts to draw the lines is that it is + relatively efficient.

+ +

Figure Figure 6.2 + is a simple figure drawn with LaTeX's picture + environment. The LaTeX input for this environment is + shown in Example Example 6.2.

+ +
+ + +

Figure 6.2. A + parallelogram in LaTeX

+ +
+ +
+
+ +
+ + +

Example 6.2. The LaTeX + Input for Figure 6.2

+
+
+
+
+ +
+
+
+

The epic and eepic styles

+
+
+ +

Constructing diagrams using picture + primitives is very tedious because each element of the + picture has to be placed individually. The epic style extends + LaTeX's picture environment by adding several + higher-level commands for picture construction. These + commands allow you to draw solid, dotted, and dashed + lines with arbitrary slopes, create matrices and grids + with a single command, join several independently + placed elements together, and read a list of points + from an external file.

+ +

The diagrams produced by epic.sty + are still limited by the fonts available to LaTeX. The + eepic.sty extends epic.sty by + using \special commands to construct the more complex + figure elements. The \special commands are the same as + those used by tpic (see the “the section + called “MetaFont”” section in + this chapter) and are supported by many DVI + drivers.

+ +

Figure  + Figure 6.3 shows a figure constructed with the + epic macros. + Figure  + Figure 6.3 (a) uses epic.sty, and (b) + uses eepic.sty. Notice that eepic.sty + provides circles of arbitrary size and smooth lines at + any angle. The end points of the radial lines in this + figure were calculated by another program and read from + a data file by epic. The source for + these figures is shown in Example Example 6.3 + (both diagrams were created with the same source).

+ +
+ + +

Example 6.3. The epic + Input for + Figure 6.3

+
+
+
+
+ +
+ + +

Figure 6.3. A figure + created with (a) epic, and (b) eepic

+ +
+ +
+
+
+ +
+
+
+

The bezier style

+
+
+ +

The bezier + style allows you to construct curved + lines in the LaTeX picture environment. An example is + shown in Figure  + Figure 6.4. Its source is shown in + Example Example 6.4. + The grid in this example was created with epic for + convenience.

+ +
+ + +

Example 6.4. The Input + for + Figure 6.4

+
+
+
+
+ +
+ + +

Figure 6.4. Several + bezier curves created with the LaTeX bezier + style

+ +
+ +
+
+
+ +
+
+
+

Other styles

+
+
+ +

In addition to these styles, there are several other + style files for doing particular types of drawing. + Styles exist for drawing logical circuit diagrams, bar + charts, trees, and more.

+
+ +
+
+
+

Other approaches

+
+
+ +

Because constructing LaTeX drawing by hand is + tedious, several programs have been written that allow + you to construct diagrams visually and then produce the + appropriate picture environments + automatically. The texcad program + distributed with emTeX is one such + program. A similar program called xtexcad + runs under X11 on some platforms, and there is a Fig + translator for the LaTeX picture environment. + (For more information about Fig, see the “the section called + “The epic and eepic styles”” + section later in this chapter.)

+
+
+ +
+
+
+

PiCTeX

+
+
+ +

PiCTeX is a macro package that you can + load on top of Plain TeX or LaTeX.[80] It + does an amazing job of plotting mathematical functions + and two-dimensional graphs directly in TeX. An example of + PiCTeX (taken from The PiCTeX + Manual [mw:pictex]) is shown in + Figure  + Figure 6.5. The source for this figure is shown + in Example Example 6.5.

+ +
+ + +

Figure 6.5. Sample + diagrams using PiCTeX

+ +
+ +
+
+ +
+ + +

Example 6.5. PiCTeX Input + for + Figure 6.5

+
+
+
+
+ +

The primary drawback of PiCTeX is that it requires a + considerable amount of memory to use. Even relatively + simple looking graphs require a big TeX to plot with + PiCTeX. PiCTeX also produces very, very large + DVI files (the graphs are drawn by interpreting + and plotting each pixel individually). This usually + results in very large output files from the DVI driver, + and some printers may have difficulty printing your + documents.

+ +

The PiCTeX macros are freely available, but the manual + is not. You can purchase the manual directly from the + author of PiCTeX or from the TeX User's Group.

+
+ +
+
+
+

XYPic

+
+
+ +

XYPic is another add-on macro package for + TeX, LaTeX, and other formats. It provides considerably + more flexibility than the LaTeX picture environment + without resorting to the resource-expensive strategy of + PiCTeX.

+ +

XYPic provides many more arrows than LaTeX + (including curved and self-pointing forms), a wider + variety of dashed and dotted lines, provision for lines + that bend and go around \linebreak

+ +

other picture elements, and annotations for lines and + arrows. It seems especially well suited to typesetting + commutative diagrams, simple state-transition diagrams, + and complex annotated matrices.

+ +

The syntax used in XYPic diagrams is not as + straightforward as LaTeX's picture environment. An + example of a complex XYPic diagram is shown in + Figure Figure 6.6. + The corresponding source is shown in Example Example 6.6.

+ +
+ + +

Figure 6.6. An XYPic + diagram

+ +
+ +
+
+ +
+ + +

Example 6.6. The XYPic + Input for Figure 6.6

+
+
+
+
+
+ +
+
+
+

DraTeX

+
+
+ +

DraTeX is a macro package that can be + loaded on top of Plain TeX or LaTeX and provides many + sophisticated drawing features. An example is shown in + Figure Figure 6.7. + The source is in Example Example 6.7.

+ +
+ + +

Figure 6.7. An DraTeX + diagram

+ +
+ +
+
+ +
+ + +

Example 6.7. The DraTeX + Input for Figure 6.7

+
+
+
+
+ +

DraTeX offers a wide variety of low-level drawing + commands: straight lines at arbitrary angles, circles of + any size, bezier curves, rectangular or polar coordinate + systems, perspective for three-dimensional figures, + user-definable shading patterns, clipping, repetition, + and user-definable drawing objects and commands. A + supporting package, AlDraTeX, provides + high-level drawing commands for pie charts, XY charts, + bar charts, spread diagrams, grid diagrams, trees, and + diagram annotations (arrows, edges, labels).

+ +

Although it is a flexible and portable solution, + beware that complex figures may require considerable time + to compute and will almost certainly require a big TeX. + The resulting DVI files tend to be large as + well.

+ +

DraTeX and AlDraTeX are described in TeX & LaTeX: Drawing and + Literate Programming [eg:dratex].

+
+
+ +
+
+
+

Using a Little Help

+
+
+ +

On most platforms, if you have TeX, MetaFont is + available. Because MetaFont was designed for drawing, it + has much better support for pictures and figures than TeX. + There are three utilities that allow you to combine TeX and + MetaFont to create pictures: MFPic and + Fig2MF.

+ +
+
+
+

MFPic

+
+
+ +

MFPic's picture environment and + LaTeX's picture environment are implemented very + differently. The commands in MFPic don't attempt + to typeset your diagram with special fonts; instead, they + write MetaFont commands to another file. This file must + be processed with MetaFont before your document can be + viewed.

+ +

Because MetaFont is used to draw the actual diagram, + the MFPic macros are much more flexible than the + LaTeX picture creation commands. MFPic macros + provide lines (at any angle), rectangles, polygons, + circles (of any size), ellipses, cyclic and acyclic + curves, arcs, and wedges (all empty, shaded, or + filled).

+ +

Unlike Fig2MF, described below, MFPic + can plot user-specified functions (parametrically or + directly, using polygonal or bezier interpolation).

+ +

Finally, because MFPic works so directly with + TeX, it can include labels and captions in the figure as + well as allowing “MetaFont hackers” to insert + MetaFont code directly.

+
+ +
+
+
+

Fig2MF

+
+
+ +

The “Fig” in Fig2MF + stands for the Fig graphics code (in this case, Fig + version 2.1). Fig is a device-independent way of + representing figures. Like TeX DVI files, Fig + graphics are always translated into a + device-dependent form before they are printed. + Fig2MF translates Fig graphics into MetaFont code, + which can be rendered into a font that is usable by TeX + on any platform.

+ +

At present, there are a few limitations on + Fig2MF: text objects are ignored, and arrowed and + non-solid line styles are not supported. The advantage of + Fig2MF is that very good interactive drawing + programs, like xfig, can be used to create + figures.

+
+ +
+
+
+

MetaFont

+
+
+ +

If the idea of programming directly in MetaFont is + appealing to you, start by reading “Simple Drawings + in MetaFont” [zw:simple]. This is a + short document (freely available) that describes how + simple drawings can easily be rendered directly in + MetaFont.

+ +

In order to use MetaFont creatively, The \MF{}book [kn:mfbook] is really a + necessity, but you can get a feel for the picture + creation process in MetaFont without it.

+
+
+ +
+
+
+

Using a Little More Help

+
+
+ +

A couple of TeX macro packages combine the convenience + of using only TeX commands to produce pictures and figures + with the power of PostScript. Using these macros + makes your documents less portable because they rely on a + PostScript printer or PostScript interpreter to be + printed.

+
+ +
+
+
+

PSTricks

+
+
+ +

The PSTricks macro package is a TeX-PostScript + hybrid. The advantage of this approach is that PSTricks is + able to provide much wider functionality than the preceding + packages without leaving TeX. The disadvantage is that it + makes your documents dependent on a PostScript printer.

+ +

One of the neatest features of PSTricks is the ability + to interact with other TeX objects. You can add PostScript + annotations (curved lines, labels, etc.) to the entries in + a table, for example, or point to other elements on the + page.

+ +

In addition to allowing you to insert essentially + arbitrary PostScript commands directly into your document, + PSTricks provides TeX macros for most common picture + elements including: commands for curved and straight lines + (at arbitrary angles), a wide variety of arrow heads and + tails, pattern-filled regions, regular and irregular + polygonal shapes, text scaling and rotation, and grids.

+
+ +
+
+
+

TeXdraw

+
+
+ +

TeXdraw, like \product{\PSTricks}, provides support for + pictures and figures by relying on a PostScript back + end.

+ +

TeXdraw is organized into a toolbox of simple + routines from which more complex commands can be + constructed. The TeXdraw manual [pk:texdraw] includes + several examples of how complex commands can be built from + toolbox routines.

+
+ +
+
+
+

tpic

+
+
+ +

The “pic” drawing language was designed for + troff documents. The tpic program interprets + pic drawings and produces TeX output to render them. The + output relies on a set of \special commands, which must be + implemented by the DVI driver to actually produce the + output. The tpic \specials are implemented by many + DVI drivers.

+
+ +
+
+
+

Using a + Lot of Help

+
+
+ +

Although many nice effects can be achieved directly in + TeX or with MetaFont, you will probably want to include + some other form of image (e.g., an encapsulated PostScript + figure or a scanned photograph) in a TeX document + eventually.

+ +

There are a myriad of choices when this occurs. To a + large extent, the options available depend on the kind of + printer you have, which DVI drivers you use, and to what + extent you are willing to sacrifice device + independence.

+ +
+
+
+

Electronic Cut-and-paste

+
+
+ +

Documents that require complex graphics may + be difficult to produce as a single TeX document. You may + exceed the memory limitations of your version of TeX if + you try to put too many figures on a given page, or you + may wish to include graphics from incompatible macro + packages (suppose you are using the Lollipop format for + example, and you want to include a LaTeX + picture).

+ +

You can always leave blank space in your document, + print the graphic on a separate page, and then combine + the two pages with scissors, glue, and a photocopy + machine. However, there are many times when this is + inappropriate (not to mention the aesthetic sensibilities + it may disturb).

+ +

Another solution is to use a program that can perform + cut-and-paste operations on the output files before they + are printed. If you use Plain TeX or LamSTeX, one option + is DVIpaste. DVIpaste can insert parts + of one DVI file into another. It is part of the + LamSTeX distribution. The documentation for + DVIpaste contains a good example of its use. + Unfortunately, DVIpaste relies on macros that are + incompatible with most other macro packages.

+ +

Some DVI drivers like dvimsp,[81] which comes with + emTeX, can translate DVI files into bitmapped + images that can then be incorporated into your document + directly. Figures Figure 4.11, + + Figure 4.13, and  Figure 4.15 + in Chapter Chapter 4, + Chapter 4, + were inserted into this book using dvidot.

+
+ +
+
+
+

Scalable Image Formats

+
+
+ +

Several of the most commonly encountered scalable + image formats are PostScript (usually encapsulated), + HPGL (Hewlett-Packard's Plotter + language), DXF (Autocad's vector format), and the Fig + graphics language. PostScript and HPGL are + used by specific printers and plotters, DXF files are + created by many computer-aided design programs, and Fig + is a graphic language understood by several free editing + tools---it is always converted into something else before + it is printed. Many programs that can edit scalable + images have their own vendor-specific formats. Luckily, + these programs can usually produce PostScript or HPGL + output as well.

+ +

PostScript images are the most commonly encountered + scalable images. Drawing packages that output PostScript + generally produce encapsulated + PostScript (EPS). Similarly, most + PostScript clip-art is distributed in EPS format. + Encapsulated PostScript is a subset of the PostScript + language. One of the most important features of EPS + images is a bounding + box. The bounding box identifies the + size of the EPS image. This information is used to + determine the scaling factor required to get an image of + the correct size.

+ +

Generic PostScript can sometimes be converted into + encapsulated PostScript. For example, the + ps2epsi program that comes with + Ghostscript attempts to convert generic + PostScript into encapsulated PostScript.

+ +

Some software produces reasonable PostScript figures, + but fails to include the bounding box. For those + situations, the bbfig program that + comes with dvips may help. bbfig uses the + printer to calculate a bounding box that you can insert + into the figure. After you have printed the figure, you + can construct a bounding box by hand, if necessary + (sometimes bbfig gets confused). Simply measure + the height and width of the figure and its position on + the page (measured from the bottom-left corner). The + bounding box is a rectangle measured from the lower-left + corner of the figure to the upper-right corner. An + example is shown in Figure  + Figure 6.8.

+ +
+ + +

Figure 6.8. A PostScript + bounding box example

+ +
+ +
+
+ +

The bounding box is measured in PostScript points. + There are 72 PostScript points to the inch, so the image + in Figure  + Figure 6.8 has the following bounding box:

+ +
+

<!-- %BoundingBox: 115.2 180 468 626.4 -->

+
+ +

If you are printing your document on a PostScript + printer, you will find that PostScript images are easy to + handle; every PostScript DVI driver that I have seen + allows you to incorporate encapsulated PostScript with + one or more \special commands. The section “the section called + “Bitmapped Image Formats”” later in + this chapter describes two ways of incorporating + encapsulated PostScript images into Plain TeX or LaTeX + documents for printing on a PostScript printer.

+ +

PostScript output on non-PostScript devices is much + more difficult, although it can be achieved with a + PostScript interpreter like Ghostscript.[82] For a detailed + description of how PostScript images can be converted + into another format with Ghostscript, see the + “the section called “Image + Magick”” section later in this + chapter.

+ +

Hewlett-Packard HPGL is the plotter + language developed by HP for its line of pen-based + plotting devices. Many computer-aided design and drafting + programs can produce HPGL. In addition to plotters, the + HP LaserJet III and more recent HP LaserJet printers also + understand HPGL. On an HP LaserJet III or later model + printer, you can print HPGL directly if your DVI driver + allows you to include printer-specific data. This ability + was introduced in version 1.4t of the emTeX + dvihplj driver.

+ +

If your DVI driver does not support printer-specific + files or your printer does not understand HPGL, there are + at least two conversion programs (hp2xx + and hp2ps) that may be able to convert your + HPGL drawings into another form you can use.

+ +

The Fig graphics language was designed to represent + pictures and figures in an easy to interpret and portable + manner. The Fig and xfig drawing programs + work with Fig graphics. Several other programs, like + gnuplot, can also produce Fig graphics. See + the “the section called + “The epic and eepic styles”” + section for more information.

+
+ +
+
+
+

Bitmapped Image Formats

+
+
+ +

Including bitmapped images is easier than + including scalable images because no real interpretation + of commands is necessary. Over the years, lots of + different ways have been developed for including + bitmapped images in TeX documents. Since the development + of the bm2font program, most of these methods have + become obsolete. As a result, this section examines only + a few methods.

+ +
+
+
+

DVI driver {\ttbackslash + special}

+
+
+ +

The first method is DVI driver-specific: if your DVI + driver includes a \special command for including + bitmapped graphic images, you can simply use that + command. The disadvantage of using a DVI driver + \special is that it makes the document less portable. + Instead of being printable with any DVI driver, it now + requires a DVI driver that recognizes a particular + \special command. Note also that some DVI drivers do + not handle color images very well; you may need to + convert the image to black and white first. (Many + programs described in the “the section called + “Manipulating Images”” section + later in this chapter can perform this operation.)

+
+ +
+
+
+

bm2font

+
+
+ +

On most platforms, bm2font provides an + ideal solution for including bitmapped images. This + program translates bitmapped images into PK + fonts and produces a snippet of TeX code that can be + used to print the image in your document. Because most + DVI drivers can use PK fonts, a high degree of + portability is maintained. Some portability is still + lost since the bitmapped image has a fixed resolution, + but that is a consequence of using the bitmapped image, + not bm2font. All of the bitmap images in this + book were included with the bm2font program.

+ +

This book is a good example of an instance where + portability is required. I could easily have included + the graphics with the \special command of the DVI + driver that I use most frequently (dvihplj), but + then I couldn't have produced pages suitable for final + publication.

+ +

bm2font can read a number of common graphic + image formats including GIF, Windows + BMP, and PCX. + It can translate color images into black and white + using a number of dithering methods, and it + can scale the image to a specific size (although + scaling bitmap images is not usually very + effective).

+
+ +
+
+
+

pbmtopk

+
+
+ +

The pbmtopk program + provides a solution similar to bm2font. Because + pbmtopk is a smaller program, it may be + easier to port to other systems. The pbmtopk + distribution includes pktopbm, which can + translate PK files back into PBM + bitmaps.

+
+
+ +
+
+
+

Inserting PostScript Images into + TeX

+
+
+ +

If you are using Plain TeX or LaTeX and printing your + documents on a PostScript printer, there are + several (essentially equivalent) style files that you can + use to include your figures.

+ +

One is epsfig.sty, which can be + used as a LaTeX style option or be inserted directly into + Plain TeX documents with \input.[83] The + epsfig style option is supported by LaTeX2e as + well.

+ +

After the style file is loaded, you can use the macro + \epsfig to include your figure. The complete syntax for + \epsfig is:

+
+  \epsfig{figure=, height=, width=, rheight=, rwidth=, 
+          bbllx=, bblly=, bburx=, bbury=,
+          clip=, angle=, silent=}
+
+ +

In practice, only a few of these options are commonly + used. Here is a description of each:

+ +
+
+
figure=
+ +
+

Identifies the name of the file containing the + PostScript figure. This option is required.

+
+ +
height=, + width=
+ +
+

Specify the height and width of the figure. If + only one is specified, the other will be scaled + automatically to keep the proportions of the + original figure. If both are given, the figure will + be scaled (anamorphically) to the requested + size.

+
+ +
rheight=, + rwidth=
+ +
+

Provide the “reserved” height and + width of the figure. This is how big the TeX box + that encloses the figure will be. By default, the + box is as big as the figure.

+
+ +
bbllx=, bblly=, bburx=, + bbury=
+ +
+

Specify the bounding box of the + figure. If not specified (it usually isn't), the + bounding box is read from the PostScript + figure.

+
+ +
clip=
+ +
+

Indicates whether or not the figure should be + “clipped” at its bounding box. Clipping + prevents lines in the figure from extending beyond + the bounding box.

+
+ +
angle=
+ +
+

Allows you to specify that the figure should be + rotated. Always specify the angle of rotation in + degrees. The figure is always rotated + counter-clockwise.

+
+ +
silent=
+ +
+

Turns off informative messages printed by the + macros as the figure is processed.

+
+
+
+ +

The parameters to the \epsfig macro have to obey TeX's + strict parsing rules. In particular, you must not put + spaces around the equal sign in any option. The + clip= and silent= options have no + values, but you must include the equal sign anyway.

+ +

For example, Figure  + Figure 6.9 was inserted by \epsfig using the + following commands:

+
+\begin{figure}
+  \epsfig{figure=figs/sample.eps}
+  \caption{An example of an encapsulated figure.}
+  \label{fig.psfigure}
+\end{figure}
+
+ + +
+ + +

Figure 6.9. An example of + an encapsulated figure

+ +
+ +
+
+ +

Figure  + Figure 6.10 demonstrates a few of other + epsfig options:

+
+\begin{figure}
+  \epsfig{figure=figs/sample.eps,width=6cm,angle=45}
+  \caption{Another example of an encapsulated figure 
+           (resized and rotated)}
+  \label{fig.psfigurerot}
+\end{figure}
+
+ + +
+ + +

Figure 6.10. Another + example of an encapsulated figure (resized and + rotated)

+ +
+ +
+
+
+
+ +
+
+
+

Manipulating + Images

+
+
+ +

There are literally dozens of software packages + available for manipulating graphic images. The discussion + that follows focuses on a small handful of these programs. + The programs selected are representative of the kinds of + tools available, but this is by no means an endorsement + that these are the best tools. Table  + Table 6.1 summarizes the programs described in + this section.

+ +

If you cannot find any way of converting a particular + image, remember that you may be able to display the image + and capture it with another program that can save the image + in a more tractable format.

+ +
+ + +

Table 6.1. Graphics + Manipulation Packages

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Program\bf Platforms\bf Cost\bf Purpose
Image MagickunixFreeDisplay, manipulate, convert and + capture images
PBMplusAllFreeConvert and manipulate images
xvunixSW${}^1$Display, manipulate, convert and + capture images
xloadimageunixFreeDisplay images
Image AlchemyMS-DOS${}^2$SWConvert images
ColorViewMS-DOSSWConvert images
Jpeg4MS-DOSSWConvert images
pmjpegOS/2SWDisplay and convert images
txt2pcxMS-DOSSWTranslate text into graphic image + format
GhostscriptAllFreeConvert PostScript to other + formats
GoScriptMS-DOS\$\$${}^3$Convert PostScript to other + formats
hp2xxunixFreeConvert HPGL to other formats
\multicolumn{4}{l}{ ${}^1$\vrule + height11pt width0pt\tiny Shareware: “Try + before you buy,” but not free.}   
\multicolumn{4}{l}{ ${}^2$\tiny + Also available for Sun workstations; see + documentation.}   
+
+ +
+
+
+

Image Magick

+
+
+ +

Image Magick is a collection of eight + programs for manipulating images. These programs work + with MIFF files by default. MIFF is the + “machine-independent file format” developed + by the package's author. If you are going to manipulate + images with these tools, the author recommends converting + them to MIFF format first. The convert program + reads and writes a large number of image formats, so + conversion to and from MIFF format is + straightforward.

+ +

Image Magick requires the Independent JPEG + Group's JPEG library in order to + manipulate JPEG images. Similarly, Sam Leffler's + TIFF software library is required to manipulate TIFF + images. Both of these are compile-time options. If you + did not build Image Magick, you may not be able to + manipulate JPEG or TIFF images. To manipulate PostScript + images, Ghostscript must be available.

+ +

The programs described below are the Image + Magick tools that allow you to manipulate images in + ways that may be necessary or useful for creating + printable images. Other tools, like animate, + included in the Image Magick distribution, aren't + described here because they have no bearing on + printability.

+ +
+
+
display
+ +
+

This program allows you to preview images + on an X11 display. The number of colors in the + image is reduced to match the number of colors of + your display, if necessary. Program options allow + you to specify a variety of image-processing + operations on the image (noise reduction, scaling, + manipulation of the color map, etc.).

+ +

Conversion to MIFF format, as recommended above, + isn't necessary for simply displaying the + image.

+
+ +
import
+ +
+

This program allows you to capture visible + portions of an X11 display. You can capture any + visible window, the entire display, or any + rectangular portion of the display. import + can save the image in any format recognized by + convert.

+
+ +
convert
+ +
+

As the name implies, this utility converts images between + graphics formats. The following standard formats + are recognized:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MIFFBMPCMYKEPSFAXGIFIRISJPEGPICTPNM
PSRGBRLESUNTGATEXTTIFFXBMXWD 
+ +

Additionally, a few less-standard formats are + recognized. A complete list is available in the + manual page for convert.

+
+ +
combine
+ +
+

This program combines two images + by blending them together. The result varies + tremendously, depending on the kind of blending + used. Simple overlaps, various kinds of cutouts, + and more complex color blendings are possible.

+
+ +
montage
+ +
+

Unlike combine, montage combines multiple images by + tiling. (The images are + laid next to each other rather than on top of each + other.) Optionally, the image name can appear below + each tile.

+
+ +
mogrify
+ +
+

mogrify is used to + transform an image (or series of images). You can + specify alternate color maps in a variety of ways, + as well as dithering and error + correcting transformations. The images can also be + rolled, rotated, rescaled, and sheared. (Shearing transforms a rectangle into a + parallelogram by shifting the X or Y axis.)

+
+
+
+
+ +
+
+
+

PBMplus

+
+
+ +

The PBMplus package is a large collection + of image translation programs. This package was written + originally for unix, but has since been ported to MS-DOS + and OS/2.

+ +

PBMplus defines three file formats:

+ +
+
    +
  • +

    PBM---The Portable Bitmap format for black and + white images

    +
  • + +
  • +

    PGM---The Portable Graymap format for grayscaled + images

    +
  • + +
  • +

    PPM---The Portable Pixmap format for color + images

    +
  • +
+
+
+
+ +

Translation from one format to another is accomplished + by translating into the appropriate portable format + first, and then translating the portable bitmap into the + destination format.

+ +

The following image formats are supported by the + PBMPlus tools:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Abekas YUV bytesMGR bitmaps
Andrew Toolkit raster objectsMTV or PRT ray traced images
Atari Degas .pi1 imagesMacPaint files
Atari Degas .pi3 filesMacintosh PICT files
Atari Spectrum filesPCX files
AutoCAD slidesPostScript “images”
Bennet Yee “faces”QRT ray tracer files
CMU window manager bitmapsRaw grayscale bytes
Doodle brush filesRaw RGB bytes
FITS filesSun icons
GIF filesSun rasterfiles
Gould scanner filesTIFF images
Group 3 faxesTrueVision Targa files
HIPS filesUsenix FaceSaver(tm) images
HP PaintJet filesX10/X11 window dumps
IFF ILBM filesX11 pixmaps
IMG (GEM) imagesXBM files
Img-whatnot filesXim file
Lisp Machine bitmaps 
+ +

The PBMplus tools translate the image into the + appropriate portable format (PBM, PGM, or PPM) depending + on the nature of the image. Similarly, the tools can all + work with “lower” formats. (PPM tools can + work with PGM and PBM files, and PGM tools can work with + PBM files.) For example, there is no + “pbmtopcx,” however the + ppmtopcx tool will create a black and white + PCX file if you use a PBM file as the input. Once + converted into a portable format, the image can be + translated back into (almost) any of the supported + formats.

+ +

In addition to image conversion, the PBMPlus tools + include programs to perform a wide variety of image + manipulations.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Apply Conway's rules of lifeCreate a blank image
Create a mask bitmapReduce/enlarge an image
Convert text into a bitmapCreate a UPC bitmap
Bentleyize a greymapApply edge-detection
Apply edge-enhancementGenerate a histogram
Normalize contrastApply an “oil-painting” filter
Create a “ramp”Generate textural features
Perform bitwise arithmeticPerform MxN convolution
Crop an imageCut/Paste rectangles
Color-reduceFlip/rotate
Apply gamma-correctionBuild a visual index
Invert an imageAdd a border to an image
Scale an imageShear an image
Smooth an imageBuild a tiled image
Colorize a graymapDither color images
Create fractal terrainApply Laplacian-relief filter
+
+ +
+
+
+

xv

+
+
+ +

xv is an interactive image + viewing/converting tool that runs on X11 servers + (including MS-DOS implementations of X11 such as + Desqview/X).

+ +

You can view GIF, PBM, XBM, + Sun rasterfile, JPEG, and TIFF + images. You can save any image in one of those formats or + in encapsulated PostScript. In addition, you can capture + any visible portion of the X11 server window + interactively with xv.

+ +

Like most of the tools described here, xv + includes a number of image manipulation tools (cropping, + scaling, editing the color map, etc.). If you try to view + an image that is larger than your display, xv + automatically scales it to fit. I find that xv's + interactive nature makes it easier to use for image + manipulation than the command-driven tools.

+
+ +
+
+
+

xloadimage

+
+
+ +

The xloadimage program is + another X11 picture display tool. Like xv and + Image Magick's display, it has a number of + picture manipulation options (although they are not + interactive).

+ +

One advantage of xloadimage is that it does not + rescale images that are too large to fit within the + display. Instead, it places them in a scrollable window. + I find this behavior superior to xv's solution of + rescaling a very large image even though you are + interested only in a small section of it.

+
+ +
+
+
+

Image Alchemy

+
+
+ +

Image Alchemy is a shareware + tool for converting graphic images between various + formats. Although the manual mentions a version for Sun + workstations, I have only seen the MS-DOS version.

+ +

Note that the unregistered shareware version of this + program will only convert images which are 640$\times$480 + pixels or smaller.

+ +

The following is a list of the graphic formats + recognized by version 1.5 of Image Alchemy:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ADEXPCPAINT/Pictor Page Format
AutologicPCX
Binary Information Files (BIF)Portable BitMap (PBM)
Encapsulated PostScript (EPS)Q0
Erdas LAN/GISQDV
Freedom of the PressQRT
GEM VDI Image FileScodl
GIFSilicon Graphics Image
HP Printer Command Language (PCL)Stork
HP Raster Transfer Language (RTL)Sun Raster
HSI JPEGTIFF
HSI PaletteTarga
HSI RawUtah Raster Toolkit (RLE)
IFF/ILBMVivid
JPEG/JFIFWindows Bitmap (BMP)
Jovian VIWordPerfect Graphic File
Macintosh PICT/PICT2XBM
MTV Ray TracerXWD
+ +

Image Alchemy can also perform a number of + image manipulations like rescaling, cropping, and color + map changes.

+
+ +
+
+
+

ColorView

+
+
+ +

ColorView is a shareware MS-DOS program + for displaying and converting graphic images. Although + designed to work with VESA SuperVGA adapters, + ColorView can also work with plain VGA adapters. + It does require a 80286 or a more powerful processor.

+ +

ColorView can read JPEG, GIF (87 and + 89), BMP, and RLE + images. It can write GIF (87), 8-bit BMP, 24-bit BMP, + JPEG, and RLE images. It can perform image translation + without displaying the images, so a VGA or SuperVGA + adapter is not required for translation.

+
+ +
+
+
+

Jpeg4

+
+
+ +

This is the Independent JPEG Group's + JPEG Software. The compression tool can convert GIF, + PPM, and Targa (TGA) images into + JPEG format. The decompression tool + converts JPEG images into GIF, PPM (or PGM), + or Targa formats.

+
+ +
+
+
+

pmjpeg

+
+
+ +

The pmjpeg program is an OS/2 2.x program that + can read and display JPEG, TIFF, + Targa, GIF, PCX, + and Windows or OS/2 BMP images. In + addition, pmjpeg can write images in any of these + formats except Windows BMP. pmjpeg can also + capture all or part of the desktop. Some of the other + features of pmjpeg are color map editing, contrast + enhancement, image cropping, scaling, rotation, batch + translation of images into JPEG format, cyclic slideshow + presentations, and the ability to reduce an image to the + system palette colors.

+
+ +
+
+
+

txt2pcx

+
+
+ +

txt2pcx is a memory-resident MS-DOS utility + that captures text-mode screens as PCX graphic images. + See the discussion of screen capturing in the “the + section called “GoScript”” section + of this chapter for more information about why this is + sometimes desirable.

+
+ +
+
+
+

Ghostscript

+
+
+ +

Ghostscript is distributed by the Free Software + Foundation (FSF). It is one of the few freely + available programs that can convert PostScript images + into other formats.

+ +

Ghostscript is a (mostly) complete PostScript + interpreter. Converting an entire page of PostScript into + another format is straightforward with + Ghostscript. The following example converts the + PostScript file file.ps into a monochrome GIF + image called image1.gif:

+
+\$ gs -r300 -sDEVICE=gifmono -sOutputFile=image1.gif file.ps
+ 
+
+
+
+ +

The parameter -r300 indicates that + Ghostscript should generate output at a resolution + of 300dpi. This controls the size of the bitmap. If you + plan to print the resulting bitmap, you should specify + the same resolution as your printer. If file.ps + contains more than one page, you can use a <!-- + d in the output file's name to identify how multiple + pages --> should be handled. For example, if + file.ps contains three pages, the following + command will extract the first page into + image1.gif, the second page into + image2.gif, and the third page into + image3.gif:[84]

+
+\$ gs -r300 -sDEVICE=gifmono -sOutputFile=image\%d.gif file.ps
+ 
+
+ \vskip-\baselineskip
+
+ +

For incorporating images into TeX, it is more common + to convert an encapsulated PostScript (EPS) + image into a bitmapped format than it is to convert + entire pages. Encapsulated PostScript is described + earlier in this chapter in the section “the section called + “Using a Lot of Help”.” It is + slightly more difficult to convert encapsulated + PostScript because of the bounding box. To convert this + into a bitmap of exactly the right size, you have to tell + Ghostscript to move the image to the upper-left + corner of the page (where Ghostscript always + begins its conversion) and tell it how big the image is + in pixels.

+ +

The following steps are necessary to produce exactly + the right size bitmap of the encapsulated PostScript + figure:

+ +
+
    +
  1. +

    Find the size of the bounding box. Examine the + PostScript file using a text editor. Find the line + that begins with <!-- % BoundingBox: + --> followed by four numbers. Those numbers are + the lower-left x-coordinate (llx), the lower-left + y-coordinate (lly), the upper-right x-coordinate + (urx), and the upper-right y-coordinate (ury), + respectively.

    +
  2. + +
  3. +

    Create another file called trans.ps + that contains the single line:

    +
    +llx neg lly neg translate
    +
    +
  4. + +
  5. +

    Calculate the width of the bounding box: + $width_{bb} = urx - llx$.

    +
  6. + +
  7. +

    The width you have just calculated is the width + at 72dpi. To convert this to the resolution that + you will be using, multiply by the resolution and + divide by 72. For example, if you will be printing + at 300dpi and the width of the bounding box + $width_{bb}$ is 216, the width at 300dpi, width, is $(216 + \times 300) \div 72 = 900$.

    +
  8. + +
  9. +

    Calculate the corrected height in an analogous + manner using $height_{bb} = ury - lly$ as a + starting point. For example, if $height_{bb} = + 360$, the height you get at 300dpi is 1500.

    +
  10. + +
  11. +

    Finally, run Ghostscript using the -g parameter to + select the image size ($width \times height$). For + example, to translate the EPS file card.ps + into the GIF file card.gif at 300dpi + assuming the height and width calculated above, + run:

    +
    +\$ {gs -r300 -g900x1500 -sDEVICE=gifmono {\bs}
    +       -sOutputFile=card.gif trans.ps card.ps}
    + 
    +
    +
  12. +
+
+ +

The Perl script + shown in Example  + Example 6.8 automates this process.

+ +
+ + +

Example 6.8. Converting + Encapsulated PostScript to a Bitmap with + Ghostscript

+
+
+
+
+ +

The primary disadvantage of Ghostscript is that + the selection of free PostScript fonts is quite limited. + The only freely available fonts are: IBM Courier, + Bitstream Courier, Bitstream Charter, Adobe Utopia, URW + Antiqua, URW Grotesk Bold, Nimbus Roman No9, and Nimbus + Sans. Unless you have the PostScript sources for other + fonts used in your figures (PFA or PFB + and AFM files), Ghostscript will use + crude approximations of the desired font.

+
+ +
+
+
+

GoScript

+
+
+ +

GoScript is a commercial PostScript + interpreter sold by LaserGo, Inc. GoScript + is available for MS-DOS systems only. A special version + is available for Microsoft Windows.

+ +

The primary advantage of a commercial interpreter is + that it comes with more high-quality fonts. The + GoScript program comes with “clones” + of the 13 standard PostScript fonts:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Times RomanTimes Italic
Times BoldTimes Bold Italic
HelveticaHelvetica Oblique
Helvetica BoldHelvetica Bold Oblique
CourierCourier Oblique
Courier BoldCourier Bold Oblique
Symbol 
+ +

The GoScript Plus program includes clones of + all 35 standard fonts (the standard 13 plus AvantGarde, + Bookman, Helvetica-Narrow, New Century Schoolbook, + Palatino in four styles, Zapf Chancery Italic, and Zapf + Dingbats). For MS-DOS users, this program has the + additional advantage of being quite a bit faster than + Ghostscript.

+ +

Although GoScript can use any PostScript + Type 1 or Type 3 font, the fonts supplied with + GoScript are not in a standard PostScript format, + so they cannot be used with other applications.

+ +

On a 300dpi LaserJet printer, GoScript did not + seem to align the baseline of bitmapped PostScript fonts + with great accuracy. This is unfortunate, because the + Computer Modern fonts created with MetaFont for TeX are + bitmapped.

+
+ +
+
+
+

hp2xx

+
+
+ +

hp2xx converts scalable images in HPGL + into other formats. HPGL is Hewlett-Packard's command + language for controlling pen-based plotters. (HP's + LaserJet series of printers, starting with the LaserJet + III, also understand HPGL.)

+ +

Many computer-aided drafting packages can save + diagrams in HPGL format. Other software that works with + scalable images is likely to be able to save in HPGL + format as well. Because HPGL support is uncommon in + printers, you will probably have to convert HPGL diagrams + into another format to include them in your TeX + documents. hp2xx output comes in three flavors: + scalable graphics, TeX commands, and bitmapped + graphics.

+ +
+
+
Scalable graphics
+ +
+

The supported scalable graphics formats are + encapsulated PostScript and MetaFont source + code.

+
+ +
TeX commands
+ +
+

HPGL drawings composed of mostly straight lines + can be rendered in TeX. hp2xx's TeX output + is designed for either the emTeX DVI drivers (it + relies on \special commands to draw lines at + arbitrary angles) or the epic macros (which + also use \special commands that must be supported + by your DVI driver).

+
+ +
Bitmapped graphics
+ +
+

Bitmaps can be produced in PBM, PCX, or PCL (HP + LaserJet bitmap) formats. You can select image size + and resolution to produce a bitmap that will print + at the correct size for your printer.

+
+
+
+
+
+ +
+
+
+

Image Editors

+
+
+ +

Although many images are available on the Net and + commercially, it is very likely that you will want to + create your own pictures and diagrams for some of the + documents that you write. A few common drawing tools are + described below. Table Table 6.2 + summarizes the packages discussed here. There are many more + commercial packages for image editing---so many, in fact, + that I'm not going to make any effort to describe them + here.

+ +
+ + +

Table 6.2. Graphics Editing + Packages

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProgramPlatformsCostPurpose
xfigunixfreeEdit scalable Fig drawings
idrawunixfreeEdit encapsulated PostScript + images
tgifunixfreeEdit scalable drawings
pixmapunixfreeEdit X11 XBM and XPM files
texcadMS-DOSfreeEdit LaTeX picture + environments
xtexcadunixfreeAn X11 implementation of + texcad
+
+ +
+
+
+

xfig

+
+
+ +

xfig is an editing tool for scalable + images stored in the Fig format, described in the + “the section called + “The epic and eepic styles”” + section of this chapter. An example of a drawing being + constructed with xfig is shown in Figure  + Figure 6.11.

+ +
+ + +

Figure 6.11. Editing an + image with xfig

+ +
+ +
+
+ +

The objects in Fig are arcs, circles, open and closed + splines, ellipses, regular and irregular polygons, + polylines, boxes, arc-boxes (boxes with rounded corners), + text, and encapsulated PostScript. Compound objects can + be constructed by binding these objects together.

+ +

As a consequence of Fig's device independence, it can + be translated into a number of different output formats. + A completed Fig drawing can be rendered in PostScript, + PiCTeX, \linebreak

+ +

LaTeX's picture environment, MetaFont, or any + of the pic, epic, eepic, box, eepicemu and \special + environments. Figures can also be saved as X11 bitmaps. + Not all of the output formats support all of the features + of Fig. For example, arbitrarily sloped lines are not + supported by the LaTeX picture environment, and + encapsulated PostScript makes sense only for PostScript + output.

+ +

xfig supports rotation, flipping, scaling, and + duplication of objects. However, it imposes some + limitations on the figures that you create. Objects that + contain boxes, arc-boxes, circles, or ellipses can be + rotated only in 90 degree increments. Text objects cannot + be flipped over.

+ +

When objects are placed on the “canvas,” + you can elect to have xfig restrict their + placement to $\frac{1}{16}$, $\frac{1}{4}$, or + $\frac{1}{2}$-inch intervals. Restricted placement makes + alignment of a large number of objects easier. + Unrestricted placement is also allowed, and there is an + alignment operator that can center (vertically and + horizontally) any number of objects. A nonprinting grid + is available in several sizes, independent of the + restriction on object placement. In a similar way, + xfig can be instructed to draw sloped lines within + specific limits (for example, only allowing lines at + slopes supported by LaTeX's picture + environment). Precise numeric-coordinate placement of + individual objects is also supported.

+ +

xfig provides access to the standard 35 + PostScript fonts as well as the standard LaTeX fonts. + Eight-bit input, allowing access to international + symbols, is also provided.

+
+ +
+
+
+

idraw

+
+
+ +

idraw, the InterViews drawing editor, is + an X Windows application for editing encapsulated + PostScript figures. Figure  + Figure 6.12 shows a drawing constructed with + idraw.

+ +
+ + +

Figure 6.12. Editing an + image with idraw

+ +
+ +
+
+ +

The objects in idraw are lines, ellipses, open + and closed splines, irregular polygons, polylines, + rectangles, and text. Compound objects can be constructed + by gluing these objects together. Fonts, brushes, and + patterns can be customized and extended with X-defaults. + idraw supports the full complement of rotation, + flip, scale, and duplicate operations with or without + grid lines and optional gravity.

+ +

Unfortunately, the “gravity” option, which + allows you to create horizontally and vertically aligned + objects, is not preserved when a file is saved. It is + very difficult to recover the alignment of a file when it + has been saved and reloaded.

+ +

Graphics in TIFF, encapsulated PostScript, X11 bitmap + format, and Unidraw format can be imported into + idraw figures.

+
+ +
+
+
+

tgif

+
+
+ +

tgif, like xfig and idraw, + is an editor for scalable drawings. The + “gif\,” in tgif has nothing to do with + the bitmap GIF format. The captured screen in + Figure  + Figure 6.13 shows a drawing being constructed + with tgif.

+ +
+ + +

Figure 6.13. Editing an + image with tgif

+ +
+ +
+
+ +

tgif stores objects as a set of Prolog + “facts.” Several programs are provided for + interpretation of tgif objects outside of + tgif. Only four output types are built into + tgif: PostScript, encapsulated + PostScript (EPS), X11 bitmaps, and X11 + pixmaps.

+ +

tgif has a number of interesting features + including the ability to design hierarchical drawings in + either a “top down” or “bottom + up” manner, and the separation of an object's representation from its + instantiation. In + addition, arbitrary text-based attributes can be attached + to each object. tgif uses these attributes in a + number of ways, such as the execution of system commands + based upon object attributes.

+ +

The objects supported by tgif are arcs, + ellipses, rectangles, rounded-corner rectangles, + polylines, polygons, open and closed splines, text, X11 + bitmaps, some forms of X11 pixmaps, and encapsulated + PostScript. These objects can be grouped together.

+ +

tgif supports only five fonts (Times, Courier, + Helvetica, New Century Schoolbook, and Symbol) at a few + fixed sizes. The fill patterns, line styles, text-styles, + and other attributes are similarly fixed (although more + generous in number).

+
+ +
+
+
+

bitmap/pixmap

+
+
+ +

bitmap and pixmap are standard + tools distributed with the X11 Window System. The + pixmap tool provides a superset of the functions + in bitmap, including support for color images. An + example of the bitmap program editing a small X + icon is shown in Figure  + Figure 6.14.

+ +
+ + +

Figure 6.14. An example + of bitmap editing an icon

+ +
+ +
+
+
+ +
+
+
+

Other Bitmap Editors

+
+
+ +

Free or inexpensive bitmap editors are available for + almost every computer system. The selection of a + particular package depends in large part on what kinds of + diagrams you need to create.

+ +

The primary disadvantage of bitmap editing is that it + is difficult to create bitmaps large enough to be used at + printer resolution. Even a “full screen” + image on a high-resolution monitor is only a couple of + inches across (at best) on a laser printer.

+
+ +
+
+
+

texcad/xtexcad

+
+
+ +

texcad is an MS-DOS program (distributed + with emTeX) for editing LaTeX picture + environments. xtexcad is a similar + program that runs under the X11 Window system.

+ +

The LaTeX picture environment suffers from + two limitations: it can only draw relatively simple + diagrams, and it is very difficult to use. texcad + and xtexcad remove the second limitation. With one + of these programs, the LaTeX picture environment + becomes a viable option for many diagrams.

+
+
+ +
+
+
+

Screen Dumps

+
+
+ +

If you are writing a document that describes a computer + program, it is frequently desirable to include an image of + the running program (a captured screen or screen dump) in + the document. There are several ways that this can be + accomplished:

+ +
+
    +
  • +

    Screen Thief for MS-DOS

    +
  • + +
  • +

    GrabIt for Microsoft Windows

    +
  • + +
  • +

    xv, Image Magick, or xwd for + X11 workstations

    +
  • + +
  • +

    PM-Cam, Nikon II, or pmjpeg + for OS/2

    +
  • +
+
+ +

The captured screen may be in a graphics format that is + directly usable by your DVI driver or by bm2font. If + not, one or more of the conversion programs described in + “the section called + “Manipulating Images”” earlier in + this chapter will help you convert it into a usable + format.

+ +

The most common output devices for TeX are laser + printers with a resolution of 300dpi or higher. By + contrast, the resolution of a typical display is around + 80dpi. This discrepancy may require you to enlarge the + bitmap image to make it legible in your document. For + example, a 640x480 bitmap image is only about two inches + wide when printed at 300dpi. In color images, dithering, which + increases the number of dots used to represent each pixel + in the original image, has a natural enlarging effect on + the image, and this reduces the magnitude of the problem. + However, some scaling may still be necessary.

+ +

If the screen you want to include is only text (this + includes IBM's line-drawing characters and other symbols), + you can include it as a special “verbatim” + environment if you have an appropriate font. The advantages + of this method are that the actual screen text can be + incorporated directly into your document (making the + document more portable and easier to distribute, if that is + a concern), and that the resulting document is small and + easy to print. The disadvantage of this approach is that + information about color is lost. If parts of the on-screen + text appear in different colors for highlighting, using a + pure-text approach may not produce acceptable results. For + example, compare Figure Figure 6.15 + with the results in Figure  + Figure 2.2 in Chapter Chapter 2, + Chapter 2.

+ +
+ + +

Figure 6.15. A text mode + screen dump.

+ +
+

\screendump{metext}

+
+
+ +

To insert pure-text screen captures, you have to have a + font with exactly the same encoding as the text on the + screen (for more information about font encodings, see the + section “the section called + “Declaring a family”” in + Chapter Chapter 5, + Chapter 5). + On MS-DOS and OS/2 PCs, this is sometimes a problem because + the IBM line drawing characters do not appear in most + fonts. Several commercial fonts provide the appropriate + character set, but so do the freely available IBM Courier + fonts (distributed by IBM for the X11 Consortium). The IBM + Courier fonts are PostScript Type 1 fonts. If you need + TeX PK fonts, use the ps2pk program as + described in the section called “the + section called “Math Fonts in TeX”” + in Chapter Chapter 5.

+ +

To use the IBM Courier fonts to print captured screens, + you will need AFM files that have the + correct encoding vector. AFM files with the IBM + OEM character set encoding are available from the CTAN + archives in the directory fonts/courier.

+ +

After the appropriate font is available, you are almost + ready to reproduce a captured screen. One problem remains: + TeX cannot \input binary files. Because screen dumps + frequently contain characters from outside the normal ASCII + range, they must be considered binary in this context. To + overcome this difficulty, it is necessary to process the + screen dump and convert it into a text file. The + Perl script in Example Example D.8 + in Appendix Appendix D, + Appendix D, + will perform this conversion.

+ +

After conversion, the TeX code shown in Example  + Example 6.9 will insert the screen. This code will + work in both Plain TeX and LaTeX. Similar code can be + written for other formats. Figure Figure 6.15 + was produced with this code.

+ +
+ + +

Example 6.9. Script for + Inserting a Captured Text Screen

+
+
+
+
+
+ +
+
+
+ +
+

[79] {Some devices, most + notably plotters, don't work this way. They really draw + lines and curves with physical pens.}

+
+ +
+

[80] And probably any other + format derived from Plain TeX.

+
+ +
+

[81] {dvimsp has been + replaced by dvidot in the beta test + distributions.}

+
+ +
+

[82] {In fairness, the degree + of difficulty depends on the platform you work on. Some + systems, like the Amiga, have very good support for + PostScript output, even on non-PostScript devices. + Alternatively, if you have a fast computer, the extra + translation through Ghostscript may be quite + painless.}

+
+ +
+

[83] {The epsfig.sty + style relies on epsf.tex to provide + low-level support for including EPS images. The + epsf.tex file is part of the dvips + distribution.}

+
+ +
+

[84] {Under MS-DOS and OS/2, + remember that the command processor performs variable + substitution with the percent sign. Use two consecutive + percent signs.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch07.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch07.html new file mode 100644 index 00000000000..0b39091b781 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch07.html @@ -0,0 +1,2409 @@ + + + + + + + + + Chapter 7. International + Considerations + + + + + + + + + + + +
+
+
+

Chapter 7. International + Considerations

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Although the standard TeX macro packages and the Computer + Modern fonts were designed to typeset documents written + primarily in English, TeX enjoys widespread international + use.

+ +

From a technical standpoint, languages can be divided into + two categories: those that are “like English” + (meaning that they use a relatively small number of + characters and are typeset horizontally, left to right) and + those that are not. German, French, and Russian are all + “like English” in this sense. Hebrew, Chinese, + and Japanese are not (Hebrew is typeset right to + left, and Chinese and Japanese use thousands of + characters).[85]

+ +

This chapter explores some of the issues that arise when + TeX is used to typeset languages other than English. For + simplicity, we'll look at languages like English first, and + then describe some environments for typesetting much more + complex languages.

+ +
+
+
+

Typesetting in Any + Language

+
+
+ +

In order to typeset any language with TeX, three things + have to happen:

+ +
+
    +
  1. +

    TeX has to read the input file and perform the + correct mapping from the input file's character set + to its internal representation of each character. The + character set used in the input file will vary + depending upon the language. For instance, if you're + writing a document in French, it is as + natural to use “é” in your input file as + it is to use any other letter.

    +
  2. + +
  3. +

    TeX has to typeset the document according to the + rules of the language being used. Naturally, this + means that there must be some way of declaring what + language is being used, and appropriate macros have + to exist to embody the rules of that language. Users + familiar only with English may not recognize the + importance of language-specific rules because English + has so few rules. Other languages have many. In + German, for example, if the consonants + “ck” in a word are broken by a hyphen, + the “c” becomes a “k” + (“k-k”). In French, small + amounts of extra space are placed around various + punctuation marks.

    + +

    A good reference manual for internationalization + is {Software + Internationalization and Localization: An + Introduction} [eu:international].

    +
  4. + +
  5. +

    The DVI file that results from + typesetting the document must be printed correctly. + In other words, all of the accented characters and + symbols used by the language must be available (or + constructed) for previewing and printing.

    +
  6. +
+
+ +

Early attempts to write documents in languages other + than English were hampered by several limitations in the + TeX program. In particular, fonts were limited to 128 + characters, and only a single set of hyphenation patterns + could be loaded (effectively preventing multilingual + documents from being hyphenated correctly). These technical + problems were corrected in TeX version 3.x (first released + in 1990). The remaining difficulties---mostly a lack of + standardization and the need to develop relevant + language-specific macros---are being addressed by the TUG + Technical Working Group on Multiple Language Coordination + (TWGMLC).

+ +
+
+
+

Reading Input Files

+
+
+ +

The first point to consider when typesetting is that + every input file is written in some character set. For + example, because this book is written in English and I + work in the United States, the source code for this book + is written in 7-bit ASCII. If this book + were written in another language, a different character + set, perhaps ISO Latin1, would be more appropriate.

+ +

When TeX reads your input file, characters like + “é” and “\guillemet” have to be + translated into a form that TeX can use. For example, + “é” should be translated into é and, if the + DC fonts are in use, “\guillemet” should be + translated into character 19; otherwise, if the DC + fonts are not in use, + “\guillemet” should be translated into + $<<$ which will give the approximate + result. The DC fonts are discussed in the section called + “the section called + “Typesetting in Any Language”,” + later in this chapter.

+ +

It is always possible to access characters from + another symbol set by using a control sequence. + Table  + Table 7.1 shows the standard TeX control + sequences for accessing accented characters and + characters from other alphabets.[86]

+ +
+ + +

Table 7.1. Standard + Control Sequences for Symbols from Other Character + Sets

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Control \bf Control  
\bf Sequence\bf Symbol\bf Sequence\bf Symbol 
\`e\`e\oe\oe 
\'eé\ae\ae 
\"e\"e\o\o 
\u{e}\u{e}\aa\aa 
\.e\.e\l\l 
\t{ee}\t{ee}\OE\OE 
\d{e}\d{e}\AE\AE 
\H{e} + {\fontfamily{cmr}\selectfont\H{e}}\O\O 
\^e\^e\AA\char'302 
\v{e}\v{e}\L\L 
\=e\=e?`?` 
\&nbsp;e\ e!`!` 
\c{e}\c{e}\ss\ss 
\b{e}\b{e}   
+
+ +

Table  + Table 7.2 shows new control sequences proposed + by the TWGMLC for characters not available in standard + TeX and LaTeX distributions.[87]

+ +
+ + +

Table 7.2. New Control + Sequences Proposed by TWGMLC

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\multicolumn{2}{l|}{\bf Control + Sequences}\bf Symbols\bf Description
,,''\dcr\char18 \ \char16German quotations + ({\dcr\char18}G\"ansef\"u\ss{}chen{\dcr\char16})
French quotations + (guillemets)   
\dh\DH\dcr\char240 \ \char208Icelandic eth
\dj\DJ\dcr\char158 \ \char208Serbocroation dj
\ng\NG\dcr\char173 \ \char141Sami ng
\th\TH\dcr\char254 \ \char222Icelandic thorn
\k e \dcr\char166Polish ogonek subscript
\r u \dcr\char183Czech circle accent
\v{d}\V{D}\dcr\char164 \ \char132Czech d and D with ha\v{c}ek
\v{l}\V{l}\dcr\char169 \ \char137Slovakian l and L with ha\v{c}ek
\v{t}\V{T}\dcr\char180 \ \char148Czech t and T with ha\v{c}ek
+
+ +

The only technical problem associated with using + language-specific character sets in your input files is + that you must have some way of telling TeX to perform the + appropriate substitutions. One method is to use a special + style file like isolatin1.[88] This style uses + “active characters” to map the ISO Latin1 + input character set to TeX's representation. It could be + adapted to other character sets as well. Another + possibility is to rely on system-dependent extensions to + TeX. For example, emTeX provides extensive support for + “code pages,” which address this problem.

+ +

The only other problem created by using different + input character sets is one of compatibility. If you + write files using the ISO Latin1 character set and send + them to someone who uses a different character set, the + file will appear to be incorrect.[89]

+ +
+
+
+

Appearances can be + deceiving

+
+
+ +

A document stored on disk is really just a file + containing a series of characters, each represented by + a unique numerical value. For an editor to display a + document, each numerical value must be translated into + a visual representation of the character. Frequently + this translation is performed by the operating system + or computer hardware. In an analogous way, each numeric + value must be translated into a printable character + when the document is typeset.

+ +

Figure  + Figure 7.1 shows how this translation is + performed for display by the operating system and for + printing by TeX (using the isolatin1 style, + for example). This figure shows the disparity that + occurs if the two translation tables are not the + same.

+ +
+ + +

Figure 7.1. Character + mapping example

+
+FIXME:
+
+
+ +

How can this arise? Well, suppose, for example, that + a colleague is writing a document in French. + He has a TeXnical problem that he would like me to + investigate. I agree to take a look, and he sends the + file to me. My colleage is using the ISO Latin1 + character set in his input file because it contains + many symbols that are convenient for writing French + (including the guillemets). I receive the file and edit + it on my PC. The file that I see displayed looks like + gibberish. That's because I'm using the IBM OEM + encoding on my PC, which is sufficient for English. All + of the special characters in the ISO Latin1 character + set appear incorrect. Bewildered, I TeX and preview the + document to see what it's supposed to look like. To my + surprise, the previewed document looks fine.

+ +

In this case, I can correct the problem by changing + the “code page” used on my PC or by + translating the input file with a program like GNU + recode.[90]

+
+
+ +
+
+
+

Changing the Rules

+
+
+ +

In order to select languages, the TWGMLC has proposed + a set of language switching macros. These are shown in + Table  + Table 7.3.[91]

+ +

Selecting a language has three effects:

+ +
+
    +
  • +

    It establishes the correct hyphenation + environment.

    + +

    Language-specific hyphenation patterns are + loaded, if necessary, and correct values for the + minimum length of a hyphenated word fragment are + set.

    + +

    At the time of this writing, hyphenation + patterns are already available, or under + development, for Armenian, Bulgarian, Cambodian, + Catalan, Croation, Czech, Danish, Dutch, English + (U.K. and U.S.), Esperanto, Estonian, Finnish, + French, German, Greek (both modern and ancient), + Hungarian, Icelandic, Italian, Kirundi, Latin, + Lithuanian, Norwegian, Polish, Portuguese, Russian, + Slovak, Swahili, Swedish, Yiddish, and Yoruba.

    +
  • + +
  • +

    It loads the correct fonts and special + characters.

    + +

    Even languages which use the same alphabet may + have different fonts in order to + provide specific features of the language. For + example, the “fi” ligature makes sense only when + typesetting English, and the \th and \TH macros + make sense only when typesetting languages that + need “{\dcr\char254}” and + “{\dcr\char222}.”

    + +
    + + +

    Table 7.3. Language + Switch Macros Proposed by TUG

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Macro SwitchLanguageMacro SwitchLanguageMacro SwitchLanguageMacro SwitchLanguage
    ABAbkhazianFYFrisianMGMalagasySBSorbian
    OMAfan OromoGLGalicianMLMalayalamESSpanish
    FFAfarKAGeorgianMSMalaySUSudanese
    AFAfrikaansDEGermanMTMalteseSWSwahili
    SQAlbanianELGreekMIMaoriSVSwedish
    AMAmharicKLGreenlandicMRMarathiTLTagalog
    ARArabicGNGuaraniMOMoldavianTGTajik
    HYArmenianGUGujaratiNANauruTATamil
    ASAssameseHAHausaNENepaliTTTatar
    AYAymaraHEHebrewNONorwegianTETelugu
    AZAzerbaijaniHIHindiOCOccitanTYThai
    BABashkirHUHungarianOROriyaBOTibetan
    EUBasqueISIcelandicPSPashtoTITigrinya
    BNBengaliIDIndonesianFAPersianTOTonda
    DZBhutaniIAInterlinguaPLPolishTSTsonga
    BHBihariIEInterlinguePTPortugueseTRTurkish
    BIBislamaIUInuktitutPAPunjabiTKTurkmen
    BRBretonIKInupiakQUQuechuaTWTwi
    BGBulgarianGAIrishRMRhaeto-RomanGBU.K. English
    MYBurmeseITItalianRORomanianUSU.S. English
    BEByelorussianJAJapaneseRURussianUGUigur
    KMCambodianJWJavaneseSESamiUKUkrainian
    CACatalanKNKannadaSMSamoanURUrdu
    ZHChineseKSKashmiriSGSanghoUZUzbek
    COCorsicanKKKazakhGDScots GaelicVIVietnamese
    HRCroatianRWKinyarwandaSRSerbianVOVolapuk
    CSCzechKYKirghizSTSesothoCYWelsh
    DADanishRNKirundiTNSetswanaWOWolof
    NLDutchKOKoreanSNShonaXHXhosa
    EOEsperantoKUKurdishSDSindhiYIYiddish
    ETEstonianLOLaothianSISinghaleseYOYoruba
    FOFaroeseLVLatvianSSSiswatiZAZhuang
    FJFijiLNLingalaSKSlovakZUZulu
    FIFinnishLTLithuanianSLSlovenianFRFrench
    MKMacedonianSOSomali    
    +
    +
  • + +
  • +

    It defines special primitive operations, if + appropriate.

    + +

    For example, right-to-left typesetting + primitives are necessary only for languages like + Hebrew which are typeset + right-to-left.

    +
  • +
+
+
+ +
+
+
+

Printing the Result

+
+
+ +

The Computer Modern Fonts are insufficient + for typesetting languages other than English. In order to + overcome this difficulty, the TeX User's Group has + extended the Computer Modern encoding vector and + established a new standard.

+ +

The new standard fonts are known variously as the Cork + fonts, the DC fonts, and the EC + fonts. These are all synonymous. The new + standard was created following discussions at the TeX + User's Group meeting in Cork, Ireland in 1990, hence the + name Cork. The MetaFont fonts, which embody + this encoding, will eventually become the EC fonts. The + current versions, available now, are still being refined + (in the sense that some of the letter forms are being + refined; the encoding will not change). These are called + the DC fonts.

+ +

There is a distinction between the standard encoding + vector and the MetaFont fonts that replace Computer + Modern. Therefore, I will refer to the standard encoding + as the “Cork Encoding” and to the + MetaFont fonts as the “DC fonts”.[92]

+ +

At the time of this writing, the DC fonts are not a + complete superset of Computer Modern because the DC Math + fonts have not yet been released. (The DC fonts + will contain the upper-case Greek alphabet, which + is currently missing from the DC fonts.) When the DC Math + fonts are released, the DC fonts will be a complete + superset of Computer Modern. The only apparent difference + will be that the accents on the DC fonts are not at + exactly the same height as the accented characters + constructed with the \accent primitive using Computer + Modern.[93]

+ +

The Cork Encoding is shown in Table Table B.3 + in Appendix Appendix B, + Appendix B. + There are 255 symbols in this vector with one blank for + special purposes. Unlike the Computer Modern fonts, which + have different encoding vectors in some typefaces + (Computer Modern Roman is not the same as Computer Modern + Typewriter, for example), all of the DC fonts have the + same encoding vector.

+ +

Several people have commented that the Cork Encoding + suffers from a “design error” because it + places characters in positions 0-31, which are frequently + inaccessible in other applications, and because it places + a nonstandard character at position 32, where a space + usually occurs. This is not a design error. Bear in mind + that the DC fonts are designed to be TeX output fonts. + Font creators, working in other environments (for + example, TrueType or PostScript) are free to divide the + Cork Encoding into two separate font files and provide a + virtual font for TeX that establishes the correct + encoding. The motivation for putting as many symbols as + possible in a single font is that TeX cannot kern + across fonts.

+ +

This is not meant to imply that the DC fonts should + always be virtual. In fact, the DC fonts should be + the “real” fonts upon which virtual fonts are + based. A virtual Computer Modern font based upon the real + DC fonts is infinitely preferable to a virtual DC font + built on Computer Modern because:

+ +
+
    +
  • +

    You need a “real” font to make + virtual fonts, and the Computer Modern fonts don't + contain enough real + characters.

    +
  • + +
  • +

    Expressing accented characters in MetaFont is + much better than building accents inside a virtual + font. The virtual font has less information to work + with (it has only boxes).

    +
  • + +
  • +

    Different languages use accents at different + heights. A simple “patch” to the + MetaFont code for a real font with accents is far + superior to introducing another set of virtual + fonts for every language.

    +
  • +
+
+ +

From a purely practical point of view, the correct way + to deal with these and related problems is to use the + babel style files.

+
+
+ +
+
+
+

The Babel Styles

+
+
+ +

The babel styles are a collection of style files for + LaTeX that provide features for typesetting in many + languages. The babel styles are compatible with Plain TeX + and all versions of LaTeX. (In particular, they are being + adopted as the standard multilingual styles in LaTeX2e and + will be the standard in LaTeX3 when it is released.)

+ +

To date, babel styles exist for Catalan, Croatian, + Cyrillic, Czech, Danish, Dutch, English, Esperanto, + Finnish, French, Galician, German, Italian, Hungarian, + Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, + Slovenian, Spanish, Swedish, and Turkish, as well as + several dialects (American as a dialect of English, for + example).

+ +

Example  + Example 7.1 shows the skeletal structure of a + document using the English and French styles. Within the + document, the \selectlanguage control sequence is used to + switch between languages.[94] The + language that is in effect by default is determined when + the format file is created.

+ +
+ + +

Example 7.1. {A Sample + Multilingual Document Using English and French}

+
+\documentstyle[english,francais]{article}
+\begin{document}
+This is a document which uses both English and 
+French. \selectlanguage{french} Mais, je ne parle plus 
+fran\c{c}ais. \selectlanguage{english}  So I won't try 
+to make this example very long.
+\end{document}
+
+
+ +

Selecting a language automatically has the following + effects:

+ +
+
    +
  • +

    It selects hyphenation patterns for the + language. This means that paragraphs of text will be + hyphenated according to the conventions of the + language in use.[95] + Switching hyphenation patterns is possible only if + the format file being used by TeX contains + hyphenation rules for language.

    +
  • + +
  • +

    It automatically translates the names of all the + document elements into the selected language. For + example, if you insert the \tableofcontents when + French is the selected language, the + table of contents will be called the “Table des + mati\`eres” instead of “Table of + Contents.”

    +
  • + +
  • +

    It alters the format of the date produced by the + \today macro to fit the conventions of the selected + language. In American, \today is “January 30, + 1994”; in English it is “30th January + 1994”; and in French it is “30 janvier + 1994.”

    +
  • + +
  • +

    It defines particular typing shortcuts to make + writing the selected language more convenient for the + typist. For example, the French style makes + several punctuation characters into macros so that + extra space is automatically inserted before them + according to French typographic conventions.

    +
  • +
+
+ +
+
+
+

Building Multilingual Babel + Formats

+
+
+ +

Building a multilingual format file is very much like + building a format for a single language. The only + difference is that instead of loading a single set of + hyphenation patterns (generally from a file called + hyphen.tex), you will need hyphenation patterns + for each language that you want to use. These can be + obtained from the CTAN archives in the directory + tex-archive/language/hyphenation.

+ +

If you have a file called hyphen.tex on your + system, rename it. This file is distributed as part of + the standard TeX distribution and contains American + English hyphenation patterns, so ushyphen.tex is + an appropriate name.

+ +

Next, create a file called language.dat that + contains one line for each language you want to use. Each + line should list the language name and the file + containing hyphenation patterns for that language. For + example, an appropriate language.dat file for + the format used to typeset Example  + Example 7.1 might contain these lines:

+
+english ehyphen.tex
+francais fr8hyph.tex
+
+ +

Now, proceed to construct the format file using + iniTeX according to the instructions + distributed with the format or by following the + suggestions in Chapter Chapter 4, + Chapter 4. + When iniTeX complains that it cannot find + hyphen.tex, provide the alternate name + babel.hyphen. This will use + language.dat to load the appropriate hyphenation + patterns and associate them with the languages you + specified.

+ +
+

Note

+ +

The first language that you list in + language.dat will be the default language for + the format file that you create.

+
+
+
+ +
+
+
+

TeX + Pitfalls

+
+
+ +

TeX 3.x, the Cork Encoding, and + language-specific macro files are not “magic + bullets” that can solve all of the problems that + arise in typesetting multilingual documents or writing + macros that are useful in all language contexts. Some of + the deficiencies are really insoluble without changing the + TeX program in ways that are not allowed by Knuth. Two such + problems are mentioned here:

+ +
+
    +
  • +

    The \uppercase and \lowercase primitives are + problematic.

    + +

    There is a strict one-to-one mapping between + lowercase and uppercase letters in TeX. + Unfortunately, accented letters may require different + mappings. Consider these examples:

    +
    +<para>        \begin{tabular}{lll}
    +          <literal>\"I with two dots</literal> & \"I with two dots & What you typed \\
    +          <literal>\"i with two dots</literal> & \"i with two dots & Result of \lowercase \\
    +          <literal>\"\i with two dots</literal> & \"\i with two dots & Correct lowercase
    +        \end{tabular}
    +
    + +

    Because no information about the accent is known, + the result of passing your text to the \lowercase + primitive is not correct.

    + +

    This problem can be minimized by using an input + character set which contains the accented letters + that you need. This allows you to establish the + appropriate one-to-one relationships.

    + +

    Some of the characters chosen for the Cork + encoding were driven by this weakness as well. The + only reason that “{\dcr\char"DF}” is a + glyph is so that it can be the \uppercase character + for “{\dcr\char"FF}.”

    + +

    TeX doesn't distinguish between a dash used in a + compound word (for example, + “wish-fulfillment”) and a dash used for + hyphenation.

    + +

    This distinction isn't necessary in English + because English doesn't have any end-of-word + ligatures. Imagine a language where + “sh” should become “x” at the + end of a word.[96] + A compound word like “push-ready” should + be typeset “pux-ready” whereas a word + like “pushover” should remain + “push-over” if it is hyphenated across a + line break.

    +
  • +
+
+
+ +
+
+
+

Very Complex Languages

+
+
+ +

The following sections describe TeX packages + (collections of macros, fonts, and other files) that allow + you to typeset languages very different from English.

+ +
+
+
+

Japanese

+
+
+ +

Typesetting Japanese involves solving + several problems. The first is the task of entering + Japanese text with an editor. There are many editors on + many platforms that can handle Japanese input. Although + there are also established ways to romanize Japanese text + so that it can be displayed on terminals that do not + provide support for Japanese input, these are bound to be + inconvenient for anyone seriously writing in Japanese. If + you are in a position to edit Japanese text, you are + probably already aware of several good editors.

+ +

The second problem is that typesetting Japanese with + TeX requires many, many fonts. The fact that a single + font can hold no more than 256 symbols means that dozens + (perhaps hundreds) of fonts are required to represent all + of the myriad symbols used in everyday Japanese writing. + There are some hard-coded limits on the number of fonts + that a single TeX document can use, and it is possible to + bump into them pretty quickly when typesetting a language + like Japanese.

+ +

Another problem is printing the output. Assembling a + collection of fonts that contain high-quality glyphs for + all of the necessary characters is a time consuming and + potentially expensive task. At present, the + freely-available fonts are of relatively low quality.

+ +

A complete discussion of these issues, and many others + can be found in Understanding + Japanese Information Processing [kl:japinfoproc].

+ +
+
+
+

ASCII Nihongo TeX

+
+
+ +

ASCII Nihongo TeX (also known as + \jtex) is a complete, Japanized version + of TeX. Instead of trying to shoehorn Japanese into + traditional TeX programs, all of the programs have been + modified to accept files containing standard Japanese + text (two bytes per character). This section describes + the ASCII Corporation's version of + \jtex. See the section called “the + section called “NTT \jtex”” for + information about NTT's version of \jtex. You can get + the ASCII version of \jtex from + ftp.ascii.co.jp (133.152.1.1).

+ +

ASCII Nihongo TeX is based on TeX 2.9 and can read + input files coded with JIS, Shift-JIS, EUC, and KUTEN. + The DVI files produced by ASCII \jtex are not + standard DVI files. In order to support the + large character set for Japanese writing, the + DVI files use commands that are not output by + standard TeX, so many drivers do not support them. You + cannot process DVI files produced by ASCII + \jtex with most standard DVI drivers.

+ +

Release notes with version 1.7 of \jtex indicate + that it will be the last public release of \jtex. + Another product, called pTeX (for Publishing TeX) may + be released at some time in the future. One advantage + of pTeX will be the ability to typeset vertically.

+ +

The primary disadvantage of the \jtex system is that + there are no freely-available fonts for it. The authors + assume that you will be using fonts resident in your + printer. You may be able to purchase Japanese fonts + from some font vendors, although I've seen no detailed + instructions for using them with \jtex. Other, albeit + more minor, disadvantages are the need to build and + maintain an entire parallel TeX distribution and the + fact that standard DVI drivers cannot process + \jtex DVI files.

+
+ +
+
+
+

NTT \jtex

+
+
+ +

\jtex\index{NTT jtex@NTT \jtex} is a complete, + Japanized version of TeX. Instead of trying to shoehorn + Japanese into traditional TeX programs, all of the + programs have been modified to accept files containing + standard Japanese text (two bytes per character). This + section describes NTT's version of \jtex. See the + section called “the section called “TeX + Pitfalls”” for information about ASCII + Corporation's version of \jtex. You can get the NTT + version of \jtex from ftp.math.metro-u.ac.jp + (133.86.76.25)

+ +

NTT \jtex is based on TeX 3.14 and can read input + files coded with JIS, Shift-JIS, and EUC. In addition + to support for commercial Japanese fonts, NTT \jtex + includes a set of fonts generated from 24x24 dot + bitmaps (JIS C-6234). Unlike ASCII \jtex, NTT produces + standard DVI files.

+
+ +
+
+
+

Poor Man's Japanese TeX

+
+
+ +

Poor Man's Japanese TeX (\,\pmj) + is a freely-available Japanese typesetting system that + sits on top of standard TeX. The Japanese sections of + the input file must use the Shift-JIS encoding; a + conversion program is supplied to convert JIS encoded + input files into Shift-JIS. If you use another + encoding, such as EUC, you will have + to find some way to convert it into Shift-JIS before + you can use \pmj.

+ +

\pmj solves the font problem in a clever way: + MetaFont outlines for Japanese characters are + mechanically produced from freely-available bitmaps. + This results in relatively low quality characters, but + at least they're free!

+ +

The Paulownia Court, the opening passage from the + 800-year-old novel The Tale + of the Genji, is shown in Figure Figure 7.2. + This sample was typeset by \pmj.

+ +
+ + +

Figure 7.2. Poor Man's + Japanese

+ +
+ +
+
+ +

The \pmj documentation lists the following + advantages and disadvantages:

+ +

\pmj Advantages

+ +
+
    +
  • +

    It is available now.

    +
  • + +
  • +

    It is free.

    +
  • + +
  • +

    It works with standard TeX.

    +
  • + +
  • +

    It is device independent, but has relatively + poor quality fonts. The relative lack of quality + is magnified by higher resolution output devices, + unfortunately.

    +
  • + +
  • +

    It uses a set of free fonts mechanically + produced from bitmaps.

    +
  • +
+
+ +

\pmj Disadvantages

+ +
+
    +
  • +

    It is somewhat crude and unlikely to be + improved upon to any great extent.

    +
  • + +
  • +

    It uses low quality fonts.

    +
  • + +
  • +

    It requires a large number of fonts and as a + result, lots of disk space.

    +
  • + +
  • +

    It provides no access to slanted, bold, or + other Japanese type-styles.

    +
  • + +
  • +

    It cannot typeset vertically.

    +
  • + +
  • +

    It may take days to build the required + fonts.

    +
  • +
+
+
+ +
+
+
+

\jemtex

+
+
+ +

\jemtex is a lot like + \pmj; it uses fonts constructed from a collection of + 24x24 dot bitmaps. The \jemtex font maker includes a + number of options for tailoring the appearance of the + characters.

+ +

A sample of Japanese typeset with \jemtex is shown + in Figure Figure 7.3.

+ +
+ + +

Figure 7.3. \jemtex + sample

+ +
+ +
+
+ +

\jemtex takes a very different approach to + processing Japanese text. Instead of providing TeX + macros to interpret two-byte Japanese symbols in the + input file, \jemtex provides a preprocessor which + translates the Japanese input into equivalent TeX + input. The preprocessor understands EUC + and Shift-JIS input files.

+ +

Using a preprocessor has several advantages:

+ +
+
    +
  • +

    TeX can process the files very quickly. + Because the input files are not edited by hand, + they are designed to be processed quickly by TeX + rather than by human eyes.

    +
  • + +
  • +

    Only the fonts that are actually used must be + loaded. A system like \pmj must load all of the + Japanese fonts because it does not know which + ones will actually be used. \jemtex knows exactly + which fonts are required for each document.

    +
  • + +
  • +

    The preprocessor can handle subtle spacing + issues automatically.

    +
  • + +
  • +

    The preprocessor can provide discretionary + hyphens for TeX, thereby allowing TeX to + hyphenate Japanese correctly.

    +
  • +
+
+
+
+ +
+
+
+

Chinese

+
+
+ +

The general problems that apply to Japanese + typesetting also apply to Chinese.

+ +
+
+
+

Poor Man's Chinese TeX

+
+
+ +

Poor Man's Chinese TeX (\pmc) + is closely + related to \pmj. The Chinese input files should be + encoded with 8-bit GB encoding (GB 2312-80). If you use + another encoding, you will have to convert it into the + 8-bit GB encoding before you can use \pmc.

+ +

The \pmc package uses the same technique as \pmj to + construct Chinese fonts. The relative advantages and + disadvantages of \pmj apply equally to \pmc.

+ +

Two sets of Chinese characters are available: + traditional and simplified.

+
+
+ +
+
+
+

Arabic

+
+
+ +

Typesetting in Arabic can be + accomplished with the \arabTeX package. \arabTeX + includes a complete set of fonts and macros for producing + documents in Persian, Arabic, and related scripts. An + example of Arabic is shown in Figure  + Figure 7.4 on page  + Figure 7.4.

+ +
+ + +

Figure 7.4. Arabic text + typeset with ArabTeX

+ +
+ +
+
+
+ +
+
+
+

Hebrew

+
+
+ +

Typesetting left-to-right Hebrew (or occasional + Hebrew words in an English document) is relatively easy. + The required fonts and TeX macros are available from + \path|noa.huji.ac.il| and on the CTAN archives in + language/hebrew.[97]

+ +

Typesetting right-to-left Hebrew is more complicated. + First, you will need an editor that handles right-to-left + text entry, preferably one that displays Hebrew text.

+ +

After you have constructed a document that uses + right-to-left Hebrew, you will need a special version of + TeX, called \XeT, to process it. \XeT is a version + of TeX that understands right-to-left typesetting.

+ +

Early versions of \XeT, called TeX-\XeT, + produced nonstandard DVI files called + IVD files. If you use TeX-\XeT, a special + program called ivd2dvi must be used to + translate the IVD files into DVI files + before they can be printed. More recently, \XeT has been + reimplemented to produce standard DVI files. The + new version is called TeX\hbox{-{}-}\XeT.[98] They are functionally + identical. You can get unix and PC versions of \XeT from + \path|noa.huji.ac.il|. An example of Hebrew is shown in + Figure Figure 7.5 + on page Figure 7.5.

+ +
+ + +

+ Figure 7.5. Hebrew

+ +
+ +
+
+
+
+ +
+
+
+ +
+

[85] {Chinese and Japanese are + also typeset vertically. At present, TeX does not support + vertical typesetting, although there is at least one + effort underway to provide that feature. See the section + called “the section called “TeX + Pitfalls”” for more information on + vertical typesetting.}

+
+ +
+

[86] {The accent macros are + shown with a lower case e; naturally, any letter that + needs to be accented can be used in place of the e.}

+
+ +
+

[87] {These characters are + available in the DC fonts and were not previously + available in standard TeX.}

+
+ +
+

[88] {isolatin1.sty + is available from the CTAN archives in + macros/latex/contrib/misc/.}

+
+ +
+

[89] {If you use electronic + mail to send files that use any characters other than the + printable subset of 7-bit ASCII (space through tilde), + you are bound to run into problems. You can combat this + problem by using a wrapper (like uuencoding or MIME + messages) when you send the mail, but those tools are + outside the scope of this book. Ask your system + administrator for more assistance with sending binary + mail.}

+
+ +
+

[90] {recode is + available from prep.ai.mit.edu and other places + where GNU software is archived.}

+
+ +
+

[91] {These are + “low-level” macros. A higher-level interface + will be provided for each language. See the section + called “the section called “The + Babel Styles”” later in this chapter for + more information.}

+
+ +
+

[92] {Because the “EC + fonts” don't exist yet, I won't mention them + again.}

+
+ +
+

[93] {Actually, the issue of + accents is a difficult one. Different languages which + have the same letters do not always place accents at the + same height. This is yet another problem that will have + to be resolved.}

+
+ +
+

[94] {Another control + sequence, \ iflanguage, is provided so that you + can write macros which are sensitive to the language in + use when they are expanded.}

+
+ +
+

[95] {Paragraphs that contain + multiple languages will be hyphenated according to the + rules of the language in effect when the paragraph + ends.}

+
+ +
+

[96] {This is a concocted + example; to my knowledge, it doesn't actually appear in + any language.}

+
+ +
+

[97] {At the time of this + writing, the material at \path|noa.huji.ac.il| is more + up-to-date than the material in the CTAN archives.}

+
+ +
+

[98] {Yes, the only difference + between the names really is the number of hyphens!}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch08.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch08.html new file mode 100644 index 00000000000..8144b2cb503 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch08.html @@ -0,0 +1,2376 @@ + + + + + + + + + Chapter 8. Printing + + + + + + + + + + + +
+
+
+

Chapter 8. Printing

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

The emphasis in this book so far has + been on getting TeX to process a document that contains all + the desired typographic elements without error. The result of + this effort is a DVI file.

+ +

The next step is translating the DVI file into a + printed document. That is the focus of this chapter. + Usually, you want to preview a document before you print it, + but in many ways previewers are just a special kind of + printer. The two do differ significantly, however, so we will + discuss them separately. (Chapter Chapter 9, + Chapter 9, + describes previewers.)

+ +

This chapter explores the issues related to printing a DVI + file. There are sections concerning the printing of fonts, + the printing of pictures and figures, and descriptions of + several kinds of drivers you can use to print TeX + documents.

+ +
+
+
+

Printing + Fonts

+
+
+ +

If you have a TFM file for a font, you + can use that font in TeX. In fact, you can use that font at + an arbitrary magnification in TeX, which means that you can + use Courier at 13.4pt as easily as Computer Modern Roman at + 10pt. Unfortunately, this ease of use does not imply that + the resulting DVI file will be easy to print. It + doesn't even imply that it will be possible to print the + document. For example, if you request Courier at 13.4pt, + but it is available in your printer only at 10pt and 12pt + (and you have no other source for Courier), there is no way + to print your document without distortion.

+ +

This section discusses the issues involved in getting + the desired fonts to print from your DVI file. Both + bitmapped and scalable fonts are considered, as well as + fonts built into the printer. You will also gain a better + understanding of why some documents do not print, and learn + alternatives that may enable you to print your + documents.

+ +

Every font can be classified in two broad, independent + ways: internal versus external, and scalable versus + bitmapped. Each class of fonts has some advantages and some + unique problems. In general, there are more restrictions on + built-in fonts than on external fonts, and more + restrictions on bitmapped fonts than on scalable fonts.

+ +
+
+
+

Built-in Fonts

+
+
+ +

Built-in fonts, whether scalable or bitmapped, + pose two problems. First, you must obtain the appropriate + TFM files. Usually, the metric information + has to be supplied by the vendor and then translated into + TeX TFM format using a conversion tool. No + vendor that I am aware of distributes TeX metric + information directly. The section called “the section called + “Expressing Design Size in TeX”” in + Chapter Chapter 5, + Chapter 5, + describes several options for obtaining metric + information for built-in fonts.

+ +

The second problem is that the DVI driver you are + using must “know” somehow that the + TFM file corresponds to one of the printer's + internal fonts. When the DVI driver examines the + DVI file, the only information available about + each font is the name of the TFM file that + describes its metrics. The most common way DVI drivers + handle this problem is with a font translation file or a + font substitution file.

+ +
+
+
+

Font substitution in + emTeX

+
+
+ +

emTeX's DVI driver reads a user-specified font + substitution file before processing the + DVI file. A line like the following in the + font substitution file informs the dvihplj + driver that lpr1610u is an internal font and + describes the LaserJet control sequence required to + select it:

+ +
+
+

+ lpr1610u 300 => pcl: 10U s0P s16.66H s8.5V s0S s0B s0T

+
+
+ +

Other substitutions are also possible. For example, + if you work with documents that come from other systems + that allow long filenames, you can substitute the long + names for shorter filenames that are legal under + MS-DOS. The following line in a font substitution file + tells emTeX that the font “tmsrmn” + should be used anywhere that a DVI file uses + the font “Times-Roman”:

+ +
+
+

Times-Roman -> tmsrmn

+
+
+ +

You can use even more sophisticated substitutions, + including pattern matching, for example. Consult The {emTeX} DVI Driver + Manual [em:dvidrv] for more + information.

+
+ +
+
+
+

Font substitution in + \dvips

+
+
+ +

The dvips program, which translates + DVI files into PostScript, also reads a font + substitution file before processing a DVI + file. In addition to identifying which fonts are built + into the printer, the substitution file can also + instruct dvips to download PostScript fonts that + are not resident in your printer if they are used in a + document.

+ +

dvips has a system-wide font substitution + file called psfonts.map. This file is + distributed with dvips and can be customized by + your system administrator. You can tell dvips to + load a personal font substitution file by using the + p command in + dvips's initialization file (called + .dvipsrc in your home directory on unix + systems). Consult the dvips documentation for + more information about setting up an initialization + file.

+ +

The following lines in a font substitution file + indicate that the font grbk (which is the name + of the TFM file) corresponds to the built-in + printer font Garamond-Book. The TFM file + hlvcd corresponds to the printer font + Helvetica-Condensed. Helvetica-Condensed is not built + into the printer but is stored in the file + /home/walsh/fonts/helvcd.pfb. If + hlvcd is used in a document, dvips will + download helvcd.pfb automatically when it + converts the document.

+
+grbk   Garamond-Book
+hlvcd  Helvetica-Condensed </home/walsh/fonts/helvcd.pfb
+
+
+ +
+
+
+

Font substitution in other + drivers

+
+
+ +

Other DVI drivers, particularly those written for + operating environments like Microsoft Windows that + provide a standard interface to printers, may leave the + distinction between built-in and external fonts up to + the operating environment. If this is the case, you + must use the tools provided by the operating system to + support the printers and fonts that you require.

+ +

If your DVI driver does use a font substitution + file, make sure that the translations specified + actually exist. The DVI driver cannot practically + determine if the font you have specified as built into + the printer really exists or not. If it doesn't, you + won't get the output you expect, and the DVI driver + will not be able to diagnose the problem.

+ +

The most significant disadvantage of using built-in + fonts is that they are not usually available for + on-screen previewing of your document. Some form of + font substitution has to be employed to preview a + document. Sometimes this reduces the utility of + on-screen previewing. Chapter Chapter 9, + Chapter 9, + discusses this issue in more detail.

+
+
+ +
+
+
+

External Fonts

+
+
+ +

External fonts, those that aren't built into the + printer, pose a different set of problems. First, they + have to be available to the DVI driver, and they have to + be represented in a manner that the DVI driver + understands. For the vast majority of DVI drivers, this + means that the fonts must be stored in files on your hard + disk in PK format. The PK + files contain a compressed, bitmapped rendering of the + font at a particular resolution. For more information + about PK files and other bitmapped-font issues, + see “the section called “Built-in + Fonts”” later in this chapter.

+ +

Most DVI drivers locate fonts by searching in the + directories contained in an environment variable or in + some system-dependent locations.

+ +

Once the fonts are available, the DVI driver has two + options for using them: it can download them to the + printer, or it can send them as bitmapped graphic images. + Most laser printers can accept downloadable fonts, + although they may require additional memory to accept + large numbers of fonts. In either case, the printable + files are generally larger and print more slowly than + documents that use the printer's built-in fonts. Of + course, using external fonts does give you far more + flexibility than using only built-in fonts.

+ +

Unlike a missing internal font, if you attempt to use + an external font that is not available, your DVI driver + will be able to detect the problem and may be able to + substitute another font or compensate in some other + way.

+ + +
+ +
+
+
+

Bitmapped Fonts

+
+
+ +

Each character in a bitmapped font is represented by a + rectangular array of dots. Some of the dots in this array + are “on,” and some are “off.” + When the dots are printed very close together, they + provide the illusion of a solid character. Bitmapped + fonts are common in the TeX community because all of the + fonts created by MetaFont are printed in bitmapped + form.

+ +

The notion of magnification discussed in the section + called “the section called + “What TeX Needs To Know”” in + Chapter Chapter 5 is + interpreted as an issue of resolution when dealing with + bitmapped fonts.

+ +

Resolution is used in a slightly + counter-intuitive way by DVI drivers. Generally, + resolution is described as a feature of a device that + affects the appearance of images + printed on that device and not their size. For example, in + comparing two drawings in which one was printed on 150dpi + dot-matrix printer and the other was printed on a 300dpi + laser printer, I might say, “the laser printed page + looks better because it was printed at a higher + resolution.”

+ +

That's true, but what isn't usually stated explicitly + is that the comparison is between a 150dpi drawing + rendered at 150dpi and a 300dpi drawing rendered at + 300dpi. This is the situation shown in Figure  + Figure 8.1 where a 4dpi image is printed at 4dpi + next to an 8dpi image printed at 8dpi.

+ +
+ + +

Figure 8.1. Resolution of + the bitmap and the device changed + simultaneously

+
+    \input{ft-resch.fig}
+
+
+ +

What if the resolution of the printer were held + constant? That's the situation shown in Figure  + Figure 8.2. The 4dpi image printed at 4dpi is + shown next to the 8dpi image printed at 4dpi. The result + is that the size of the image is doubled.

+ +
+ + +

Figure 8.2. Resolution of + the bitmap changed while device held constant

+
+    \input{ft-sizch.fig}
+
+
+ +

This is the technique that DVI drivers use to print a + larger magnification of the same font; they print a + version of the font designed for a correspondingly + higher-resolution device. The same technique is used to + print at smaller magnifications.

+ +

Most DVI drivers use bitmapped fonts stored in + PK files. The PK format is a highly + compressed binary format.[99] Two + other bitmapped font formats (sometimes accepted by DVI + drivers) are associated with TeX: GF + and PXL files. The GF format is a very + flat, uncompressed bitmap format produced by several + utility programs, including MetaFont. The GFtoPK program converts GF + files into PK files. The PXL format is + an uncompressed bitmap format; it has been superseded by + the PK format (which achieves better + compression) and is completely obsolete. If you still + have PXL files, you should convert them to + PK format with the PXtoPK + utility. If you are using a DVI driver that still + requires PXL files, you should find out about an + upgrade; the program is obsolete.

+ +

The fact that DVI drivers use different resolutions of + the same font file to obtain different magnifications + introduces a naming problem. How can the DVI driver + distinguish between cmr12.pk at 300dpi and + cmr12.pk at 360dpi (or any other + resolution)?

+ +

On unix systems, this problem is usually resolved by + putting the resolution in the filename in front of the + extension pk. For + example, cmr12.300pk is cmr12 at 300dpi + while cmr12.360pk is cmr12 at + 360dpi.

+ +

On many other systems, where the operating system + imposes limits on the length of filenames, a solution is + achieved by storing the fonts in different + subdirectories. On MS-DOS, for example, the 300dpi + version of cmr12 might be stored in \bs texfonts\bs 300dpi\bs + cmr12.pk while the 360dpi version is stored + in \bs texfonts\bs 360dpi\bs + cmr12.pk.

+ +

In either case, you should obey the conventions + specified by your DVI driver to assure that the DVI + driver can find the fonts. One common solution to the + problem of finding fonts is to use an environment + variable to list the directories where PK files + occur. For example, on a unix system, the environment + variable TEXPKS might hold a list of directories + separated by colons:[100]

+
+TEXPKS=/usr/local/lib/tex/fonts:/usr/local/lib/tex/fonts/pk: /usr/local/lib/mf/fonts:/usr/local/lib/mf/fonts/pk
+
+ +

Under MS-DOS, the environment variable + DVIDRVFONTS might hold a list of directories + separated by semicolons:

+
+DVIDRVFONTS=C:\TEXFONTS;C:\MYFONTS
+
+ +

The format of the environment variable and how it is + created or modified is determined by the operating + environment that you are using. The name of the + environment variable differs according to the DVI + driver.

+ +

To recap, TeX works with magnifications of + abstract, scalable measurements; DVI drivers work with + resolutions of + fixed, bitmapped images.

+ +

To convert a magnification into a resolution, multiply + the resolution of your output device by the + magnification. A font at a magnification of 120\% on a + 300dpi laser printer has a resolution of 360dpi.

+ +

To convert a resolution into a magnification, divide + the font resolution by the resolution of the printer. A + 420dpi font on a 300dpi laser printer has a magnification + of 140\%.

+
+ +
+
+
+

Scalable Fonts

+
+
+ +

Although scalable fonts used to be very + uncommon, the proliferation of PostScript printers and + products like Adobe Type Manager (not to mention built-in + support for TrueType fonts in Apple System 7.0 and + Microsoft Windows 3.1) have made these fonts very common. + It is important to remember that scalable fonts are + ultimately converted into bitmapped fonts. All printers + eventually treat the page as a very large bitmap and + either do or do not deposit a small amount of ink in each + position in the bitmap.

+ +

Most DVI drivers leave the work of performing this + rasterization to someone else. If you are not using a + PostScript printer, you probably rely on some other piece + of software to do the work. Adobe Type Manager and + built-in support for TrueType are the most common + software solutions. Some printers, like the LaserJet III, + have built-in scalable fonts as well, even though they + are not PostScript printers.

+
+ +
+
+
+

Font Printing Pitfalls

+
+
+ +

Sometimes you need a font at a size that is not + available. Because scalable fonts are available at any + size, this is a problem only with bitmapped fonts. + Remember that MetaFont creates bitmapped fonts, but they + can be scaled because the MF source for the font + is not a bitmap. You can't scale the PK file, + but you can generate a new PK file at the size + you need. In order to do this, you must have MetaFont + installed, and you must have the MF source for + the font. Chapter Chapter 11, + Chapter 11, + describes how to create a MetaFont font at any size.

+ +

If the font isn't a MetaFont font, or you don't have + the MF source, you may still be able to scale + the font. However, you should be aware before you try + that the result may be unacceptable. Scaling bitmapped + fonts causes ugly, jagged edges if the font is scaled + larger, and loss of detail if it is scaled smaller. Small + changes in size are sometimes manageable.

+ +

The dvips driver will scale bitmapped fonts if + it cannot find or build the requested font. + Alternatively, the sffx program can scale + HP LaserJet softfonts. I don't know of any other scaling + options.

+ +

Non-scalable fonts that are built into the printer + cannot be scaled at all. If you need to have a built-in + font at an unavailable size, you will have to substitute + another font in place of the built-in one.

+
+
+ +
+
+
+

Printing Pictures and Figures

+
+
+ +

Pictures and figures are frequently the + least portable elements of a document. Chapter Chapter 6, + Chapter 6, + describes many of the options that are available for + including pictures and figures in a document.

+ +

If the method used is supported by the DVI driver and + printer that you use, pictures and figures are + transparently printed. They are even less difficult to + print than fonts. On the other hand, if you are attempting + to print a document which incorporates pictures and figures + using a method not supported by your DVI driver or printer, + it may be exceptionally difficult to print the + document.

+ +
+
+
+

Unsolvable Problems

+
+
+ +

DVI files are not always + “complete” with respect to pictures and + figures. Many documents use \special commands to access + DVI driver or printer-specific features in order to + include pictures and figures. These \specials may have + just the name of an external file that contains the + graphic image to be included. For example, using the + emTeX drivers, I can include a bitmapped graphic image + with the command \special\verb|{em:graph spslogo}|. When + emTeX's DVI drivers process this command, the graphic + image in the file spslogo.pcx is included in the + output. If I transmit this DVI file to another + computer but forget to transmit the file + spslogo.pcx, there is no way to print the + DVI file with the SPS logo.

+ +

At first, it may seem that a good solution to the + problem described above would be to include the actual + data for the image in the \special command. But to do + that, TeX would have to process the image data, defeating + the purpose of the \special mechanism. The \special + mechanism is better because it is open ended---it can + handle new types of graphics, for example, without + changing TeX.

+ +

The second, essentially unsolvable, problem involves + DVI files containing \special commands that have + embedded data. For example, one set of picture drawing + \special commands are the tpic \specials. If + your DVI driver does not understand these commands, there + is no practical way to extract them from the DVI + file in order to convert them into a format your DVI + driver understands. There may not even be a practical way + of extracting them from the TeX document to construct a + printable image. You simply can't print that document + with the tpic figures intact.

+
+ +
+
+
+

Solvable Problems

+
+
+ +

If you have a document that includes an external + picture or figure using a method that your DVI driver or + printer does not understand, and you have the file that + contains the graphic image and the TeX source for the + document, you may be able to print it.

+ +

The section called “the section called + “Manipulating Images”” in + Chapter Chapter 6, + lists a wide variety of picture conversion tools that may + allow you to convert the image into a printable form. For + example, if the document in question uses a \special + command to include a PCX graphic image, but your + DVI driver only understands the Macintosh PICT + format, you could use the PBMplus utilities to + convert the PCX image into PICT + format.

+ +

A conversion that might frequently be necessary if you + work on both PostScript and non-PostScript printers is + conversion from encapsulated PostScript to a bitmap + format. This is a translation that Ghostscript or + some other PostScript interpreter can perform.

+
+ +
+
+
+

Pictures Using Only TeX

+
+
+ +

Device-independent pictures created using only TeX + pose no particular printing problems. These include the + LaTeX picture environment, as well as the PiCTeX + and XYPic macro packages.

+
+ +
+
+
+

MetaFont Figures

+
+
+ +

Pictures created with MetaFont (using + MFPic, Fig2MF, or MetaFont directly) are + really MetaFont fonts. As a result, they can be created + for almost any raster output device.[101] As long as MetaFont + is available and the figures aren't too large, they pose + no problems. Very large images may break some DVI drivers + or may not be printable on some output devices.

+
+ +
+
+
+

Scalable Images

+
+
+ +

Scalable formats, primarily PostScript and HPGL, are + difficult to convert to other printing technologies. + However, the Ghostscript program is one + option for PostScript figures, and hp2xx + can convert a subset of HPGL commands into other + formats.

+
+ +
+
+
+

Bitmap Images

+
+
+ +

Bitmap images are generally the easiest to + convert from one format to another, but there is another + issue that is more difficult to deal with---resolution. + Printing a bitmap image at 1200dpi if the original is + only 300dpi is not easy.

+
+
+ +
+
+
+

Selected Drivers

+
+
+ +

Table Table 8.1 + lists a number of common DVI drivers used to print TeX + documents (as opposed to previewing them). These drivers + are discussed in more detail in this section. The list of + drivers described here is nowhere near complete. The + presence or absence of a particular driver from this list + is not intended as a reflection on the quality of the + driver. I tried to select a representative set of free and + commercial drivers. Drivers for other printers usually + offer similar features.

+ +
+ + +

Table 8.1. Common DVI + Drivers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf DVI driver\bf Supplier\bf System\bf Printers
dvihpljFree (emTeX) HP LaserJet compatible
dvidotFree (emTeX)MS-DOS+OS/2Most dot matrix
dvipcxFree (emTeX) PCX graphic images
dvilj2Free (dvi2xx)MostHP LaserJet compatible
dvipsFree (dvips)MostPostScript
DVILASER/HPArborTextMS-DOS, UnixHP LaserJet compatible
DVILASER/PSArborTextMS-DOS, UnixPostScript
PTI Laser/HPPersonal TeXMS-DOSHP LaserJet compatible
PTI Laser/PSPersonal TeXMS-DOSPostScript
PTI JetPersonal TeXMS-DOSHP DeskJet compatible
dvipsoneY&YMS-DOSPostScript
+
+ +
+
+
+

emTeX Drivers

+
+
+ +

The emTeX distribution includes three DVI + drivers: dvihplj for printing on + HP LaserJet, DeskJet, PaintJet, QuietJet printers (as + well as the Kyocera laser printer), dvidot + for printing on a wide variety of dot-matrix printers, + and dvipcx for translating DVI files into + PCX graphics images (for faxing, for example). + The printers that dvidot supports are listed + below. If your dot-matrix printer isn't listed, detailed + instructions in the emTeX documentation will probably + allow you to construct an appropriate parameter file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Apple ImagewriterIBM Proprinter 4202
C.ITOH 8510AIBM Proprinter 4207
Canon Bubble Jet BJ-10eIBM Proprinter 4208
EPSON FX and RX seriesNEC P6, Panasonic KX-P1124
EPSON LQ seriesNEC P7
IBM Proprinter 4201Tandy DMP-130
+ +

All of the emTeX drivers support several \special + commands for including bitmapped graphics and lines at + any angle.

+ +

The Computer Modern fonts in PK format occupy + several directories and considerable space on disk. To + minimize the impact of keeping several magnifications of + fonts around, the emTeX drivers introduced the concept of + font libraries. + Font libraries are single files that contain many, + many PK fonts. The fonts distributed with emTeX + are distributed in font library format. The + fontlib program, distributed with emTeX, allows + you to create and maintain font libraries of your + own.

+ +

The emTeX drivers support automatic font generation + starting with version 1.4S. This is accomplished by a + second program, dvidrv, that runs the + DVI driver and then MFjob, if required, to + build the fonts. The relationship between these + components is shown in Figure  + Figure 8.3.

+ +
+ + +

Figure 8.3. Previewing + and printing with emTeX

+
+FIXME:
+
+
+ +

Starting with version 1.4t,[102] + emTeX's dvihplj supports 600dpi fonts (for the + LaserJet 4 series) and built-in printer fonts.

+ +

The following list of features highlights some of the + capabilities of the emTeX drivers:

+ +
+
    +
  • +

    Printing of a range of pages

    +
  • + +
  • +

    Printing of multiple copies (with or without + collating)

    +
  • + +
  • +

    Reverse ordering of pages

    +
  • + +
  • +

    Selection of duplex printing

    +
  • + +
  • +

    Ability to scale PK files to the + requested size if an appropriate PK file + is unavailable. This may result in poorer output + quality due to distortion, but that's not emTeX's + fault.

    +
  • + +
  • +

    Extremely flexible support for printing booklets + and “n-up” arrangements of pages

    +
  • + +
  • +

    Selection of paper size and dimensions (margins, + etc.)

    +
  • + +
  • +

    Transformations (rotation by a multiple of 90 + degrees)

    +
  • + +
  • +

    Changes in magnification and resolution of + output

    +
  • + +
  • +

    Support for font libraries

    +
  • + +
  • +

    Support for font compression in printers with + that feature

    +
  • + +
  • +

    Ability to download each page as a large bitmap + (to overcome font limitations in some printers)

    +
  • + +
  • +

    Support for automatic font generation

    +
  • +
+
+
+ +
+
+
+

dvilj2

+
+
+ +

dvilj2 is a free driver for the HP + LaserJet Series II printer. It is part of the + dvi2xx distribution, which also includes drivers + for the HP LaserJet Series IIP and III printers, as well + as a driver for the IBM 3812 page printer.

+
+ +
+
+
+

dvips

+
+
+ +

dvips is one of the most popular + PostScript DVI drivers. It is available for + unix, MS-DOS, and OS/2 platforms. It may also be + available on other platforms because the source code is + freely available. dvips supports a wide range of + \special commands for controlling the PostScript output, + including pictures and figures and raw PostScript + code.

+ +

The following list of features highlights some of + dvips's capabilities:

+ +
+
    +
  • +

    Inclusion of printer-specific prologue files

    +
  • + +
  • +

    Support for compressed PostScript pictures and + figures

    +
  • + +
  • +

    Automatic creation of pseudo-bold and + pseudo-italic fonts

    +
  • + +
  • +

    Ability to run as a filter

    +
  • + +
  • +

    Automatic splitting of documents into sections + to prevent out-of-memory errors on the printer

    +
  • + +
  • +

    Printing of crop marks

    +
  • + +
  • +

    Printing of a range of pages (by physical sheet + or TeX page number)

    +
  • + +
  • +

    Selection of manual-feed on the printer

    +
  • + +
  • +

    Limit on number of output pages

    +
  • + +
  • +

    Reverse order of pages

    +
  • + +
  • +

    Selection of paper type

    +
  • + +
  • +

    Changes in magnification of the output

    +
  • + +
  • +

    Printing of odd/even pages only

    +
  • + +
  • +

    Printing of multiple copies (with or without + collating)

    +
  • + +
  • +

    Stripping of comments (to avoid printer/spooler + bugs)

    +
  • + +
  • +

    Moving of printed image left/right or up/down + page

    +
  • + +
  • +

    Compression of fonts before downloading

    +
  • +
+
+ +

An option to the dvips driver can be used to + indicate which printer the output is destined for. This + allows many printer-specific options (resolution, paper + sizes, etc.) to be specified in a configuration file, + removing from the user the burden of remembering + them.

+ +

Automatic font generation is supported by + dvips, as described above. dvipsk, a + modified version of dvips, also supports a + font-searching mechanism that greatly simplifies the task + of specifying which directories contain font files. If + any directory specification in the font path ends with + two slashes, dvips searches that directory and all + of its subdirectories for the font files. This allows you + to create a font directory structure like the one shown + here:

+
+/usr/local/lib/tex/fonts/supplier
+/usr/local/lib/tex/fonts/supplier/typeface
+/usr/local/lib/tex/fonts/supplier/typeface/src
+/usr/local/lib/tex/fonts/supplier/typeface/tfm
+/usr/local/lib/tex/fonts/supplier/typeface/vf
+/usr/local/lib/tex/fonts/supplier/typeface/vpl
+/usr/local/lib/tex/fonts/supplier/typeface/glyphs
+/usr/local/lib/tex/fonts/supplier/typeface/glyphs/pk
+
+ +

This arrangement is advantageous because it organizes + your fonts and simplifies maintenance of the directories + that contain them. If /usr/local/lib/tex/fonts// + is in the font search path, dvips will search + through all of the font directories for the files that it + needs. For example, it might find the TFM file + for cmr10 in + /usr/local/lib/tex/fonts/free/cm/tfm. The + directory + /usr/local/lib/tex/fonts/adobe/garamond/glyphs/type1 + is the location for the PostScript source of the + Garamond-Italic font.

+ +

The dvips distribution includes the + afm2tfm program for creating TeX font + metrics from Adobe AFM files. This version of + afm2tfm can perform several useful tasks such as + automatically creating appropriate virtual fonts (for + mapping TeX font encodings to PostScript encodings) or + changing the encoding of the PostScript font.

+
+ +
+
+
+

DVILASER/HP

+
+
+ +

ArborText's \dvilaserhp DVI driver + translates TeX DVI files into a format that can + be printed on HP LaserJet printers. These drivers are + available for both MS-DOS and supported unix + workstations. The following discussion is based on + experiences with \dvilaserhp version 5.3.3, the MS-DOS + implementation of ArborText's HP LaserJet driver.

+ +

\dvilaserhp functions in the way you would expect, + generating LaserJet printable documents from TeX + DVI files. It also has many special features. + Some of the more interesting features are summarized + below. \dvilaserhp can print documents using PK + files, HP LaserJet softfonts, and built-in fonts + (including fonts from cartridges).

+ +

ArborText supplies a complete set of Computer Modern + fonts in PK format. Recent releases of + \dvilaserhp can use the virtual fonts introduced in TeX + version 3.0.

+ +

ArborText's \dvilaserhp DVI driver provides the + following features:

+ +
+
    +
  • +

    Selectable number of copies

    +
  • + +
  • +

    Optional reverse ordering of pages

    +
  • + +
  • +

    Selectable manual-feed

    +
  • + +
  • +

    Portrait or landscape orientation

    +
  • + +
  • +

    Selectable page size

    +
  • + +
  • +

    Ability to scale PK files to the + requested size if an appropriate PK file + is unavailable. This may result in poorer output + quality due to distortion, but that's not + \dvilaserhp's fault.[103]

    +
  • + +
  • +

    Page movement and reordering options (for + printing multiple pages on a single sheet of paper, + for example)

    +
  • + +
  • +

    Configurable font substitution

    +
  • + +
  • +

    Support for LaserJet “overlays.” + \dvilaserhp recognizes \special commands for + inserting raw HP LaserJet format documents and + inserting HP LaserJet overlays[104]

    +
  • + +
  • +

    An interactive mode (useful for printing only + selected pages from a document without re-running + \dvilaserhp many times or when many options are + going to be used)

    +
  • + +
  • +

    Selectable paper tray

    +
  • +
+
+ +

Many other utilities come with \dvilaserhp; they are + summarized in Table  + Table 8.2. \index{VPtoVF}{\def\x{${}^1$}

+ +
+ + +

Table 8.2. Other + \protect\dvilaserhp Utilities

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Utility\bf Description
\it aftovpConverts VPL from + AFM file
\it gftopk\,\xConverts GF files into + PK files
\it hpformatA print formatter for ASCII + files
\it packpxlCreates packed (byte-aligned) + PXL file
\it painthpConverts MacPaint files into HP + LaserJet format
\it pcltopk\,\xConverts HP LaserJet softfonts + into PK/TFM file
\it pktopx\,\xConverts PK files into + PXL files
\it pxtopk\,\xConverts PXL files into + PK files
\it sprA serial-line print spooler
\it tftovpConverts VPL from + TFM file
\it unpkpxlCreates standard, word-aligned + PXL file
\it vftovp\,\xConverts VF files into + VPL files
\it vptovf\,\,\xConverts VPL files into + VF files
+
+ +

ArborText recently released DVILASER/HP3 drivers for the HP LaserJet III and IV + printers. In addition to the features described above, + DVILASER/HP3 supports more complex documents, + compressed font downloading, 600dpi and duplex printing, + paper tray and output bin selection, and the ability to + include TIFF images via a \special command.

+
+ +
+
+
+

DVILASER/PS

+
+
+ +

ArborText's \dvilaserps DVI driver + translates TeX DVI files into PostScript. These + drivers are available for both MS-DOS and supported unix + workstations. The following discussion is based on + experiences with \dvilaserps version 6.3.5, the MS-DOS + implementation of ArborText's PostScript driver.

+ +

PostScript DVI drivers are more flexible than many + other DVI drivers because PostScript is a very powerful + page description language. Some of \dvilaserps's more + interesting features are summarized below. \dvilaserps + can print documents using PK files, downloadable + PostScript fonts, and built-in fonts. ArborText supplies + TFM files for many built-in PostScript fonts. + Recent releases of \dvilaserps can use the virtual fonts + introduced in TeX version 3.0.

+ +

ArborText's \dvilaserps DVI driver provides the + following features:

+ +
+
    +
  • +

    Options for loading custom PostScript prologue + code

    +
  • + +
  • +

    Ability to be used as a filter (sends PostScript + code to standard output)

    +
  • + +
  • +

    Selectable number of copies

    +
  • + +
  • +

    Optional reverse ordering of pages

    +
  • + +
  • +

    Portrait or landscape orientation

    +
  • + +
  • +

    Selectable page size

    +
  • + +
  • +

    Ability to scale PK files to the + requested size if an appropriate PK file + is unavailable. This may result in poorer output + quality due to distortion, but that's not + \dvilaserps's fault.

    +
  • + +
  • +

    Page movement and reordering options (for + printing multiple pages on a single sheet of paper, + for example)

    +
  • + +
  • +

    Selectable paper tray

    +
  • + +
  • +

    Configurable font substitution

    +
  • + +
  • +

    Support for LaserJet “overlays”

    +
  • + +
  • +

    An interactive mode (useful for printing only + selected pages from a document without re-running + \dvilaserps many times or when many options are + going to be used)

    +
  • + +
  • +

    Ability to download PK files + permanently, speeding printing of future + documents

    +
  • + +
  • +

    Document, page, or encapsulated PostScript + document structuring options

    +
  • + +
  • +

    Optional clipping of characters that fall + outside the normally printable page area

    +
  • +
+
+ +

Many other utilities come with \dvilaserps. They are + summarized in Table  + Table 8.3.

+ +
+ + +

Table 8.3. Other + \protect\dvilaserps Utilities

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Utility\bf Description
\it afmtoplConverts AFM files into + unmapped PL files
\it afmtoplmConverts AFM files into + mapped PL files\y
\it aftovpConverts VPL from + AFM file
\it gftopk\,\xConverts GF files into + PK files
\it packpxlCreates packed (byte-aligned) + PXL file
\it pktopx\,\xConverts PK files into + PXL files
\it pltotf\,\,\xConverts PL files into + TFM files
\it psformatA print formatter for ASCII + files
\it pxtopk\,\xConverts PXL files into + PK files
\it sprA serial-line print spooler
\it tftopl\,\xConverts TFM files into + PL files
\it tftovpConverts VPL from + TFM file
\it unpkpxlCreates standard, word-aligned + PXL file
\it vftovp\,\xConverts VF files into + VPL files
\it vptovf\,\,\xConverts VPL files into + VF files
\multicolumn{2}{l}{ ${}^1$\vrule + height11pt width0pt\tiny A standard, or otherwise + freely available, utility.} 
+
+ +

\dvilaserps recognizes \special commands for inserting + raw PostScript files and commands, encapsulated + PostScript files, and automatic page overlays (which can + be selectively enabled and disabled). Other \special + commands allow you to set most of the \dvilaserps + command-line options directly in the document, rotate any + TeX “box” to any angle, and print change + bars. For LaTeX users, ArborText includes a plug-in + replacement for LaTeX's picture environments that uses + PostScript instead of special fonts to draw each + figure.

+
+ +
+
+
+

PTI Laser/HP and PTI Jet

+
+
+ +

PTI Laser/HP and PTI Jet are distributed + together by Personal TeX, Inc. PTI + Laser/HP is an HP LaserJet driver. PTI Jet is + a DeskJet driver. The PTI Jet driver works with a + standard DeskJet printer; no additional options or memory + are required. The PTI Laser/HP driver is for HP + LaserJet II and III series printers. A separate program, + PTI Laser/HP4, is sold for LaserJet 4 series + printers (to support 600dpi fonts, for example).

+ +

The following features are available in these + drivers:

+ +
+
    +
  • +

    Support for font substitution

    +
  • + +
  • +

    Support for built-in fonts

    +
  • + +
  • +

    Printing multiple copies of each page

    +
  • + +
  • +

    Setting page size

    +
  • + +
  • +

    Printing in landscape mode

    +
  • + +
  • +

    Selecting magnification

    +
  • + +
  • +

    Ability to print a range of pages (by physical + sheet or TeX page number)

    +
  • + +
  • +

    Reversing order of pages

    +
  • + +
  • +

    Ability to move the page image left/right or + up/down the page

    +
  • + +
  • +

    Support for 256 character fonts

    +
  • +
+
+ +

PTI Laser/HP offers the following additional + features, which are not supported by PTI Jet:

+ +
+
    +
  • +

    Ability to reserve printer font ID numbers

    +
  • + +
  • +

    A utility program, sftopk, for converting + HP LaserJet softfonts into TeX PK + fonts

    +
  • + +
  • +

    Support for directly including HP LaserJet + printer commands via the \special mechanism in + TeX

    +
  • +
+
+
+ +
+
+
+

PTI Laser/PS

+
+
+ +

PTI Laser/PS is Personal TeX's PostScript DVI + driver. In addition to the DVI driver, the PTI + Laser/PS package includes utilities for spooling + output to a serially-connected printer and converting + AFM files into TFM files.

+ +

Some of PTI Laser/PS's more interesting options + are summarized below.

+ +
+
    +
  • +

    Ability to select different printer + resolutions

    +
  • + +
  • +

    Selectable number of copies

    +
  • + +
  • +

    Configurable font substitution

    +
  • + +
  • +

    Selectable page size

    +
  • + +
  • +

    An interactive mode for selecting options and + reacting to errors (characters that fall off the + page, missing fonts, etc.)

    +
  • + +
  • +

    Portrait or landscape orientation

    +
  • + +
  • +

    Selectable TeX magnification

    +
  • + +
  • +

    Option files for storing frequently used + options.

    +
  • + +
  • +

    Selectable output filename

    +
  • + +
  • +

    Options to select individual pages or ranges of + pages by TeX page number or physical sheet + number

    +
  • + +
  • +

    Optional reverse ordering of pages

    +
  • + +
  • +

    Adjustable page offset (adjusts the position of + the printed page on the physical page)

    +
  • + +
  • +

    Support for 256-character fonts

    +
  • + +
  • +

    Special support for the eccentricities of the + Apple LaserWriter printer

    +
  • +
+
+ +

PTI Laser/PS recognizes a \special command for + inserting raw PostScript files into the printed document. + The horizontal and vertical size of the inserted image + can be changed.

+
+ +
+
+
+

dvipsone

+
+
+ +

dvipsone is a commercial PostScript driver + for MS-DOS distributed by Y&Y Inc. It produces + PostScript output from a TeX DVI file. + dvipsone is designed for a + “bitmap-free” environment. This makes + dvipsone almost unique among DVI drivers + because it cannot + use standard PK fonts. To use dvipsone, + you must have PostScript fonts for every font that you + use (or the font must be built into the printer).[105] Y&Y sells a + complete set of Computer Modern fonts in Adobe + Type 1 format.

+ +

dvipsone has a rich set of features:

+ +
+
    +
  • +

    Printing multiple DVI files with a + single command

    +
  • + +
  • +

    Printing pages in reverse order

    +
  • + +
  • +

    Printing only odd or even pages

    +
  • + +
  • +

    Ability to force output to conform to EPS + standards

    +
  • + +
  • +

    Assumption that all requested fonts are + printer-resident

    +
  • + +
  • +

    Insertion of verbatim PostScript

    +
  • + +
  • +

    Printing a range of pages

    +
  • + +
  • +

    Resizing of the output

    +
  • + +
  • +

    Rotation of output by arbitrary angle

    +
  • + +
  • +

    Shifting output left/right or up/down

    +
  • + +
  • +

    Printing arbitrary number of copies

    +
  • + +
  • +

    Selection of paper type (letter, landscape, + legal, etc.)

    +
  • + +
  • +

    Insertion of user-specified PostScript + prologue

    +
  • + +
  • +

    Conservation of memory by downloading partial + fonts

    +
  • + +
  • +

    Remapping of the font encoding on-the-fly

    +
  • + +
  • +

    Support for ten different styles of \special + commands for including encapsulated PostScript + images

    +
  • +
+
+ +

Perhaps the most interesting feature of the + dvipsone driver is its ability to download partial + PostScript fonts. Y&Y claim that partial font + downloading is a feature unique to dvipsone. A + moderately complex TeX document may use twenty or more + fonts and each font is typically between 20K and 30K. + This means that the DVI driver downloads roughly 500K of + font data for the document. In addition to requiring + considerable printer memory, all that font data increases + the amount of time that it takes to send your document to + the printer. The partial font downloading feature of + dvipsone means that only the characters that are + actually used in your document are sent to the printer. + The ability to download partial fonts can result in a + substantially smaller PostScript file.

+ +

Several other utilities are distributed with + dvipsone. They are summarized in Table Table 8.4.

+ +
+ + +

Table 8.4. Other dvipsone + Utilities

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Utility\bf Description
downloadRobust font-downloading program + for PostScript fonts
afmtotfm\,\xConverts AFM files into + TFM files
tfmtoafmConverts TFM files into + AFM files
pfatopfb\,\xConvert PFA files into + PFB files
pfbtopfa\,\xConvert PFB files into + PFA files
twoupReorders pages in a PostScript + file
pktopsProvides access to PK + fonts for dvipsone
+
+
+
+ +
+
+
+ +
+

[99] {For a complete, detailed + description of the PK and GF formats, + consult The GF to PK + Processor [mfware:gftopk].}

+
+ +
+

[100] {A backslash is used + here to escape the end of the first line. This is a + standard way to continue a line in most unix shells. + Naturally, you can simply enter it as one line in your + editor, if you prefer.}

+
+ +
+

[101] {Because figures are + frequently much larger than individual characters, + MetaFont may have difficulty with large figures at very + high resolutions.}

+
+ +
+

[102] {In alpha-testing at the + time of this writing.}

+
+ +
+

[103] {The scaling uses the + next larger-sized PK file, and ArborText claims + that this results in good quality over a large range of + point sizes without providing PK files for every + exact size.}

+
+ +
+

[104] {Consult your HP + LaserJet reference manual for more information about + overlays.}

+
+ +
+

[105] {The dvipsone + distribution includes a utility which can convert + PK fonts into bitmapped PostScript fonts. This + program translates a PK file into an Adobe + Type 3 font. Once in Type 3 format, + dvipsone can use the font. Using Type 3 fonts + created in this way adds resolution-dependence to your + PostScript file.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch09.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch09.html new file mode 100644 index 00000000000..641c668e9dc --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch09.html @@ -0,0 +1,1550 @@ + + + + + + + + + Chapter 9. Previewing + + + + + + + + + + + +
+
+
+

Chapter 9. Previewing

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Because TeX is not interactive, most TeX + documents are developed iteratively. After adding a + significant amount of text or changing the format of a + document, you'll want to see what the document looks like. + Then you can add more text or try different formats. Then, + it's helpful to see it again $…$

+ +

You could print the document, but that's wasteful and slow + (not to mention environmentally unfriendly). This is where + screen previewers enter the picture. They allow you to look + at your document on a video display.

+ +

Accurate previewing is more difficult than printing your + document for several reasons. Screen displays are much more + diverse than printers (previewing on a PC is very different + from previewing on a workstation running X11 even though + printing to a LaserJet printer is essentially the same from + both places). Also, it's very difficult to preview documents + that use printer-specific features. For example, if you use a + PostScript figure in your document, it will be very easy to + print on a PostScript printer, but on most platforms it is + much more difficult to preview that document on the screen + (two exceptions are the Amiga and NeXT which have integrated + support for displaying PostScript images).

+ +

In the following sections I'll explore options for + previewing on several platforms. The X Window System is + usually associated with unix workstations, but several PC + implementations (running under both MS-DOS and OS/2) are now + available. The X11 previewers described here may be available + for those systems, but I haven't seen them. + Ghostscript is another previewing option that is + available on several platforms so it is described in its own + section.

+ +

Table Table 9.1 + summarizes the previewers described here.

+ +
+ + +

Table 9.1. Common + Previewers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Previewer\bf Supplier\bf OS\bf Comments
\program{xdvi}Free (xdvi)Unix/DesqViewX11
\XTeXFree (\XTeX)UnixX11
GhostscriptFree (gs)mostPostScript
GhostviewFree (Ghostview)Unix, WindowsPostScript
dviscrFree (emTeX)MS-DOS, OS/2 
dvipmFree (emTeX)OS/2Presentation Manager
dvivgaFree (dvivga)MS-DOSEGA/VGA
TeX PreviewArborTextMS-DOS, Unix 
dvideoKinch SoftwareMS-DOSEGA
PTI ViewPersonal TeXMS-DOS 
dvimswinFree (dvimswin)MS-DOSWindows
dviwinFree (dviwin)MS-DOSWindows
wdviwinKinch SoftwareMS-DOSWindows
DVIWindoY&YMS-DOSWindows
dvi2ttyFree (dvi2tty)MostASCII
dvigt/dvitovduFreeMost 
crudetypeFreeVMSASCII
+
+ +
+
+
+

Previewing Under X11

+
+
+ +

The three most common X11 previewers + are xdvi, \XTeX, and Ghostview (really a + PostScript previewer). Ghostview runs on top of + Ghostscript and is described in the “the section called + “Previewing Under X11”” section of + this chapter.

+ +
+
+
+

Previewing with xdvi

+
+
+ +

You can retrieve xdvi from the CTAN + archives in the directory dviware/xdvi.

+ +

Figure  + Figure 9.1 shows the preview process under xdvi. + xdvi reads the DVI file and loads the + PK files for any fonts that are required. If + xdvi cannot find a requested font, it will run + \MakeTeXPK to create the font. \MakeTeXPK is a + shell script (or a batch file called maketexp + under MS-DOS) that tries to use MetaFont or + ps2pk to build the font.

+ +
+ + +

Figure 9.1. How + Previewing with xdvi Works

+ +
+ +
+
+ +

After forming each page, xdvi passes it off to the X11 + Window Manager to be displayed. Previewing under xdvi is + shown in Figure Figure 9.2.

+ +
+ + +

Figure 9.2. Previewing + with xdvi

+ +
+ +
+
+ +

Screen resolution is typically much lower than printer + resolution. Because xdvi uses the PK files at + printer resolution, it must scale them before using them + for display purposes. The scaling process allows xdvi to + use anti-aliasing to + improve image quality on color displays. Anti-aliasing is + a technique used to improve the appearance of scaled + images by using colored pixels around the edges of the + image to provide the illusion of partial pixels. This can + dramatically improve the readability of the displayed + text. If the \ps font files are available, xdvi can + display documents that use \ps fonts; otherwise, it + performs font substitution.

+ +

A recent addition to xdvi is the ability to preview + documents that include PostScript figures. The figures + are rendered behind the scenes by Ghostscript and + displayed by xdvi. In my opinion, this addition really + makes xdvi one of the finest X11 previewers available. It + is fast, uses printer fonts, has anti-aliasing for superb + readability on color displays, and can include PostScript + figures.

+
+ +
+
+
+

Previewing with \xtex

+
+
+ +

The \xtex previewer is very similar to xdvi. The + primary difference is that \xtex uses X11 fonts for + display. This means that \xtex must build fonts at the + appropriate resolution. After the fonts have been built, + \xtex is typically a very fast previewer.

+ +

You can retrieve \xtex from the CTAN archives in the + directory dviware/xtex.

+ +
+ + +

Figure 9.3. How + Previewing with xtex Works

+ +
+ +
+
+ +

Figure  + Figure 9.3 shows the preview process under + \xtex. Like xdvi, \xtex uses the \MakeTeXPK program to + build PK files for fonts that are unavailable. + Additionally, \xtex uses the \TeXtoXfont shell script, or + batch file, to convert PK fonts into X11 display + fonts.

+ +

The \xtex previewer relies on the X11 Window Manager + to build the display. However, if \ps figures are present + in your document, \xtex will attempt to display them. + When \xtex is built, you can specify that \ghostscript or + another \ps interpreter be used to handle \ps + figures.

+ +

An example of \xtex's display is shown in + Figure Figure 9.4.

+ +
+ + +

Figure 9.4. Previewing + with xtex

+ +
+ +
+
+
+
+ +
+
+
+

Previewing with Ghostscript

+
+
+ +

Previewing with Ghostscript is quite different + from previewing with xdvi and \xtex. Most previewers + process the DVI file to build the display. + \ghostscript is a general-purpose program for displaying + \ps files. Under X11, an additional program called + \ghostview provides more sophisticated control of + previewing.

+ +

Ghostscript and Ghostview are products of the + Free Software Foundation (FSF). You can retrieve + them from the GNU archives on prep.ai.mit.edu in + the directory /pub/gnu or from any mirror of those + archives.

+ +

Ghostscript reads and interprets the \ps file + created by a program such as \dvips. It provides its own + means of handling font substitution if the appropriate + fonts are unavailable. Because \dvips converts the TeX + DVI file into \ps, \ghostscript can display all of + the elements of the document including \ps figures and + other PostScript printer-specific commands.

+ +

An example of Ghostview's display is shown in + Figure Figure 9.5.

+ +
+ + +

Figure 9.5. Previewing with + Ghostview

+ +
+ +
+
+
+ +
+
+
+

Previewing with emTeX

+
+
+ +

Figure  + Figure 8.3 in Chapter Chapter 8, + Chapter 8, + shows the relationship between the various components + involved when processing a DVI file with emTeX. + Previewing and printing are very similar operations with + emTeX. To preview, you use the dviscr + driver, and the result is displayed on the screen. To + print, use one of the other DVI drivers, and the result is + a file that can be sent directly to your printer. + Chapter Chapter 13, + Chapter 13, + discusses emTeX in more detail.

+ +

dvidrv runs the appropriate DVI driver: + dviscr for previewing, dvihplj for + printing to an HP LaserJet printer, or dvidot for + printing to other dot matrix printers.

+ +

The DVI driver reads the DVI file and loads + fonts from PK files or FLI + font libraries. If your document uses graphics, they + are loaded from PCX or MSP + files.

+ +

If your document uses a font that is not available, the + DVI driver writes the commands necessary to build the font + to the MFJ file.[106] + Before performing font substitution, the driver will ask if + you wish to build the missing fonts. If you elect to build + them, the DVI driver stops and returns control to the + dvidrv program.

+ +

dvidrv notices that the DVI driver stopped + because of missing fonts and runs MFjob to build them. + After building the fonts, the previewer is run again to + display the document.

+ +

The dvidrv program is quite simple. With some + care, it can be replaced by a batch file that does more + work.[107] For example, I have + replaced dvidrv with a 4DOS batch file + called dvidxx that can automatically build \ps fonts + by calling ps2pk in addition to building MetaFont + fonts with MFjob. The dvidxx batch file is + printed in Example Example D.3 + in Appendix Appendix D, + Appendix D.

+ +

A full-screen preview with dviscr is shown in + Figure  + Figure 9.6.

+ +
+ + +

Figure 9.6. Previewing with + emTeX's dviscr

+ +
+ +
+
+ +

Under OS/2, the dvipm previewer offers + more power. A sample dvipm display is shown in + Figure  + Figure 9.7 later in this chapter.

+ +
+ + +

Figure 9.7. Previewing with + emTeX's dvipm

+ +
+ +
+
+ +

The dviscr and dvipm previewers use anti-aliasing to + obtain better image quality on a color display. However, + this translates into a poorer quality image when captured + for display in a black-and-white book.

+
+ +
+
+
+

Previewing with dvivga

+
+
+ +

dvivga is an MS-DOS previewer for EGA and + VGA displays. You can retrieve dvivga (and a + complete set of the Computer Modern fonts in PK + format) from the CTAN archives in the directory + dviware/dvivga. dvivga requires PK + fonts at screen-resolutions (around 100dpi); that is why a + special set of fonts is provided. If you are using a + dot-matrix printer with a similar resolution, the special + fonts may already be installed on your system.

+ +

dvivga does not support any \special commands for + including pictures or figures, but it does support + configurable font-substitution for fonts that are + unavailable.

+ +

Figure Figure 9.8 + shows a preview of the sample document from Chapter Chapter 4. + This image is from a VGA display.

+ +
+ + +

Figure 9.8. Previewing with + dvivga

+ +
+ +
+
+
+ +
+
+
+

TeX + Preview

+
+
+ +

TeX Preview\index{TeX Preview previewing@TeX + Preview previewing} is the ArborText DVI + previewer for MS-DOS. A similar previewer is available for + unix workstations running the X Window System (versions for + Motif and Open Look environments are also available). The + following discussion is based on experiences with TeX + Preview version 6.1.2, the MS-DOS implementation of + ArborText's TeX previewer.

+ +

TeX Preview supports a wide range of graphics + adapters, including EGA, VGA, and Hercules adapters as well + as the Olivetti Monochrome Graphics adapter, the Tecmar + Graphics Master, the Genius VHR Full Page Display Monitor, + the ETAP Neftis Monitor, the Toshiba 3100, and the AT&T + PC6300 display.

+ +

Figure  + Figure 9.9 shows a preview of the sample document + from Chapter Chapter 4, + Chapter 4. + This image is from a VGA display. Three additional features + of the driver, not exercised in this example, are the + ability to scale fonts to any size, display rulers and + bitmapped graphics, and a “two-up” mode for + viewing two pages at a time.

+ +
+ + +

Figure 9.9. Previewing with + ArborText's Previewer

+ +
+ +
+
+ +

When TeX Preview is displaying a DVI + file, you can move around the page and between pages; you + can change the magnification, search for text in the + DVI file, show the attributes of the character + under the cursor (font, dimensions, magnification, etc.), + and switch to another file. A configuration file allows you + to specify a wide range of options to control how TeX + Preview appears when it starts up.

+ +

ArborText supplies a full set of Computer Modern Roman + PK files at screen resolutions as well as a + complete set of Times Roman and Helvetica fonts at screen + resolutions. The additional PostScript fonts are derived + from official Adobe sources and allow you to preview + documents that will be printed on PostScript printers + (provided that they use only Times, Helvetica, and Computer + Modern fonts). They are designed specifically to work with + TFM files provided with DVILASER/PS, + ArborText's PostScript DVI driver.

+ +

If you want to use additional fonts, for example the + \AmS-fonts or Computer Modern fonts at unusual sizes, you + may wish to generate PK files at the appropriate + resolutions. TeX Preview will perform font + substitution for missing fonts (you can control what + substitutions are made) and can use the DVI driver + metric information, so generating additional fonts is not + necessary.

+ +

TeX Preview understands the virtual font + mechanisms introduced in TeX version 3.0. Several + additional utilities provided with TeX Preview allow + you to construct virtual fonts. These utilities are + summarized in Table Table 9.2 .

+ +
+ + +

Table 9.2. TeX Preview + Utilities

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Utility\bf Description
\it aftovpConverts VPL from + AFM file
\it gftopk\,\xConverts GF files into + PK files
\it packpxlCreates packed (byte-aligned) + PXL file
\it pktopx\,\xConverts PK files into + PXL files
\it pxtopk\,\xConverts PXL files into + PK files
\it tftovpConverts VPL from + TFM file
\it unpkpxlCreates standard, word-aligned + PXL file
\it vftovp\,\xConverts VF files into + VPL files
\it vptovf\,\xConverts VPL files into + VF files
+
+ +

ArborText's TeX Preview program recognizes + \special commands for drawing change bars and for rotating + any TeX + “box” through a multiple of 90 degrees. These + are the same \special commands recognized by other + ArborText DVI drivers.

+
+ +
+
+
+

dvideo

+
+
+ +

The MS-DOS based EGA previewer dvideo is + distributed as part of the TurboTeX distribution by the + Kinch Computer Company. TurboTeX is described more + completely in the section called “the section called “µTeX by + ArborText”” in Chapter Chapter 14, + Chapter 14. + TurboTeX also includes a Microsoft Windows previewer.

+ +

Figure  + Figure 9.10 shows a dvideo preview of the + sample document from Chapter Chapter 4.

+ +
+ + +

Figure 9.10. Previewing + with TurboTeX dvideo (using limited selection of + fonts)

+ +
+ +
+
+ +

The preview displayed here uses the default set of fonts + distributed with TurboTeX. This does not include several of + the large sizes used by this example. In practice, you will + have to purchase or build many fonts before you can use + TurboTeX.

+
+ +
+
+
+

PTI View

+
+
+ +

PTI View is the MS-DOS previewer that comes + with PCTeX, distributed by Personal TeX, Inc. + PCTeX is described in the section called “the section called + “PCTeX”” in Chapter Chapter 14, + Chapter 14.

+ +

Figure  + Figure 9.11 shows a PTI View preview of the + sample document from Chapter Chapter 4.

+ +
+ + +

Figure 9.11. Previewing + with Personal TeX's Previewer

+ +
+ +
+
+ +

PTI View is distributed with a complete set of + the Computer Modern fonts in PK format (PTI + View can use the same PK fonts as your + printer, regardless of the printer's resolution). It can + display the preview in many video modes, including several + high-resolution super VGA modes.

+
+ +
+
+
+

Previewing Under Windows

+
+
+ +

Most MS-DOS previewers are inappropriate for previewing + in Windows because they assume that they can + control the entire display. Recently, several commercial + and free previewers for Windows have become available. They + are described in this section.

+ +
+
+
+

dvimswin

+
+
+ +

The dvimswin previewer is a Windows version of + dvivga. It uses the same screen-resolution fonts + for displaying your DVI file and offers + font-substitution for missing fonts.

+ +

You can retrieve dvimswin from the CTAN + archives in the directory dviware/dvimswin. The + dvimswin previewer is shown in Figure Figure 9.12.

+ +
+ + +

Figure 9.12. Previewing + with dvimswin

+ +
+ +
+
+
+ +
+
+
+

dviwin

+
+
+ +

The dviwin previewer is another free Microsoft + Windows previewer. dviwin can use either screen or + printer resolution fonts to display your DVI + file. You can retrieve dviwin from the CTAN + archives in the directory dviware/dviwin.

+ +

What makes dviwin unique is its support for + \special commands. dviwin understands \special + commands for including pictures and figures, as well as + the emTeX and tpic drawing primitives.

+ +

dviwin has built-in support for PCX, + BMP, and MSP graphic formats. + Additionally, it can use any graphics filter installed in + your Windows environment. Many commercial programs + include additional filters to handle the images that they + construct. dviwin also supports emTeX font + libraries and customizable automatic font + generation. By using dviwin, you can print your + DVI files on any Microsoft Windows-supported + printer. The dviwin previewer is shown in + Figure Figure 9.13.

+ +
+ + +

Figure 9.13. Previewing + with dviwin

+ +
+ +
+
+ +

The dviwin distribution includes two additional + utilities: clipmeta for creating + MSP graphic files from any image captured in the + Windows clipboard, and wbr, a text-file + browser.

+
+ +
+
+
+

wdviwin

+
+
+ +

As mentioned above, the TurboTeX package includes + a Windows DVI driver, wdviwin, distributed by + the Kinch Computer Company. Sample output + from this previewer is shown in Figure  + Figure 9.14. This sample shows the status + window, the preview window, and a few of the available + tools.

+ +
+ + +

Figure 9.14. Previewing + with TurboTeX's wdviwin

+ +
+ +
+
+
+ +
+
+
+

DVIWindo

+
+
+ +

The DVIWindo previewer by Y&Y is + unique among the previewers used here. DVIWindo + has no support for PK fonts; it relies entirely + on scalable fonts provided by Microsoft Windows. + (This means either PostScript Type 1 fonts rendered + by Adobe Type Manager or built-in + TrueType font support.) As a result, to use the + DVIWindo previewer, you must purchase the Computer + Modern fonts in TrueType or Adobe Type 1 format (or + not use them at all).

+ +

The DVIWindo previewer is shown in + Figure  + Figure 9.15. The pull-down menu shown in this + image is the “TeX Menu,” a new feature of + DVIWindo 1.1. This menu, which can be customized + to include any programs you wish, allows DVIWindo + to function as a TeX shell. Once DVIWindo is + running, you can edit files and format documents with TeX + directly from this menu.

+ +
+ + +

Figure 9.15. Previewing + with Y&Y's DVIWindo

+ +
+ +
+
+ +

The real advantage of using scalable fonts is that you + can resize the image in arbitrary ways.[108] For example, + Figure  + Figure 9.16 shows a much-enlarged version of the + same page. Similar enlargement with non-scalable fonts + would require that the PK fonts exist at very + high-resolutions (occupying considerable disk space) or + produce very jagged output. The jaggedness of the image + shown here is the result of magnifying the captured + screen image, not the previewer. Several useful + information boxes are also shown in these images.

+ +
+ + +

Figure 9.16. DVIWindo + preview much enlarged

+ +
+ +
+
+ +

DVIWindo has several other interesting + features:

+ +
+
    +
  • +

    Portions of a document may be copied into the + Windows clipboard and then pasted into other + applications. This allows you to construct complex + mathematics in TeX, for example, and paste them + into another Windows application. The pasted + material will appear as a single graphical object + that can be moved, resized, and cropped. The + material is not rendered as a bitmap, so it can be + resized without loss of quality!

    +
  • + +
  • +

    TIFF images are displayed in the document. If + you use dvipsone (Y&Y's PostScript + printer driver) and create both TIFF and EPS + (encapsulated PostScript) versions of an image, + DVIWindo will automatically display the TIFF + image, and dvipsone will automatically print + the EPS image.

    +
  • + +
  • +

    Colored text and rules can be incorporated into + a document with \special commands.

    +
  • + +
  • +

    You can create “hypertext” buttons + in your document. Selecting a button (an area of + text or a rule) automatically moves you to a + destination marker in the document. These buttons + are only meaningful to DVIWindo, but they do + allow you to move around quickly in a document + while you are writing it. Of course, they could + also be very handy if you use DVI files + for online documentation.

    +
  • +
+
+ +

In addition to the DVIWindo executable, several + programs are provided to help you work with PostScript + fonts under Windows. They are summarized in Table Table 9.3.

+ +
+ + +

Table 9.3. DVIWindo + Utilities

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Utility\bf Description
\it pfatopfb\,\xConvert PFA files into + PFB files
\it pfbtopfa\,\xConvert PFB files into + PFA files
\it tifftagsShow the tags used in a + TIFF image
\it reencodeChange the encoding of a + PostScript font
\it afmtotfm\,\xConvert AFM files into + TFM files
\it tfmtoafmConvert TFM files into + AFM files
\it afmtopfmConvert AFM files into + PFM files
\it pfmtoafmConvert PFM files into + AFM files
\it safeseacCircumvents problem with + accented letters in PS fonts under Windows
\it cleanupRemoves inactive Windows from + the desktop
\it syssegDisplays information about + Windows system memory
+
+
+
+ +
+
+
+

Previewing on a TTY

+
+
+ +

Graphical workstations and personal + computers with graphics capabilities are a natural + environment for previewing TeX output. Unfortunately, they + aren't always available. This section describes several + previewers that work in less sophisticated + environments.

+ +
+
+
+

dvi2tty

+
+
+ +

The dvi2tty program attempts to + convert TeX output into ASCII text. This program is + designed to provide an approximation of troff's + nroff processor. To get the best results, + you will have to reformat your document using a limited + subset of TeX's capabilities. A LaTeX style file is + included for this purpose. You can retrieve + dvi2tty from the CTAN archives in the directory + dviware/dvi2tty.

+ +

The output from dvi2tty is imperfect in many + ways, but it can provide a workable ASCII document. I + used it to produce plain ASCII documentation in my + Sfware package, for example. + dvi2tty also provides a quick-and-dirty method of + applying some standard text processing tools, like + grep, to TeX output.

+
+ +
+
+
+

dvgt/dvitovdu

+
+
+ +

These programs share a common + history. As a result, they offer an overlapping set of + features. The most recent work has been done on the + dvgt processor. You can retrieve dvgt from + the CTAN archives in the directory + dviware/dvgt.

+ +

Unlike dvi2tty, which is a conversion program, + dvgt is an interactive previewer. One very neat + feature of dvgt is its ability to preview TeX + output on a number of graphics terminals, including + Tektronix 4010, VT240, VT640, Gigi, Regis, VIS500, + VIS550, VIS603, and VIS630 terminals. The importance of + this feature is that many versions of Kermit + and NCSA Telnet (and possibly other communications + programs) support one of these terminal types. This means + that you can preview documents even when you are away + from your workstation, by using dial-up access with + either a graphics terminal or plain ASCII.

+ +

Even when output is limited to plain ASCII, + dvgt attempts to make its output resemble the + printed page. To do this, it frequently drops characters + out of the middle of words and performs other + space-saving abbreviations. The result is a crude, but + workable preview, on a plain ASCII terminal.

+ +

Figure  + Figure 9.17 shows an example of dvgt + display in tek4010 emulation. This is a somewhat + contrived example since the emulation is being performed + by an xterm.

+ +
+ + +

Figure 9.17. Previewing + with dvgt under Tektronix 4010 emulation

+ +
+ +
+
+ +

dvitovdu is an older version of the program. It + is available in source code form in both C and Pascal. + You can retrieve dvitovdu from the CTAN archives + in the directory dviware/dvitovdu.

+
+ +
+
+
+

crudetype

+
+
+ +

crudetype is another plain-ASCII previewer. + It provides features similar to dvgt and + dvitovdu. It is written in Web, but it cannot be translated to C + with the web2c conversion tool (so you will have + to have a Pascal compiler).

+ +

The crudetype program was written with VMS in + mind, although it may be portable to other systems. You + can retrieve crudetype from the CTAN archives in + the directory dviware/crudetype.

+
+
+ +
+
+
+ +
+

[106] {Some setup is required + to obtain this functionality. By default, the driver asks + for the name of a font to substitute in place of the + missing font.}

+
+ +
+

[107] {Particularly in + networked environments where dvidrv assures that + temporary filenames won't collide between users.}

+
+ +
+

[108] {Most previewers support + resizing, but they are generally limited to the + resolutions for which PK fonts are + available.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch10.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch10.html new file mode 100644 index 00000000000..9eea2211c0b --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch10.html @@ -0,0 +1,782 @@ + + + + + + + + + Chapter 10. Online Documentation + + + + + + + + + + + +
+
+
+

Chapter 10. Online + Documentation

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Some common kinds of documentation---for example, manuals + for computer programs---present a unique challenge to the + author. In many cases, it would be nice to be able to provide + online documentation in addition to a typeset manual.

+ +

One option is to maintain two different documents: one for + publication and one for online access. This is difficult to + maintain and is prone to error. As the documentation evolves, + it is almost inevitable that some changes to one document + will not be implemented in the other.

+ +

Another option is to include only very limited formatting + information in the document designed for publication so that + it is easy to “strip out” the formatting commands + and produce an online manual. The unfortunate side effect of + this approach is that the resulting typeset documentation + doesn't have a very professional appearance.

+ +

With care, TeX can be the basis for a middle-ground + approach to this problem.[109] If you + are starting a new documentation project, TeXinfo and + LameTeX provide two alternatives for the + production of typeset and online documentation from the same + source. \LaTeX2HTML and \LaTeX2hy provide alternatives + that may be suitable for existing documentation.

+ +

You'll find that the best results occur when you plan + ahead: if you know that you need both typeset and ASCII + documentation, try to use tools that will make the task + easier. But, even if you try to plan ahead, it's not uncommon + to find out after the fact that you need or want ASCII + documentation. If you don't have the TeX sources, you'll just + have to take the best results you can get with one of the + tools described later in this chapter and do whatever + hand-editing is required.

+ +

If you have the TeX sources for a document, here are some + guidelines that can help improve the quality of the + conversion to plain ASCII:

+ +
+
    +
  • +

    Redefine all font commands to use \tt. This makes + TeX work with a fixed-width font. You will probably get + many, many overfull and underfull box messages. This + can't be helped. Setting \tolerance and \hbadness to + large values (10000 with TeX 2.x or 100000 with TeX + 3.x, for example) will reduce the number of + warnings.

    + +

    Similarly, redefine all the commands that change + font size to select the same size (probably 10pt or + 12pt will work best, but larger values may be better if + you have wide margins).

    +
  • + +
  • +

    Don't use any special fonts---no picture + environments in LaTeX, for example. Take out rules, + too.

    +
  • + +
  • +

    Use \raggedright. There's no point in trying to line + up the right margin.

    +
  • + +
  • +

    Remove or redefine all mathematics to avoid the use + of math-mode. It won't work; don't ask TeX to try.

    +
  • + +
  • +

    Remove all tables (\halign in Plain TeX, + tabular environments in LaTeX).

    +
  • + +
  • +

    Remove floating environments; this may help.

    +
  • + +
  • +

    Depending on your level of expertise and the number + of documents that you have to convert, redefine + footnotes and other environments to give you more + marginal improvements.

    +
  • +
+
+ +

The ascii.sty style for LaTeX + encapsulates many of these rules for you.

+ +
+
+
+

Something Is Lost

+
+
+ +

Many things that can easily be represented on paper + cannot be represented in plain ASCII. One reason for this + is that plain ASCII output is not proportionally spaced. + Also, in ASCII you can move up or down only by rows, and + left or right only by columns; you can't move down “3 + points” on a terminal to typeset a subscript, for + example.

+ +

These differences combine to make many things + impossible. For all of its marvelous sophistication, TeX + cannot help you typeset mathematics in plain ASCII. It + just can't be done. Most tables can't be done in plain + ASCII either (at least not if you want lines that are only + 80 characters or so long).

+ +

The following sections describe tools that may help you + achieve the goal of online and typeset documentation from + the same sources. Each tool has its own advantages and + disadvantages. The ones that work best for you will depend + on the type of documentation you are producing and the + amount of work you are willing to do.

+
+ +
+
+
+

TeXinfo

+
+
+ +

TeXinfo is the document formatting system + adopted by the Free Software Foundation (FSF) and + the GNU Project. It is a special TeX format that is + very different from standard TeX.[110] The + goal of TeXinfo is to devise an input format that can be + processed by TeX to produce typeset output and then be + processed by another program to produce hypertext output. (The + other program in this case is MakeInfo.)

+ +

TeXinfo supports ordinary text, sectioning commands, + itemize and enumeration environments, footnotes, + cross-references, tables of contents, lists of figures and + tables, and multiple indexes.

+ +

The TeXinfo example from Chapter Chapter 4, + Chapter 4, + is reproduced in Example Example 10.1 + (the TeXinfo input), Figure Figure 10.1 + (the typeset page), and Figure  + Figure 10.2 (the resulting online + documentation).

+ +
+ + +

Example 10.1. TeXinfo + Commands

+
+
+
+
+ +
+ + +

Figure 10.1. TeXinfo sample + page

+ +
+ +
+
+ +
+ + +

Figure 10.2. Online + documentation produced by MakeInfo

+ +
+

  
+     \FramedVerbInput{perf-inf.inf}
+ +

+
+
+ +

The output from MakeInfo is very nearly pure + ASCII. The motivation for {hypertext} output is to make + cross references dynamic when the “info” version + of the document is used for online reference.[111] The result is close + enough to pure ASCII that converting it to pure ASCII is + not (usually) too difficult. For example, the comp.fonts newsgroup's + Frequently Asked Questions list is maintained as a TeXinfo + document. It is posted as an info version that has been + processed by a Perl script to “flatten” the + hypertext.

+ +

The TeXinfo format is well documented, so a brief + description here will suffice. First, the backslash, which + is ordinarily used to introduce control sequences in TeX, + is not special. Instead the “@”-sign is used. + Second, a TeXinfo document is divided into “nodes.” A node corresponds roughly to + a chapter or a large section of a chapter. In the online + documentation, it is easy to jump between related + nodes.

+ +

Because the info version of the document is ASCII text, + many of the special typesetting features of TeX aren't + applicable. To support them in the typeset document, + TeXinfo allows you to specify that some portions of the + input should be seen only by TeX and some should be seen + only by MakeInfo. Example Example 10.1 + uses this feature to typeset mathematics using the best + features of both TeX and MakeInfo.

+
+ +
+
+
+

\LaTeX2HTML

+
+
+ +

\LaTeX2HTML attempts to convert LaTeX documents + into HTML, the document structuring language + used by the World Wide Web (WWW) project. HTML + stands for HyperText Markup Language; it is a way of + describing documents in terms of their structure (headings, + paragraphs, lists, etc.). SGML, the Standard + Generalized Markup Language, provides a framework for + developing structured documentation; HTML is one specific + SGML document type. HTML documents are displayed by special + programs called browsers that interpret the markup and present + the information in a consistent manner. Because an HTML + document is described in terms of its structure and not its + appearance, HTML documents can be effectively displayed by + browsers in non-graphical environments.

+ +

One of the most important features of HTML documents is + the ability to form hypertext links between documents. + Hypertext links allow you to build dynamic relationships + between documents. For example, selecting a marked word or + phrase in the current document displays more information + about the topic, or a list of related topics.

+ +

\LaTeX2HTML preserves many of the features of a LaTeX + document in HTML. Elements that are too complex to + represent in HTML, such as mathematical equations and logos + like “TeX,” are converted into graphic images + that can be displayed online by graphical browsers. All + types of cross referencing elements (including footnotes) + are preserved as hypertext links.

+ +

When installed, \LaTeX2HTML understands many basic LaTeX + commands, but it can be customized to handle other styles. + \LaTeX2HTML is written in Perl.

+ +

All in all, \LaTeX2HTML is one of the easiest and most + effective tools for translating typeset documentation into + a format suitable for online presentation. In a graphical + environment like X11, Microsoft Windows, or the Macintosh, + HTML documents offer very good support for online + documentation.

+
+ +
+
+
+

LameTeX

+
+
+ +

LameTeX is a PostScript translator for + a (very limited) subset of LaTeX. One of its original + design goals, the inclusion of sophisticated PostScript + commands directly in a LaTeX document, has been superseded + by the PSTricks package. However, one of the side + effects of a special-purpose translator for LaTeX is the + ability of that translator to produce different kinds of + output, including plain ASCII.

+ +

The primary advantage of this method is that it does not + require learning an entirely foreign macro package like + TeXinfo. The disadvantage is that it understands only a + very small subset of LaTeX. This subset includes only the following + commands:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\#\footnotesize\ref
\$\hspace\rm
\%\hspace*\sc
\huge\scriptsize
\Huge\include\section
\LARGE\input\section*
\Large\it\setlength
\_\item\sf
\addtolength\itemize\sl
\backslash\label\small\smallskip
\begin\large\subparagraph
\bf\ldots\subparagraph*
\bigskip\medskip\subsection
\center\newlength\subsection*
\chapter\newline\subsubsection
\chapter*\normalsize\subsubsection*
\clearpage\par\tiny
\description\paragraph\today
\document\paragraph*\tt
\documentstyle\part\verbatim
\em\part*\verbatim*
\end\quotation\verse
\enumerate\quote\vspace
\flushleft\raggedleft\vspace*
\flushright\raggedright 
+
+ +

In addition, unlike LaTeX, LameTeX doesn't understand + any Plain TeX commands (other than the ones listed).

+
+ +
+
+
+

latex2hy

+
+
+ +

latex2hy is a LaTeX-to-ASCII converter. It + has several options for controlling the input and output + character sets. In addition, latex2hy has a number + of options for improving the quality of both ASCII and + printed documentation. For example, input documents can + contain both TeX and ASCII representations for complex + objects (like mathematical formulae). The printed + documentation uses the TeX version while latex2hy + uses the ASCII version. Provision is also made for + “fixups,” which allow character sequences from + the input text to be translated into different sequences on + output. For example, “$9.81\frac{m}{s^2}$” can + be automatically translated into 9.81m/s^2. By + adding specific fixups to each document that you translate, + you can obtain successively better approximations + automatically.

+ +

latex2hy gives particular attention to cross + references. Cross references are translated into + “links” between topics in hypertext output formats. + Currently, only the TurboVision + hypertext format is supported, although several other + formats are being considered.

+
+ +
+
+
+

detex

+
+
+ +

detex is a simple program that does little + more than strip control sequences and other TeXish + character sequences from your document. Doing this makes + the document more amenable to other kinds of processing + (like spellchecking) but does a poor job of producing + “online documentation.” Still, it's an + option.

+
+ +
+
+
+

dvispell

+
+
+ +

The dvispell program produces plain text output + from a DVI file. It is not a spellchecker, but it + was designed to extract the words from a TeX document which + were then fed to a spellchecking program that was unable to + ignore TeX control sequences.

+ +

The dvispell program is part of the emTeX + package, and it is remarkably sophisticated. There are many + ways in which dvispell can be programmed to perform + complex manipulations. One special strength of + dvispell is its ability to handle conversion of + accented characters and Greek symbols.

+ +

dvispell differs from the other programs + described here because it works with TeX output, the + DVI file. On the one hand, this provides + dvispell with more information (character positions, + line breaks, floating bodies, etc). On the other hand, all + of the formatting commands are missing, so it isn't easy to + determine what the user had in mind. (It's a bit like + reverse-engineering a piece of software---without the + source code, it's not always easy to tell why things look + the way they do.) But dvispell gives you access to + most of the information that is present in the DVI + file.

+
+ +
+
+
+ +
+

[109] {Structured markup + languages like SGML also address this problem, but they + introduce their own set of difficulties. Regardless of + whatever advantages they may hold, I'm not going to + discuss them here.}

+
+ +
+

[110] {A LaTeX implementation, + called LaTeXinfo, is also available.}

+
+ +
+

[111] {“Info” is + the name of both the output format and a program for + displaying the text in a hypertext fashion. Another + common way to access info files is with the GNU emacs + online help system.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch11.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch11.html new file mode 100644 index 00000000000..b75eb560ed1 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch11.html @@ -0,0 +1,1139 @@ + + + + + + + + + Chapter 11. Introducing MetaFont + + + + + + + + + + + +
+
+
+

Chapter 11. Introducing + MetaFont

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

TeX builds pages out of boxes and glue. The + smallest boxes are usually individual characters. MetaFont is a + tool that creates the actual characters.

+ +

In the last few years, a real explosion has taken place in + the number of readily available fonts. Today, many people + have access to a large number of high quality typefaces. Not + too long ago (before Adobe Type Manager (ATM) was + available for the Macintosh and Microsoft Windows), fonts + were too expensive to be generally available. In those days, + a font building tool like MetaFont was essential if TeX was + going to have a number of typefaces and a large number of + mathematical symbols. Today, the role of MetaFont is + diminishing. Many people choose to use PostScript fonts almost + entirely. In fact, with PostScript alternatives to the + Computer Modern Math fonts now available, it's possible to use TeX + without using MetaFont fonts at all.

+ +

On the other hand, lots of people do still use the + Computer Modern fonts, and there are many other MetaFont + fonts (for non-English languages like Arabic and Japanese, + for example), so MetaFont is still a useful tool. Also, it + can be used to make nice portable diagrams.

+ +

This chapter cannot teach you how to harness all of + MetaFont's power. The only practical way to learn how to + design your own images with MetaFont is to read The \MF{}book [kn:mfbook] (even if your + images are nowhere near as complex as an entire font).

+ +

What you will learn from this chapter is how to run + MetaFont to create TeX PK fonts and TFM + files from existing MetaFont programs. The + Computer Modern fonts, the \AmS fonts, and the DC Fonts are + all created with MetaFont. It is not unreasonable to imagine + that you might someday want to create one of these fonts at a + non-standard size or unusual magnification.

+ +

Knowing how to run MetaFont will also help you set up a + system for performing automatic font generation. This can + save a lot of disk space. See the section called “the section + called “Automatic Font Generation by DVI + Drivers”” in Chapter Chapter 5, Chapter 5, + for more information about setting up automatic font + generation.

+ +

From many perspectives, TeX and MetaFont behave in + analogous ways. Where TeX reads a plain text TEX + document, processes it, and produces a DVI file, + MetaFont reads a plain text MF program, processes + it, and produces a generic bitmap font file as output.

+ +

Because you probably aren't going to be writing your own + font programs for MetaFont, you have to get them from + somewhere. Many distributions of TeX include MetaFont and the + font files for the Computer Modern fonts. This chapter will + concentrate on just the Computer Modern font programs because + those are the most likely to be available.

+ +

Many MetaFont fonts can be retrieved from the CTAN + archives. Table  + Table 11.1 lists some common fonts and their + location in the CTAN archives. A collection of font samples + is shown in Appendix Appendix B, + Appendix B.

+ +
+ + +

Table 11.1. Some Popular + MetaFont Fonts on the CTAN Archives

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FontsLocation
Standard Computer Modernfonts/cm
Standard LaTeXmacros/latex/distribs/base/fonts
AmS Fontsfonts/ams
DC Fontsfonts/dc
Concretefonts/concrete
Pandorafonts/pandora
Ralph Smith's Script Fontfonts/rsfs
St. Mary's Roadfonts/stmary
+
+ +
+
+
+

What to Run?

+
+
+ +

Like TeX itself, the actual MetaFont file you have to + execute varies between platforms and + implementations. If you have built and/or installed TeX, + you probably already know what program to run. You'll have + to ask your system administrator for help if you cannot + figure out what the name of the MetaFont executable is on + your computer. In the rest \linebreak

+ +

of this chapter, I'll assume that the command mf runs MetaFont. You + should substitute the name of the executable program on + your system for mf + in the examples that follow.

+ +

MetaFont comes in big and small versions just like TeX. + You will need the big MetaFont if you are building fonts + for very high-resolution devices or at very large sizes. + Most fonts can be built with a small MetaFont.

+
+ +
+
+
+

What Files Does MetaFont + Need?

+
+
+ +

In addition to the MetaFont programs, MetaFont must + be able to find several other files. The files that are + needed are normally created during the installation + process. The sections that follow describe each of the + files that MetaFont needs.

+ +
+
+
+

Pool Files

+
+
+ +

The pool file for each version of MetaFont has + the same purpose as the pool file created for TeX. It is + created when MetaFont is compiled. If you don't have a + pool file, there's nothing you can do about it. If you + obtained precompiled programs (from the Internet, from a + friend, or commercially) and you don't have the pool file + needed by MetaFont, you received an incomplete + distribution.

+ +

If you did not install MetaFont, and the pool file is + missing, contact the system administrator who performed + the installation. Something was done incorrectly.

+
+ +
+
+
+

Base Files

+
+
+ +

Base files for MetaFont are analogous to + format files for TeX. Unlike TeX, which has many + different format files, there are relatively few base + files for MetaFont.

+ +

Base files are created by a special version of + MetaFont, usually called \iniMF. However, some + implementations combine MetaFont and \iniMF into one + program, in which case you must select \iniMF with a + special option when you run the program.

+ +

Like iniTeX, \iniMF interprets all the control + sequences in a set of base macros and builds the + in-memory data structures that the MetaFont program + needs. After loading all the files, \iniMF writes the + memory image into a base file. When MetaFont loads the + base file, it simply copies it into memory; no + interpretation is necessary.

+ +

Because MetaFont loads the base files without + interpretation, they are not generally portable from one + system to another, or even between different versions of + MetaFont on the same system. Different versions of + MetaFont load differently in memory, and this makes the + base files incompatible. For example, you need a big + \iniMF to make base files for big MetaFont and small + \iniMF for a small MetaFont.

+ +

The “the section called “What to + Run?”” section later in this chapter + describes how to build a base file, if you do not already + have one.

+
+ +
+
+
+

MetaFont Programs

+
+
+ +

When you run MetaFont, you have to tell it what file + (MetaFont program) to process. MetaFont programs are + stored in files with the extension .mf. If you + specify a complete pathname, MetaFont will load the + specific file that you request. If you specify a simple + filename without a path, MetaFont looks for the file in + several user-defined and, possibly, system-defined + locations. The most common way to specify user-defined + locations is by setting the MFINPUTS environment + variable to a list of subdirectories where MetaFont + programs are kept. The format of the environment variable + differs according to the platform you use. On unix + systems, it is a list of directory names separated by + colons. On MS-DOS and OS/2 systems, it is a list of + directory names separated by semicolons. Consult the + documentation for the particular implementation of + MetaFont you use for more information about + system-defined locations where MetaFont looks for input + files.

+
+
+ +
+
+
+

Command-line Options

+
+
+ +

In addition to the name of the MetaFont program, + MetaFont has very few command-line options. The name + of a base file is the only option regularly used. In this + section, I'll explain what can go on the MetaFont command + line.

+ +

A formal specification of the MetaFont command line + looks like this:

+
+$ mf switches &base mf-program mf-commands
+
+ +

After the name of the MetaFont program, the first things + that you can specify on the command line are + implementation-dependent switches and options. For example, + implementations of MetaFont that combine \iniMF and + MetaFont into a single program may use the switch /I to specify that \iniMF + processing is desired. There are no system-independent + switches for MetaFont. Consult the documentation that comes + with your implementation for more information about + system-dependent switches.

+ +

After any system-dependent switches, you can specify the + name of the base file to use. This option, if present, must + come before any other options, and you must put an + ampersand (&) in front of the base file name. If you do + not specify a base file, MetaFont will use a default + base.

+ +

After the base, MetaFont looks for the name of a + MetaFont program file. If MetaFont finds a filename on the + command line, it will process the program contained in that + file before looking at any other options that may + follow.

+ +

Finally, you can insert arbitrary MetaFont commands on + the command line by typing them just as you would in a + program. In fact, this is frequently done to change the + size or magnification of the font being created. Exactly + how this is accomplished is described in the section called + “the section called “Running + MetaFont”” later in this chapter.

+ +

Please read the section called “the section called + “Command-line Options”” in + Chapter Chapter 3, + Chapter 3, + for a detailed description of some common problems with + MetaFont commands on the command line. They are exactly the + same problems that can occur on the TeX command line.

+ +

Also, the behavior of MetaFont when run without any + options at all is the same as the behavior of TeX as + described in the section called “the section called + “Filenames and TeX”” in + Chapter Chapter 3.

+
+ +
+
+
+

Building a Base File

+
+
+ +

Building a base file for MetaFont is exactly analogous to + building a format file for TeX. Fortunately, there are far + fewer base files. The two most common base files are the + plain base + and the cmbase (the + base used for the Computer Modern fonts). Use the \iniMF + program to build a base file. For example, to + build the plain base, use:

+
+\$ inimf plain
+
+ +

Move the resulting files, plain.base and + plain.log, into the directory where MetaFont + looks for base files (typically in a bases or + formats subdirectory under the standard TeX + directory).

+ +

The cmbase is + actually an extension of the plain base. To build it, use + the command:

+
+\$ inimf &plain cmbase
+
+ +

Remember to use appropriate quotation or shell escape + characters to prevent the ampersand from being + misinterpreted.

+
+ +
+
+
+

Running + MetaFont

+
+
+ +

The sections that follow describe how + to use MetaFont to make a font from an existing MF + file. You should reread the sections “the section called + “What TeX Needs To Know”” from + Chapter Chapter 5, + Chapter 5, + and “the section called “Built-in + Fonts”” from Chapter Chapter 8, + Chapter 8, + if you are unfamiliar with the notions of bitmap and device + resolution and magnification and design size in TeX + fonts.

+ +
+
+
+

Picking a Mode

+
+
+ +

The input to MetaFont is an + “outline” description of a font. The output + is a set of bitmaps that realize the outline on a + particular device at a particular size.

+ +

Output from MetaFont is naturally device-dependent + because different printers have different resolutions. + But even two printers with the same resolution sometimes + produce different looking results from the same bit + patterns. For example, some laser printers are + “write white” printers, and some are + “write black” printers---depending on whether + the printer fills in the black (text) areas or the white + (non-text) areas of the page. A small, intricate bitmap + (like a character from a font) designed for a write-black + printer may not look as good on a write-white printer and + vice versa.

+ +

There are several internal parameters that can be + modified to produce optimal output on any given device. + These parameters are grouped together in a mode. Whenever you run + MetaFont to create a new set of bitmaps, you must select + a mode.

+ +

There are no rules for determining what parameters + produce the best mode for a particular printer; it's just + done by trial and error (set some values, print a font, + see if it looks good, adjust some values, print another + font, etc.).

+ +

Luckily, a large collection of predefined MetaFont + modes is available in the CTAN archives. The file + fonts/modes/modes.mf contains appropriate + MetaFont modes for many printers.

+ +

Each mode has a name. For example, + laserwriter and LNOthree are two modes + from modes.mf. See “the section called + “Running MetaFont”,” later in this + chapter for how to select a mode when you run + MetaFont.

+ +

Internally, MetaFont has a variable called + mode that it uses to keep track of the current + mode. The examples in this chapter use the + laserwriter mode because that is appropriate for + my printer.

+ +
+
+
+

Proofing mode

+
+
+ +

Proofing mode is the mode that MetaFont uses if + you do not select another mode. In proofing mode, + MetaFont displays each character on the screen. This + mode does not usually produce a useful font because it + sets the device resolution to 2601.72 dots per inch + (dpi). That resolution is chosen so that there are + exactly 36 pixels per point (one point is 1/72.27 + inches in TeX).

+ +

Because font designers are going to want to look at + a font on the screen far more often than they will want + to print it, MetaFont uses proofing mode as the + default.

+ +

If you find that MetaFont is producing fonts with + huge resolutions (thousands of dots per inch) or fonts + without TFM files, you're probably running in + proofing mode. Remember to use the mode-setting + commands on the command line when you run MetaFont. + These commands are described in “the section called + “Running MetaFont”,” later in + this chapter.

+
+
+ +
+
+
+

Selecting a Size

+
+
+ +

The design size of the font you are creating is + determined by the MF file you use. For example, + the design size of cmr10.mf is 10pt. The design + size of cmr12.mf is 12pt, etc. To select how + large you want the bitmaps to be, you must set the + magnification. There is no other way to select the size + when you are running MetaFont.

+ +

If you know the design size of a font and the size of + the bitmaps that you actually want to produce, it is easy + to calculate the magnification required. The + magnification is simply the ratio of the size you want to + the design size.

+ +

For example, suppose you need a 16pt version of + Computer Modern Roman. First, pick the font that has a + design size closest to the size you want---in this case, + Computer Modern Roman 17pt (cmr17.mf). To + calculate the magnification, simply divide 16 by 17; in + other words, the desired magnification is 0.9412. To make + a 13pt version of cmr12, use a magnification of + 1.0833. Remember, in order to use these fonts in TeX, you + will have to use the at or scaled + operators (for example, \font\cmrxvi=cmr17 at + 16pt).

+
+ +
+
+
+

Making a GF Font

+
+
+ +

After you have selected a mode and a + magnification, running MetaFont is easy. In general, you + use a command line like the following:

+
+\$ mf {\bs}mode=selected-mode; mag=desired-magnification; {\bs}input mf-file
+
+ +

For example, on a unix system, the following command + line would make a GF file for the Computer Modern Roman + 12pt font at a size of 13pt:

+
+\$ mf '{\bs}mode=laserwriter; mag=1.0833; {\bs}input cmr12'
+
+ +

Note the use of quotation marks to avoid + shell-expansion of the backslash characters.

+ +

On an MS-DOS or OS/2 system, where the backslash is + not a special character, the 13pt version of + cmr12 is made with the following command:

+
+\$ mf {\bs}mode=laserwriter; mag=1.0833; {\bs}input cmr12
+
+ +

As you can see, the semicolons are required in both + cases.

+ +

Magnification can be expressed with the + magstep() function if the font is being built at + a standard magstep size. For example, the following + command builds a 14.44pt version of cmr12:

+
+  \$ mf {\bs}mode=hplaser; mag=magstep(1); {\bs}input cmr12
+
+ +

This corresponds to \magstep1. This example also + illustrates how a different mode can be selected. In this + case, the font is being built for an HP LaserJet printer. + The command is shown without quotations, but they are + still necessary on unix systems.

+
+ +
+
+
+

Making a PK Font

+
+
+ +

Running MetaFont, as shown above, + produces a TFM file and a GF file. TeX + only needs the TFM file, which can simply be + copied to the appropriate directory. For the Computer + Modern fonts, you probably already have copies of the + TFM files, so the duplicates produced by + MetaFont can be deleted. The TFM file does not + change at different magnifications, so you do not need to + save different TFM files for different + sizes.

+ +

The GF file contains a font in the + “generic bitmap” format. Most DVI drivers use + PK files. The GFtoPK program converts + GF fonts into PK fonts. If MetaFont + creates the file cmr12.gf, you can convert it + into a PK file by issuing the command:

+
+  \$ gftopk cmr12.gf cmr12.pk
+
+ +

After conversion, you should move the PK file + to the appropriate directory for your DVI driver and + delete the GF file. PK files are + generally stored in one of two directory structures. On + operating systems that support long filenames, it is most + common to store all the PK files for a given + font in the same directory, using the extension to + identify the resolution. In this case, a 360dpi version + of cmr10 would be stored as + cmr10.360pk. Under operating systems like + MS-DOS, which do not support long filenames, different + resolutions are stored in their own directories. In this + case the 360dpi font just described would be stored as + cmr10.pk in a directory called 360dpi + or dpi360.

+
+
+ +
+
+
+

What About Errors?

+
+
+ +

Because I'm operating under the assumption that you are + not writing your own MetaFont programs, errors are + far less likely. Nevertheless, there are a few things that + can go wrong.

+ +

Figure  + Figure 11.1 shows a simple figure eight created + with MetaFont. The code which creates this symbol is shown + in Example  + Example 11.1.

+ +
+ + +

Figure 11.1. A figure eight + created with MetaFont

+
+8
+
+
+ +
+ + +

Example 11.1. The Code for + the Figure Eight

+
+mode_setup;
+u# := 2mm#;
+define_pixels(u);
+
+beginchar("A", 8u#, 9u#, 5u#);
+  z1 = ( 0u,  0u);
+  z2 = ( 8u,  0u);
+  z3 = ( 1u,  8u);
+  z4 = ( 7u,  8u);
+  pickup pencircle scaled 1u#;
+  draw z4 ..  z1 .. z2 ..  z3 .. cycle;
+  pickup pencircle scaled 3u#;
+  drawdot z1;
+  drawdot z2;
+  drawdot z3;
+  drawdot z4;
+endchar;
+
+\end
+
+
+ +

Let's look at some of the things that can go wrong. In + the following examples, a unix implementation of MetaFont + is being used. Quotation marks are used to prevent + misinterpretation of the backslashes.

+ +
+
+
! I can't find file + `mode=laserwriter.mf'.
+ +
+

If you forget to put a backslash in front of the + mode parameter, MetaFont thinks that mode + specification is the name of the MF file. + For example, mode=laserwriter is + misinterpreted as the filename:

+
+$ mf 'mode=laserwriter; \input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+! I can't find file `mode=laserwriter.mf'.
+<*> mode=laserwriter
+                    ; \input eight
+Please type another input file name:
+
+
+ +
! Value is too large + (xxxx).
+ +
+

This error occurs if some element of the image + goes outside of the bounds allowed by MetaFont. + Frequently, this occurs in proofing mode when the + image is so large that it can't be rendered.[112] In this example, + MetaFont is in proofing mode because I forgot the + \mode=laserwriter parameter on the command line:

+
+$ mf '\input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+(eight.mf
+! Value is too large (4097).
+<recently read> ;
+                 
+beginchar->...rdp:=(EXPR3);w:=hround(charwd*hppp);
+                                       h:=vround(charht*hppp);
+l.5 beginchar("A", 8u#, 9u#, 5u#)
+                                 ;
+? 
+
+ +

This doesn't mean that MetaFont can't render very + large images; it just means that my design isn't + robust enough to handle an extremely high + resolution.

+
+ +
! Curve out of + range.
+ +
+

This error is also caused by an image that is too + large to be rendered.[113] + Again, MetaFont is trying to create the image at an + extremely high resolution; it is in proofing mode + because I forgot the \mode=laserwriter parameter on + the command line:

+
+$ mf '\input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+(eight.mf
+! Curve out of range.
+<to be read again> 
+                   ;
+l.11   draw z4 ..  z1 .. z2 ..  z3 .. cycle;
+                                            
+? 
+
+
+ +
unknown + string
+ +
+

This is what happens if you forget the semicolon + after the \mode parameter. In this example, MetaFont + thinks that “laserwriter \input + eight” is the mode, which doesn't make + sense:

+
+$ mf '\mode=laserwriter \input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+(eight.mf
+>> unknown string mode_name0
+! Not a string.
+<to be read again> 
+                   ;
+mode_setup->...nput "&mode)else:mode_name[mode]fi;
+                                                  if.unknown.mag:...
+l.1 mode_setup
+              ;
+? 
+
+
+ +
! Extra tokens will be + flushed.
+ +
+

Oops, another missing semicolon:

+
+$ mf '\mode=laserwriter; mag=magstep(1) \input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+(eight.mf
+! Extra tokens will be flushed.
+<to be read again> 
+                   warningcheck
+mode_setup->warningcheck
+                        :=0;if.unknown.mode:mode=proof;fi...
+l.1 mode_setup
+? 
+
+
+ +
Nothing + happens…
+ +
+

MetaFont is sitting at the asterisk prompt waiting + for you to do something. You forgot to \input the + font:

+
+$ mf '\mode=laserwriter; eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+
+*
+
+
+ +
Output written on + eight.nnngf…
+ +
+

Success! A 300dpi version of eight.mf has + been created and stored in the file + eight.300gf:

+
+$ mf '\mode=laserwriter; \input eight'
+This is METAFONT, Version 2.71 (C version 6.1)
+(eight.mf [65] )
+Font metrics written on eight.tfm.
+Output written on eight.300gf (1 character, 1964 bytes).
+Transcript written on eight.log.
+
+ +

On systems that place restrictions on the length + of a filename extension, it is abbreviated to + eight.300. The next step is to run gftopk eight.300gf. + This will produce eight.300pk, which our DVI + driver can use.

+
+
+
+ +
+
+
+

Other Errors

+
+
+ +

The list of errors in the preceding sections is hardly + exhaustive. For example, the gothic fonts (see + Appendix Appendix B, + Appendix B) + produce two more errors when rendered at low resolutions: + ! inconsistent + equation, caused by apparently contradictory + statements (probably due to rounding errors) and {! strange path}, caused + by a path that does not appear to run counter-clockwise + (again probably caused by rounding errors, these are very + complex fonts).[114]

+ +

Most of the other errors that are encountered can be + ignored (the preceding examples from the gothic fonts can + certainly be ignored---at least at 300dpi). Entering + H at MetaFont's question mark prompt will describe + the cause of the error in more detail.

+
+
+ +
+
+
+

Output at Very High + Resolutions

+
+
+ +

Producing MetaFont output for very high resolution + devices like phototypesetters is sometimes difficult. This + will frequently require a big MetaFont for the same reasons + that processing a large document requires a big TeX.

+ +

It is possible to construct examples that cannot be + rendered at very high resolutions because they are simply + too large and complex.

+
+ +
+
+
+

Output at Very Low + Resolutions

+
+
+ +

The intricate detail of many + characters is difficult to render at very low resolutions. + Yet, it is sometimes desirable to produce output at low + resolutions for on-screen previewers and dot matrix + printers.

+ +

Usually, errors like “strange turning + path” that result from attempting to produce + output at low resolutions can be ignored, but sometimes the + resulting characters will be distorted.

+
+ +
+
+
+ +
+

[112] {Obtaining this error + from eight.mf required changing unit size from + 2mm to 5mm.}

+
+ +
+

[113] {Obtaining this error + from eight.mf required changing unit size from + 2mm to 4mm.}

+
+ +
+

[114] {There are very specific + rules about which way paths must be drawn so that + MetaFont's algorithms for filling in the character's + outline can succeed.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch12.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch12.html new file mode 100644 index 00000000000..99e5fde712f --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch12.html @@ -0,0 +1,1542 @@ + + + + + + + + + Chapter 12. Bibliographies, Indexes, and + Glossaries + + + + + + + + + + + +
+
+
+

Chapter 12. Bibliographies, + Indexes, and Glossaries

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

Bibliographies and indexes are typically + difficult to incorporate into a document. Bibliographies have + stringent, but varying, presentation requirements (the MLA + wants bibliographies to look one way, the Association of + Computing Machinery wants them another, etc.). Indexes don't + vary that much, but they are tedious to put together.

+ +

BibTeX provides a powerful mechanism for handling + bibliographies and citations. Tib is another + bibliography package for TeX. The MakeIndex program + helps manage the construction of one or more indexes for a + document. Glossaries are also constructed with the + MakeIndex program.

+ +
+
+
+

BibTeX

+
+
+ +

What's wrong with doing bibliographies + by hand? Two things. First, it is tedious to typeset each + bibliography entry according to the strict requirements of + the publisher. Chances are, you'll have to look up the + requirements each time, and you're bound to make mistakes. + Second, no matter what field you work in, it's likely that + you'll cite some of the same articles and books in more + than one publication. Computers are supposed to reduce + effort, not replicate it.

+ +

BibTeX provides a powerful mechanism for dealing with + bibliographies in a mechanical way, considerably reducing + effort on your part. Rather than formatting each + bibliography entry, you build a database of bibliography + information. Each time you want to make a + citation, you simply use BibTeX to build the bibliography + from your database into your document. That's easy to do, + as you'll see in a few minutes.

+ +

The idea of a bibliography database is introduced in + Appendix B of LaTeX: A + Document Preparation System [ll:latexbook] and is + described in more detail in \BibTeX{}ing [op:btxdoc] and Designing BibTeX + Styles [op:btxhak]. The purpose of + this chapter is to familiarize you with the concepts of a + bibliography database and to describe many of the freely + available tools for manipulating databases. It is not + intended to replace any of the preceding documents.

+ +
+
+
+

How BibTeX Works

+
+
+ +

The LaTeX command \cite inserts citations + into your document.[115] You + use a short key to + identify the publication you cite. For example, in this + book, when I want to cite The + TeXbook [kn:texbook], I use the + command FIXME:. The string kn:texbook + is the key. When you build your bibliography database, + you assign a key to each document in the database.

+ +

When LaTeX processes your document, it stores + information about the documents that you cite (including + the key for each document) in the AUX file. + The following commands identify how the bibliography + should be formatted and what bibliography databases + contain the publications you cite. LaTeX also writes this + information to the AUX file:

+
+\bibliographystyle{abbrv}
+\bibliography{texpubs}
+
+ +

BibTeX examines the AUX file and extracts the + appropriate entries from the bibliography database. It + then formats those entries according to the bibliography style that + you specify. The bibliography style (stored in a plain + text file with the extension BST) + tells BibTeX exactly how each entry should be formatted. + After formatting the entries, BibTeX writes a + BBL file that LaTeX incorporates into your + document (at the place where the \bibliography command + occurs) the next time you process it.

+ +

Sometimes it seems confusing to use LaTeX to create a + bibliography. If LaTeX keeps warning you about + “unknown citations” for documents that you + know are in the + database, try the following: run LaTeX, then BibTeX, then + LaTeX, and then LaTeX again.

+ +

The first time you run LaTeX, it writes the citation + keys to the AUX file (but it doesn't know what + publications they refer to). BibTeX writes the + BBL file, which includes the printable, + formatted bibliography and information about what + publication corresponds to each citation. The second time + you run LaTeX, it still doesn't know what publication + each citation refers to because it hasn't seen the + BBL file yet (bibliographies are usually at the + end of a document). During the second pass, LaTeX writes + the citation referents to the AUX file. Finally, + on the third LaTeX pass, it knows what each citation + refers to, so it can typeset the citations as well as the + bibliography!

+
+ +
+
+
+

Building a Bibliography + Database

+
+
+ +

A bibliography database is a plain text + file that contains information about a collection of + publications. Bibliography databases generally have the + extension .bib. Example Example 12.1 + is an example of a single database entry. This entry is + from a database of TeX-related publications that I put + together while writing this book.

+ +
+ + +

Example 12.1. A Sample + BibTeX entry

+
+@book{kn:texbook,
+  author =  "Donald E. Knuth",
+  title =   "The {TeX}book",
+  publisher =   "Addison-Wesley",
+  year =  1989,
+  edition =   "Fifteenth",
+}
+
+
+ +

The entry in Example Example 12.1 + describes The + {TeX}book by Donald Knuth. The key for this + entry is kn:texbook.

+ +
+

Note

+ +

All of the keys in a BibTeX database must be unique. + If you use multiple databases for a single document, + all of the keys in all of the databases must be + unique.

+
+ +

In database jargon, the bibliography database contains + a collection of records describing publications. There + may be several types of records in the same database. + Each record contains several fields, some of which are + required and some optional. The required fields vary + according to the type of record.

+ +

In English, this means that each entry in the database + describes a specific type of publication (book, article, + technical report, etc.). Every publication is described + by its characteristics. For example, books have a title, + an author or editor, a publisher, and a year of + publication. Some books also have a publisher's address, + a volume or number, a series, edition, or month of + publication (or some combination of these elements). + These characteristics are called fields, and they are + identified by their name.

+ +
+
+
+

Database entries

+
+
+ +

This is the general structure + of an entry in a bibliography database:

+
+@type{key,
+    field1 = "value1",
+    field2 = "value2",
+    . . .
+    fieldn = "valuen"
+}
+
+ +

Always enter complete bibliography information in + mixed case. Never abbreviate or set field values in all + upper or all lowercase, even if the bibliography style + that you most frequently use specifies, for example, + that book titles appear in uppercase or that only the + author's first initial should appear. BibTeX will take + care of formatting the entry according to the style. If + you store incomplete information in the database, + BibTeX can't work correctly if you change styles.

+
+ +
+
+
+

Entry types

+
+
+ +

Table  + Table 12.1 shows the required and optional + fields for article and book entries. Similar lists + exist for the other standard entry types: booklet, + conference, inbook, incollection, inproceedings, + manual, mastersthesis, phdthesis, proceedings, + techreport, unpublished, and a catch-all miscellaneous + type.

+ +
+ + +

Table 12.1. Types of + Entries with Required and Optional Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Type\bf Required Fields\bf Optional Fields
articleauthormonth
 journalnumber
 titlepages
 yearvolume
  note
bookauthor or editoraddress
 publisheredition
 titlemonth
 yearvolume or number
  series
  note
+
+ +

Fields that are neither required nor optional are + ignored. Therefore, you can and should associate + arbitrary information about a publication in its entry. + Abstracts and keywords, for example, are two additional + pieces of information that you might keep for some + publications. They can be stored in abstract + and keyword fields in each entry, even though + it is unlikely that they will ever occur in a + bibliography.

+ +
+

Note

+ +

The types of records that are valid, and the + required and optional fields they contain are + determined solely by the bibliography style. There is + nothing in the BibTeX program that makes book and article entries more + legitimate than reptile or cartoon entries.

+
+
+ +
+
+
+

Abbreviations

+
+
+ +

The database entry structure that + I've shown isn't entirely accurate. In my example, + every field has a quoted string value. The truth is, + every value is either a quoted string or an + abbreviation or a number. An abbreviation is created + with the @string command. Typically, + @string commands are placed at the top of the + bibliography database. For example, the following + command defines ora to be an abbreviation for + O'Reilly & Associates.

+
+@string{ora = "O'Reilly & Associates, Inc."}
+
+ +

The months of the year should always be specified + with abbreviations so that bibliography styles can + redefine how they appear in the bibliography (for this + reason, three-letter abbreviations for the months are + defined in the standard styles---you don't have to + define them yourself). The names of journals that you + cite frequently are also obvious candidates for + abbreviation.

+
+ +
+
+
+

Preamble

+
+
+ +

Sometimes it is helpful to define + TeX control sequences in a bibliography database. + BibTeX provides a @preamble entry for this + purpose.

+ +

Consider the following example, paraphrased from + \BibTeX{}ing [op:btxdoc]: You have a + database which contains entries for each volume of a + two-volume set by the same author. It happens that + Volume One has been reprinted, so it has a more recent + date than Volume Two. The standard styles sort by + author and then date, so as it stands, the bibliography + would list Volume Two before Volume One.

+ +

To correct this problem, you could specify the dates + for Volume One as:

+
+year = "{\noopsort{1990a}}1992"
+
+ +

and for Volume Two:

+
+year = "{\noopsort{1990b}}1990"
+
+ +

BibTeX will sort “1990a” before + “1990b,” so they will appear in the correct + order, and the following definition for \noopsort will + simply discard its argument, so nothing extra will + appear in the bibliography:[116]

+
+\def\noopsort#1{}
+
+ +

The best place to put this definition is in the + database that uses it (so that it will always be + present when that database is used). The + @preamble command simply copies its argument + to the top of the BBL file, so this definition + at the top of the database will do exactly what we + want:

+
+@preamble{"\def\noopsort#1{}"}
+
+
+ +
+
+
+

Comments

+
+
+ +

Anything that does not appear + inside a @type{} + command is a comment. However, many programs that + manipulate bibliography databases will misplace + comments appearing before or after an entry if the + entries are reordered.

+ +

BibTeX includes a @comment entry for + backwards compatibility with older systems. Unlike TeX, + the percent sign (\%) is not a comment + character in BibTeX.

+
+ +
+
+
+

Special characters

+
+
+ +

Inserting TeX control sequences (to form + accented characters, for example) into a bibliography + entry requires special care. Some styles specify that + entries should be shifted to upper or lowercase, and + shifting the case control sequence names would make + them different.

+ +

BibTeX is aware of the case sensitivity of TeX + control sequence names and will not change them. To + specify accents or other special characters, always + enclose them in { and } braces. The + same treatment should be given to portions of an + author's name that should remain in lowercase even if + the rest of the name is shifted to uppercase.

+
+
+ +
+
+
+

Bibliography Styles

+
+
+ +

BibTeX styles are really programs written in a + simple but powerful stack-based language and interpreted + by BibTeX.[117] Don't confuse + bibliography styles (BST files) with LaTeX styles + (STY files); they are unrelated. Although a + complete description of the BibTeX language is not + presented here, a short example will help give you a + sense of the language.

+ +

Each BST file defines a number of functions. + The highest level functions determine how each entry is + formatted: when BibTeX needs to format a + “book” entry, it executes the book + function, which must be defined by the BST file + in use or an error will result.

+ +

Let's consider part of the task of formatting a book + entry. These code fragments are from the standard + bibliography style plain.bst. When the + book function is ready to output the book title, + it calls the format.btitle function, shown + here:

+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+ +

This function places the title field on top of + the stack and calls emphasize:

+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "" swap$ * "" * }
+  if$
+}
+
+ +

This is what emphasize will do when the title is not an empty + field:

+ +
+
    +
  1. +

    Duplicate what is on the top of the stack.

    +
  2. + +
  3. +

    Test the value on the top of the stack. The + empty$ function removes the top value from + the stack and places a boolean “true” + value there if what it removed was an empty field, + and a “false” value otherwise.

    +
  4. + +
  5. +

    Push { pop$ "" } onto the stack.

    +
  6. + +
  7. +

    Push { "<emphasis>" swap$ * + "</emphasis>" * } onto the stack.

    +
  8. + +
  9. +

    Test the condition. The if$ function + takes three values from the stack: a boolean value, + something to do if that value is true, and + something to do if that value is false. In this + case, the title is not an empty field, so the value + is false. The { pop$ "" } value is + discarded, and { "<emphasis>" swap$ * + "</emphasis>" * } is evaluated.

    +
  10. + +
  11. +

    Push {\em  onto the top of the + stack.

    +
  12. + +
  13. +

    Swap the top two items on the stack. Now + \em  is below the book title on the stack.

    +
  14. + +
  15. +

    Concatenate the top two items on the stack. Now + the top of the stack holds the value \bs + em book title.

    +
  16. + +
  17. +

    Push } onto the top of the stack.

    +
  18. + +
  19. +

    Concatenate the top two items on the stack. Now + the top of the stack holds the value + {\ttopenbrace\bs em {book + title}}}.

    +
  20. +
+
+ +

The resulting value left on top of the stack when + emphasize is finished is the TeX code required + to print the book title with emphasis.

+ +
+
+
+

Special-purpose styles

+
+
+ +

A number of styles have been + written to allow you to develop special-purpose + bibliographies. A few of them are listed here:

+ +
+
    +
  • +

    bibunits supports multiple + bibliographies in different sections of a single + document.

    +
  • + +
  • +

    chapterbib supports separate + bibliographies in each chapter of a single + document.

    +
  • + +
  • +

    makebst asks a number of questions + about the bibliography style you need and + constructs an appropriate BibTeX style.

    +
  • +
+
+
+
+ +
+
+
+

Bibliography Database Tools

+
+
+ +

There are a lot of programs designed + to help you extract information from bibliography + databases, sort the entries, build subset-bibliographies + that contain only some of the entries from a larger + bibliography, and enter or edit information in an + existing or new database. A lot of these programs are + written in unix shell script languages and rely on + existing text-processing tools like awk, + sed, sort, and grep. Of course, many + of these text-processing tools have been ported to other + operating systems. Most of the utilities written in shell + script languages can be modified to work in other + environments by an ambitious individual.

+ +
+
+
+

bibsort

+
+
+ +

The bibsort shell script + reorders the entries in a bibliography database into + alphabetical order by entry key name. @string + commands are reordered by macro name. This program + cannot deal correctly with comments that appear outside + of an entry. These comments are always associated with + the preceding entry, which is frequently incorrect.

+ +

Consider carefully before you reorder the entries in + a database. BibTeX places some restrictions on the + available orderings. Cross references, for example, + must appear before the entry to which they refer.

+
+ +
+
+
+

biblook

+
+
+ +

biblook is an interactive program that + searches rapidly through a bibliography database for + key words in specified fields. Compound conditions + (using “and” and “or”) can be + specified. The entries located by a search can be saved + into a separate file.

+ +

To use biblook, you must preprocess the + database with bibindex, which builds a + binary index of the entries. Differences in case are + removed, TeX control sequences are stripped out, and + non-alphanumeric characters are removed. This increases + the likelihood of correct matches.

+
+ +
+
+
+

bibclean

+
+
+ +

bibclean is a syntax checker for + bibliography databases. Running bibclean before + using bibsort, biblook, or any other + programs described here can eliminate a lot of the + problems these programs may encounter. Although + bibliography databases are plain text files with a very + loose structure, some tools are more easily confused + than others.

+ +

bibclean identifies possible problems in the + database and pretty-prints it in a standard way. The + following formatting changes are made by + bibclean:

+ +
+
    +
  • +

    The structure of each database entry is made + consistent with respect to the following + criteria: the “@” sign that begins + the entry type is moved into column 1; each line + in the entry is changed to contain exactly one + “field = value” pair; and the closing + right brace is placed in column 1 on a line of + its own. Additionally, outer parentheses are + converted into braces; tabs are expanded into + blanks; hyphens in a sequence of pages are + converted into en-dashes; and month names are + converted into standard abbreviations.

    +
  • + +
  • +

    Long string values are split at a blank and + continued on the following line. The continuation + lines are indented.

    +
  • + +
  • +

    Individual names in the author and editor + fields are normalized. A single space is placed + after periods that separate initials, and all + entries are converted into “first-name + middle-name last-name” form (instead of + “last-name, first-name” form, for + example).

    +
  • + +
  • +

    The checksums of ISBN and ISSN numbers are + verified.

    +
  • + +
  • +

    Uppercase letters that appear outside of + braces are enclosed in braces to prevent them + from being erroneously shifted to lowercase by + some bibliography styles.

    +
  • + +
  • +

    Text outside of entries is not changed. + Entries are separated by a single blank line.

    +
  • +
+
+
+ +
+
+
+

citetags

+
+
+ +

When documents must be transmitted + in “source” form (meaning that the actual + TeX files will be shipped around), it's generally + unnecessary to include entire bibliography databases. + In these cases, it would be more convenient to send + only the bibliography entries that are actually + used.

+ +

The citetags program extracts the citations + from an AUX file. This list of citations can + be passed to the citefind program to build a + small bibliography database of just the required + entries.

+
+ +
+
+
+

citefind

+
+
+ +

citefind processes a list of citations and + a list of bibliography databases and writes out a new + database containing just the entries required to match + the citations present. This provides a minimal database + that can be shipped with the document if the TeX files + must be processed on another computer.

+
+ +
+
+
+

bibextract

+
+
+ + +

Given a list of fields and values (specified as + regular expressions), bibextract creates a new + database containing only the entries that match one or + more of the specified values in one or more of the + specified fields. The necessary @string and + @preamble commands are also included in the + new database.

+
+ +
+
+
+

lookbibtex

+
+
+ +

lookbibtex offers the same features as + bibextract. However, lookbibtex is + written in Perl rather than a shell script + language.

+
+ +
+
+
+

bibdestringify

+
+
+ +

As the name implies, bibdestringify + replaces all @string macros in a database by + their textual expansions.

+
+ +
+
+
+

edb

+
+
+ +

edb, or the “Emacs + Database” is a powerful database programming + system built on top of GNU Emacs Lisp. edb has + been used to write a database-editing mode for BibTeX + databases. It can be extended to handle new entry + types.

+
+ +
+
+
+

Emacs BibTeX mode

+
+
+ +

BibTeX mode is a mode for + editing BibTeX databases in emacs. It provides some + template expansion and alignment features, but is + essentially a text-editing mode (as opposed to + edb, which is specifically a database-entry + editor).

+
+ +
+
+
+

bibview

+
+
+ +

bibview is an X Window-based program for + editing bibliography databases. Figure  + Figure 12.1 shows an example of bibview + editing a database entry.

+ +
+ + +

Figure 12.1. Editing an + article entry with \program{bibview}

+
+FIXME:
+
+
+ +

Unlike the xbibtex program, bibview + can handle optional and ignored fields in bibliography + entries. It does not handle new entry types.

+
+ +
+
+
+

xbibtex

+
+
+ +

xbibtex is an X Window-based program for + creating bibliography databases. Figure  + Figure 12.2 shows an example of xbibtex + creating a bibliography entry.

+ +
+ + +

Figure 12.2. Editing an + article entry with \program{xbibtex}

+
+FIXME:
+
+
+ +

It does not appear that xbibtex can edit + existing entries. It also does not handle unexpected + fields or new entry types.

+
+ +
+
+
+

bibdb

+
+
+ +

The bibdb program is an MS-DOS-based + bibliography database editor. The screen capture in + Figure  + Figure 12.3 shows an example of bibdb + editing a bibliography entry. bibdb displays + only fields that have values.

+ +
+ + +

Figure 12.3. Editing an + article entry with \program{bibdb}

+
+FIXME:
+
+
+ +

Although it does not handle arbitrary fields, + bibdb has a large selection of optional fields. + It does not handle new entry types.

+
+
+
+ +
+
+
+

Tib

+
+
+ +

Tib is another tool for maintaining + bibliography databases. The format of a Tib database + is the same as the format for the troff refer + processor.[118] An example entry for + The TeXbook is shown + in Example Example 12.2.

+ +
+ + +

Example 12.2. A Tib style + database entry

+
+
+
+
+
+
+ +

Unlike BibTeX, which relies on the citation macros to + format citations correctly, Tib actually replaces + the citations with the appropriate information. In + other words, Tib-style citations are not control + sequences; they are just text strings. The Tib + processor creates an entirely new document file that should + be passed to TeX.

+ +

The general format of a Tib citation is + [.citation + key(s).]. Tib databases do + not contain a key field; instead, the citation keys can + come from any fields in the database entry (you can exclude + some fields if you wish). The punctuation around citations + in square brackets is adjusted by Tib. An alternate + form of citation using angle brackets inserts a citation + without adjusting any of the surrounding punctuation.

+ +

The bibliography is inserted into your document wherever + the string “.[]” occurs at the + beginning of a line. Analogous to BibTeX, the format of the + reference list is controlled by a Tib style. Styles + for roughly fifteen technical journals are provided.

+
+ +
+
+
+

Making Indexes

+
+
+ +

Constructing an index for a TeX document is relatively + straightforward. First, you must identify each occurrence + of each word or concept that you want indexed. To do this, + you must insert \index entries into your document.[119] When you format your + document containing the index entries, an IDX + file is created that contains all of the + entries along with the page number where each entry + occurred.

+ +

The MakeIndex program[120] reads + the IDX file, sorts and collates the entries, and + writes an IND file. The + MakeIndex program can also load an index style file, + discussed in the next section.

+ +

When LaTeX processes your document, it inserts the + contents of the IND file into your document at the + point where you use the \printindex control sequence.

+ +
+
+
+

Index Entries

+
+
+ +

Index entries use special characters to identify + different types of entries (simple entries, + multiple-level entries, see-also's, etc.). The exact + characters used are controlled by the index style file, + and it may be convenient to select an alternate style. + For example, MakeIndex uses the double-quote + character by default to identify literal characters in + the index entry, but the German Babel style makes + the literal double quote character a shortcut for the + umlaut accent; this use makes it unavailable as the + quotation character in index entries.

+ +

Another point to consider when coding index entries is + that the arguments to the index macros are expanded by + TeX. This makes it difficult to insert some control + sequences in an index entry (for example + ). In LaTeX, you can combat + this problem by using the control sequence: .

+ +

A complete list of the different kinds of index + entries that can be created is included in {MakeIndex: An Index Processor for + LaTeX} [ll:makeindex].

+
+
+ +
+
+
+

Index Format

+
+
+ +

The format of the index is controlled by both the index + style (which specifies whether or not headings should be + present, what the delimiters should be, etc.) and the + definition of several control sequences:[121]

+ +
+
+
\bs\texttt{theindex}
+ +
+

Controls what happens just before the index is + printed. This sequence should establish a new page, + set up running headers and footers, select multiple + columns, and do whatever other global setup is + desired.

+
+ +
\bs\texttt{item}
+ +
+

Executed just before a first-level entry.

+
+ +
\bs\texttt{subitem}
+ +
+

Executed just before a second-level entry.

+
+ +
\bs\texttt{subsubitem}
+ +
+

Executed just before a third-level entry.

+
+ +
\bs\texttt{indexspace}
+ +
+

Executed between alphabetical sections.

+
+ +
\bs\texttt{endtheindex}
+ +
+

Controls what happens just after the index is + printed. This sequence should undo anything that was + started by \theindex.

+
+
+
+
+ +
+
+
+

Special-purpose styles

+
+
+ +

A number of styles have been written to allow you to + develop special-purpose indexes. multind and + index are described here.

+ +

multind supports multiple indexes in a single + document.

+ +

index is a reimplementation of the LaTeX + indexing commands. It stores index entries in the + AUX files so that portions of a document can be + reformatted without losing the entire index. It also + provides support for multiple indexes and replaces the + makeidx style + option.

+
+ +
+
+
+

Making Glossaries

+
+
+ +

The LaTeX command \glossary can be + used to accumulate words and concepts for a document + glossary. The output, stored in a GLO file, is + very similar to an IDX file. Like an index, the + glossary file can be processed by MakeIndex to + produce a sorted list of terms. To produce a glossary, you + must create an index style for the glossary. Here is a + minimal glossary.ist:

+
+keyword "\\glossaryentry"
+preamble "\n\\begin{theglossary}\n"
+postamble "\n\\end{theglossary}\n"
+
+ +

The output file that MakeIndex creates will have + to be edited by hand, naturally, in order to incorporate + the definitions of the entries. You will also have to + define an appropriate glossary environment by defining the + control sequences used to make the glossary:

+ +
+
+
\bs\texttt{theglossary}
+ +
+

Controls what happens just before the glossary is + printed. This sequence should establish a new page, + set up running headers and footers, and do whatever + other global setup is desired.

+
+ +
\bs\texttt{item}
+ +
+

Executed just before a glossary item.

+
+ +
\bs\texttt{endtheglossary}
+ +
+

Controls what happens just after the glossary is + printed. This sequence should undo anything that was + started by \theglossary.

+
+
+
+ +

Finally, you will have to \input or \include the + glossary in your document.

+
+ +
+
+
+ +
+

[115] {For Plain TeX and other + formats derived from Plain, the btxmac.tex + macros provide these commands.}

+
+ +
+

[116] {This example uses Plain + TeX syntax rather than a LaTeX \bs newcommand, + because BibTeX databases can be used from Plain TeX as + well as LaTeX.}

+
+ +
+

[117] {A complete description + of BibTeX's programming language can be found in Designing BibTeX + Styles [op:btxhak].}

+
+ +
+

[118] {refer databases can + reportedly be converted to and from BibTeX format.}

+
+ +
+

[119] {The format you use must + also provide support for indexing. In LaTeX, + most of the support is built in, but you must use the + makeidx style option. In Plain TeX and other + Plain-derived formats, input the idxmac.tex + macros at the top of your document. The rest of this + section assumes that you use LaTeX, although the + principles hold for any macro package that supports + indexing.}

+
+ +
+

[120] {Frequently called + makeidx on MS-DOS systems.}

+
+ +
+

[121] {In LaTeX, these control + sequences have default definitions that you may not need + to change.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch13.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch13.html new file mode 100644 index 00000000000..821c3409e15 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch13.html @@ -0,0 +1,2491 @@ + + + + + + + + + Chapter 13. Non-commercial + Environments + + + + + + + + + + + +
+
+
+

Chapter 13. Non-commercial + Environments

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

This chapter offers an overview of + several common free and shareware TeX systems. If you notice + any conflicts between the information in this chapter and the + documentation that comes with the software, please consider + the documentation to be more accurate and up-to-date. I've + attempted to provide hints and practical suggestions, but + software installation is largely dependent on your system + configuration and the way you want to use TeX.

+ +
+
+
+

Web2C

+
+
+ +

The official sources for all of the + standard TeX programs are distributed in a format known as + \web.[122] \web is an + implementation of a programming style known as + “literate programming.” One central tenet of + literate programming is that source code and documentation + should be written in parallel. Literate programming + enforces this tenet by combining the two in a single file. + \web source files contain a mixture of source code and + documentation.

+ +

In \web files, the documentation is written in TeX, and + the source code is written in Pascal. (Other literate + programming environments use different documentation and + programming languages.) To print the documentation, a + special preprocessor called weave transforms the \web + source into a TeX document that can be formatted and + printed. Another preprocessor, called tangle, + transforms the \web source into a Pascal program that can + be compiled and executed.

+ +

In practice, it is far more likely that you have access + to a C compiler than to a Pascal compiler. This is where + Web2C comes in. Web2C is a special-purpose + Pascal-to-C translator that makes it possible to compile + and build the TeX sources in most unix environments (and + probably many other environments as well).

+ +

Karl Berry maintains the Web2C + distribution. You can retrieve it from the CTAN archives in + the directory systems/unix/web2c.

+ +

Preparing to build TeX with the Web2C + distribution is very straightforward. Unpack the archive + files, read the file named README, and follow the + instructions in the file named INSTALL. Many + people have built TeX using these sources. If you have + difficulty, readers of the Info-TeX mailing list or + the comp.text.tex newsgroup will almost + certainly be able to help.

+ +

In my experience, there are only two parts of the + installation that are likely to cause any difficulty: + compiling tangleboot.c and building the X Windows + support in MetaFont.

+ +

Because tangle is written in \web, there is an + obvious bootstrapping problem (how do you tangle + tangle.web in order to compile tangle?). + The Web2C distribution includes a small C program + called tangleboot.c, which overcomes + this hurdle. It's possible that getting + tangleboot.c to compile on your machine may + require some tinkering. I had this problem on one machine + with one release of Web2C. Subsequent releases of + Web2C seem to have corrected this problem (in my + case, at least).

+ +

Compiling X Window support for MetaFont has regularly + been a thornier problem. If you are not comfortable + programming in C, I cannot suggest a simple way to correct + these difficulties in the general case. (However, asking + for help in the appropriate newsgroups is very likely to + produce a solution for any particular problem.)

+ +

The most common errors that I've encountered in building + the X Windows support for MetaFont are conflicting + prototypes and type definitions. My solution to these + problems, inelegant though it may be, has generally been to + “correct” or remove the offending declarations + from the MetaFont sources. (Note: the X Window support is + written directly in C, not \web, so it is considerably + easier to edit.) In my experience, this has always been + successful, but your mileage may vary.

+
+ +
+
+
+

emTeX

+
+
+ +

The emTeX distribution is a very + complete, free distribution of TeX for MS-DOS and OS/2 + systems. emTeX will run on any 80x86 processor, although + some of the larger, faster executables require at least a + 386. There is no single right way to install TeX, so what + follows is only one possible installation. This + installation uses the default directories and assumes a + single-user environment. Installing emTeX in a network + environment is mentioned briefly in “the section called + “Installing emTeX on a + Network”,” later in this + chapter. Incorporating the more recent, beta test versions + of emTeX is described in the section called \linebreak

+ +

the section called + “Environment variables”.” emTeX is + available on CTAN in the directory + systems/msdos/emtex.

+ +

On the whole, the installation instructions for emTeX + are provided in the distribution. Begin by reading the + English or German versions of the documentation provided. + Additionally, you should read the DVI driver documentation + at least once. (It's quite long, and you may not remember + all of it after a single reading, but at least you'll have + a feel for what can be done.)

+ +

Table  + Table 13.1 summarizes the files in the + distribution. The standard emTeX distribution occupies six + high-density floppy disks. A complete installation requires + more than 12 megabytes of storage without fonts. You must + also get a set of fonts (available in font library format + for emTeX) or set up automatic font generation.

+ +
+ + +

Table 13.1. Summary of the + \protect\emTeX Distribution

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   \multicolumn{1}{l}{\bf + Expanded}
\bf File\bf Abbreviated Contents\multicolumn{1}{l}{\bf Size}\multicolumn{1}{|l}{\bf + Size}
\it *.engEnglish documentation125Kb125Kb
\it{}*.gerGerman documentation140Kb140Kb
\it{}*.exeDelete, remove, pkunzip227Kb227Kb
\it tex1.zipTeX executables, TFMs, + inputs368Kb645Kb
\it tex2.zipPlain formats, more + TFMs262Kb403Kb
\it blatex.zipBig TeX LaTeX format227Kb494Kb
\it latex1.zipDocumentation and formats243Kb393Kb
\it latex2.zipLaTeX styles and + TFMs233Kb705Kb
\it latexdoc.zipLaTeX style documentation110Kb315Kb
\it makeindx.zipMakeIndex52Kb152Kb
\it pictex.zipPiCTeX macros43Kb144Kb
\it texware.ziptexchk, texconv, + maketcp,265Kb433Kb
 TeXware  
\it dvidrv1.zipDriver configuration, batch,119Kb370Kb
\itand setup files  
\it dvidrv2.zipDriver executables345Kb551Kb
\it dvidrv3.zipPreview executables293Kb506Kb
\it texcad.zipTeXCad118Kb236Kb
\it bmf1.zipBig MetaFont261Kb472Kb
\it mf1.zipMetaFont executables245Kb398Kb
\it mf2.zipMetaFont sources,337Kb613Kb
\itOS/2 executable  
\it mf3.zipMetaFont sources273Kb768Kb
\it mfware1.zipGF tools, PK + tools320Kb504Kb
\it bibtex.zipBibTeX117Kb319Kb
\it bmf2.zipOS/2 executable,266Kb564Kb
 Big MetaFont bases  
\it btex1.zipBig TeX executables259Kb447Kb
\it btex2.zipBig TeX Plain format269Kb533Kb
\it emsy.zipSpecial fonts from emTeX8Kb11Kb
\it mfware2.zipMFjob, some more + inputs138Kb230Kb
\it misc_mf.zipMiscellaneous inputs36Kb130Kb
\it pkedit.zipPKEdit51Kb97Kb
\it dvidrvma.zipDVI driver manual178Kb494Kb
\it web.zip\web tools128Kb252Kb
\it g*.zipGerman versions of TeX800Kb1614Kb
+
+ +

For simplicity, the discussion that follows assumes that + you have enough disk space to install the entire 12Mb + distribution. If you can't get that much space (even + temporarily), you can perform the steps discussed in the + section “the section called + “Installing Fonts”” as you + install.

+ +
+
+
+

Where to Start

+
+
+ +

Begin by reading the English (*.eng) or + German (*.ger) documentation files on the first + disk. Where there is disagreement between this book and + those files, believe the files---especially if a new + version of emTeX has been released.

+
+ +
+
+
+

Unpacking the Archives

+
+
+ +

The emTeX distribution is a collection of + ZIP files spread over six disks. You must + install these files into your hard drive. If you have + more than one hard disk, you may install emTeX on any + drive you choose. Select one with more than 12Mb of free + space, at first. You can copy the files onto another + drive after you've deleted things that you don't + need.

+ +

All of the emTeX files are installed in a subdirectory + tree rooted at emtex. If you absolutely must use + a different subdirectory tree, unpack each archive file + into a temporary directory and then copy the files into + the subtree you want to use. You will have to do much + more extensive customization of the batch files and + configuration files before emTeX will work. That sort of + customization isn't described here in detail.

+ +

Make the root directory of the hard disk that you wish + to install onto the current directory, and then use the + pkunzip program distributed on the first + disk, or any later version of pkunzip, to unpack + each of the archive files. You can also use the + Info-Zip version of unzip (version + 5.0 or later) to unpack the archives. If you do not want + the German versions of the TeX macro files, do not bother + to unpack the lkurz.zip or g*.zip files + on disk six.

+ +

After you have unpacked the files, you will have a + directory tree rooted at \bs EMTEX containing + about 12Mb of files and the following additional + directories: bibinput, bmfbases, + btexfmts, doc, mfbases, + mfinput, MFjob, remove, + texfmts, texinput, and + tfm.

+
+ +
+
+
+

Setting Up the Environment

+
+
+ + +

A lot of information about where and how things are + installed for emTeX is stored in the \glo{environment}. + If you are unfamiliar with the DOS or OS/2 environment, + consult your operating system reference for more details. + In brief, the environment is a collection + of named strings. For example, your PATH is in + the environment.

+ +

The emTeX distribution includes a batch file called + set-tex, which sets all of the environment + variables that emTeX uses. Edit this file and change all + references to C: to the drive where you installed emTeX. + If you installed emTeX on drive C:, you needn't change + anything. The section “the section called + “Deleting extra documentation”” + later in this chapter describes the variables used by + emTeX in greater detail.

+ +

If you are using MS-DOS and haven't already made the + environment larger than its default size, you may need to + do so in order to use emTeX. Insert the following + command, or something like it, in your + CONFIG.SYS file:

+
+SHELL=C:\COMMAND.COM /P /E:1024
+
+ +

This is very system-dependent. You will have to use + different settings if you keep COMMAND.COM in a + subdirectory or if you use a different command + processor.

+
+ +
+
+
+

Testing the Installation

+
+
+ +

After you have set up the + environment, make the emtex directory the + current directory and test TeX by typing:

+ +
+
+C:\ttbackslash{}EMTEX>{\bf tex}
+This is emTeX, Version 3.0 [3a] (no format preloaded)
+**{\bf \ttbackslash{}relax}
+
+*{\bf This is a test}
+
+*{\bf \ttbackslash{}bye}
+[1]
+Output written on texput.dvi (1 page, 224 bytes).
+Transcript written on texput.log.
+
+
+ +

This will produce a small DVI file called + texput.dvi. Keep this file; you can use it in + a few minutes to test the previewer.

+ +

To test LaTeX, enter the command:

+
+\$ tex &lplain testpage
+
+ +

See the section “the section called + “Command-line Options”” in + Chapter Chapter 3, + Chapter 3, + for an explanation of some potential problems with using + the ampersand (&) character on the command line.

+
+ +
+
+
+

Installing Fonts

+
+
+ +

There are several sets of fonts + available for emTeX. You should select the set that is + appropriate for your printer. They are summarized in + Table  + Table 13.2. The CTAN directory + systems/msdos/emtex contains the libraries or + disks of libraries.

+ +
+ + +

Table 13.2. Fonts + Libraries Available for \protect\emTeX on CTAN

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf CTAN Directory\bf Resolution\bf Description
\it fx_\,fonts240x216Epson FX series printers, Tandy + DMP-130 printer
\it fx_med_\,fonts240x144Epson FX series (for Windows + drivers)
\it ito_\,fonts160x144C. ITOH 8510A printers
\it lj_\,fonts300x300300dpi Laser printers
\it p6h_\,fonts360x360Epson LQ series, NEC P6 \P7, IBM Proprinter, and Panasonic KX-P1124 + printers
\it p6m_\,fonts360x180Epson LQ series, NEC P6 \P7, IBM Proprinter, and Panasonic KX-P1124 + printers
\it p6l_\,fonts180x180Epson LQ series, NEC P6 \P7, IBM Proprinter and Panasonic KX-P1124 + printers
\it psfonts300x300Standard 35 PostScript + fonts 
+
+ +

Not every font set is appropriate for every model of + the series mentioned. If your printer isn't mentioned, + use the dvidot program included with emTeX to + generate an appropriate configuration file. Select the + font set with the same resolution as your printer.

+ +

The PostScript fonts included in the + psfonts libraries are suited primarily for + previewing. The quality of many of the fonts is + substandard. (They were generated from unhinted outlines + with Ghostscript.) A font + substitution file is provided for 300dpi, 180dpi, and + 360dpi printers.

+ +

Once you have retrieved the font libraries that you + need, unpack them (if they are in ZIP archives) + and place the FLI files in the \bs + TEXFONTS directory of the drive where you installed + emTeX. The amount of disk space required depends on the + font set that you install. It can be more than 5.5 + megabytes. The section called “the section called + “Running emTeX 386 in Windows”,” + later in this chapter, provides an overview of automatic + font generation under emTeX. This can save a considerable + amount of disk space.

+ +
+
+
+

Testing font installation

+
+
+ +

After you have installed a font set, you should be + able to preview and print TeX documents. If you + followed the instructions in “the section called + “emTeX”,” earlier in this + chapter, you have two DVI files in your + \bs EMTEX directory.

+ +

First, figure out which configuration file is + appropriate for your installation. The table near the + top of dvidrv.doc in the emTeX documentation + directory should help you determine which one is + appropriate.

+ +

The default configuration file for previewing is the + LaserJet configuration. If you installed the LaserJet + fonts (lj\ttunder*.fli), you do not have to + change the previewer. Otherwise, edit the preview batch + file (v.bat for MS-DOS systems and + v.cmd for OS/2 systems) and change the + configuration file. The preview batch file looks like + this:

+
+@echo off
+dviscr @lj.cnf /ocr=1 /fl=-1 
+
+ +

The configuration file name is lj.cnf. If, + for example, you are using the Epson FX series printer + fonts, you would change this to fx.cnf:

+
+@echo off
+dviscr @fx.cnf /ocr=1 /fl=-1 
+
+ +

Now type v texput + to preview the test file. Under OS/2, you should do + this from a full-screen session, not a windowed + session. You can type v + testpage to preview the LaTeX test page, if + you created it.

+
+
+ +
+
+
+

Making emTeX Smaller

+
+
+ +

The complete distribution of emTeX + is much larger than the practical requirements. This + section discusses the pros and cons of deleting (or at + least archiving) parts of the emTeX distribution.

+ +
+
+
+

Deleting extra + documentation

+
+
+ +

The \bs emtex\bs doc directory contains two + complete sets of documentation, one in English and the + other in German. Delete the set that you do not need. + This will save about 500Kb.

+
+ +
+
+
+

Deleting extra + executables

+
+
+ +

There are six versions of the TeX and MetaFont + executables in the emTeX distribution. You can probably + delete at least four from each. Follow these + guidelines:

+ +
+
    +
  • +

    If you have a 80286 or larger processor, + delete the non-286 versions: btex.exe, + tex.exe, bmf.exe, and + mf.exe.

    +
  • + +
  • +

    If you do not have OS/2, delete the OS/2 + versions: btexp.exe, texp.exe, + bmfp.exe, and mfp.exe. + Conversely, if you have OS/2 and you are + satisfied that you will never want to run TeX or + MetaFont under DOS or Windows, delete the + non-OS/2 versions: btex286.exe, + tex286.exe, bmf286.exe, + mf286.exe, and the non-286 versions + listed above. If you need both, you'll have to + keep both around, of course.

    +
  • + +
  • +

    Finally, if disk space is at a premium and/or + you have a fast computer, you may choose to + delete the small versions of TeX and MetaFont. + The small versions are faster than the big + versions, but large or complex documents and + fonts may require the big versions, so don't + delete them. If you want to delete the small + versions, delete tex.exe, + tex286.exe, mf.exe, + mf286.exe, texp.exe, and + mfp.exe. In this case you must keep at + least one of btex.exe, + btex286.exe, and btexp.exe + depending on your environment. Similarly, you + must keep at least one of the big \MF{}s. If + you've decided to delete the small versions, you + can also delete two directories: + emtex{\bs}mfbases and + emtex{\bs}texfmts. These contain the + format files and base files for the small + versions of TeX and MetaFont.

    +
  • +
+
+ +

Suppose that you have a 80386 computer running + MS-DOS (not OS/2) and you are willing to sacrifice the + speed of the small versions of TeX and MetaFont. You + would keep the btex286.exe and + bmf286.exe executables and delete the rest + plus the formats and bases that you don't need, saving + 2704Kb. You can save an equivalent amount of space by + deleting the big 80286 versions and keeping the big + non-286 versions, or by deleting all of the non-OS/2 + versions, depending on your environment.

+ +

Table  + Table 13.3 summarizes the other executables in + the emTeX distribution. This will help you decide which + programs you need to keep. Programs that you don't feel + you need should probably be stored in archive files, + possibly on diskettes, in case you change your + mind.

+ +
+ + +

Table 13.3. Other + \protect\emTeX Executables

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Program\multicolumn{1}{|l|}{\bf + Size}\bf Description
\it ask.exe6KbPrompts user in batch file, + only used by gh.bat
\it bibtex.exe94KbBibTeX
\it chtopx.exe39KbObsolete: converts + CHR files to PXL format
\it pxtoch.exe40KbObsolete: converts + PXL files to CHR format
\it pxtopk.exe49KbObsolete: converts + PXL files to PK format
\it dvidot.exe129KbDot matrix printer driver
\it dvihplj.exe134KbHP LaserJet printer + driver
\it makedot.exe54KbUpdates dot matrix printer + parameters
\it dvimsp.exe128KbConverts DVI files + into graphic images
\it fontlib.exe67KbFont library management
\it maketcp.exe28KbChange the TeX code page
\it MFjob.exe51KbMetaFont driver
\it pcltomsp.exe56KbConverts HP LaserJet graphics + into MSP or PCX format
\it pkedit.exe94KbEdits PK files
\it pktopx.exe55KbConverts PK files to + PXL format
\it texcad.exe79KbInteractive LaTeX drawing + tool
\it texchk.exe49KbSyntax checker for LaTeX
\it texconv.exe27KbConverts input files (see + “code pages”)
\it dviscr.exe215KbPreviewer
\it dviscrs.exe164KbPreviewer for small-memory + configurations
\it dvivik.exe142KbPreviewer for Viking I + displays
\it dvitype.exe72KbTexware: shows DVI + file
\it pltotf.exe74KbTexware: converts PL + files to TFM format
\it tftopl.exe48KbTexware: converts TFM + files to PL format
\it gftodvi.exe69KbMfware: makes proof sheets for + a font
\it gftopk.exe53KbMfware: converts GF + files to PK format
\it gftopxl.exe59KbMfware: converts GF + files to PXL format
\it gftype.exe61KbMfware: shows GF + file
\it mft.exe55KbMfware: pretty-prints + MF files
\it pktogf.exe47KbMfware: converts PK + files to GF format
\it pktype.exe45KbMfware: shows PK + file
\it makeindx.exe102KbBuilds indices for + documents
\it pooltype.exe31KbWeb: shows contents of pool + files
\it tangle.exe52KbWeb: creates compilable + file
\it weave.exe72KbWeb: creates documentation + file
\it vftovp.exe69KbVirtual fonts: converts + VF files to VPL format
\it vptovf.exe73KbVirtual fonts: converts + VPL files to VF format
+
+ +

Deciding which programs to remove from the emTeX + directory depends, to a large extent, on how you use + TeX. If you haven't been using TeX for very long, try + to keep as many things as you can until you get a + better feel for what you'll be using. Save copies of + all the programs you delete on floppy disks so that + they are easy to get back. Here are some + suggestions:

+ +
+
    +
  • +

    Delete the previewer and printer drivers that + you don't need.

    +
  • + +
  • +

    Delete obsolete programs unless you know you + need them.

    +
  • + +
  • +

    Delete \web programs if you'll never be + compiling TeX yourself or reading TeX program + source code.

    +
  • + +
  • +

    Delete Mfware programs if you won't be + doing a lot of work with fonts. Note: keep + gftopk.exe if you want to use automatic + font generation.

    +
  • + +
  • +

    Delete Texware and Virtual font + programs if you won't be working with virtual + fonts. (You can probably delete + dvitype.exe, in any case).

    +
  • + +
  • +

    Delete bibtex.exe if you won't be + working with bibliographic databases.

    +
  • + +
  • +

    Delete makeindx.exe if you won't be + working with indexes.

    +
  • + +
  • +

    Delete ask.exe if you won't be using + gh.bat.

    +
  • +
+
+ +

Next, figure out what batch files you'll be using + and delete (or archive) all the others. If you aren't + using OS/2, this includes all of the *.cmd + files.

+
+ +
+
+
+

Deleting extra printer + drivers

+
+
+ +

Read about the dvidot program for + printing to a dot matrix printer, if you have one. When + you figure out which of the DOT parameter + files you need, delete (or archive) the rest. Follow + these guidelines:

+ +
+
    +
  • +

    If you don't have a Viking I display, delete + dvivik.exe.

    +
  • + +
  • +

    If you don't have a laser printer, delete + dvihplj.exe.

    +
  • + +
  • +

    Delete dviscrs.exe if you have enough + memory to use dviscr instead. If you are + always going to use a Windows or OS/2 previewer, + you can delete dviscr.exe as well.

    +
  • +
+
+
+
+ +
+
+
+

Basic Customization

+
+
+ +

There are two ways to customize + emTeX. One way is to customize the environment variables + that emTeX uses; the other is to customize the + configuration files that emTeX uses for previewing and + printing (configuration files have no effect on TeX + itself).

+ +
+
+
+

Environment variables

+
+
+ +

There are thirteen environment variables that emTeX + uses. For simplicity in the following discussion, + assume that emTeX is installed on drive C:. If it is + not, change every reference to C: + to the drive actually in use.

+ +
+
+
EMTEXDRV (Not set by + default)
+ +
+

Special note: this variable will become + obsolete with the next release of emTeX.

+ +

This variable tells emTeX what drive to use + when searching for default paths. Although I + don't recommend it, if you use entirely standard + paths for your files, you can rely on the + compiled-in defaults in the emTeX + executables.[123] The + EMTEXDRV environment variable should be + set to the single letter of the drive on which + these paths reside. For example, if you installed + emTeX on drive C: (in completely standard + directories), you could set + EMTEXDRV=C.

+
+ +
EMTEXDIR (Not set by + default)
+ +
+

Special note: this is a new variable; it will + become available with the next release of emTeX. + EMTEXDIR replaces EMTEXDRV.

+ +

This variable tells emTeX what path to use + when searching for default paths. The + EMTEXDIR environment variable should be + set to the root path where emTeX is installed + (for example, C:\EMTEX).

+
+ +
TEXINPUT
+ +
+

Defines the directories that emTeX uses when + searching for TeX input files. You would + typically leave + C:{\bs}EMTEX{\bs}TEXINPUT in this path + and extend it with directories of your own in + place of C:{\bs}MYTEX.

+
+ +
TEXFMT
+ +
+

Specifies where small versions of TeX look for + format files. Typically you would leave this set + as it is and add new format files to that + directory. You do not have to set this variable + if you are not using the small versions of + TeX.

+
+ +
BTEXFMT
+ +
+

Specifies where large versions of TeX look for + format files. You will typically leave this set + as it is and add new format files to the + directory specified. If you do not use large + versions of TeX, you need not set this + variable.

+
+ +
TEXTFM
+ +
+

TeX uses the directories stored in this + variable when searching for TFM files + for fonts used in your documents. If you install + new fonts, you should put the TFM files + for these fonts in their own directory and add + the name of that directory to the TEXTFM + path.

+
+ +
MFINPUT
+ +
+

The MetaFont program looks for input files in + this path. It is analogous to the + TEXINPUT variable. If you add new + MetaFont fonts to your system, for example, the + \AmS fonts, place them in a different directory + and add that directory to this path. If you do + not use MetaFont, you do not need this + variable.

+
+ +
MFBAS
+ +
+

Analogous to TEXFMT. Specifies where + small versions of MetaFont look for base files. + If you do not use MetaFont, you do not need this + variable.

+
+ +
BMFBAS
+ +
+

Analogous to BTEXFMT. Specifies where + large versions of MetaFont look for base files. + If you do not use MetaFont, you do not need this + variable.

+
+ +
MFJOB
+ +
+

Specifies where MFjob looks for input + files. If you are not using MetaFont or + MFjob for font generation, you do not need + this variable.

+
+ +
BIBINPUT
+ +
+

Specifies where bibtex searches for + bibliography database files (BIB files). + Clearly, if you're not using BibTeX, you don't + need BIBINPUT.

+
+ +
DVIDRVINPUT
+ +
+

This tells the emTeX DVI drivers where to + search for DVI files. In practice, I + simply set this to “.” so + that only the current directory is used. If you + find it convenient to search for DVI + files, by all means set it to an appropriate + path. The default path includes + C:{\bs}EMTEX{\bs}DOC so that it is easy + to preview or print the local guide.

+
+ +
DVIDRVFONTS
+ +
+

This tells the emTeX DVI drivers where to + search for fonts. The C:{\bs}TEXFONTS + directory is the default location for font + libraries. If other fonts are installed, it's + natural to include them in this path. For + example, preview versions of the PostScript fonts + are now available from CTAN in font library + format. If you install those libraries in + C:{\bs}PSFONTS, you should change the + DVIDRVFONTS environment variable to + include both paths.

+
+ +
DVIDRVGRAPH
+ +
+

The emTeX DVI drivers can incorporate + PCX and MSP graphics with a + \special command. The DVIDRVGRAPH + environment variable tells the drivers where to + look for the graphic files. The $r + portion of the path is replaced by the resolution + of the image required. For example, I set this to + C:{\bs}TEXGRAPH{\bs}GR\$r and put 300dpi + graphic images in + C:{\bs}TEXGRAPH{\bs}GR300, 420dpi images + in C:{\bs}TEXGRAPH{\bs}GR420, etc. The + default value of this variable is set so that the + local guide will print properly.

+
+
+
+
+ +
+
+
+

Setting up configuration + files

+
+
+ +

Configuration file options are + described completely in the DVI driver documentation + that accompanies emTeX. Read the English or German + versions of dvidrv.doc carefully. The + “out of the box” configuration is + sufficient for most uses, but specifying a new + configuration file is a convenient way to alter the + default size of the page in preview mode or set up + emTeX to print pages in “two-up” or + “four-up” variations (for printing + booklets, for example).

+
+
+ +
+
+
+

Installing the Beta Test + Versions of emTeX

+
+
+ +

It has been several years since the standard + distribution of emTeX was assembled. In that time, + several other releases have been made. These are beta + test releases, but they are as rock-solid as the standard + distribution. Personally, I encourage you to install the + beta test versions, especially because they offer + features not found in the standard release.

+ +

The beta test versions are stored in a series of + ZIP files at CTAN in the directory + systems/msdos/emtex/betatest. Table  + Table 13.4 summarizes the files in the beta test + distribution.\footnote{As this chapter is being written, + Eberhard Mattes\index{Mattes, Eberhard} is working on a + new version of \emTeX. This new version will, at some + point, replace the existing beta test files, making this + section somewhat out of date. Use the READ.ME files in the + actual distribution as the definitive source of + information.

+ +
+ + +

Table 13.4. The Beta Test + Files for \protect\emTeX

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf File\bf Contents
\it btexb8.zipBig \TeX executables
\it dvidrv_1.zipNew drivers and support + files
\it dvispell.zip\program{dvispell}
\it maketcp.zip\program{maketcp}
\it mfb1.zip\MF executables
\it MFjob11l.zip\program{MFjob}
\it mfpm.zipOS/2 support for \MF + preview
\it pkeditpm.zipOS/2 PM version of + \program{PKEdit}
\it tex386b8.zip386 version of \TeX
\it texb5.zipSmall \TeX executables
+
+ +

To install the beta test versions, simply unpack the + archives into your \bs emtex directory, + replacing any existing files with the new versions. After + you have installed the beta test versions, you can repeat + the space-saving steps suggested earlier in this + chapter.

+ +

What are the advantages of the beta test versions?

+ +
+
    +
  • +

    Automatic font generation is supported. This + means that you do not need large font library + files.

    +
  • + +
  • +

    The beta test versions are TeX version 3.141; + the standard distribution is the slightly older + version 3.0.

    +
  • + +
  • +

    The beta test distribution includes a + 386-specific version of TeX, which is much faster + than other versions.

    +
  • + +
  • +

    For OS/2 users, a Presentation Manager + DVI previewer is provided.

    +
  • +
+
+
+ +
+
+
+

Running emTeX 386 in + Windows

+
+
+ +

The 386-specific version of TeX + provided by the beta test distributions of emTeX has some + compelling advantages over the other TeX executables: + it's a big TeX and it's fast. Unfortunately, it does not + run in Windows (or some other MS-DOS environments).

+ +

The problem is memory management. In order to be large + and fast, the tex386 executable relies + on some advanced features of the 386 (and higher) + processors. These features are provided under MS-DOS by a + “DOS extender.” The DOS extender + allows MS-DOS applications to use “protected + mode,” where they can address more than 640Kb of + memory. There are several competing standards for + protected mode memory management. emx, + the extender implemented in emTeX, is not compatible with + the DPMI standard used by Microsoft Windows and some + other MS-DOS extenders (for example, MS-DOS sessions + under OS/2).

+ +

Luckily, there is a freely available MS-DOS extender, + which is compatible with both DPMI and emTeX, the RSX + extender. Starting with version beta-11 of emTeX, the is + very easy to use.[124]

+ +

There are two versions of the extender: rsx, + for use in MS-DOS with DPMI extenders, and + rsxwin, for use in Windows. Both versions + are available on the CTAN archives in the directory + support/msdos/dpmi/rsx.

+ +

To use the RSX extender in MS-DOS with tex386 + version beta-11 or later, simply put rsx.exe + somewhere on your PATH. When emTeX discovers a + DPMI extender, it will use rsx instead of + emx.

+ +

To use the RSX extender in Windows, you must modify + the command line that is executed to run tex386. + Where you currently use:

+
+d:{\bs}path1\bstex.exe options
+
+ +

you must now use:

+
+d:{\bs}path2\bsrsxwin.exe -e d:\bs path1\bstex386.exe options
+
+ +

The rsxwin extender will set up an extender + for emTeX and then run TeX.

+
+ +
+
+
+

Automatic Font Generation with + emTeX

+
+
+ +
+

Note

+ +

Automatic font generation + is not supported by the standard distribution of emTeX. + You must install the beta test versions to use + automatic font generation.

+
+ +

The new versions of the emTeX DVI drivers include a + program called dvidrv, which handles + automatic font generation. The dvidrv program runs + the driver and if the driver indicates that fonts are + missing, gives you the opportunity to use font + substitution or build new fonts. The MFjob program + is used to build the fonts. MFjob runs the + MetaFont and GFtoPK to produce and install the + necessary fonts. MFjob installs the PK + files into the first directory on the font path.

+ +

The dvidrv program can be replaced by a batch + file that can select an appropriate font-rendering + program (something other than MetaFont, for example) to + build the necessary fonts. This feature is only available + in the OS/2 versions of emTeX releases 1.4t and later. + The batch file in Example Example D.3 + in Appendix Appendix D, + Appendix D, + is a replacement for dvidrv. It uses + ps2pk to make PK versions of + PostScript Type 1 fonts if an appropriate + PFB file can be found. Otherwise, it calls + MFjob in the same way that dvidrv does.

+
+ +
+
+
+

Installing emTeX on a + Network

+
+
+ +

Ordinarily, emTeX does not require write access to any + of its data files, so installation on a network is + not a problem. The location of temporary files that must + be writable is controlled with environment variables. If + automatic font generation is being used, there are two + applicable cautions.

+ +

First, if you use the batch file approach to automatic + font generation in order to support different rendering + software, be aware that your batch file must handle the + fact that multiple files may be written to the same + directory from different users. Don't let filenames + collide.

+ +

Second, it is ideal if you can provide a single + world-writable location for automatically generated + fonts. If multiple users are working with similar + documents, each will not need private copies of the fonts + they require. If your networking software tracks the time + of last file access, you can determine which files to + delete from this global font area on a regular basis.

+
+
+ +
+
+
+

texas

+
+
+ +

texas is a 32-bit MS-DOS version of TeX. It + is a big TeX. Unlike tex386, which comes with emTeX, + the texas executable uses a royalty-free, commercial + DOS extender. The advantage of this extender is that it can + run under Windows and other protected-mode environments + such as DESQview.

+ +

Before you install texas, you should get a + complete TeX system from some other location (emTeX or + gTeX, for example). The texas distribution does not + include anything other than the TeX executable and the + MS-DOS extender---no format files, no input files, + nothing.

+ +

The -i switch + runs texas in iniTeX mode. Using the + instructions from Chapter Chapter 4, + Chapter 4, + you should be able to build new format files for use with + texas if you have another TeX distribution to work + from.

+ +

texas uses the following environment + variables:

+ +
+
+
TEXINPUTS
+ +
+

Defines the directories that + texas uses when searching for TeX input files. + You would typically leave the defaults in this path + and extend it with directories of your own in place + of C:{\bs}MYTEX.

+
+ +
TEXFORMATS
+ +
+

Specifies where texas looks for format + files. Typically you would leave this set as is and + add new format files to that directory.

+
+ +
TEXFONTS
+ +
+

TeX uses the directories stored in this variable + when searching for TFM files for fonts used + in your documents. If you install new fonts, you + should put the TFM files in their own + directory and add the name of that directory to the + TEXFONTS path.

+
+ +
TEXPOOL
+ +
+

Specifies where texas looks for its pool + file. Unless you have installed texas in an + unusual way, you will not have to change this + setting.

+
+ +
DOS4GVM
+ +
+

texas uses a DOS extender to overcome + memory limitations under MS-DOS. If the extender runs + out of memory, it writes parts of the memory-image + that it is maintaining out to disk. This environment + variable specifies where that information should be + written. You do not usually need to change this + setting.

+
+
+
+
+ +
+
+
+

sbTeX

+
+
+ +

sbTeX is another MS-DOS implementation of + TeX. The sb38tex distribution + includes TeX and iniTeX executables, TFM files for + the Computer Modern Roman fonts, and TeX sources for the + Plain TeX format. This is TeX version 3.141. You will have + to get DVI drivers and other TeX tools from a different + package.

+ +

The sb32xet distribution is \XeT version + 3.1.[125] The source files for + the \XeT nailp format are included, as well as the + supporting files for Hebrew.

+ +

The sbmf13 distribution is MetaFont version + 2.71. Only the sources for the Plain MetaFont base file are + provided. Like the sbTeX distribution, this is a very + minimal set of files. Only the GFtoPK + utility is included; all of the other MetaFont programs you + need will have to be obtained from another package.

+ +

The default directories for sbTeX are \bs TEX\bs + INPUTS for input files, \bs TEX\bs FORMATS + for format files, and {\bs TEX\bs FONTTFMS} for + TFM files. The default drive is C:, but that can + be changed with the sb38set program.

+ +

You can also modify these paths by setting the + TEXINPUTS environment variable for input files, + the FMTSB environment variable for format files, + and the FONTTFMS environment variable for + TFM files. Additionally, sbTeX uses the + SBFTMP environment variable to determine where + temporary files should be located if font caching is + performed. Here is a more complete description of sbTeX's + environment variables:

+ +
+
+
TEXINPUTS
+ +
+

Defines the directories that + sbTeX uses when searching for TeX input files. You + would typically leave the defaults in this path and + extend it with directories of your own in place of + C:{\bs}MYTEX.

+
+ +
FMTSB
+ +
+

Specifies where sbTeX looks for format files. + Typically you would leave this set as it is and add + new format files to that directory.

+
+ +
FONTTFMS
+ +
+

TeX uses the directories stored in this variable + when searching for TFM files for fonts used + in your documents. If you install new fonts, you + should put the TFM files for these fonts in + their own directory and add the name of that + directory to the FONTTFMS path.

+
+ +
SBFTMP
+ +
+

When font-caching is enabled, sbTeX writes cached + information to disk when it runs out of memory. This + environment variable specifies where that information + should be written. You do not usually need to change + this setting.

+
+
+
+
+ +
+
+
+

gTeX

+
+
+ +

The gTeX package is distributed in two ways. + One way is intended to supplement (actually, replace part + of) the emTeX distribution. The advantage of gTeX + executables over emTeX is that they will run under Windows. + The 386 versions of emTeX executables will not run under + Windows. On the other hand, although gTeX will run in an + MS-DOS session under OS/2, only the emTeX executables will + actually run in a native OS/2 session. The other + distribution is a complete set of TFM files, + source, and input files for Plain TeX, LaTeX, and AMSTeX. + In either distribution, you must get DVI drivers and some + ancillary programs from another complete package (like + emTeX).

+ +

The following programs are included in the gTeX + distribution:

+
+\begin{tabular}{lll}
+&BibTeX; & <command>GFtoPK</command> & <command>VFtoVP</command> \\
+<command>DVItype</command> & <command>MFT</command> & <command>VPtoVF</command> \\
+<command>DVIcopy</command> & <command>PKtoGF</command> \   & <command>MakeIndx</command> \\
+<command>GFtoDVI</command> \   & <command>PKtype</command> & &MF; \\[2pt]
+\multicolumn{3}{l}{\program{amSpell}  (a third party spell-checker, not traditionally part of \TeX)}\\[2pt]
+\multicolumn{3}{l}{\program{MEwin}  (an Emacs-like editor for Windows, also not traditionally part of \TeX)}\\
+\end{tabular}
+
+ +

The gTeX executables use the same environment + variables as emTeX.

+
+ +
+
+
+ +
+

[122] {Hence the spider on the + cover, by the way.}

+
+ +
+

[123] {One of the reasons I + don't recommend it is that it isn't easy to determine + precisely what the compiled-in defaults are, and they may + change without notice.}

+
+ +
+

[124] {Earlier versions of + tex386.exe had the emx extender + “bound” into the executable, which made the + process more complicated. The emx extender had + to be unbound before the new one could be used.}

+
+ +
+

[125] {\XeT is a variant of + TeX that can typeset in both left-to-right and + right-to-left modes.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch14.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch14.html new file mode 100644 index 00000000000..fd0de2a07ff --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch14.html @@ -0,0 +1,866 @@ + + + + + + + + + Chapter 14. Commercial Environments + + + + + + + + + + + +
+
+
+

Chapter 14. Commercial + Environments

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

There are several commercial versions of TeX on the market. + The advantage of commercial programs over free ones is that + they provide an automated installation procedure and some + level of technical support. There's no reason to believe that + a commercial implementation of TeX is necessarily better than + a free one (or vice versa, for that matter) because the + source code for TeX is in the public domain.

+ +

The following sections highlight several commercial + implementations of TeX.

+ +
+
+
+

µTeX by + ArborText

+
+
+ +

ArborText sells µTeX for MS-DOS + systems as well as an implementation of TeX for unix + workstations. The ArborText previewer and DVI driver + software are also available for both unix and MS-DOS + systems. The following discussion is based on experiences + with µTeX version 3.14B, the MS-DOS implementation of + ArborText's TeX package.

+ +

The µTeX package is a complete TeX implementation for + MS-DOS. The additional utilities, PLtoTF, + TFtoPL, and BibTeX, are also included. + Neither MetaFont nor MakeIndex is provided.

+ +

The default installation of µTeX creates format files + for Plain TeX and LaTeX. To be as fast as possible, µTeX + creates executable versions of TeX for each of these + formats; these versions have the appropriate macro packages + preloaded into the executable. You can use the standard + notation to load alternate macro packages if you wish to + save disk space.

+ +

ArborText includes a lot of support for using TeX for + non-English documents. Several files of international + hyphenation patterns (English, French, German, + Dutch, and Portuguese) are provided, as + well as reprints of the TUGboat articles describing new + features of TeX version 3.0 and virtual fonts.

+ +

Designed for an MS-DOS environment having only limited + memory, µTeX uses a swap file (potentially located in EMS or + XMS memory) to process large files. Several + environment variables can be used to alter the size of + internal TeX data structures when a new format is being + produced. In terms of big and small versions, µTeX can be + configured either way. These choices are made when you + create the format file however, so you will need to use + iniTeX (included with µTeX) to make a + “bigger” TeX.

+ +

One of the most interesting features of µTeX is a + quick-and-dirty preview mode provided by the TeX + executable. After at least one page of your document has + been processed, you can switch to a preview mode and see + what the page looks like while TeX continues processing + your document. This previewer is not particularly + attractive, but it's quick and easy to use. No other + previewer is provided. ArborText sells a fully functional + previewer as a separate package.

+ +

To print your documents, you must purchase or obtain a + DVI driver separately. ArborText sells two drivers, one for + HP LaserJet printers and another for PostScript printers. + The µTeX distribution includes a complete set of + TFM files, but it does not include any PK + files.

+ +

The ArborText previewer is summarized in the section + called “the section called “TeX + Preview”” in Chapter Chapter 9, + Chapter 9. + The ArborText printer drivers, DVILASER/HP and + DVILASER/PS, are described in Chapter Chapter 8, + Chapter 8.

+
+ +
+
+
+

\yyTeX

+
+
+ +

\yyTeX is an MS-DOS implementation of + TeX by Y&Y Inc. (a 386 or higher processor is + required). \yyTeX is sold as a bundled package with + DVIWindo, dvipsone,[126] and a set of + PostScript fonts (either the Computer Modern fonts, the + Lucida Bright and Lucida New Math fonts, or the MathTime + fonts). The installation provides format files for Plain + TeX and LaTeX.

+ +

\yyTeX stands out among TeX systems because of its + memory management. Unlike other TeX systems, which exist in + big and small versions, all of \yyTeX's memory management + is dynamic. All of the buffers that TeX uses (main memory, + font memory, string memory, etc.) will expand to meet the + needs of the most complex documents you create. The memory + required for hyphenation patterns is dynamically allocated + as well, which means that you can construct multilingual + formats with as many sets of hyphenation patterns as you + need (multilingual formats are discussed in more detail in + Chapter Chapter 7, + Chapter 7). + The advantage of dynamic memory management over a fast and + big TeX is that \yyTeX starts out small (big TeXs reserve a + large fixed amount of memory even when processing simple + jobs that don't require very much). In a multitasking + environment where several programs are competing for + memory, one large program can slow the progress of the + entire system. \yyTeX's memory manager supports XMS, + VCPI, and DPMI. This means that it + can run under MS-DOS with any of the common memory managers + and under Windows, Windows NT, and DOS sessions in OS/2.

+ +

\yyTeX has a couple of additional strengths for + multilingual use: it supports customizable input character + translation and more than 255 internal font numbers. Most + versions of TeX only support a maximum of 255 fonts in any + single document.

+
+ +
+
+
+

Textures

+
+
+ +

Textures is a commercial implementation of TeX + for the Macintosh distributed by Blue Sky Research. It + is described fully in Chapter Chapter 15, + Chapter 15.

+
+ +
+
+
+

TurboTeX

+
+
+ +

TurboTeX is a complete TeX system for MS-DOS with + full support for Microsoft Windows. It is distributed by + the Kinch Computer Company. The programs + included in TurboTeX version 3.0 are shown in Table Table 14.1. + The dvideo and wdviwin previewers are + described in Chapter Chapter 9.

+ +
+ + +

Table 14.1. TurboTeX + Programs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProgramDescription
dvialw[a]A PostScript DVI driver
dvideoAn EGA (non-Windows) previewer
wdviwinA Windows previewer
dvielq[a]An Epson LQ driver
dvieps[a]An Epson/IBM graphics printer driver
dvijep[a]An HP LaserJet PLus/Series II driver
dvijet[a]An HP LaserJet/DeskJet driver
dvilj4[a]An HP LaserJet 4 driver
initex[a]iniTeX for building new format files
latex[a]TeX with the LaTeX format preloaded
tex[a]TeX with the Plain format preloaded
texidxThe GNU TeX indexing program
tif2hpConverts TIFF bitmapped graphics to HP LaserJet + bitmaps
virtex[a]TeX with no format preloaded
+
+

[a] Windows + version included.

+
+
+
+ +

The Microsoft Windows version of TurboTeX is a superset + of the DOS version (you must install both, but you can + delete the non-Windows executable programs that have + Windows versions, if you wish).

+ +

TurboTeX includes a complete MetaFont distribution. In + addition to the programs shown in Table  + Table 14.2, the complete sources for the Computer + Modern, LaTeX, and \AmS-fonts are also provided.

+ +
+ + +

+ Table 14.2. Turbo\protect\TeX \protect\MF + Programs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Program\bf Description
\it gftodvi\xCreates proof sheets of MetaFont + characters
\it inimfMetaFont with no base file + preloaded
\it mfscriptA script generator (for building + multiple fonts)
\it mfcgaMetaFont for CGA displays
\it mfhgaMetaFont for Hercules + displays
\it gftopk\xConverts GF files to + PK files
+
+ +

At the time of this writing, a new version of TurboTeX + is actively being developed. Unfortunately, it was not + available for review in time for this edition of Making TeX Work. The Kinch + Computer Company claims that the next release will include + a big TeX running under Windows 3.1/Win32s and Windows NT + as a native, protected-mode 32-bit application. A new + Windows previewer will also be available, and it takes + advantage of Windows “multiple document + interface” to preview multiple documents in the same + session. Kinch will also provide a set of the standard + Computer Modern Fonts in TrueType and Type 1 formats.

+
+ +
+
+
+

PCTeX

+
+
+ +

PCTeX is a complete TeX system for MS-DOS + distributed by Personal TeX, Inc. It is one of two + offerings from PTI. The version for Windows is described + later in this chapter.

+ +

PCTeX is sold in two configurations. The PCTeX Starter + System includes the latest releases of PCTeX and + PCTeX/386, PTI View (for previewing), + one printer driver with the appropriate Computer Modern + fonts in PK format, LaTeX For + Everyone [jh:latexforeveryone], + and the sources for Plain TeX, LaTeX, and AMSTeX. The PCTeX + Laser System includes Big PCTeX/386, LaserJet, LaserJet 4, + PostScript and DeskJet printer drivers (along with a + complete set of Computer Modern fonts in PK format + at 300dpi and 600dpi), and the PC TeX Manual, in addition + to everything contained in the Starter System.

+ +

The discussion that follows is based on experiences with + the PCTeX Starter System with PCTeX version 3.14 and the + PTI Laser/HP DVI driver.

+ +

In addition to the TeX executables and macro packages + mentioned above, PCTeX includes these standard TeX + utilities: BibTeX, PLtoTF, TFtoPL, + PXtoPK, and PKtoPX. It does not + include any of the other standard utilities or the + MakeIndex processor. MetaFont is available as a + separate package (although it is being discontinued, so it + may not be available for long).

+ +

Several additional features make PCTeX an attractive + commercial alternative:

+ +
+
    +
  • +

    It uses a text-based “menu system” for + processing documents. This program makes the + edit/format/preview cycle a simple matter of + selecting the appropriate menu item. Figure Figure 14.1 + shows this system in use.

    + +
    + + +

    Figure 14.1. The + PCTeX menu system

    +
    +FIXME:
    +
    +
    +
  • + +
  • +

    Support is provided for Bitstream fonts. Bitstream is a vendor + of high-quality scalable typefaces. The utilities + included with PCTeX allow you to create TFM + and PK files from Bitstream compressed + outline fonts.

    +
  • + +
  • +

    If you prepare multilingual documents, you'll + appreciate the attention they receive in the PCTeX + documentation. Although the ability to compose + multilingual documents is really a feature of TeX + version 3, not PCTeX in particular, PTI provides + step-by-step instructions for building a multilingual + format file. Support files for English, French, and Spanish are + included.

    +
  • +
+
+ +

PTI's previewer, PTI View, is described in + Chapter Chapter 9, + Chapter 9. + The PTI Laser/HP and PTI Laser/PS printer + drivers are discussed in Chapter Chapter 8, + Chapter 8. + Drivers for DeskJet and Epson printers are also + available.

+
+ +
+
+
+

PCTeX + For Windows

+
+
+ +

PCTeX For Windows is a new offering from Personal TeX, + Inc. PCTeX For Windows is a superset of + Personal TeX's MS-DOS version of PCTeX.

+ +

This version of PCTeX is an integrated system with a + built-in editor (with complete on-line help), previewer, + and push-button access to PCTeX for composing your + documents. Figure  + Figure 14.2 shows PCTeX For Windows in action.

+ +
+ + +

Figure 14.2. PCTeX For + Windows editing and previewing a LaTeX document

+
+FIXME:
+
+
+ +

PCTeX For Windows includes a complete set of + Computer Modern and \AmS fonts in scalable TrueType format. + This allows PCTeX to print directly to any printer (or + other device) supported by Microsoft Windows. To provide + better access to other TrueType fonts that you may have + installed, PCTeX includes a TFM generator for + TrueType fonts. This generator is shown in Figure  + Figure 14.3.

+ +
+ + +

Figure 14.3. PCTeX For + Windows TrueType font metric builder

+
+FIXME:
+
+
+ +

Except for the PXtoPK and PKtoPX + utilities, PCTeX For Windows has all of the features + of the MS-DOS version of PCTeX.

+
+ +
+
+
+

Scientific Word

+
+
+ +

Scientific Word, a commercial + package from TCI Software Research, bridges the gap + between TeX and word processing by providing a more or less + WYSIWYG interface on top of TeX. Scientific Word + requires Microsoft Windows. Figure  + Figure 14.4 shows a sample document being edited + by Scientific Word.

+ +
+ + +

Figure 14.4. Editing a + document with Scientific Word

+
+FIXME:
+
+
+ +

Scientific Word is a powerful program that might + prove to be invaluable in some circumstances. An ideal + candidate for Scientific Word is someone with little + or no desire to learn TeX, but who wants professional + quality output for documents containing a lot of + mathematics. Scientific Word is not simply a fast, + interactive previewer; it really is a visual editor that + produces TeX code behind the scenes. You enter document + elements (even complex elements like mathematics) in an + interactive push-button fashion, and Scientific Word + translates it into the appropriate LaTeX input. This is + very different from Blue Sky Research's Textures + where the user types in TeX but has nearly instantaneous + feedback.

+ +

Unfortunately, the complexity of TeX vastly exceeds + Scientific Word's ability to act as a visual editor, + and this leads to a number of potentially confusing + discrepancies. For example, in a TeX document, the + \parindent and \parskip control sequences control the + indentation of the first line of a paragraph and the + distance between paragraphs. In Scientific Word, the + on-screen appearance of the document is controlled + separately. This difference is apparent in Figure  + Figure 14.4, where the paragraphs appear to be + indented with no additional space between them, and + Figure  + Figure 14.5 (the same document shown in the + previewer) where the paragraphs are not indented but have + additional space between them.

+ +

These discrepancies arise because Scientific Word + was designed with the same philosophy as LaTeX: separation + of content and form. The purpose of the Scientific + Word editor is to allow you to organize your thoughts + and perfect the content of your document. It is the job of + LaTeX, in conjunction with the document style options that + you select, to perfect the appearance of your document. The + display shown in Figure  + Figure 14.4 is not incorrect in any way, it just + isn't WYSIWYG. TCI Research claims that “by going + beyond WYSIWYG, Scientific Word allows you to focus + on the creative process $…$ and not the layout + commands necessary to typeset [your document].”

+ +
+ + +

Figure 14.5. Preview of the + Scientific Word document shown in Figure + Figure 14.4

+
+FIXME:
+
+
+ +

When Scientific Word encounters TeX code that it + does not understand, it leaves a labelled grey box in the + display (you can see two such boxes above the chapter title + “Unsolved Problems” in Figure  + Figure 14.4).[127] This + means that you can edit all of the TeX code in your + document from within Scientific Word, and small + amounts of customization do not require abandoning the + program. The Scientific Word technical reference, + included online with the program, describes how you can + tailor Scientific Word to recognize many of your + customizations.

+ +

Behind the scenes, Scientific Word documents are + processed by a full-fledged TeX processor (TurboTeX by + the Kinch Computer Company). This includes + integrated document formatting and previewing under + Windows. Starting with version 1.1 of Scientific + Word, instructions are included to switch to a + different version of TeX, or different previewers and DVI + drivers, if you prefer.

+
+ +
+
+
+ +
+

[126] {DVIWindo is + described in Chapter Chapter 9, + and dvipsone is described in Chapter Chapter 8.}

+
+ +
+

[127] {I forced the issue of + unrecognized control sequences by inserting \parskip and + \parindent control sequences into the body of the + document. They really belong in a document style + option.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch15.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch15.html new file mode 100644 index 00000000000..339ed29bd3f --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch15.html @@ -0,0 +1,958 @@ + + + + + + + + + Chapter 15. TeX on the Macintosh + + + + + + + + + + + +
+
+
+

Chapter 15. TeX on the + Macintosh

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

For the most part, using TeX on the + Macintosh is like using TeX on any other system. Certainly, + the TeX documents that you edit are the same, and the output + (on paper) is the same as the output from any other version + of TeX.

+ +

However, because they are immersed in a consistent + graphical environment, Macintosh tools have a substantially + different appearance from their non-graphical + counterparts.[128]

+ +

There are four implementations of TeX available for the + Macintosh. Of these four, one is commercial, two are + shareware, and one is (mostly) free. The following sections + present an overview of each implementation, in alphabetical + order.

+ +
+
+
+

CMacTeX

+
+
+ +

The CMacTeX package includes the most recent + versions of TeX and MetaFont and all of the standard tools. + A port of \dvips\index{dvips!for Macintosh} is also + included, as well as a DVI previewer and a + PrintPS tool for printing PostScript + files directly to a LaserWriter printer over AppleTalk.

+ +

Each utility is a straightforward port of its unix + counterpart. Command-line options have been replaced by + standard Mac dialog boxes and menus where appropriate. TeX + has been extended to include a built-in editor, although it + is not necessary to use that editor if you have another + favorite.

+ +

By design, CMacTeX is a very modular package. This makes + it easy to substitute different tools, or different ports + of the same tools, where it is advantageous to do so. For + example, you can use MacGS (a + Macintosh version of Ghostscript) as a previewer if + you like.

+ +

Small versions of TeX, iniTeX, MetaFont, and + iniMF are provided in the free distribution of + CMacTeX. Big versions are available only in a commercial + distribution purchased directly from the author. At the + time of this writing, the commercial distribution is + available on diskettes and via email. The commercial + version also provides fully automated font generation (see + “the + section called “Automatic Font Generation by DVI + Drivers”” in Chapter Chapter 5, + Chapter 5) + and faster versions of TeX and MetaFont.

+ +

The configuration files used by CMacTeX + resemble the environment variables used by implementations + of TeX on other systems. You can set up multiple search + folders for input files and fonts, for example, by + providing a list of folder names separated by colons.

+ +

Table  + Table 15.1 summarizes the CMacTeX version 2.1 + distribution available on the CTAN archives (in + systems/mac/cmactex) as of July, 1993. The + top-level folders and their contents are presented, not a + list of the archive files that form the distribution.

+ +
+ + +

Table 15.1. Summary of the + \protect\cmactex Distribution at CTAN

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Folder\bf Description
\it TeXSmall versions of TeX
\it MetafontSmall versions of MetaFont
\it view\printDVI previewer and PrintPS
\it dvips5516Complete distribution of \dvips, + version 5.516. 
\it UtilitiesAll of the standard \texware and + \mfware utilities 
\it amsVersions of AMSTeX and + AMSLaTeX 
\it ams-pk\AmS-fonts in PK + format 
\it ams-tfmTFM files for the + \AmS-fonts 
\it amsfontsMetaFont sources for version 2.0 + of the \AmS-fonts 
\it tfmsTFM files for the CMR and + LaTeX fonts 
\it cmpk300The CMR fonts in PK + format 
\it lpk300The LaTeX extensions to CMR in + PK format 
+
+ +

The installation instructions for CMacTeX are easy to + understand, but you will have to configure CMacTeX before + you try to use it. Unfortunately, the default configuration + files do not reflect the layout of folders that results + directly from unpacking the archive files.

+ +

CMacTeX includes a prebuilt format file for Plain TeX, + but if you want to use LaTeX, you will have to build the + format file with iniTeX first.

+
+ +
+
+
+

DirectTeX

+
+
+ +

DirectTeX is a Macintosh Programmer's Workshop + (MPW) based TeX package. It is distributed + in archive files containing eight disk images. You will + have to copy each disk image onto a diskette (using a tool + provided) before you can install DirectTeX.

+ +

Because I don't have access to a Mac with MPW installed, + there is very little that I can say about DirectTeX at this + point.

+
+ +
+
+
+

OzTeX

+
+
+ +

OzTeX is a complete TeX package that + includes an integrated DVI previewer. OzTeX can + print TeX DVI files directly to any printer + selected by the Chooser. Because OzTeX + does not include MetaFont, you may need to get from some + other source PK files at a resolution appropiate + for your printer. The standard OzTeX distribution includes + a complete set of PK files for 300dpi and + 360dpi printers.

+ +

A default configuration file and a selection of + specialized configuration files for different printers and + environments are provided with OzTeX. The distinction + between big and small implementations of TeX has been + replaced by configurable memory limits. With enough RAM + and appropriate configuration, you should be able to get + OzTeX to process any TeX file you give it.

+ +

OzTeX includes a simple text editor called + $\Sigma$Edit, but you can replace it with any + editor you choose. Table  + Table 15.2 summarizes the OzTeX version 1.5 + distribution available on the CTAN archives (in + systems/mac/oztex) as of July, 1993. The top-level + folders and their contents are given, not a list of the + archive files that form the distribution.

+ +
+ + +

Table 15.2. Summary of the + \protect\oztex Distribution at CTAN

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Folder\bf Contents
\it ConfigsConfiguration files
\it TeX-formatsFormat files for Plain TeX and + LaTeX
\it TeX-fontsTFM files for CMR, LaTeX, + and PostScript fonts
\it Help-filesOnline help files
\it PS-filesPostScript sources for OzTeX's + PostScript built-in driver
\it TeX-docsExample TeX files
\it LaTeX-docsLaTeX sources for a 26 page User's + Guide to OzTeX
\it $\Sigma$EditA simple text editor desk + accessory
\it TeX-inputsInput files for Plain TeX and + LaTeX
\it PK-filesA set of PK files for + 300dpi and 360dpi printers
+
+ +

The OzTeX DVI printer recognizes \special + commands for inserting PICT, PNTG + (MacPaint), and EPSF images into your + documents. Provision is also made for including raw + PostScript code if the selected printer is a PostScript + printer.

+ +

OzTeX is a shareware program. If you continue to use it + after a reasonable trial period, you are expected to + purchase it.

+
+ +
+
+
+

Textures

+
+
+ +

Textures is a commercial implementation of + TeX from Blue Sky Research. It has a number of + features that make it unique in the TeX market. It is + supported by a complete user's guide and access to + telephone and email product support.

+ +

Textures supports an interactive preview mode called + Lightning Textures. It + is this feature that really sets Textures apart from other + implementations. In this mode, changes to your document are + reflected immediately in the preview window. In an + environment with sufficient resources (memory and + processing speed), the result is striking. Constructing + complex items like tables and mathematical formulae is much + easier, especially for the TeX novice, than using the + conventional edit, TeX, preview, debug cycle. Because the + log file is also visible, it's easy to see when you've + written erroneous TeX code.

+ +

Note that Lightning + Textures is not really a WYSIWYG environment + (like Scientific Word, for example) because you + still enter regular TeX commands in a purely textual + fashion. You get immediate feedback in a different + window.

+ +

Textures is fast. Extensive instrumentation and + hand-tuning of the program has produced an executable that + is several (maybe many) times faster than other TeX + executables on similar hardware.

+ +

A complete set of Computer Modern Roman fonts is + provided in Adobe Type 1 format. This means that any + font can be rendered at any size without loss of quality. + PostScript versions of the \AmS-fonts are also available. + The fonts can be purchased separately in either Macintosh + or Adobe PFB formats.

+ +

Textures is a very integrated environment. This can + hardly be labelled a disadvantage considering how well it + works, but it does mean that some extra effort is required + if you want access to your document in a less integrated + fashion. Using another editor to compose your document is + possible, but it prevents you from using Lighting Textures. + Starting with version 1.6, the Textures editor includes a + macro programming language, so you can customize it with + features that you find useful. Blue Sky Research provides + the tools you need to incorporate other fonts into TeX or + extract TeX files (like DVI files) that are + normally hidden from view by Textures.

+ +

Figure  + Figure 15.1 shows an example of a Textures + session. The preview quality in this image is less than + optimal because the Macintosh that Textures is running on + does not have Adobe Type Manager.

+ +
+ + +

Figure 15.1. Editing, + previewing, and typesetting in Textures

+
+FIXME:
+
+
+ +

Because the Computer Modern Roman fonts are included in + Adobe Type 1 format, MetaFont is not provided in the + Textures package. Recently, BSR made their version of + MetaFont freely available. BSR's MetaFont was designed to + work with Textures, and creates output files that are + suitable for Textures, but not necessarily the standard + GF and TFM files you might expect. Those + files can be obtained elsewhere, of course.

+ +

The Textures package includes implementations of many + auxiliary TeX programs including BibTeX, MakeIndex, + the Excalibur spellchecker (see the “the section + called “CMacTeX”” section later in + this chapter), a DVITool for importing + and exporting DVI files, and font tools for + importing and exporting fonts. (Because Textures doesn't + use PK files directly, the standard \mfware tools + are not provided.) The Textures font tools are freely + available from Blue Sky Research; see the “the + section called “BSR Font Tools”” + section later in this chapter. Textures also supports + virtual fonts.

+ +

Textures includes the Eplain and Midnight + macro packages in addition to Plain TeX and LaTeX. iniTeX + is built into Textures, so you can make additional format + files as described in Chapter Chapter 4, + Chapter 4. + Making format files with Textures requires a Macintosh Plus + or other system with at least 1Mb of memory.

+ +

The Textures previewer and printing operations + understand bitmap or scalable (EPSF) pictures inserted into + your document with \special commands. Although not visible + on the previewer, raw PostScript can also be inserted for + documents printed on PostScript devices.

+
+ +
+
+
+

Other Tools

+
+
+ +

The following sections describe Macintosh versions of + other common tools. Some of these programs are unique to + the Mac, while others are ports of tools from other + systems.

+ +
+
+
+

Alpha

+
+
+ +

Alpha is a sophisticated shareware + editor for text files. Alpha uses Tcl, an interpreted C-like + language, as a macro programming language for extending + the editor. LaTeX support, which is written in + Tcl, is very complete. An example of the + Alpha editor is shown in Figure  + Figure 15.2.

+ +
+ + +

Figure 15.2. Alpha + editing the fonts chapter from this book

+
+FIXME:
+
+
+
+ +
+
+
+

BBEdit

+
+
+ +

BBEdit is another shareware editor. + Like Alpha, it has a wide range of features + including a LaTeX-aware editing mode. An example of the + BBEdit editor is shown in Figure  + Figure 15.3.

+ +
+ + +

+ Figure 15.3. \program{BBEdit} editing the + fonts chapter from this book

+
+FIXME:
+
+
+
+ +
+
+
+

BSR Font Tools

+
+
+ +

The Macintosh Programmer's Workshop (MPW) is + required to use the Blue Sky Research Font Tools. These + tools were written for Textures users so that they could + make other fonts, like those created with MetaFont, for + example, usable in Textures. In practice however, they + create standard Macintosh font resources, so the + resulting fonts can be used by any Mac application. + Table  + Table 15.3 describes the tools included in the + BSR Font Tools package.

+ +
+ + +

Table 15.3. Font Tools in + the BSR package

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Tool\bf Description
\it GFtoPKConverts MetaFont GF + files into standard PK format
\it PKtoFONDCreates Mac FOND resource from + PK and TFM files
\it TFMtoSuitCreates a font metrics + suitcase
\it NFNTconFinds NFNT resource numbering + conflicts
\it TFtoPLConverts TFM files into + PL files
\it PLtoTFTranslates PL files + (back) into TFM files
+
+
+ +
+
+
+

Excalibur

+
+
+ +

Excalibur is a spellchecker designed to + work with LaTeX documents. An example of Excalibur + is shown in Figure  + Figure 15.4.

+ +
+ + +

+ Figure 15.4. \program{Excalibur} + spellchecking the fonts chapter from this book

+
+FIXME:
+
+
+
+ +
+
+
+

HyperBibTeX

+
+
+ +

This is a hypercard stack for + maintaining bibliographic databases suitable for use + with BibTeX. BibTeX is described in + Chapter  + Chapter 12, + Chapter 12. An example of + HyperBibTeX is shown in Figure  + Figure 15.5.

+ +
+ + +

Figure 15.5. The + \program{Hyper\BibTeX} view of a bibliographic + database

+
+FIXME:
+
+
+
+ +
+
+
+

MacGS

+
+
+ +

MacGS is a Macintosh port of GNU + Ghostscript, described in Chapter Chapter 9, + Chapter 9.

+
+ +
+
+
+

dvidvi

+
+
+ +

dvidvi is a Macintosh port of the + dvidvi utility for rearranging pages in a + DVI file.

+
+ +
+
+
+

MacDVIcopy

+
+
+ +

MacDVIcopy is a port of the DVICOPY utility, which transforms + virtual font references in a DVI file into the + appropriate non-virtual fonts or commands. This allows + DVI drivers and previewers that lack support for virtual + fonts to preview documents that use them.

+
+ +
+
+
+

MacBibTeX

+
+
+ +

MacBibTeX is a port of the standard BibTeX + utility for accessing bibliographic databases in a + document. BibTeX is described in Chapter  + Chapter 12.

+
+ +
+
+
+

MacMakeIndex

+
+
+ +

MacMakeIndex is a port of the standard + MakeIndex for creating sorted, multilevel indexes + in a document. MakeIndex is described in + Chapter  + Chapter 12.

+
+
+ +
+
+
+ +
+

[128] {I'm not going to argue + about the relative merits of graphical and non-graphical + environments or particular implementations of graphical + environments. When all is said and done, the Mac is different. At least + today.}

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/ch16.html b/Master/texmf-doc/doc/english/make-tex-work/html/ch16.html new file mode 100644 index 00000000000..8ab8648ab09 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/ch16.html @@ -0,0 +1,1805 @@ + + + + + + + + + Chapter 16. TeX Utilities + + + + + + + + + + + +
+
+
+

Chapter 16. TeX + Utilities

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+
+ +

This chapter offers a brief summary of a large number of + TeX utilities (some more commonly used than others). Some of + these programs are mentioned elsewhere in this book in + connection with the particular tasks that they perform.

+ +

Although many programs are described in this chapter, + there is no way that it can be entirely complete. There are + just too many programs on CTAN for me to be familiar with + all of them. This list + is representative of the collection of programs present in + the archives during the winter of 1993. Regrettably, programs + not documented in English are not included at this time. Take + the time to explore the CTAN archives yourself; you won't be + disappointed.

+ + + +

This chapter attempts to describe only part of the + archives. Here are some of the things that are not described in this + chapter:

+ +
+
    +
  • +

    The thirty or more packages in the + archive-tools directory. This directory + contains sources and executables for almost every + archiving tool imaginable. If you retrieve a file from + an FTP site and you don't have the tool necessary to + unpack it, you'll probably find it in here. You'll also + find other archive-related programs like an FTP server + and the Gopher sources.

    +
  • + +
  • +

    Files from the digests, + documentation, and help directories. + These are collections of electronic digests, documents, + and articles that discuss aspects of TeX. They are + recommended reading.

    +
  • + +
  • +

    Files from the fonts directory. These are + summarized in Chapter Chapter 5, + Chapter 5.

    +
  • + +
  • +

    Files from the languages directory. These + are summarized in Chapter  + Chapter 7, + Chapter 7.

    +
  • + +
  • +

    The many special macro files in the macros + subtree. Many macro formats are described in + Chapter Chapter 4, + Chapter 4.

    +
  • + +
  • +

    Architecture-specific applications from the + systems subtree. These include applications + for Amiga, Atari, Macintosh, MS-DOS, OS/2, unix, VMS, + and Xenix systems. The Common-TeX distribution is also + available under this directory, as well as the standard + TeX distributions by Knuth. archiving tool imaginable. + If you retrieve a file from an FTP site and you don't + have the tool necessary to unpack it, you'll probably + find it in here. You'll also find other archive-related + programs like an FTP server and the Gopher + sources.

    +
  • + +
  • +

    Files from the digests, + documentation, and help directories. + These are collections of electronic digests, documents, + and articles that discuss aspects of TeX. They are + recommended reading.

    +
  • + +
  • +

    Files from the fonts directory. These are + summarized in Chapter Chapter 5, + Chapter 5.

    +
  • + +
  • +

    Files from the languages directory. These + are summarized in Chapter  + Chapter 7, + Chapter 7.

    +
  • + +
  • +

    The many special macro files in the macros + subtree. Many macro formats are described in + Chapter Chapter 4, + Chapter 4.

    +
  • +
+
+ +
+
+
+

List of Tools

+
+
+ +

These tools are available in the CTAN archives in the + directories specified. This list is sorted by CTAN path + name so that related utilities appear near each other.

+ +

+ \package{bib2dvi}{bib2dvi}{sh}{biblio/bibtex/utils/bib2dvi}

+ +

bib2dvi is a shell script that creates a + printable listing of an entire BibTeX database.

+ +

+ \package{bibcard}{bibcard}{C}{biblio/bibtex/utils/bibcard}

+ +

bibcard is an X11 based database editor for + BibTeX databases. This is an OpenWindows application + requiring the xview and olgx + libraries.

+ +

+ \package{bibclean}{bibclean}{}{biblio/bibtex/utils/bibclean}

+ +

bibclean syntax-checks and pretty-prints a BibTeX + database.

+ +

+ \package{bibextract}{bibextract}{}{biblio/bibtex/utils/bibextract}

+ +

bibextract extracts bibliographic entries from a + list of BibTeX databases based upon a user-supplied regular + expression.

+ +

+ \package{citefind}{citefind}{}{biblio/bibtex/utils/bibextract}

+ +

citefind extracts bibliographic entries from a + list of BibTeX databases based upon a user-supplied list of + keys.

+ +

+ \package{citetags}{citetags}{}{biblio/bibtex/utils/bibextract}

+ +

citetags extracts citation tags from a list of + LaTeX source files. These tags can be fed to + citefind to produce a bibliography database + customized for a particular document.

+ +

+ \package{bibindex}{bibindex}{}{biblio/bibtex/utils/bibindex}

+ +

bibindex creates a bibliographic index for the + biblook program.

+ +

+ \package{biblook}{biblook}{}{biblio/bibtex/utils/bibindex}

+ +

biblook uses a binary index constructed by + bibindex to perform very fast lookups into BibTeX + databases.

+ +

+ \package{bibsort}{bibsort}{}{biblio/bibtex/utils/bibsort}

+ +

bibsort sorts a BibTeX database.

+ +

+ \package{bibtool}{bibtool}{}{biblio/bibtex/utils/bibtool}

+ +

bibtool performs a number of operations on BibTeX + databases. It can pretty-print and syntax-check a database, + automatically build new keys, extract particular entries, + sort a database, and perform a number of other operations. + The operation of bibtool can be customized with one + or more resource files.

+ +

+ \package{aux2bib}{aux2bib}{}{biblio/bibtex/utils/bibtools}

+ +

aux2bib extracts citations from a LaTeX + AUX file and constructs a bibliography that + contains only the entries required by the document.

+ +

+ \package{bibify}{bibify}{}{biblio/bibtex/utils/bibtools}

+ +

bibify attempts to generate an AUX file + that contains appropriate references for citations. This + eliminates one LaTeX pass over the document and may be much + faster for large documents. bibify cannot handle + documents that use multiple AUX files.

+ +

+ \package{bibkey}{bibkey}{}{biblio/bibtex/utils/bibtools}

+ +

Lists all entries in a BibTeX database that contain a + particular keyword in the keyword field.

+ +

+ \package{cleantex}{cleantex}{}{biblio/bibtex/utils/bibtools}

+ +

Deletes temporary files (AUX, LOF, + etc.) created by LaTeX.

+ +

+ \package{looktex}{looktex}{}{biblio/bibtex/utils/bibtools}

+ +

Lists all BibTeX database entries that match a specified + regular expression.

+ +

+ \package{makebib}{makebib}{}{biblio/bibtex/utils/bibtools}

+ +

makebib creates a “portable” BibTeX + database by performing string substitutions, removing + comments, and optionally discarding all entries that do not + match a given list of keys.

+ +

+ \package{printbib}{printbib}{}{biblio/bibtex/utils/bibtools}

+ +

printbib creates a printable listing of an entire + BibTeX database. printbib is also available in the + biblio/bibtex/utils/printbib directory.

+ +

+ \package{bibview}{bibview}{Perl}{biblio/bibtex/utils/bibview}

+ +

bibview is an interactive Perl script that allows + you to view and search through a BibTeX database.

+ +

+ \package{HyperBibTeX}{HyperBibTeX}{}{biblio/bibtex/utils/hyperbibtex}

+ +

HyperBibTeX is a Macintosh tool for manipulating + BibTeX databases.

+ +

+ \package{bibdestringify}{bibdestringify}{}{biblio/bibtex/utils/lookbibtex}

+ +

bibdestringify performs BibTeX string + substitution on a BibTeX database.

+ +

+ \package{lookbibtex}{lookbibtex}{}{biblio/bibtex/utils/lookbibtex}

+ +

Lists all BibTeX database entries that match a specified + regular expression.

+ +

\package{r2bib}{r2bib}{C}{biblio/bibtex/utils/r2bib}

+ +

r2bib converts refer databases into BibTeX + databases.

+ +

+ \package{ref2bib}{ref2bib}{Perl}{biblio/bibtex/utils/ref2bib}

+ +

ref2bib converts refer databases into + BibTeX databases.

+ +

+ \package{xbibtex}{xbibtex}{}{biblio/bibtex/utils/xbibtex}

+ +

xbibtex is an X11 program for manipulating BibTeX + databases.

+ +

\package{Public Doman DVI Driver + Family}{*}{C}{dviware/beebe}

+ +

A collection of DVI drivers. This code has been + used as the basis for many other DVI-aware + programs. Table  + Table 16.1 summarizes the drivers included in this + package.

+ +
+ + +

Table 16.1. The Public + Doman DVI Driver Family

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Driver\bf Description
\it dvialwPostScript (Apple LaserWriter + laser printer)
\it dvibitVersion 3.10 BBN BitGraph + terminal
\it dvica2Canon LBP-8 A2 laser printer
\it dvicanCanon LBP-8 A2 laser printer
\it dvidjpHewlett-Packard Desk Jet plus + (from LaserJet)
\it dvie72Epson 9-pin family 240/216-dpi dot + matrix printer
\it dvie72Epson 9-pin family 60/72-dpi dot + matrix printer
\it dviepsEpson 9-pin family 240/216-dpi dot + matrix printer
\it dviepsEpson 9-pin family 60/72-dpi dot + matrix printer
\it dvigdGolden Dawn Golden Laser 100 laser + printer
\it dviimpimPRESS (Imagen laser printer + family)
\it dvijepHewlett-Packard LaserJet Plus + laser printer
\it dvijetHewlett-Packard 2686A Laser Jet + laser printer
\it dvil3pDigital LN03-PLUS 300 dpi laser + printer
\it dvil3pDigital LN03-PLUS 150 dpi laser + printer
\it dvil75DEC LA75 144h x 144v dot matrix + printer
\it dvil75DEC LA75 72h x 72v dot matrix + printer
\it dvim72Apple ImageWriter 144 dpi dot + matrix printer
\it dvim72Apple ImageWriter 72 dpi dot + matrix printer
\it dvimacApple ImageWriter 144 dpi dot + matrix printer
\it dvimacApple ImageWriter 72 dpi dot + matrix printer
\it dvimpiMPI Sprinter 144h x 144v dot + matrix printer
\it dvimpiMPI Sprinter 72h x 72v dot matrix + printer
\it dvio72OKIDATA Pacemark 2410 144 dpi dot + matrix printer
\it dvio72OKIDATA Pacemark 2410 72 dpi dot + matrix printer
\it dviokiOKIDATA Pacemark 2410 144 dpi dot + matrix printer
\it dviokiOKIDATA Pacemark 2410 72 dpi dot + matrix printer
\it dviprxPrintronix 300/600 60h x 72v dpi + dot matrix printer
\it dvitosToshiba P-1351 180h x 180v dpi dot + matrix printer
+
+ +

\package{bitpxl}{bitpxl}{C}{dviware/bitpxl}

+ +

Converts HP LaserJet bitmaps into PXL files.

+ +

\package{cdvi}{cdvi}{}{dviware/cdvi}

+ +

MS-DOS DVI file previewer. Does not support + external fonts, but has 16 Computer Modern fonts built + in.

+ +

+ \package{Crudetype}{crudetype}{Web}{dviware/crudetype/version3}

+ +

A DVI-to-text translator. Crudetype + attempts to make a readable DVI file. An + interactive mode is available on some platforms. A + 132-column display is expected for most output.

+ +

\package{DVItoVDU}{dvgt, dvitovdu, + dvi2vdu}{C}{dviware/dvgt}

+ +

DVItoVDU is a terminal previewer for DVI + files. The dvgt version supports graphics preview + using various graphics terminals and limited typeset + preview on other terminals such as the VT100 and VT220. + Tektronix emulation allows remote previewing of + DVI files through Telnet or using Kermit from a + PC, for example.

+ +

\package{DVI2PCL}{dvi2pcl}{C}{dviware/dvi2pcl}

+ +

Translates DVI files into HP LaserJet + format.

+ +

\package{dvi2ps}{}{C}{dviware/dvi2ps}

+ +

There are a number of translators called dvi2ps. + Some appear to be older DVI to PostScript + translators supporting the MIT printcap entries + and Apple LaserWriter printers, while others offer support + for Asian fonts compatible with the tools used by the + Japanese TeX User's Group and the chfont program, + better support for built-in printer features, and faster + execution.

+ +

\package{psdvi}{psdvi}{C}{dviware/dvi2ps/psdvi}

+ +

This program translates DVI files into + resolution-independent PostScript files. This allows the + PostScript output to be printed on high-resolution + phototypesetting equipment. Many other + DVI-to-PostScript converters assume that the + output resolution is 300dpi, which makes the PostScript + more difficult, or impossible, to print on high-resolution + devices.

+ +

Because bitmapped fonts are inherently + resolution-dependent, documents that use them cannot be + translated with this driver. This means that none of the + Computer Modern or \AmS fonts can be used unless you have + them in PostScript Type 1 format.

+ +

\package{DVI2QMS}{dvi2qms}{C}{dviware/dvi2qms}

+ +

Translates DVI files into output suitable for + QMS 800/1200/2400 printers.

+ +

\package{DVI2TTY}{dvi2tty}{C}{dviware/dvi2tty}

+ +

Translates DVI files into plain ASCII text.

+ +

\package{dvi2xx}{dvilj2, dvilj2p, dvilj, dviljp, + dvi3812}{C}{dviware/dvi2xx}

+ +

Translates DVI files into output suitable for + the HP LaserJet family of printers and compatible printers. + It also supports output to the IBM 3812 printer. MS-DOS and + OS/2 executables are provided.

+ +

\package{dviapollo}{dviapollo}{C}{dviware/dviapollo}

+ +

A screen previewer for Apollo workstations.

+ +

\package{dvibit}{dvibit}{C}{dviware/dvibit}

+ +

A screen previewer for BBN BitGraph terminals.

+ +

\package{dvibook}{dvibook}{C}{dviware/dvibook}

+ +

Rearranges DVI file pages into a sequence + suitable for printing and folding into a book. Actually, it + produces signatures, which are small groups of pages that + can be folded together. A signature is composed of several + folded pages; a book is composed of many signatures bound + together.

+ +

\package{DVIChk}{dvichk}{C}{dviware/dvichk}

+ +

DVIChk examines a DVI file and prints + out the page numbers that occur in the document in the + order in which they occur. Pages in a DVI file do + not have to occur in any particular order.

+ +

\package{DVICOPY}{dvicopy}{Web}{dviware/dvicopy}

+ +

This program copies a DVI file that contains + references to virtual fonts and creates an equivalent + DVI file with all references to virtual fonts + translated into references to the appropriate non-virtual + fonts.

+ +

\package{DVIDIS}{dvidis}{C}{dviware/dvidis}

+ +

A DVI file previewer for VaxStations running + VMS.

+ +

\package{dvidoc}{dvidoc}{C}{dviware/dvidoc}

+ +

Translates DVI files into plain ASCII. Although + it does not attempt to form the same page breaks, it does + claim to get the interword spacing correct.

+ +

\package{DVIDVI}{dvidvi}{C}{dviware/dvidvi}

+ +

Rearranges pages in a DVI file. The resulting + file is a new DVI file containing only the + selected pages. A Macintosh executable is available in + dviware/dvidvi/mac.

+ +

\package{DVIEW}{dview}{}{dviware/dview}

+ +

A very old previewer for MS-DOS. This program relies on + PXL files and requires the antique Almost Modern + fonts to print the user manual.

+ +

\package{DVIIMP}{dviimp}{Web}{dviware/dviimp}

+ +

Translates DVI files into a format suitable for + printing on an Imagen printer. This program reads + GF files rather than PK files.

+ +

\package{dvimerge}{dvimerge}{sh}{dviware/dvimerge}

+ +

dvimerge is a shell script (written in sh) + that uses dvidvi and dviconcat to merge two + DVI files together.

+ +

\package{DVIMSWin}{dvimswin}{}{dviware/dvimswin}

+ +

A DVI previewer for MS-DOS running Windows 3.1. + This program uses PK fonts at screen resolution. + These can be generated by MetaFont or obtained from the + dvivga distribution.

+ +

\package{dvipage}{dvipage}{C}{dviware/dvipage}

+ +

A DVI previewer for workstations running + SunView version 3.0 or later.

+ +

\package{dvipj}{dvipj}{C}{dviware/dvipj}

+ +

This program is a modification of the dvijet + driver that supports color printing on the HP PaintJet + printer. To build this program, you need source from the + Public Doman DVI Driver Family.

+ +

\package{dvips}{afm2tfm, dvips}{C}{dviware/dvips}

+ +

The dvips program is the de facto standard + DVI to PostScript translator. Several versions are + available, although the most recent release seems to offer + a superset of the features provided by all the other + versions.

+ +

\package{dvipsk}{afm2tfm, dvipsk}{C}{dviware/dvipsk}

+ +

dvipsk is a modification of dvips version + 5.516 that supports an extended path searching algorithm + for PK fonts.

+ +

\package{DVISUN}{dvisun}{C}{dviware/dvisun}

+ +

A DVI previewer for Sun II terminals.

+ +

\package{dvitodvi}{dvitodvi}{C}{dviware/dvitodvi}

+ +

Rearranges pages in a DVI file, producing a new + DVI file.

+ +

\package{dvitool}{dvitool}{C}{dviware/dvitool}

+ +

A DVI previewer for workstations running + SunView.

+ +

\package{dvitops}{psfont, pfbtops, aftopl, + dvitops}{C}{dviware/dvitops/dvitops}

+ +

dvitops is a DVI-to-PostScript + translator. psfont can be used to download + PostScript fonts. pfbtops decodes printer font + binary files into printer font ASCII files. aftopl + builds a PL file from a PostScript AFM + file. PL files can be further translated into + TFM files with the standard PLtoTF + utility.

+ +

\package{dvitovdu}{dvitovdu}{C}{dviware/dvitovdu}

+ +

A DVI previewer for terminals. dvitovdu + handles plain ASCII terminals as well as some graphics + terminals. Includes VMS and unix ports.

+ +

\package{dvitovdu}{dvitovdu}{C}{dviware/dvitovdu32}

+ +

Another version of the dvitovdu DVI + previewer for terminals. dvitovdu handles plain + ASCII terminals as well as some graphics terminals. This + version seems to read only PXL files.

+ +

\package{dvitty}{dvitty}{Pascal}{dviware/dvitty}

+ +

A simple previewer for ASCII display of DVI + files.

+ +

\package{DVIVGA}{dvivga}{}{dviware/dvivga}

+ +

The DVIVGA distribution includes a program for + previewing DVI files on PCs with EGA, VGA, or MCGA + displays. DVIVGA is derived from the Public Doman + DVI Driver Family. \pagebreak The DVIVGA + distribution also includes a full set of PK fonts + at many resolutions: 70, 76, 84, 92, 100, 110, 121, 132, + 145, 174, 208, 250, and 300dpi. Other previewers that + require PK fonts at screen resolution (typically + near 100dpi) can also use these fonts.

+ +

\package{DVIWIN}{dviwin}{}{dviware/dviwin}

+ +

A screen previewer for MS-DOS running Windows 3.1. This + program includes the ability to use emTeX FLI font + libraries.

+ +

\goodbreak + \package{eps}{eps}{C}{dviware/epson/eps-0.2}

+ +

Prints a DVI file on an Epson dot-matrix + printer. Some PK fonts at the appropriate + resolutions are included in + dviware/epson/epson.

+ +

\package{ivd2dvi}{ivd2dvi}{C}{dviware/ivd2dvi}

+ +

The TeX-\XeT driver produces IVD files, which + are like DVI files except that they use some + special commands to perform reflection, which allows them + to print right-to-left.

+ +

This program translates an IVD file into a + standard DVI file by replacing all of the special + commands with standard DVI file commands.

+ +

\package{dvijep}{dvijep}{C}{dviware/kane}

+ +

Another DVI-to-HP LaserJet+ driver.

+ +

\package{dvijep\_p}{dvijep\_p}{C}{dviware/kane}

+ +

A modified version of dvijep with Centronics PP8 + workarounds removed + where they might confuse a real LaserJet+ printer.

+ +

\package{dvi2kyo}{dvi2kyo}{C}{dviware/kyocera}

+ +

A DVI translator that produces Kyocera's native + Prescribe command language rather than relying on Kyocera's + somewhat limited HP LaserJet compatibility mode.

+ +

\package{kyodev}{kyodev}{C}{dviware/kyocera}

+ +

This DVI driver produces output in Kyocera's native + Prescribe format.

+ +

\package{dviplus}{dviplus}{Web}{dviware/laserjet}

+ +

An old DVI-to-HP LaserJet Plus translator that + uses PXL files.

+ +

\package{LN03 Driver}{ln03dvi}{C}{dviware/ln03}

+ +

Translates DVI files into a format suitable for + printing on a Digital LN03 printer.

+ +

\package{PSPrint}{psprint}{Pascal}{dviware/psprint}

+ +

A PostScript printing program that can handle + DVI files, raw PostScript files, or text files. + This program is a combined DVI-to-PostScript + translator and file-printing utility.

+ +

unix and VMS sources are provided, but a Pascal compiler + is required.

+ +

\package{QMS}{dvilg8, dviqms12, + ddviqms8}{}{dviware/qms}

+ +

An old VMS DVI driver for QMS printers.

+ +

\package{QuicSpool}{pktoch, tfm2difont, tfm2ofont, + dumpdesc, cati}{C}{dviware/quicspool}

+ +

This is a collection of programs for printing files to + QMS and Talaris laser printers. Support for DVI + files is included.

+ +

\package{SCREENVIEW}{crude}{Web}{dviware/screenview}

+ +

A VMS tool based on Crudetype for previewing + DVI files at an ASCII terminal.

+ +

\package{See\protect\TeX}{xtex, texsun, texx, iptex, + mftops}{C}{dviware/seetex}

+ +

The SeeTeX package contains a number of tools for + working with DVI files. The most substantial of + these tools are the xtex and texsun + previewers for workstations running the X Window system and + the SunView window system, respectively.

+ +

xtex is unique among X11 previewers because it + uses X Window fonts. This makes xtex quite fast. It + also means that xtex has to build a lot of new X + Window fonts the first few times that you use it. The + mftops program converts TeX PK fonts into X + Window fonts. xtex uses the MakeTeXPK program + to build new PK fonts at the necessary + resolutions. xtex also uses Ghostscript to + display the PostScript figures in your document. This is + typically much faster than using GhostView to + preview the entire document. The texx previewer is a + much simpler X Window previewer. It cannot interpret + PostScript, but it does recognize most of the tpic + specials. SeeTeX also includes iptex, an + Imagen printer driver.

+ +

\obsolete{symbolics}{symbolics}{}{dviware/symbolics}

+ +

\package{\TeX{}tool}{textool}{}{dviware/textool}

+ +

This is a TeX previewer for the SunView window + system.

+ +

\package{umddvi}{dvidmd, dvipr, dviselect, + iptex}{C}{dviware/umddvi}

+ +

dvidmd is a DVI previewer for DMD 5620 + displays. dvipr is a DVI driver for + Versatec printers. iptex is a DVI driver + for Imagen printers. Finally, dviselect extracts + pages from a DVI file and produces a new + DVI file containing the selected pages.

+ +

\package{VU\protect\TeX}{vutex}{Web}{dviware/vutex}

+ +

Another VMS DVI previewer for ASCII + terminals.

+ +

\package{xdvi}{xdvi}{C}{dviware/xdvi}

+ +

A screen previewer for workstations running the X11 + Window System. MS-DOS executables, useful only if you have + an X11 Window system running on your PC, are available in + the dviware/xdvi-dos directory.

+ +

\package{xdvik}{xdvik}{C}{dviware/xdvik}

+ +

xdvik is a modification of xdvi that + supports an extended path searching algorithm for + PK fonts.

+ +

\package{bit2spr}{bit2spr}{C}{graphics/bit2spr}

+ +

bit2spr converts X11 XBM bitmaps into a + “sprite” format that can be included directly + in TeX documents. The resulting sprites are fully portable, + although they require a lot of memory, which may make large + bitmaps impractical.

+ +

+ \package{bm2font}{bm2font}{C/Pascal}{graphics/bm2font}

+ +

The bm2font program converts bitmapped images + into TeX, TFM, and PK files. + bm2font also generates the Plain TeX or LaTeX + statements necessary to insert the figure into your + document. Color images can be dithered in a number of + different ways. This is one of the most portable ways to + insert pictures into a document; almost every available DVI + driver can print TeX PK fonts.

+ +

\package{fig2MF}{fig2mf}{C}{graphics/fig2mf}

+ +

Translates Fig code into MetaFont source. This allows + you to use interactive drawing tools like xfig to + construct diagrams that can be included into your document + in a portable manner with fig2MF.

+ +

\package{gnuplot}{gnuplot}{C}{graphics/gnuplot}

+ +

gnuplot is an interactive function plotting + program. Several different types of output are supported + and can be included directly into your document.

+ +

\package{hpgl2ps}{hpgl2ps}{C}{graphics/hpgl2ps}

+ +

This program translates HPGL Plotter language commands + into encapsulated PostScript.

+ +

\package{mactotex}{mactotex}{C}{graphics/mactotex}

+ +

This program cleans up Macintosh PostScript so it can be + included into your documents with psfig. (Some + printers have difficulty printing PostScript output + generated on a Macintosh because the PostScript is tailored + towards the Apple LaserWriter series of printers.)

+ +

\package{MFPic}{mfpic}{C}{graphics/mfpic}

+ +

MFPic is a flexible replacement for the LaTeX + picture environment. Instead of relying on special + fonts to generate pictures, MFPic writes MetaFont + code, which generates a font containing the picture + specified. This makes MFPic more flexible than the + standard picture environment without losing + portability.

+ +

\package{pbmtopk}{pbmtopk}{C}{graphics/pbmtopk}

+ +

Translates PBM files into TeX PK + fonts.

+ +

\package{PiCTeX}{pictex}{C}{graphics/pictex}

+ +

A sophisticated macro package that works on top of Plain + TeX and LaTeX. It provides a device-independent way of + producing many kinds of figures. The PiCTeX implementation + frequently generates documents that are too complex for + “small” versions of TeX to render. The PiCTeX + manual is not freely available and must be purchased before + PiCTeX can be used.

+ +

\package{Glo+Index}{idxtex, + glotex}{C}{indexing/glo+index}

+ +

These are tools for automatic construction of indexes + and glossaries. The glossary building tool uses \glossary + entries from your document in conjunction with a database + of word definitions to automatically construct a glossary. + The idxtex program provides many of the same + features as the MakeIndex program.

+ +

\package{MakeIndex}{makeindex, + makeindx}{C}{indexing/makeindex}

+ +

This is the standard tool for processing \index entries + from LaTeX documents. MakeIndex reads the entries, + sorts them, handles a number of useful features (multilevel + indexes, special sorting criteria, etc.) and produces LaTeX + source code, which produces a typeset index.

+ +

\package{RTF Translator}{rtf2text, rtf2troff, + *}{C++}{support/RTF-1_06a1}

+ +

The RTF Translator package includes several + programs for converting RTF (Rich Text Format) files. RTF + files contain information about the structure as well as + the content of a document. Microsoft Word and several NeXT + tools can produce RTF files.

+ +

Table Table 16.2 + summarizes the translators provided. Note that there is no + TeX or LaTeX translator in this package at present.

+ +
+ + +

Table 16.2. RTF + Translators

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Program\bf Translation
\it rtf2nullRemoves RTF codes
\it rtf2textTranslates to ASCII text
\it rtf2troffTranslates to ms macros in + troff
\it rtfwcCounts actual words in an RTF + document
\it rtfdiagVerifies the RTF parser (or the + RTF document)
\it rtfskelA skeleton for producing new + translators
+
+ +

\package{accents}{accents}{Web}{support/accents}

+ +

accents generates a virtual font containing + accented letters arranged according to the KOI8-CS + character set. This program constructs the accented letters + from characters and accent marks, if necessary. If the + input font is in Adobe Standard Encoding, accents + can rearrange it into TeX Text encoding.

+ +

\package{addindex}{addindex}{C}{support/addindex}

+ +

addindex inserts LaTeX \index commands into your + document. Presented with a list of words and index entries, + addindex reads your LaTeX files and indexes every + word from the list that occurs in your document.

+ +

\package{amSpell}{amspell}{}{support/amspell}

+ +

The amSpell program is an interactive MS-DOS + spellchecker for plain ASCII and TeX documents.

+ +

\package{atops}{atops}{}{support/atops}

+ +

A simple program to convert ASCII text files into + PostScript.

+ +

\package{\auctex}{}{elisp}{support/auctex}

+ +

A comprehensive TeX editing environment for GNU + emacs.

+ +

\package{basix}{basix}{tex}{support/basix}

+ +

basix is a BASIC interpreter written entirely in + TeX. Honest. ;-)

+ +

\package{BibDB}{bibdb}{}{support/bibdb}

+ +

An MS-DOS program for editing BibTeX bibliographic + databases.

+ +

\package{brief_t}{}{}{support/brief_t}

+ +

The brief_t package is a LaTeX editing + environment for Borland International's Brief + editor.

+ +

\package{c++2latex}{c2latex, + c++2latex}{C}{support/c++2LaTeX-1_1}

+ +

This program parses your C or C++ programs and creates + LaTeX source code for pretty-printing them. The syntactic + elements of the source (keywords, identifiers, comments, + etc.) can be set in different fonts. Compiling this program + requires flex.

+ +

\package{C2\LaTeX}{c2latex}{}{support/c2latex}

+ +

C2LaTeX is a filter designed to provide simple + literate programming support for C programming. This filter + massages LaTeX-coded C comments and source code into a + LaTeX document.

+ +

\package{chi2tex}{chi2tex}{}{support/chi2tex}

+ +

chi2tex is an MS-DOS program for converting + ChiWriter documents into TeX.

+ +

\package{detex}{detex, texspell}{C}{support/detex}

+ +

detex removes TeX control sequences from a + document. The texspell script pipes the resulting + output through a spell checker.

+ +

\package{bibtex-mode, web-mode}{bibtex-mode.el, + web-mode.el}{elisp}{support/emacs-modes}

+ +

GNU emacs macros that provide an enhanced editing + environment for BibTeX databases and Web source + files. Another substantial set of modes for editing LaTeX + documents is provided by aucTeX, listed separately.

+ +

\package{flow}{flow}{C}{support/flow}

+ +

flow reads a plain text description of a flow + chart and produces the appropriate LaTeX picture + environment for printing the flow chart.

+ +

+ \package{byte2tex}{byte2tex}{C}{support/foreign/byte2tex}

+ +

A translator for multilingual documents that use the + upper range of the ASCII character set as a second + alphabet. The translation performed is controlled by a + plain text description of the alphabet. See also EDI + and cyrlatex.

+ +

+ \package{cyrlatex}{cyrlatex}{tex}{support/foreign/cyrlatex}

+ +

A LaTeX style for using the \AmS Cyrillic fonts as a + second alphabet under LaTeX. See also EDI and + byte2tex.

+ +

\package{EDI}{edi}{}{support/foreign/edi}

+ +

An MS-DOS editor for multilingual (particularly + Cyrillic) documents. EDI uses the upper range of the + ASCII character set as a programmable second alphabet. See + also byte2tex and cyrlatex. MS-DOS and Atari + executables are available.

+ +

\package{genfam}{genfam, + modern}{Perl}{support/genfam}

+ +

The genfam script reads a configuration file that + describes a set of fonts and then runs the appropriate + MetaFont commands to produce them. A sample configuration + file, modern, is provided for the Computer Modern + Roman family.

+ +

\package{Ghostview}{ghostview}{C}{support/ghostview}

+ +

Ghostview provides an interactive interface to + Ghostscript, the GNU PostScript interpreter. + Ghostview requires X11, but there are ports to + Microsoft Windows and OS/2.

+ +

\package{Stanford + GraphBase}{}{CWeb}{support/graphbase}

+ +

This is a collection of CWeb programs for + studying combinatorial algorithms. It is related to TeX + only because CWeb files are part TeX.

+ +

\package{HPTFM2PL}{hptfm2pl, + showsym}{}{support/hp2pl}

+ +

This program reads Hewlett-Packard Tagged Font Metric + files and creates TeX PL files. The PL + files can be further translated into TeX TFM files + with the standard utility PLtoTF.

+ +

Hewlett-Packard distributes metric information about + LaserJet built-in fonts and font cartridges in Tagged Font + Metric format, so this program gives you a way of getting + TeX metrics for those fonts. To actually use them, you must + have both the metrics and a DVI driver that can use + built-in fonts.

+ +

\package{HP2\protect\TeX}{hp2tex, + hpopt}{}{support/hp2tex}

+ +

HP2TeX translates HPGL files into TeX documents + that use the \special commands found in emTeX for drawing + lines at arbitrary angles. This makes diagrams in HPGL + format that use only straight lines printable directly with + TeX. See also HP2XX.

+ +

\package{HP2XX}{hp2xx}{}{support/hp2xx}

+ +

HP2XX converts HPGL diagrams into PostScript or + one of several bitmapped formats. It can also translate + some diagrams directly into TeX if \special commands are + available for drawing lines at any angle.

+ +

MS-DOS, Sparc, Convex 210, and HP9000 executables are + available. A Windows front-end is also available for + MS-DOS.

+ +

\package{HPtoMF}{hptomf}{}{support/hptomf}

+ +

HPtoMF converts HPGL (Hewlett-Packard's plotter + language) into a variety of other vector and raster + formats.

+ +

\undescribed{HTML}{html}{}{support/html}

+ +

+ \package{HTMLto\LaTeX}{html2latex}{}{support/html2latex}

+ +

This program converts HTML documents into LaTeX source + for printing.

+ +

\package{Icons}{}{}{support/icons}

+ +

This is a collection of icons for TeX and MetaFont. They + were designed by Donald Knuth for OpenWindows and have + subsequently been translated into Microsoft Windows, OS/2, + and X11 XBM format.

+ +

\package{Imake-\TeX}{imaketex}{}{support/imaketex}

+ +

Imake-TeX helps you create an Imakefile for TeX + documents. Imakefiles are used to generate custom makefiles + for an application, in this case a LaTeX document.

+ +

\package{ispell}{ispell}{C}{support/ispell}

+ +

An interactive spellchecker. ispell is + intelligent about TeX documents and can handle languages + other than English. \editorial{there are two!}

+ +

\package{jspell}{jspell}{C}{support/jspell}

+ +

jspell is an MS-DOS spellchecker. It includes + special support for TeX documents.

+ +

\package{\TeX{}Tools}{textools}{}{support/kamal}

+ +

The TeXTools package includes several tools for + manipulating TeX documents. detex strips TeX + commands from a file. texeqn extracts displayed + equations from a document. texexpand merges + documents loaded with \input or \include into a single + file. texmatch checks for matching delimiters. + texspell uses detex to spellcheck the + filtered version of a document.

+ +

\package{LaCheck}{lacheck}{C}{support/lacheck}

+ +

LaCheck reads a LaTeX document and reports any + syntax errors it finds. This is faster than running the + document through TeX if you are only interested in finding + TeXnical mistakes.

+ +

+ \package{\LaTeX2HTML}{latex2html}{}{support/latex2html}

+ +

Converts LaTeX documents into HTML documents, suitable + for browsing with a WWW browser. Many complex document + elements are handled automatically.

+ +

\package{\LaTeX{}Mk}{latexmk}{}{support/latexmk}

+ +

LaTeXMk is a Perl script that attempts to + determine what operations need to be performed on a + document to produce a complete DVI file. LaTeXMk + runs LaTeX, BibTeX, etc. until a complete document has been + built.

+ +

\package{lgrind}{lgrind}{}{support/lgrind}

+ +

lgrind formats program sources using LaTeX. + Syntactic elements are identified by typographic changes in + the printed sources.

+ +

\package{LSEdit}{}{}{support/lsedit}

+ +

This is an add-on package for the VAX/VMS Language + Sensitive Editor (LSEDI). It provides an editing + environment for LaTeX documents.

+ +

\package{make\_\hskip.25pt + latex}{make\_latex}{}{support/make\_latex}

+ +

Provides a set of make rules for LaTeX + documents.

+ +

\package{MakeProg}{makeprog}{Web}{support/makeprog}

+ +

MakeProg is a system for doing Literate + Programming in TeX. It provides a mechanism for combining + documentation with TeX macros. Donald Knuth's original + articles on Literate Programming are included with the + documentation.

+ +

\package{MathPad}{mathpad}{}{support/mathpad}

+ +

MathPad is an X11 editor for TeX sources. It was not + available (or known to me) in time for review in this + edition of Making TeX + Work.

+ +

\package{MC\TeX}{}{tex}{support/mctex}

+ +

A TeX macro package for pretty-printing Lisp + code.

+ +

\package{MEW\LaTeX}{}{}{support/mewltx}

+ +

An extension to microEMACS for Windows. It + provides a LaTeX editing environment that allows you to + write, spellcheck, process, and view your document from + within microEMACS.

+ +

\package{MNU}{}{DOS}{support/mnu}

+ +

MNU is an MS-DOS menu system written with batch + files. It was designed for running TeX but can be extended + to other applications.

+ +

\package{pbm2\TeX}{pbm2tex}{}{support/pbm2tex}

+ +

pbm2TeX converts PBM files into LaTeX + picture environments. This provides a portable way + to include bitmap images in documents. The documents take a + long time to typeset, however, and may require a big + TeX.

+ +

\package{PCWri\TeX}{}{}{support/pcwritex}

+ +

Adds TeX to PC-Write as a special kind of + printer. Documents “printed” to the TeX printer + can be processed with TeX to get typeset output.

+ +

\package{PM\TeX}{pmtex}{}{support/pmtex}

+ +

An OS/2 Presentation Manager application that provides a + shell around common TeX-related activities (editing, + TeXing, previewing, printing, etc.).

+ +

\package{PP}{pp}{}{support/pp}

+ +

A Pascal or Modula-2 pretty-printer. It translates code + into a Plain TeX or LaTeX document. An MS-DOS executable is + provided.

+ +

\package{PS2EPS}{ps2eps}{c}{support/ps2eps}

+ +

Attempts to convert PostScript output from other + programs into encapsulated PostScript output suitable for + including in TeX documents with dvips, for example. + Support is included for converting output from GEM + 3.0, DrawPerfect 1.1, PSpice 4.05, + OrCAD 3.11, PrintGL 1.18, Mathcad 3.0, + and GNUPlot 3.0.

+ +

\package{PS Utils}{psbook, psselect, pstops, psnup, + epsffit}{C}{support/psutils}

+ +

A collection of utilities for transforming PostScript + output files in various ways. psbook rearranges + pages into signatures. psselect selects ranges of + pages. pstops performs arbitrary rearrangement and + selection of pages. psnup prints multiple pages on a + single sheet of paper. epsffit rescales an + encapsulated PostScript figure to fit within a specified + bounding box. These programs can be used to rearrange the + output from PostScript DVI drivers like dvips.

+ +

PS Utils also includes scripts for displaying + character information and “fixing” PostScript + output from other sources. (Some PostScript output is + nonstandard and must be fixed-up before it can be used with + the PS Utils.) These scripts are summarized in + Table  + Table 16.3.

+ +
+ + +

Table 16.3. Additional + Scripts in PS Utils

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\bf Script\bf Purpose
\it getafmRetrieves font metrics from the + printer
\it showcharPrints a character and its + metrics
\it fixfmpsFixes output from + FrameMaker
\it fixwppsFixes output from + WordPerfect
\it fixwfwpsFixes output from Word for + Windows
\it fixmacpsFixes Macintosh PostScript
\it fixpsditpsFixes + Transcriptpsdit files
\it fixpsppsFixes output from + PSPrint
+
+ +

+ \package{rtf2\LaTeX}{rtf2latex}{C}{support/rtf2LaTeX}

+ +

A conversion program to translate RTF sources into + LaTeX.

+ +

\package{rtf2\TeX}{rtf2tex}{C}{support/rtf2TeX}

+ +

A conversion program to translate RTF sources into + TeX.

+ +

+ \package{RTF-to-\LaTeX}{rtflatex}{Pascal}{support/rtflatex}

+ +

Another conversion program to translate RTF sources into + LaTeX.

+ +

\package{S2\LaTeX}{s2l}{C}{support/s2latex}

+ +

A Scribe-to-LaTeX converter. Requires lex + and yacc to compile.

+ +

+ \package{Scheme\TeX}{schemetex}{C}{support/schemetex}

+ +

SchemeTeX provides support for Literate + Programming in Scheme. Lex is required to + build SchemeTeX.

+ +

\package{\TeX{}OrTho}{texortho}{C}{support/spelchek}

+ +

TeXOrTho is a spellchecking filter for text + files. It was designed for spellchecking TeX and LaTeX + documents, but it is parameter-file driven so it may be + possible to extend it to other formats.

+ +

\package{Tek2EEPIC}{tek2eepic}{C}{support/tek2eepic}

+ +

A filter for Tektronix 4015 escape sequences that allows + graphics output designed for a Tektronix 4015 display to be + included in a TeX document. The resulting DVI file + must be processed by a DVI driver that recognizes the tpic \special + commands.

+ +

\package{\TeX{}calc}{}{}{support/texcalc}

+ +

TeXcalc is an InstaCalc spreadsheet for + calculating TeX typeface design sizes based upon + magnification and scaling factors.

+ +

+ \package{\TeXinfo{}2HTML}{texi2html}{Perl}{support/texi2html}

+ +

Translates GNU TeXinfo sources into HTML.

+ +

+ \package{\TeX{}i2roff}{texi2roff}{C}{support/texi2roff}

+ +

This is a TeXinfo-to-nroff converter (although it + should be possible to process most documents with + troff as well).

+ +

\package{\TeX{}it}{texit}{Perl}{support/texit}

+ +

A Perl script for processing TeX documents + intelligently.

+ +

\package{texproc}{texproc}{C}{support/texproc}

+ +

texproc is a filter that inserts the output from + a command into your document. This can be used, for + example, to automatically insert the output from + GNUPlot directly into your TeX document (assuming + that you use one of the TeX-compatible output terminals in + GNUPlot).

+ +

\package{tgrind}{tgrind}{C}{support/tgrind}

+ +

tgrind is a source code pretty-printer modelled + after the standard BSD unix vgrind utility. It + produces a TeX or LaTeX document that typesets an + attractive program listing from your source code.

+ +

\package{tr2\LaTeX}{tr2latex}{C}{support/tr2latex}

+ +

Translates troff sources into LaTeX.

+ +

\package{tr2\TeX}{tr2tex}{C}{support/tr2tex}

+ +

Translates troff sources into Plain TeX.

+ +

\package{TRANSLIT}{translit}{C}{support/translit}

+ +

TRANSLIT transliterates ASCII character codes. + Single characters can be translated into multiple + characters and vice versa, in addition to simple + permutations. This program allows files written in one + national character set to be translated into another + character set without losing characters or meaning.

+ +

\package{TSpell}{tspell, chk, + putback}{C}{support/tspell}

+ +

A spellchecking filter for TeX documents. It strips TeX + and LaTeX macros out of a document, runs the document + through a spellchecker, and restores the TeX and LaTeX + macros. It looks like it was designed for VAX machines.

+ +

+ \package{umlaute}{umlaute}{\protect\TeX}{support/umlaute}

+ +

A collection of style files for processing TeX documents + with accented characters using machine-native character + encodings. Support for the ISO standard character set (ISO + Latin1) and the MS-DOS code page 437 character set is + provided.

+ +

\package{undump}{undump}{C}{support/undump}

+ +

undump combines a core dump and an executable + program to build a new executable using the core dump to + provide initial values for all of the program's static + variables. One use of this program is to construct TeX + executables with macro packages preloaded. This is + unnecessary on most modern computers (they're fast enough + to simply load the format files). undump is no + longer a supported program.

+ +

\package{untex}{untex}{C}{support/untex}

+ +

Removes all LaTeX control sequences from a document. Can + optionally remove arguments to control sequences, as well + as all math-mode text. Replaces many accented characters + with their IBM OEM character set equivalents.

+ +

\package{VMSSpell}{vmsspell}{}{support/vmsspell}

+ +

A VMS spellchecking tool. Distributed in a VMS-style + archive package.

+ +

\package{Vor\TeX}{}{Emacs lisp}{support/vortex}

+ +

A GNU emacs editing mode for TeX documents. Also + provides support for BibTeX databases.

+ +

\package{windex}{windex}{C}{support/windex}

+ +

windex is an aid for building indexes in LaTeX + documents. It modifies the LaTeX indexing macros to produce + a different output format. The windex program can + then sort the terms and construct an index for you.

+ +

+ \package{WP2\protect\LaTeX}{wp2latex}{C/Pascal}{support/wp2latex-5_1}

+ +

This program attempts to translate WordPerfect v5.1 + documents into LaTeX.

+ +

\package{xet}{xet}{C}{support/xet}

+ +

The xet program removes all commands and + mathematical formulae from Plain TeX and LaTeX documents. + xet has a number of options for handling different + aspects of a document (such as accents and LaTeX + environments) and claims to be useful as a simple syntax + checker for TeX files.

+ +

\package{xetal}{xetal}{C}{support/xetal}

+ +

This is a more recent version of xet, described + above.

+ +

\package{xlatex}{xlatex}{C}{support/xlatex}

+ +

An X11 Windows application that ties together several + aspects of TeXing a document. It provides a “push + button” interface to editing, processing, previewing, + and printing your document.

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/co01.html b/Master/texmf-doc/doc/english/make-tex-work/html/co01.html new file mode 100644 index 00000000000..58229bc7ad0 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/co01.html @@ -0,0 +1,187 @@ + + + + + + + + + Colophon + + + + + + + + + + +
+

Colophon

+ +

About this Book

+ +

This is an alpha + edition of this book. This version may contain glaring + inconsistencies, missing sections, and other misfeatures + indicative of a “work in progress”.

+ +

About the Author

+ +

Norm Walsh is a Production Tools Specialist at O'Reilly + and Associates' Cambridge office. Before Norm joined ORA, he + was a research assistant at the University of Massachusetts, + Amherst where he earned his master's degree in computer + science.

+ +

Besides maintaining a number of TeX and font-related + resources on the Net, Norm enjoys bicycling, herpetology, + prestidigitation, and browsing record and book stores. Norm + lives in Boxborough, MA with his wife Deborah, two cats, a + box turtle, two toads, and two frogs.

+ +

Colophon

+ +

Our look is the result of reader comments, our own + experimentation, and feedback from distribution channels.

+ +

Distinctive covers complement our distinctive approach to + technical topics, breathing personality and life into + potentially dry subjects. UNIX and + its attendant programs can be unruly beasts. Nutshell + Handbooks® help you tame them.

+ +

The animal featured on the cover of Making TeX Work + is the European garden spider. Garden spiders are orb + weavers, known for their intricate orb-shaped webs. Web + building is a complex process: support lines are constructed + first; then the radial lines; and finally the spiraling + strands are spun from the center outward. Without training + from adults, even the tiniest just-hatched spiderlings are + able to spin silk and weave webs. Another orb weaver, nephila, builds an extremely + thick and strong web, up to eight feet in diameter. People in + Southeast Asia have found an interesting use for this + spider's web—they bend a pliable stick into a loop and + pass it through the large web, resulting in a surprisingly + strong and effective fishing net!

+ +

Spiders produce silk from glands called spinnerets. Orb + weavers can have three or four pairs of these glands, each + producing different textures of silk: non-stick silk for the + radial web lines, and sticky silk for the spiraling strands. + Some spiders even produce an ultraviolet silk to attract + insects. Spider silk, a super protein that hardens as it is + stretched from the spinnerets, may look delicate but it is + unbelievably tough. The relative tension necessary to break + it is far greater than for steel.

+ +

When finished with the construction of its web, the garden + spider will often go to the center, hang upside down, and + wait for a flying or jumping insect to become ensnared. + Having poor eyesight, orb weavers rely on a highly-developed + sense of touch. When an insect because caught in th web and + struggles, the spider is alerted by the vibrations. It rushes + tout to secure its prey, usually wrapping it in silk. A + poison is injected into the victim, paralyzing it and + converting the contents of its body to a liquid. The spider + returns later to insert its tube-like fangs and suck up its + meal.

+ +

The garden spider's profound sense of touch has another + purpose: it provides male spiders with a channel to + communicate with females. Before climbing onto the female's + web, the male taps out a special message. Then he cautiously + crawls toward his mate—a perilous task, for he is + always in danger of being mistaken for prey. It is commonly + thought that the female spider kills and eats the male after + mating, but this is an exaggeration. The male, who stops + eating during his mate-hunting ordeal, generally dies of + malnourishment and exhaustion.

+ +

Spiders are similar to, but not the same as insects. They + belong to the class Arachnida, named after + Arachne, a maiden in Greek mythology. She defeated the + goddess Athena in a weaving contest. In a fury of anger, + Athena destroyed Arachne's weaving and beat the girl about + the head. In utter disgrace, Arachne hanged herself. A + regretful Athena changed Arachne into a spider so that she + could weave forever.

+ +

While they are certainly not going to win any popularity + contests, spiders' insect-eating habits are extremely helpful + to humans. Every year, billions of spiders do away with a + large number of disease-carrying and crop-destroying insects. + If every spider ate just one a day for a year, those insects, + piled in one spot, would weigh as much as 50 million people. + Spiders are, by far, the most important predator of insects + in our world.

+ +

Edie Freedman designed this cover and the entire UNIX + bestiary that appears on other Nutshell Handbooks. The beasts + themselves are adapted from nineteenth century engravings + from the Dover Pictorial Archive. The cover layout was + produced with QuarkXPress 3.1 using the ITC Garamond + font.

+ +

The inside layout was designed by Edie Freedman and + implemented by Norm Walsh in TeX using the ITC Garamond font + family. The figures (except those in chapter 6) were created + in Aldus Freehand 3.1 by Chris Reilley. The colophon was + written by Elaine and Michael Kalantarian.

+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/amspell.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/amspell.png new file mode 100644 index 00000000000..93178755a7b Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/amspell.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/arab.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/arab.png new file mode 100644 index 00000000000..9276ca647d8 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/arab.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/badfont.err b/Master/texmf-doc/doc/english/make-tex-work/html/figures/badfont.err new file mode 100644 index 00000000000..01242196a7b --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/badfont.err @@ -0,0 +1,24 @@ +This is emTeX (tex386), Version 3.141 [3c-beta8] +**&lplain badfont +(badfont.tex +LaTeX Version 2.09 <25 March 1992> +(d:\tex\latex\sty\article.sty +Standard Document Style `article' <14 Jan 92>. +(d:\tex\latex\sty\art10.sty)) (badfont.aux) +! Font cmr/m/n/18 not found. +extract@fontinfo ...@name space not found} + fi +extract@font ...fontinfo font@info 3<@nil + csna... +define@newfont ... endcsname extract@font + fi e... +pickup@font ...@name relax define@newfont + fi +p@selectfont ...ze endcsname }pickup@font + font... + reset@font Large + bf +... +l.21 \section{First Section} + +? diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/bbox.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/bbox.png new file mode 100644 index 00000000000..9239fa11a6c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/bbox.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/bezier.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/bezier.png new file mode 100644 index 00000000000..69136abd47c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/bezier.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/caffeine.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/caffeine.png new file mode 100644 index 00000000000..479e1a7070c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/caffeine.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/cover.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/cover.png new file mode 100644 index 00000000000..d4595f75cdb Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/cover.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/eepic.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/eepic.png new file mode 100644 index 00000000000..6dac200314b Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/eepic.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/eight.mf b/Master/texmf-doc/doc/english/make-tex-work/html/figures/eight.mf new file mode 100644 index 00000000000..ea2f5ba3663 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/eight.mf @@ -0,0 +1,19 @@ +mode_setup; +u# := 2mm#; +define_pixels(u); + +beginchar("A", 8u#, 9u#, 5u#); + z1 = ( 0u, 0u); + z2 = ( 8u, 0u); + z3 = ( 1u, 8u); + z4 = ( 7u, 8u); + pickup pencircle scaled 1u#; + draw z4 .. z1 .. z2 .. z3 .. cycle; + pickup pencircle scaled 3u#; + drawdot z1; + drawdot z2; + drawdot z3; + drawdot z4; +endchar; + +\end \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/epic.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/epic.png new file mode 100644 index 00000000000..a384bb56398 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/epic.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/fi-ligs.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/fi-ligs.png new file mode 100644 index 00000000000..93b1612cf4a Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/fi-ligs.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/frog.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/frog.png new file mode 100644 index 00000000000..76c296ffa82 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/frog.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/g-h.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/g-h.png new file mode 100644 index 00000000000..caa71c4adc8 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/g-h.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.1 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.1 new file mode 100644 index 00000000000..10e335b5724 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.1 @@ -0,0 +1,40 @@ +#! perl +# +# Usage: gs-eps epsfile +# +# Where: epsfile is the encapsulated postscript file +# outputfile is the output file (the default name +# is .) +# resolution is the output resolution (default=300) +# device is the GS driver to use (default=pbm) + +($epsfile,$outputfile,$res,$device) = @ARGV; + +if (! $epsfile) { + printf "Usage: gs-eps epsfile "; + printf " \n"; + printf "Note: parameters are positional. To specify a"; + printf " driver, you\n"; + printf "must also specify an outputfile and resolution.\n"; + exit 1; + } + +$epsfile =~ tr/\\/\//; # translate \foo\bar -> /foo/bar + +if (! -r $epsfile) { + printf "Cannot read file: $epsfile\n"; + exit 1; + } + +if (! $res) { $res = 300 } +if (! $device) { $device = "pbm" } + +if (! $outputfile ) { + @pathname = split(/\//,$epsfile); + $outputfile = $pathname[$#pathname]; + $outputfile =~ s/.eps$//; + $outputfile = join(".", $outputfile, $device); + } + +printf "Converting $epsfile to $outputfile at ${res}dpi...\n"; + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.2 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.2 new file mode 100644 index 00000000000..7ba4b721355 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/gs-eps.2 @@ -0,0 +1,41 @@ +open (EPSFILE,$epsfile); + +undef $bbox; +undef $showpg; +while () { + $bbox = $_ if /\%\%\s*BoundingBox:\s*\d+\s+\d+\s+\d+\s+\d+/; + $showpage = $_ if /showpage/; + last if ($bbox && $showpage); + } + +if (! $bbox) { + printf "Cannot find a bounding box in $epsfile"; + exit 1; + } + +$bbox =~ s/\D*//; # remove everything preceding the digits + +($llx,$lly,$urx,$ury) = split(/\s/,$bbox); + +$xsize = sprintf("%d", (($urx - $llx) * $res / 72) + 0.5); +$ysize = sprintf("%d", (($ury - $lly) * $res / 72) + 0.5); + +printf "$llx neg $lly neg translate .gt. gs-eps-a.$$\n"; +printf "quit .gt. gs-eps-b.$$\n"; + +if (! $showpg) { + printf "showpage .gt. gs-eps-b.$$\n"; + printf "quit .gtgt. gs-eps-b.$$\n"; + } + +# join sillyness to keep the length of lines in the +# script small enough to print in the book. +$gscmd = join(" ", "gs -sDEVICE=$device", + "-q -sOutputFile=$outputfile", + "-g${xsize}x${ysize} -r$res", + "gs-eps-a.$$ $epsfile -", + ".lt. gs-eps-b.$$"); + +printf "$gscmd\n"; + +printf "rm -f gs-eps-a.$$ gs-eps-b.$$\n"; diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/hebrew-sample.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/hebrew-sample.png new file mode 100644 index 00000000000..cdffc323e6b Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/hebrew-sample.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/jgenji.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/jgenji.png new file mode 100644 index 00000000000..aed7ef606da Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/jgenji.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/lint.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/lint.png new file mode 100644 index 00000000000..2554447f0cc Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/lint.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/lithium.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/lithium.png new file mode 100644 index 00000000000..fcecb0dc347 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/lithium.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.1 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.1 new file mode 100644 index 00000000000..e521a3b8f50 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.1 @@ -0,0 +1,6 @@ +$ mf 'mode=localfont; \input eight' +This is METAFONT, Version 2.71 (C version d) +! I can't find file `mode=localfont.mf'. +<*> mode=localfont + ; \input eight +Please type another input file name: diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.2 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.2 new file mode 100644 index 00000000000..c675a9ae738 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.2 @@ -0,0 +1,11 @@ +$ mf '\input eight' +This is METAFONT, Version 2.71 (C version d) +(eight.mf +! Value is too large (4097). + ; + +beginchar->...rdp:=(EXPR3);w:=hround(charwd*hppp); + h:=vround(charht*hppp);d:=... +l.5 beginchar("A", 8u#, 9u#, 5u#) + ; +? diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.3 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.3 new file mode 100644 index 00000000000..65d8b4f38f0 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.3 @@ -0,0 +1,12 @@ +$ mf '\mode=localfont \input eight' +This is METAFONT, Version 2.71 (C version d) +(eight.mf +>> unknown string mode_name0 +! Not a string. + + ; +mode_setup->...nput "&mode)else:mode_name[mode]fi; + if.unknown.mag:mag=1;fi.if... +l.1 mode_setup + ; +? diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.4 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.4 new file mode 100644 index 00000000000..beb55d333fe --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.4 @@ -0,0 +1,12 @@ +$ mf '\mode=localfont; mag=magstep(1) \input eight' +Running MetaFont from /exp/rcf/share... +This is METAFONT, Version 2.71 (C version d) +(eight.mf +! Extra tokens will be flushed. + + warningcheck +mode_setup->warningcheck + :=0;if.unknown.mode:mode=proof;fi.numeric.aspect_rat... +l.1 mode_setup + ; +? diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.5 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.5 new file mode 100644 index 00000000000..43aea3c7ffc --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.5 @@ -0,0 +1,6 @@ +$ mf '\mode=localfont; \input eight' +This is METAFONT, Version 2.71 (C version d) +(eight.mf [65] ) +Font metrics written on eight.tfm. +Output written on eight.300gf (1 character, 5444 bytes). +Transcript written on eight.log. diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.6 b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.6 new file mode 100644 index 00000000000..2bc42d544f0 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mferr.6 @@ -0,0 +1,4 @@ +$ mf '\mode=localfont; eight' +This is METAFONT, Version 2.71 (C version d) + +* diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/mozart.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mozart.png new file mode 100644 index 00000000000..14b576a38aa Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/mozart.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-amt.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-amt.png new file mode 100644 index 00000000000..bfca2fe30d8 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-amt.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-inf.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-inf.png new file mode 100644 index 00000000000..e0aff2def97 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-inf.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-lol.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-lol.png new file mode 100644 index 00000000000..a13d385c523 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-lol.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ltx.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ltx.png new file mode 100644 index 00000000000..23b583c291d Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ltx.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ptx.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ptx.png new file mode 100644 index 00000000000..5f480fffb90 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/perf-ptx.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pgenji.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pgenji.png new file mode 100644 index 00000000000..031857f4efd Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pgenji.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictex-example.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictex-example.png new file mode 100644 index 00000000000..9bc5ae06783 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictex-example.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictexex.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictexex.png new file mode 100644 index 00000000000..9bc5ae06783 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pictexex.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmc-sample.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmc-sample.png new file mode 100644 index 00000000000..c89f1903daf Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmc-sample.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmcs-sample.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmcs-sample.png new file mode 100644 index 00000000000..687e2cbe691 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmcs-sample.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmj-sample.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmj-sample.png new file mode 100644 index 00000000000..41dcf6f31f1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/pmj-sample.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/sample.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/sample.png new file mode 100644 index 00000000000..768583dc343 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/sample.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.03.png new file mode 100644 index 00000000000..7334208f9b3 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.04.png new file mode 100644 index 00000000000..396f34575cb Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.05.png new file mode 100644 index 00000000000..6a260c65b74 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.01.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.01.png new file mode 100644 index 00000000000..bce3a64bead Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.02.png new file mode 100644 index 00000000000..601ac0fbb60 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.03.png new file mode 100644 index 00000000000..54ada26d77a Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.04.png new file mode 100644 index 00000000000..e30cd30dae1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.05.png new file mode 100644 index 00000000000..d70f96f68ad Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.06.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.06.png new file mode 100644 index 00000000000..694a808c937 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.06.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.07.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.07.png new file mode 100644 index 00000000000..74531d7749c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.07.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.08.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.08.png new file mode 100644 index 00000000000..cecf1f94c5c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.08.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.09.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.09.png new file mode 100644 index 00000000000..17bb3af1235 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.09.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.10.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.10.png new file mode 100644 index 00000000000..5daef5c96f9 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.10.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.11.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.11.png new file mode 100644 index 00000000000..42f36aa3564 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.02.11.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.04.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.04.04.png new file mode 100644 index 00000000000..6a0bbdb8d73 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.04.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.04.png new file mode 100644 index 00000000000..e69297e94e1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.06.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.06.png new file mode 100644 index 00000000000..b5b026e9ec9 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.05.06.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.01.png new file mode 100644 index 00000000000..530759e7a3a Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.02.png new file mode 100644 index 00000000000..600ffb5bc61 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.03.png new file mode 100644 index 00000000000..3fb6821a15c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.04.png new file mode 100644 index 00000000000..a9e907586e0 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.05.png new file mode 100644 index 00000000000..06fc71848d6 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.06.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.06.png new file mode 100644 index 00000000000..507c9a42dc1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.06.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.07.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.07.png new file mode 100644 index 00000000000..4387abe3f79 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.07.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.08.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.08.png new file mode 100644 index 00000000000..e977c221c44 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.08.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.09.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.09.png new file mode 100644 index 00000000000..76c296ffa82 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.09.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.11.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.11.png new file mode 100644 index 00000000000..62f6aba41d1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.11.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.12.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.12.png new file mode 100644 index 00000000000..35b1c89f30b Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.12.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.13.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.13.png new file mode 100644 index 00000000000..45d2c1085ea Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.13.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.14.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.14.png new file mode 100644 index 00000000000..263bc7a1411 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.14.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.20.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.20.png new file mode 100644 index 00000000000..6afef50ec5f Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.06.20.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.07.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.07.01.png new file mode 100644 index 00000000000..f303e4156d0 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.07.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.08.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.08.03.png new file mode 100644 index 00000000000..fa0c367eb24 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.08.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.01.png new file mode 100644 index 00000000000..6ff1c1ec782 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.02.png new file mode 100644 index 00000000000..58df0224e1f Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.03.png new file mode 100644 index 00000000000..1102411266f Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.04.png new file mode 100644 index 00000000000..6614ea3912b Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.05.png new file mode 100644 index 00000000000..fa28961c414 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.06.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.06.png new file mode 100644 index 00000000000..9dfda0cefd3 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.06.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.07.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.07.png new file mode 100644 index 00000000000..55dc9b9c7bb Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.07.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.08.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.08.png new file mode 100644 index 00000000000..04c80e315dd Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.08.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.09.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.09.png new file mode 100644 index 00000000000..1beecc6f10a Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.09.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.10.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.10.png new file mode 100644 index 00000000000..aecd009a70f Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.10.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.11.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.11.png new file mode 100644 index 00000000000..399f09ca68c Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.11.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.12.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.12.png new file mode 100644 index 00000000000..4877acf713f Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.12.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.13.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.13.png new file mode 100644 index 00000000000..079a7b54faf Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.13.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.14.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.14.png new file mode 100644 index 00000000000..b40c43f2a57 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.14.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.15.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.15.png new file mode 100644 index 00000000000..e4362a8f3b9 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.15.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.16.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.16.png new file mode 100644 index 00000000000..cf1ff30acf0 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.16.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.17.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.17.png new file mode 100644 index 00000000000..05128392c97 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.09.17.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.01.png new file mode 100644 index 00000000000..3509192d3d7 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.02.png new file mode 100644 index 00000000000..89bff5c43b8 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.03.png new file mode 100644 index 00000000000..1ef84c323ff Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.12.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.01.png new file mode 100644 index 00000000000..80c64908d70 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.02.png new file mode 100644 index 00000000000..62d7aac9e69 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.03.png new file mode 100644 index 00000000000..92ff4140eae Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.04.png new file mode 100644 index 00000000000..25dbc639696 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.05.png new file mode 100644 index 00000000000..57c464c0aa2 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.14.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.01.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.01.png new file mode 100644 index 00000000000..ad0bbedae03 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.01.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.02.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.02.png new file mode 100644 index 00000000000..1bd690e1398 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.02.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.03.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.03.png new file mode 100644 index 00000000000..e70beb79290 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.03.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.04.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.04.png new file mode 100644 index 00000000000..5bf872d08b0 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.04.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.05.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.05.png new file mode 100644 index 00000000000..d53a8a24af4 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/tex.15.05.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/troffvstex.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/troffvstex.png new file mode 100644 index 00000000000..fa64d9cf8e4 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/troffvstex.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/two-rs.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/two-rs.png new file mode 100644 index 00000000000..c814e1dda6e Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/two-rs.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/we-we.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/we-we.png new file mode 100644 index 00000000000..0bd677e26e1 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/we-we.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/figures/xypic-example.png b/Master/texmf-doc/doc/english/make-tex-work/html/figures/xypic-example.png new file mode 100644 index 00000000000..899f655e3e9 Binary files /dev/null and b/Master/texmf-doc/doc/english/make-tex-work/html/figures/xypic-example.png differ diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/index.html b/Master/texmf-doc/doc/english/make-tex-work/html/index.html new file mode 100644 index 00000000000..f452a53a723 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/index.html @@ -0,0 +1,1956 @@ + + + + + + + + + Making TeX Work + + + + + + + +
+
+
+
+ +
+
+ +
+

Making TeX Work

+
+ +
+

by NormanWalsh
+ ISBN: 156592-051-1 + (out-of-print)
+ Version 1.0.1
+ Updated: Fri, 23 Aug 2002

+ + +
+
+
+
+ +
+

Table of Contents

+ +
+
Forward to the SourceForge + Edition
+ +
+
+
Acknowledgments
+
+
+ +
Preface
+ +
+
+
Why Read + This Book?
+ +
Scope of This + Book
+ +
Conventions Used in + This Book
+ +
How to Get + TeX
+ +
+
+
Where Are the + Files?
+ +
Getting + Software Without FTP
+ +
Getting + Examples From This Book
+
+
+ +
Versions of + TeX
+ +
Implementations and + Platforms
+ +
+
+
UNIX
+ +
MS-DOS
+ +
OS/2
+ +
Macintosh
+
+
+ +
We'd Like to Hear + From You
+ +
Acknowledgments
+
+
+ +
I. An Introduction to + TeX
+ +
+
+
1. The Big Picture
+ +
+
+
What + Is TeX?
+ +
TeX for + Beginners
+ +
+
+
Boxes + and Glue
+ +
Control + Sequences
+ +
Special + Characters
+
+
+ +
Text Formatting + Versus Word Processing
+ +
+
+
What + About Desktop Publishing?
+ +
What About + troff?
+ +
What About + SGML?
+
+
+ +
How TeX + Works
+ +
+
+
TeXing + a Simple Document
+ +
TeXing More + Complex Documents
+ +
Building a + Table of Contents
+ +
Figure + References
+ +
Indexes and + Glossaries
+ +
Bibliographies
+ +
Special + Things
+
+
+
+
+ +
2. Editing
+ +
+
+
What Can an + Editor Do?
+ +
+
+
Quoting + Automatically
+ +
Matching + Braces
+ +
Inserting + Common Control Sequences
+ +
Running TeX + Automatically
+
+
+ +
GNU + Emacs
+ +
+
+
Starting + TeX Mode
+ +
Typing in + Emacs
+ +
Running TeX + Automatically
+
+
+ +
aucTeX
+ +
+
+
Starting + aucTeX
+ +
Typing in + aucTeX
+ +
aucTeX + Outline Mode
+ +
Intelligent + Paragraph Reformatting
+ +
Multi-file + Documents
+ +
Running + TeX
+ +
Finding + Errors
+
+
+ +
Multi-Edit
+ +
+
+
Setting Up + TeX Support
+ +
Typing in + Multi-Edit
+ +
Running + TeX
+
+
+ +
Brief
+ +
MicroEMACS
+ +
epm: OS/2's + Enhanced Editor
+ +
Other + Tools
+ +
TeX as a + Compiler
+ +
+
+
Processing + a Document
+
+
+ +
Spellchecking
+ +
+
+
ispell
+ +
amSpell
+
+
+ +
Revision + Control
+ +
TeX + Shells
+ +
+
+
TeXShell
+ +
TeXPert
+ +
4TeX
+ +
PMTeX
+ +
TeXit
+
+
+
+
+ +
3. Running TeX
+ +
+
+
What + Do You Run?
+ +
What Files Does + TeX Need?
+ +
+
+
Pool + Files
+ +
Format + Files
+ +
User + Files
+
+
+ +
The Command + Line
+ +
+
+
Command-line + Options
+ +
Command-line + Cautions
+
+
+ +
TeX Without + Options
+ +
What About + Errors?
+ +
+
+
Log + Files
+ +
Interpreting TeX + Error Messages
+ +
Naming a + File TeX Cannot Find
+ +
Misspelling + a Control Sequence Name
+ +
Failure to + Close an Environment
+ +
Math + Outside of Math Mode
+ +
Missing + Fonts
+ +
Everything + Else
+
+
+ +
The Question + Mark Prompt
+
+
+ +
4. Macro Packages
+ +
+
+
Installation: + Making Format Files
+ +
+
+
Hyphenation + Patterns
+
+
+ +
General-purpose + Formats
+ +
+
+
Plain + TeX
+ +
Extended + Plain TeX
+ +
LaTeX2e + Versus LaTeX
+ +
LaTeX2e
+ +
LaTeX
+ +
AMSTeX
+ +
AMSLaTeX
+ +
Lollipop
+ +
TeXinfo
+ +
Other + Formats
+
+
+ +
Special-purpose + Formats
+ +
+
+
SliTeX
+ +
FoilTeX
+ +
Seminar
+
+
+ +
TeX in + Color
+ +
+
+
Setting Up + Color
+ +
Using + Color
+ +
Now I've + Got Color, but I Need Black and + White!
+ +
Color Under + LaTeX2e
+ +
Color Is + Subtle
+ +
Further + Reading
+
+
+
+
+
+
+ +
II. Elements of a Complex + Document
+ +
+
+
5. Fonts
+ +
+
+
What TeX + Needs To Know
+ +
+
+
Selecting a + Font in TeX
+ +
Which + Character Is Which?
+
+
+ +
The Issue of + Size
+ +
+
+
Expressing + Design Size in TeX
+ +
Expressing + Magnification in TeX
+ +
Standard + Magnifications
+ +
Where Do + TFM Files Come From?
+
+
+ +
The New Font + Selection Scheme
+ +
+
+
Selecting + Fonts with the New Font Selection + Scheme
+ +
Defining + Fonts with NFSS2
+ +
Storing + Font Definitions
+ +
Changing + the Defaults
+ +
NFSS + Pitfalls
+
+
+ +
PostScript + Fonts Under NFSS
+ +
+
+
Adjustments + to Scale
+
+
+ +
When Things Go + Wrong
+ +
+
+
When TeX + Complains
+ +
When the + DVI Driver Complains
+
+
+ +
Encoding + Vectors
+ +
Virtual + Fonts
+ +
Automatic + Font Generation by DVI Drivers
+ +
Math Fonts in + TeX
+ +
Concrete + Examples
+ +
+
+
MetaFont + Fonts
+ +
PostScript + Type 1 Fonts
+ +
HP LaserJet + Softfonts
+ +
TrueType + Fonts
+
+
+
+
+ +
6. Pictures and + Figures
+ +
+
+
Different + Kinds of Images
+ +
+
+
Bitmapped + Images
+ +
Scalable + Images
+
+
+ +
Device + Independence Revisited
+ +
Using Only + TeX
+ +
+
+
Plain + TeX
+ +
LaTeX
+ +
PiCTeX
+ +
XYPic
+ +
DraTeX
+
+
+ +
Using a Little + Help
+ +
+
+
MFPic
+ +
Fig2MF
+ +
MetaFont
+
+
+ +
Using a Little + More Help
+ +
PSTricks
+ +
TeXdraw
+ +
tpic
+ +
Using a + Lot of Help
+ +
+
+
Electronic + Cut-and-paste
+ +
Scalable + Image Formats
+ +
Bitmapped + Image Formats
+ +
Inserting + PostScript Images into TeX
+
+
+ +
Manipulating + Images
+ +
+
+
Image + Magick
+ +
PBMplus
+ +
xv
+ +
xloadimage
+ +
Image + Alchemy
+ +
ColorView
+ +
Jpeg4
+ +
pmjpeg
+ +
txt2pcx
+ +
Ghostscript
+ +
GoScript
+ +
hp2xx
+
+
+ +
Image + Editors
+ +
+
+
xfig
+ +
idraw
+ +
tgif
+ +
bitmap/pixmap
+ +
Other + Bitmap Editors
+ +
texcad/xtexcad
+
+
+ +
Screen + Dumps
+
+
+ +
7. International + Considerations
+ +
+
+
Typesetting in + Any Language
+ +
+
+
Reading + Input Files
+ +
Changing + the Rules
+ +
Printing + the Result
+
+
+ +
The Babel + Styles
+ +
+
+
Building + Multilingual Babel Formats
+
+
+ +
TeX + Pitfalls
+ +
Very Complex + Languages
+ +
+
+
Japanese
+ +
Chinese
+ +
Arabic
+ +
Hebrew
+
+
+
+
+ +
8. Printing
+ +
+
+
Printing + Fonts
+ +
+
+
Built-in + Fonts
+ +
External + Fonts
+ +
Bitmapped + Fonts
+ +
Scalable + Fonts
+ +
Font + Printing Pitfalls
+
+
+ +
Printing + Pictures and Figures
+ +
+
+
Unsolvable + Problems
+ +
Solvable + Problems
+ +
Pictures + Using Only TeX
+ +
MetaFont + Figures
+ +
Scalable + Images
+ +
Bitmap + Images
+
+
+ +
Selected + Drivers
+ +
+
+
emTeX + Drivers
+ +
dvilj2
+ +
dvips
+ +
DVILASER/HP
+ +
DVILASER/PS
+ +
PTI + Laser/HP and PTI Jet
+ +
PTI + Laser/PS
+ +
dvipsone
+
+
+
+
+ +
9. Previewing
+ +
+
+
Previewing Under + X11
+ +
+
+
Previewing + with xdvi
+ +
Previewing + with \xtex
+
+
+ +
Previewing with + Ghostscript
+ +
Previewing with + emTeX
+ +
Previewing with + dvivga
+ +
TeX + Preview
+ +
dvideo
+ +
PTI + View
+ +
Previewing + Under Windows
+ +
+
+
dvimswin
+ +
dviwin
+ +
wdviwin
+ +
DVIWindo
+
+
+ +
Previewing on a + TTY
+ +
+
+
dvi2tty
+ +
dvgt/dvitovdu
+ +
crudetype
+
+
+
+
+ +
10. Online + Documentation
+ +
+
+
Something Is + Lost
+ +
TeXinfo
+ +
\LaTeX2HTML
+ +
LameTeX
+ +
latex2hy
+ +
detex
+ +
dvispell
+
+
+ +
11. Introducing + MetaFont
+ +
+
+
What to + Run?
+ +
What Files Does + MetaFont Need?
+ +
+
+
Pool + Files
+ +
Base + Files
+ +
MetaFont + Programs
+
+
+ +
Command-line + Options
+ +
Building a Base + File
+ +
Running + MetaFont
+ +
+
+
Picking a + Mode
+ +
Selecting a + Size
+ +
Making a GF + Font
+ +
Making a PK + Font
+
+
+ +
What About + Errors?
+ +
+
+
Other + Errors
+
+
+ +
Output at Very + High Resolutions
+ +
Output at Very + Low Resolutions
+
+
+ +
12. Bibliographies, Indexes, + and Glossaries
+ +
+
+
BibTeX
+ +
+
+
How BibTeX + Works
+ +
Building a + Bibliography Database
+ +
Bibliography + Styles
+ +
Bibliography + Database Tools
+
+
+ +
Tib
+ +
Making + Indexes
+ +
+
+
Index + Entries
+
+
+ +
Index + Format
+ +
Special-purpose + styles
+ +
Making + Glossaries
+
+
+
+
+ +
III. A Tools Overview
+ +
+
+
13. Non-commercial + Environments
+ +
+
+
Web2C
+ +
emTeX
+ +
+
+
Where to + Start
+ +
Unpacking + the Archives
+ +
Setting Up + the Environment
+ +
Testing the + Installation
+ +
Installing + Fonts
+ +
Making + emTeX Smaller
+ +
Basic + Customization
+ +
Installing + the Beta Test Versions of emTeX
+ +
Running + emTeX 386 in Windows
+ +
Automatic + Font Generation with emTeX
+ +
Installing + emTeX on a Network
+
+
+ +
texas
+ +
sbTeX
+ +
gTeX
+
+
+ +
14. Commercial + Environments
+ +
+
+
µTeX by + ArborText
+ +
\yyTeX
+ +
Textures
+ +
TurboTeX
+ +
PCTeX
+ +
PCTeX For + Windows
+ +
Scientific + Word
+
+
+ +
15. TeX on the + Macintosh
+ +
+
+
CMacTeX
+ +
DirectTeX
+ +
OzTeX
+ +
Textures
+ +
Other + Tools
+ +
+
+
Alpha
+ +
BBEdit
+ +
BSR Font + Tools
+ +
Excalibur
+ +
HyperBibTeX
+ +
MacGS
+ +
dvidvi
+ +
MacDVIcopy
+ +
MacBibTeX
+ +
MacMakeIndex
+
+
+
+
+ +
16. TeX Utilities
+ +
+
+
List of + Tools
+
+
+ +
A. Filename Extension + Summary
+ +
B. Font Samples
+ +
+
+
Font + Encodings
+ +
Font + Samples
+
+
+ +
C. Resources
+ +
+
+
TUG: The TeX + Users Group
+ +
+
+
Other User + Groups
+
+
+ +
TeX + Software
+ +
TeX + Shells
+ +
Editors
+ +
Macro Packages + (Formats)
+ +
Styles and + Macros
+ +
+
+
Styles That + Produced This Book
+
+
+ +
Utilities
+ +
Miscellaneous
+
+
+ +
D. Long Examples
+ +
E. GNU Free Documentation + License
+ +
+
+
0. PREAMBLE
+ +
1. APPLICABILITY + AND DEFINITIONS
+ +
2. VERBATIM + COPYING
+ +
3. COPYING IN + QUANTITY
+ +
4. MODIFICATIONS
+ +
5. COMBINING + DOCUMENTS
+ +
6. COLLECTIONS + OF DOCUMENTS
+ +
7. AGGREGATION + WITH INDEPENDENT WORKS
+ +
8. TRANSLATION
+ +
9. TERMINATION
+ +
10. FUTURE + REVISIONS OF THIS LICENSE
+ +
How to use this + License for your documents
+
+
+ +
Bibliography
+
+
+
+
+ +
+

List of Figures

+ +
+
1.1. The Letters g + and h inside their boxes.
+ +
1.2. Example figure + produced by both TeX and troff
+ +
1.3. A high-level + view of TeX
+ +
1.4. High-level + view of TeX including more detail
+ +
1.5. TeXing a More + Complex Document
+ +
2.1. Extension + setup in Multi-Edit
+ +
2.2. LaTeX as a + compiler in Multi-Edit
+ +
2.3. Editing a + file with MicroEMACS
+ +
2.4. Microsoft + Windows online help for LaTeX
+ +
2.5. Editing a + TeX document with epm under OS/2
+ +
2.6. Edit settings + control word delimiters
+ +
2.7. Spellchecking a + document with amSpell
+ +
2.8. TeXShell
+ +
2.9. TeXPert
+ +
2.10. 4TeX
+ +
2.11. PMTeX
+ +
2.12. TeXit
+ +
4.1. Sample + page
+ +
4.2. Plain TeX + Input
+ +
4.3. LaTeX2e + Input
+ +
4.4. LaTeX Input + File
+ +
4.5. AMSTeX Input + File
+ +
4.6. AMS sample + page
+ +
4.7. Lollipop + Input File
+ +
4.8. TeXinfo + Input
+ +
4.9. TeXinfo sample + page
+ +
4.10. Online + documentation produced by MakeInfo
+ +
4.11. Caffeine by + ChemTeX
+ +
4.12. The + ChemTeX Source for Caffeine
+ +
4.13. A lithium + cation rendered by ChemStruct
+ +
4.14. The + ChemStruct Source for the Lithium Cation
+ +
4.15. A little + Mozart…
+ +
4.16. The + MusicTeX Source for Figure
+ +
5.1. fi as two + characters and as a ligature
+ +
5.2. We unkerned and + kerned
+ +
5.3. The Computer Modern + Roman letter R at 150pt: (a) from a 5pt design; (b) from + a 17pt design
+ +
5.4. How TeX uses a + virtual font
+ +
6.1. An example + diagram in Plain TeX
+ +
6.2. A parallelogram + in LaTeX
+ +
6.3. A figure created + with (a) epic, and (b) eepic
+ +
6.4. Several bezier + curves created with the LaTeX bezier style
+ +
6.5. Sample diagrams + using PiCTeX
+ +
6.6. An XYPic + diagram
+ +
6.7. An DraTeX + diagram
+ +
6.8. A PostScript + bounding box example
+ +
6.9. An example of + an encapsulated figure
+ +
6.10. Another + example of an encapsulated figure (resized and + rotated)
+ +
6.11. Editing an + image with xfig
+ +
6.12. Editing an + image with idraw
+ +
6.13. Editing an + image with tgif
+ +
6.14. An example of + bitmap editing an icon
+ +
6.15. A text mode + screen dump.
+ +
7.1. Character + mapping example
+ +
7.2. Poor Man's + Japanese
+ +
7.3. \jemtex + sample
+ +
7.4. Arabic text + typeset with ArabTeX
+ +
7.5. Hebrew
+ +
8.1. Resolution of + the bitmap and the device changed simultaneously
+ +
8.2. Resolution of + the bitmap changed while device held constant
+ +
8.3. Previewing and + printing with emTeX
+ +
9.1. How Previewing with + xdvi Works
+ +
9.2. Previewing + with xdvi
+ +
9.3. How Previewing with + xtex Works
+ +
9.4. Previewing + with xtex
+ +
9.5. Previewing with + Ghostview
+ +
9.6. Previewing with + emTeX's dviscr
+ +
9.7. Previewing + with emTeX's dvipm
+ +
9.8. Previewing + with dvivga
+ +
9.9. Previewing with + ArborText's Previewer
+ +
9.10. Previewing + with TurboTeX dvideo (using limited selection of + fonts)
+ +
9.11. Previewing + with Personal TeX's Previewer
+ +
9.12. Previewing with + dvimswin
+ +
9.13. Previewing with + dviwin
+ +
9.14. Previewing with + TurboTeX's wdviwin
+ +
9.15. Previewing with + Y&Y's DVIWindo
+ +
9.16. DVIWindo preview + much enlarged
+ +
9.17. Previewing with + dvgt under Tektronix 4010 emulation
+ +
10.1. TeXinfo sample + page
+ +
10.2. Online + documentation produced by MakeInfo
+ +
11.1. A figure eight + created with MetaFont
+ +
12.1. Editing an + article entry with \program{bibview}
+ +
12.2. Editing an + article entry with \program{xbibtex}
+ +
12.3. Editing an + article entry with \program{bibdb}
+ +
14.1. The PCTeX menu + system
+ +
14.2. PCTeX For + Windows editing and previewing a LaTeX document
+ +
14.3. PCTeX For + Windows TrueType font metric builder
+ +
14.4. Editing a + document with Scientific Word
+ +
14.5. Preview of the + Scientific Word document shown in Figure
+ +
15.1. Editing, + previewing, and typesetting in Textures
+ +
15.2. Alpha editing + the fonts chapter from this book
+ +
15.3. \program{BBEdit} editing + the fonts chapter from this book
+ +
15.4. \program{Excalibur} + spellchecking the fonts chapter from this book
+ +
15.5. The + \program{Hyper\BibTeX} view of a bibliographic + database
+
+
+ +
+

List of Tables

+ +
+
1.
+ +
1.1. Special + Characters in Plain TeX
+ +
1.2. How to Typeset + Special Characters
+ +
2.1. aucTeX Math + Operators in Mathematics Minor-mode
+ +
2.2. TeX Modes of + Interaction
+ +
3.1.
+ +
5.1. Standard + Weight and Width Designations
+ +
5.2. Weight and + Width Are Combined to Form Series
+ +
5.3. Standard + Abbreviations of Font Shape
+ +
5.4. User-level Font + Selection Control Sequences in NFSS2
+ +
5.5. Encoding + Schemes Supported by NFSS2
+ +
5.6. Default + Fonts
+ +
5.7.
+ +
6.1. Graphics + Manipulation Packages
+ +
6.2. Graphics + Editing Packages
+ +
7.1. Standard + Control Sequences for Symbols from Other Character + Sets
+ +
7.2. New + Control Sequences Proposed by TWGMLC
+ +
7.3. Language + Switch Macros Proposed by TUG
+ +
8.1. Common DVI + Drivers
+ +
8.2. Other + \protect\dvilaserhp Utilities
+ +
8.3. Other + \protect\dvilaserps Utilities
+ +
8.4. Other + dvipsone Utilities
+ +
9.1. Common + Previewers
+ +
9.2. TeX Preview + Utilities
+ +
9.3. DVIWindo + Utilities
+ +
11.1. Some + Popular MetaFont Fonts on the CTAN Archives
+ +
12.1. Types of + Entries with Required and Optional Fields
+ +
13.1. Summary of + the \protect\emTeX Distribution
+ +
13.2. Fonts + Libraries Available for \protect\emTeX on CTAN
+ +
13.3. Other + \protect\emTeX Executables
+ +
13.4. The + Beta Test Files for \protect\emTeX
+ +
14.1. TurboTeX + Programs
+ +
14.2. Turbo\protect\TeX + \protect\MF Programs
+ +
15.1. Summary of + the \protect\cmactex Distribution at CTAN
+ +
15.2. Summary + of the \protect\oztex Distribution at CTAN
+ +
15.3. Font Tools + in the BSR package
+ +
16.1. The Public + Doman DVI Driver Family
+ +
16.2. RTF + Translators
+ +
16.3. Additional Scripts + in PS Utils
+ +
B.1. The Computer + Modern Roman Font Encoding
+ +
B.2. The Computer + Modern Math Italic Font Encoding
+ +
B.3. The + Cork Font Encoding
+ +
B.4. The Adobe + Standard Font Encoding
+
+
+ + +
+ + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/mtw.css b/Master/texmf-doc/doc/english/make-tex-work/html/mtw.css new file mode 100644 index 00000000000..6fc8bbe2b08 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/mtw.css @@ -0,0 +1,150 @@ +/* CSS2 Stylesheet for _Making TeX Work_ + * + * $Id: mtw.css,v 1.1 2002/08/23 14:31:13 nwalsh Exp $ + */ + +.box { border: thin solid #7F7F7F; + } + +DIV.example-output { + padding-left: 15px; + border-style: solid; + border-width: 0px; + border-left-width: 2px; + border-color: black; +} + +pre.screen { + background: #E8E8E8; +} + +pre.programlisting { + background: #E8E8E8; +} + +div.example-source { + background: #E8E8E8; +} + +p.publisher { + text-align: center; +} + +div.component-title { + text-align: right; +} + +h1,h2,h3,h4,h5,h6 { + font-style: italic; +} + +h1.label { + font-size: 150pt; + font-weight: normal; + font-family: sans-serif; + margin-bottom: 0px; + padding-bottom: 0px; + margin-top: 0px; + padding-top: 0px; +} + +div.component-title h1.title { + font-family: sans-serif; + margin-top: 0px; + padding-top: 0px; + margin-right: 20px; + font-size: 36pt; +} + +p.alpha-version { + margin-top: 0px; + padding-top: 0px; +} + +hr.component-separator { + height: 1px; +} + +div.refentry div.titlepage { + margin-left: 20px; +} + +div.refentry div.titlepage h1.title { + margin-left: -20px; + margin-bottom: 0px; + font-size: 36pt; +} + +body { + margin-top: 0px; + padding-top: 0px; + margin-left: 0px; + margin-right: 0px; + padding-left: 0px; + padding-right: 0px; +} + +div.navheader { + padding-top: 2px; + background-color: #c6bec6; + padding-right: 2px; + border-bottom-style: solid; + border-bottom-width: 1px; +} + +div.navfooter { + background-color: #c6bec6; + margin-bottom: 0px; + padding-bottom: 0px; + padding-left: 10px; + padding-right: 10px; + border-top-style: solid; + border-top-width: 1px; + padding-top: 2px; +} + +div.copyrightfooter { + background-color: #c6bec6; + margin-top: 0px; + padding-top: 0px; + padding-left: 10px; + padding-right: 10px; + padding-bottom: 2px; +} + +div.copyrightfooter p { + margin-top: 0px; + padding-top: 10px; +} + +div.refentry, +div.preface, +div.chapter, +div.appendix, +div.reference, +div.part, +div.bibliography, +div.glossary, +div.index, +div.colophon, +div.legalnotice { + margin-left: 10px; + margin-right: 10px; +} + +div.book { + margin-left: 10px; + margin-right: 10px; + margin-top: 5px; +} + +thead { + background-color: black; + color: white; +} + +table, +tbody,thead,tfoot, +tr,td { + border-color: #8F8F8F; +} diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/mtwcpyright.html b/Master/texmf-doc/doc/english/make-tex-work/html/mtwcpyright.html new file mode 100644 index 00000000000..64fd10d21c2 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/mtwcpyright.html @@ -0,0 +1,63 @@ + + + + + + + + + Making TeX Work + + + + + + +
+

Making TeX Work. Copyright © 1994 O'Reilly & + Associates, Inc. All rights reserved.

+ +

Permission is granted to copy, distribute and/or modify + this document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Back-Cover Texts being Back Cover Text. A copy + of the license is included in Appendix E.

+ +

Nutshell Handbook, the Nutshell Handbook logo, and the + O'Reilly logo are registered trademarks of O'Reilly & + Associates, Inc. The association between the image of a + spider and the topic of TeX is a trademark of O'Reilly & + Associates, Inc. Java and all Java-based trademarks and logos + are trademarks or registered trademarks of Sun Microsystems, + Inc., in the United States and other countries. O'Reilly + & Associates, Inc. is independent of Sun + Microsystems.

+ +

Many of the designations used by manufacturers and sellers + to distinguish their products are claimed as trademarks. + Where those designations appear in this book, and O'Reilly + & Associates, Inc. was aware of a trademark claim, the + designations have been printed in caps or initial caps. While + every precaution has been taken in the preparation of this + book, the publisher assumes no responsibility for errors or + omissions, or for damages resulting from the use of the + information contained herein.

+ +

Back Cover + Text: 

+ +

Visit O'Reilly on the Web at www.oreilly.com.

+
+
+
+ + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/pr01.html b/Master/texmf-doc/doc/english/make-tex-work/html/pr01.html new file mode 100644 index 00000000000..5f97e9f53b3 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/pr01.html @@ -0,0 +1,130 @@ + + + + + + + + + Forward to the SourceForge Edition + + + + + + + + + + + +
+
+
+

Forward to the SourceForge + Edition

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

I wrote Making TeX Work in 1994. It has not been + updated and is unquestionably out-of-date. In fact, the TeX + sources are still in LaTeX 2.09.

+ +

It is provided here for the benefit of those readers who + would like to read it (it has been out of print for several + years) or its TeX sources.

+ +

I have no plans to update it.

+ +
+

Important

+ +

The conversion from TeX to XML is not complete. There are + lots of TeXisms left in the XML version. And tables that + haven't been converted. And figures that haven't been + converted. And probably lots of other stuff. I do plan, + over time, to fix those errors so that the XML sources are + a reasonable reflection of the published book.

+
+ +
+
+
+

Acknowledgments

+
+
+ +

My thanks to Tim O'Reilly for agreeing to republish this + book under the + GNU Free Documentation License.

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/pr02.html b/Master/texmf-doc/doc/english/make-tex-work/html/pr02.html new file mode 100644 index 00000000000..9442b1401d9 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/pr02.html @@ -0,0 +1,1296 @@ + + + + + + + + + Preface + + + + + + + + + + + +
+
+
+

Preface

+
+ +
+

$Revision: 1.1 $

+
+ +
+

$Date: 2002/08/23 14:31:13 $

+
+
+ +

TeX is a tool for creating professional quality, typeset + pages of any kind. It is particularly good, perhaps + unsurpassed, at typesetting mathematics ; as a result, it is + widely used in scientific writing. Some of its other + features, like its ability to handle multiple languages in the + same document and the fact that the content of a document + (chapters, sections, equations, tables, figures, etc.) can be + separated from its form (typeface, size, spacing, + indentation, etc.) are making TeX more common outside of + scientific and academic circles.

+ +

Designed by Donald Knuth in the late 1970s, + more than a decade of refinement has gone into the program + called “TeX” today. The resulting system produces + publication-quality output while maintaining portability + across an extremely wide range of platforms.

+ +

Remarkably, TeX is free. This fact, probably as much as + any other, has contributed to the development of a complete + “TeX system” by literally thousands of + volunteers. TeX, the program, forms the core of this + environment and is now supported by hundreds of tools.

+ +
+
+
+

Why Read This Book?

+
+
+ +

This book is for anyone who uses TeX. Novices will need + at least one other reference, because this book does not + describe the nuts and bolts of writing documents with TeX + in any great detail.

+ +

If you are new to TeX, there is much to learn. There are + many books that describe how to use TeX. However, the focus + of this book is mostly at a higher level. After digesting + Chapter Chapter 1, + Chapter 1, + you should be able to proceed through the rest of the book + without much difficulty even if you have never seen TeX + before. So, if you are a system administrator interested in + learning enough about these programs to install and test + them for your users, you should be all set. If you are + interested in learning how to write documents with TeX, + this book will be helpful, but it will not be wholly + sufficient.

+ +

Why do you need this book at all? Although many + individual components of the TeX system are well + documented, there has never before been a complete + reference to the whole system. This book surveys the entire + world of TeX software and helps you see how the various + pieces are related.

+ +

A functioning TeX system is really a large collection of + programs that interact in subtle ways to produce a document + that, when formatted by TeX, prints the output you want. + All the different interactions that take place ultimately + result in less work for you, the writer, even though it may + seem like more work at first. Heck, it may be more work at first, but + in the long run, the savings are tremendous.

+ +

Many books about TeX refer the reader to a “local + guide” for more information about previewing and + printing documents and what facilities exist for + incorporating special material into documents (like special + fonts and pictures and figures). In reality, very few local + guides exist.

+ +

The TeX environment is now mature and stable enough to + support a more “global guide.” That is what + this book attempts to be. It goes into detail about + previewing and printing, about incorporating other fonts, + about adding pictures and figures to your documents, and + about many other things overlooked by other books.

+ +

Because fonts play a ubiquitous role in typesetting, + this book is also about MetaFont, the tool that Donald + Knuth designed for creating fonts.

+
+ +
+
+
+

Scope of This Book

+
+
+ +

Here's how the book is laid out.

+ +

Part Part I: + Part I.

+ +

Chapter Chapter 1, + Chapter 1. + If you don't know anything about TeX at all, this chapter + will help you get started. If you're a system adminstrator + charged with the task of installing and maintaining TeX + tools, you'll get enough information to do the job.

+ +

Chapter Chapter 2, + Chapter 2. + An overview of some environments that can make working with + TeX documents easier. It describes some editors that + “understand” TeX, how to integrate TeX into a + “programmer's editor,” spellchecking, revision + control, and other aspects of TeXnical editing.

+ +

Chapter Chapter 3, + Chapter 3. + The mechanics of running TeX, the program. It discusses + what things TeX needs to be able to run, how to start TeX, + command-line options, leaving TeX, and recovery from + errors.

+ +

Chapter Chapter 4, + Chapter 4. + Overview of TeX macro packages. This chapter describes how + to make a format file, the major general-purpose writing + packages, some special-purpose writing packages, how to + make slides for presentations, and how to handle color in + TeX.

+ +

Part Part II: + Part II.

+ +

Chapter Chapter 5, + Chapter 5. + This chapter explores the issues that need to be addressed + when using fonts. Many of these issues are not particularly + TeX-related, but TeX is very flexible, and it's important + to understand the tradeoffs that must be made. This chapter + also examines some TeX-specific issues: font selection, + files that TeX needs, automatic font generation, and + virtual fonts.

+ +

Chapter Chapter 6, + Chapter 6. + How many ways are there to include pictures and figures in + a TeX document? Lots and lots of ways. This chapter + examines them all.

+ +

Chapter Chapter 7, + Chapter 7. + TeX is well qualified to do international typesetting. This + chapter looks at the issues that are involved: representing + international symbols in your input file, what TeX + produces, getting the right fonts, multiple languages in + the same document, and macro packages and style files that + solve some of these problems. Some strategies for dealing + with very difficult languages (like Japanese and Arabic) + are also explored.

+ +

Chapter Chapter 8, + Chapter 8. + What goes in has to come out. This chapter tells the what, + where, why, and how of printing your documents.

+ +

Chapter Chapter 9, + Chapter 9. + Save paper; preview your documents before you print + them.

+ +

Chapter Chapter 10, + Chapter 10. + Online documentation is becoming increasingly popular. This + chapter explores different ways that both typeset and + online documentation can be produced from the same set of + input files.

+ +

Chapter Chapter 11, + Chapter 11. + Sometimes it is necessary or desirable to create a special + version of a standard TeX font. Maybe you really need the + standard 10pt font at 11.3pt. This chapter will tell you + how to work with existing MetaFont fonts. It won't tell you how to + create your own fonts; that's a whole different story.

+ +

Chapter  + Chapter 12, + Chapter 12. Maintaining a + bibliographic database can be a great timesaver. This + chapter looks at the BibTeX program and other tools for + building and using bibliographic databases. It also + discusses the creation of indexes and glossaries.

+ +

Part Part III: + Part III.

+ +

Chapter Chapter 13, + Chapter 13. + Many TeX environments are freely available. This chapter + describes public domain, free, and shareware versions of + TeX.

+ +

Chapter Chapter 14, + Chapter 14. + A large, complex system like TeX can be overwhelming + (although I hope less so after you read this book ;-). One + of the advantages of selecting a commercial implementation + of TeX is that some form of customer support is usually + provided. Still other commercial implementations offer + features not found in any free releases. This chapter + describes several commercial TeX releases.

+ +

Chapter Chapter 15, + Chapter 15. + Many issues discussed in this book apply equally to all + platforms, including the Macintosh platform, but the Mac + has its own special set of features. This chapter looks at + some versions of TeX and other tools designed specifically + for use on the Mac.

+ +

Chapter Chapter 16, + Chapter 16. + This chapter lists many of the the utilities available in + the CTAN archives and provides a brief description of what + they do.

+ +

Appendix Appendix A, + Appendix A. + Lots of files can be identified by their extensions. This + appendix lists the extensions that are most often seen in + conjunction with TeX and describes what the associated + files contain.

+ +

Appendix Appendix B, + Appendix B. + Examples of many MetaFont fonts available from the CTAN + archives.

+ +

Appendix Appendix C, + Appendix C. + A complete list of the resources described in this + book.

+ +

Appendix Appendix D, + Appendix D. + This appendix contains examples (scripts, batch files, + programs) that seemed too long to place in the running + text.

+ +

Bibliography. + Where I learned what I know. Also, where you can look for + more information about specific topics.

+
+ +
+
+
+

Conventions Used in This Book

+
+
+ +

The following typographic conventions are used in this + book:

+ +
+
+
Italic
+ +
+

is used for filenames, directories, user commands, + program names, and macro packages (except where the + distinctive logo type is used). Sometimes italics are + used in the traditional way for emphasis of new ideas + and important concepts.

+
+ +
Typewriter
+ +
+

is used for program examples, FTP sites, TeX + control sequences, and little bits of TeX syntax that + appear in running text (for example, typewriter text + in a reference to the LaTeX picture + environment is a clue that LaTeX literally uses the + word “picture” to identify this + environment).

+
+ +
\bf Typewriter + Bold
+ +
+

is used in examples to show the user's actual + input at the terminal.

+
+ +
\it Typewriter + Italic
+ +
+

identifies text that requires a context-specific + substitution. For example, filename in + an example would be replaced by some particular + filename.

+
+ +
Footnotes
+ +
+

are used for parenthetical remarks. Sometimes, + lies are spoken to simplify the discussion, and the + footnotes restore the lie to the truth. (And + sometimes they don't ;-)

+
+
+
+ +

Filename extensions, like “.tex” in + book.tex, are shown in uppercase letters when + referring to a particular type of file. For example, a TeX + Font Metric or TFM file would be + somefile.tfm. The actual extension of the file may + be different (upper or lowercase, longer or shorter) + depending on your operating environment.

+ +

When the shell prompt is shown in an example, it is + shown as a dollar sign, \$. You should imagine that this is + your system's prompt, which might otherwise be + <!-- , C>, --> [C:\], + or a dialog box.

+ +

When spaces are important in an example, the + “{ }” character is used to emphasize the + spaces. Effective,  isn't  it?

+ +

In some places, I refer to specific keys that you should + press. When it's important that I mean pressing particular + keys and not typing something, I emphasize the keys. For + instance, an example that includes Enter means that + you should literally press the Enter or Return key. The + sequence Ctrl-D means that you should press and hold + the “Control” and “d” keys + simultaneously. Control-key combinations aren't case + sensitive, so you needn't press the shift key.

+
+ +
+
+
+

How to Get TeX

+
+
+ +

TeX and the other programs mentioned in this book are + available from a number of places. It's impossible to list + all of the places where you might find any given tool, but + there is one place where you will almost certainly find + every tool: the + Comprehensive TeX Archive Network (CTAN).

+ +

This network is a fully-mirrored anonymous FTP hierarchy + in three countries. Always use the FTP site that + is geographically closest to you. The following table lists + the current members of CTAN as of July, 1993:

+ +
+ + +

Table 1. 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Geographic LocationSiteIP AddressTop Level Directory
United States\tt ftp.shsu.edu192.92.115.10\it /tex-archive
England\tt ftp.tex.ac.uk131.151.79.32\it /tex-archive
Germany\tt ftp.uni-stuttgart.de129.69.8.13\it /tex-archive
+
+ +

You may also access the CTAN archives by electronic + mail if you do not have FTP access. For + up-to-date instructions about the mail server, send the + single-line message help to + fileserv@shsu.edu.

+ +
+
+
+

Where Are the Files?

+
+
+ +

Every CTAN mirror site has the same well-organized + directory structure. The top-level directory also + contains a complete catalog of current files organized by + name, date, and size. The catalogs are named + FILES.byname, FILES.bydate, and + FILES.bysize, respectively, in the top level + directory. The top-level directory contains the following + subdirectories:

+
+<table>
+<title></title>
+<tgroup cols="1">
+<colspec align="left">
+<colspec align="left">
+<thead>
+<row>
+  <entry>Directory</entry>
+  <entry>Description of Contents </entry>
+</row>
+</thead>
+<tbody>
+<row>
+  <entry>tools</entry>
+  <entry>Archiving tools (<command>unzip</command>, <command>tar</command>, <command>compress</command>, etc.) </entry>
+</row>
+<row>
+  <entry>biblio</entry>
+  <entry>Tools for maintaining bibliographic databases </entry>
+</row>
+<row>
+  <entry>digests</entry>
+  <entry>Electronic digests (&TeX;hax, UK&TeX;, etc.)</entry>
+</row>
+<row>
+  <entry>info</entry>
+  <entry>Free documentation, many good guides </entry>
+</row>
+<row>
+  <entry>dviware</entry>
+  <entry>Printing and previewing software </entry>
+</row>
+<row>
+  <entry>fonts</entry>
+  <entry>Fonts for &TeX; </entry>
+</row>
+<row>
+  <entry>graphics</entry>
+  <entry>Software for working with pictures and figures </entry>
+</row>
+<row>
+  <entry>help</entry>
+  <entry>Online help files, etc. </entry>
+</row>
+<row>
+  <entry>indexing</entry>
+  <entry>Indexing and glossary building tools </entry>
+</row>
+<row>
+  <entry>language</entry>
+  <entry>Multi-national language support </entry>
+</row>
+<row>
+  <entry>macros</entry>
+  <entry>Macro packages and style files </entry>
+</row>
+<row>
+  <entry>misc</entry>
+  <entry>Stuff that doesn't fit in any other category </entry>
+</row>
+<row>
+  <entry>support</entry>
+  <entry>Tools for running and supporting &TeX;</entry>
+</row>
+<row>
+  <entry>systems</entry>
+  <entry>OS-specific programs and files</entry>
+</row>
+<row>
+  <entry>web</entry>
+  <entry>Sources for &TeX; programs (in &Web;) </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+ +

The archives at ftp.shsu.edu and + ftp.tex.ac.uk also support gopher + access to the archives. The UK gopher supports + indexed access to the archives. A World Wide Web + (hypertext) interface to the archives is available + from:

+
+ 
+http://jasper.ora.com/ctan.html
+
+ +

This interface includes brief descriptions of many + packages and the ability to perform keyword and date + searches.

+
+ +
+
+
+

Getting Software Without + FTP

+
+
+ +

The electronic alternatives to FTP, described + in the section “the section + called “Getting Examples From This + Book”” of this chapter are also viable + alternatives for getting software from the CTAN + archives.

+ +

In addition, there are a number of ways to get + distributions through nonelectronic channels. The + names and addresses of these sources are listed in + Appendix Appendix C, + Appendix C.

+ +

You can get many of the popular TeX distributions on + diskette from the TeX Users Group (TUG). Emacs, + Ghostscript, and other packages by the Free + Software Foundation (FSF) are available on + tape directly from the FSF. You may also find large + bulletin board systems that support TeX (for example, + Channel1 in Cambridge, MA)

+
+ +
+
+
+

Getting Examples From + This Book

+
+
+ +

All of the substantial code fragments and programs + printed in this book are available online. The examples in + this book are all in Perl, a language for + easily manipulating text, files, and processes. I decided + to use Perl simply because it is available for + every platform discussed in this book. It is the only + “universal” scripting language that will work + under MS-DOS, OS/2, unix, and the Macintosh. All of the + scripts in this book can be converted to a different + scripting language (the various unix shells or something + like 4DOS's extended batch language for MS-DOS and + OS/2) if you prefer. I've tried to write the Perl + scripts in a straightforward way so that any given task + won't be too difficult.

+ +

The examples are available electronically in a number + of ways: by FTP, FTPMAIL, BITFTP, and UUCP. The cheapest, + fastest, and easiest ways are listed first. If you read + from the top down, the first one that works is probably + the best. Use FTP if you are directly on the Internet. + Use FTPMAIL if you are not on the Internet but can send + and receive electronic mail to Internet sites (this + includes CompuServe users). Use BITFTP if you send + electronic mail via BITNET. Use UUCP if none of the above + work.

+ +
+

Note

+ +

The examples were prepared using a unix system. If + you are running unix, you can use them without + modification. If you are running on another platform, + you may need to modify these examples to correct the + end-of-line markers. For example, whereas under unix + every line ends with a line feed character (the + carriage return is implicit), under DOS every line must + end with explicit carriage return and line feed + characters.

+
+ +
+
+
+

FTP

+
+
+ +

To use FTP, you need a machine with direct + access to the Internet. A sample session is shown + below.

+
+\${\bf ftp ftp.uu.net} Connected to ftp.uu.net.  
+220 ftp.UU.NET FTP server (Version 6.34 Oct 22 14:32:01 1992) ready.  
+Name (ftp.uu.net:prefect): {\bf anonymous} 
+331 Guest login ok, send e-mail address as password.  
+Password:{\bf prefect@guide.com} \  \  \  {\rm\it\small (use your user name and host here)} 
+230 Guest login ok, access restrictions apply.  
+ftp>{\bf cd /published/oreilly/nutshell/maketexwork} 
+250 CWD command successful.  
+ftp>{\bf get README} 
+200 PORT command successful.  
+150 Opening ASCII mode data connection for README (xxxx bytes).  
+226 Transfer complete.  
+local: README remote: README 
+xxxx bytes received in xxx seconds (xxx Kbytes/s) 
+ftp>{\bf binary} \  \  {\rm\it\small (select binary mode for compressed files)} 
+200 Type set to I.
+{\rm\it\small  \ (Repeat get commands for the other files.}  
+{\rm\it\small  \  They are listed in the README file.)}  
+ftp>{\bf quit} 221 Goodbye.  
+\$
+
+
+ +
+
+
+

FTPMAIL

+
+
+ +

FTPMAIL is a mail server available to + anyone who can send electronic mail to, and receive it + from, Internet sites. This includes most workstations + that have an email connection to the outside world and + CompuServe users. You do not need to be + directly on the Internet.

+ +

Send mail to ftpmail@decwrl.dec.com. + In the message body, give the name of the anonymous FTP + host and the FTP commands you want to run. The server + will run anonymous FTP for you and mail the files back + to you. To get a complete help file, send a message + with no subject and the single word help in + the body. The following is an example mail session that + should get you the examples. This command sends you a + listing of the files in the selected directory and the + requested example files. The listing is useful if + there's a later version of the examples you're + interested in.

+
+\${\bf mail ftpmail@decwrl.dec.com} 
+Subject: {\bf{}reply prefect@guide.com} \  \ {\rm\it\small (where you want files mailed)} 
+{\bf{}connect ftp.uu.net}
+{\bf{}chdir /published/oreilly/nutshell/maketexwork} 
+{\bf{}dir} 
+{\bf{}get README} 
+{\bf{}quit}
+
+ +

A signature at the end of the message is acceptable + as long as it appears after quit.

+
+ +
+
+
+

BITFTP

+
+
+ +

BITFTP is a mail server for BITNET + users. You send it electronic mail messages requesting + files, and it sends you back the files by electronic + mail. BITFTP currently serves only users who send it + mail from nodes that are directly on BITNET, EARN, or + NetNorth. BITFTP is a public service of Princeton + University.

+ +

To use BITFTP, send mail containing your FTP + commands to BITFTP@PUCC. For a + complete help file, send HELP as the message + body.

+ +

The following is the message body you should send to + BITFTP:

+
+ 
+FTP ftp.uu.net 
+NETDATA USER anonymous 
+PASSyour Internet e-mail address      {\rm\it\small (not your BITNET address)} 
+CD /published/oreilly/nutshell/maketexwork 
+DIR 
+GET README 
+QUIT
+
+ +

Questions about BITFTP can be directed to MAINT@PUCC on + BITNET.

+
+ +
+
+
+

UUCP

+
+
+ +

UUCP is standard on virtually all unix + systems and is available for IBM-compatible PCs and + Apple Macintoshes. The examples are available by UUCP + via modem from UUNET; UUNET's connect-time charges + apply. You can get the examples from UUNET whether you + have an account or not. If you or your company has an + account with UUNET, you will have a system with a + direct UUCP connection to UUNET. Find that system, and + type (as one line):

+
+\$ uucp uunet\! /published/oreilly/nutshell/maketexwork/README \ 
+\  \ yourhost\! /yourname/
+
+ +

The README file should appear some time later (up to + a day or more) in the directory /usr/spool/uucppublic/yourname. + If you don't have an account, but would like one so + that you can get electronic mail, contact UUNET at + 703-204-8000.

+ +

If you don't have a UUNET account, you can set up a + UUCP connection to UUNET in the United States using the + phone number 1-900-468-7727. As of this writing, the + cost is 50 cents per minute. The charges will appear on + your next telephone bill. The login name is uucp with no password. + Your entry may vary depending on your UUCP + configuration.

+
+ +
+
+
+

Gopher

+
+
+ +

If you are on the Internet, you can use the + gopher facility to learn about online + access to examples through the O'Reilly Online + Information Resource. Access gopher.ora.com as + appropriate from your site.

+
+
+
+ +
+
+
+

Versions of TeX

+
+
+ +

The most recent versions of TeX and MetaFont are + version 3.1415 and version 2.71, respectively. Version 3 of + TeX introduced several new features designed to improve + support for non-English languages (including the use of + 8-bit input and some refinements to hyphenation control). + If you use an older version of TeX, you should upgrade.

+ +

Donald Knuth has specified that TeX's version + number converges to $π$, therefore version 3.1415 is + only the fourth minor revision after version 3. The next + minor revision will be version 3.14159. Similarly, + MetaFont's version number converges to $e$ + (2.7182818284$…$).

+
+ +
+
+
+

Implementations and Platforms

+
+
+ +

The interface that TeX presents to the writer is very + consistent. Most of the examples described in this book are + applicable to every single implementation of TeX. However, + TeX is not a closed system. It is possible to step outside + of TeX to incorporate special elements into your document + or take advantage of the special features of a particular + environment. These extensions can dramatically restrict the + portability of your documents.

+ +

Many of the topics covered in this book offer + alternatives in those areas that are less portable. + Therefore, it is natural to ask what implementations are + really covered.

+ +

Before outlining which implementations are covered, let + me suggest that this book will be useful even if you are + using an implementation not “officially” + covered here. The reality of the situation is this: many, + many tools have been ported with TeX. Many of the tools + mentioned in this book are available on platforms that are + not specifically discussed. Time and equipment constraints + prevented Amiga, Atari, NeXT, + VMS, and Windows NT implementations of + TeX from being specifically addressed in this edition of + the book.

+ +
+
+
+

UNIX

+
+
+ +

unix is probably the most common TeX + platform. The emphasis in this book is on unix + workstations running X11, producing output for PostScript + and HP LaserJet printers.

+ +

Linux and other personal computer + implementations of unix are not addressed specifically; + however, with the successful port of X11 to Linux, + I'm confident that every unix tool here can be, or has + been, ported to Linux (and probably other PC unix + environments).

+ +

The only implementation of the TeX program for unix + considered in any detail is the free implementation + distributed in web2c. This distribution + is described in the section called “the section + called “Web2C”” in Chapter  + Chapter 13, + Chapter 13. Most of the other unix + tools discussed here are also free.

+
+ +
+
+
+

MS-DOS

+
+
+ +

With very few exceptions, the tools in this book are + available under MS-DOS. Because PCs are very popular, a + lot of effort has gone into porting unix tools to MS-DOS. + Some packages, however, require a 386SX (or more + powerful) processor. For the most part, I focus on PCs + running MS-DOS only; however, Microsoft Windows + and DesqView are not entirely ignored.

+ +

There are quite a few options when it comes to + selecting an implementation of the TeX program under + MS-DOS. Several free implementations are discussed as + well as some commercial implementations. For more + information about these implementations, consult + Chapter  + Chapter 13, + Chapter 13, and Chapter Chapter 14, + Chapter 14.

+
+ +
+
+
+

OS/2

+
+
+ +

In this book, OS/2 is treated primarily as a superset + of MS-DOS. When possible, I look at OS/2-specific + versions of each utility, but rely on MS-DOS as a + fall-back.

+ +

Extensions to emTeX for OS/2 are explored, as + are editing environments such as epm. The + multi-threaded nature of OS/2 allows more complete + porting of unix tools. When better ports are available + for OS/2, they are discussed.

+
+ +
+
+
+

Macintosh

+
+
+ +

The Macintosh is very different from the systems + described above. Chapter Chapter 15, + Chapter 15, + discusses the Macintosh environment in detail.

+ +

There are four implementations of TeX for the + Macintosh. Three are freely available, and one is + commercial: CMacTeX is free, OzTeX and DirectTeX + are shareware, and Textures is a commercial + package from Blue Sky Research.

+
+
+ +
+
+
+

We'd Like to Hear From You

+
+
+ +

We have tested and verified all of the information in + this book to the best of our ability, but you may find that + features have changed (or even that we have made + mistakes!). Please let us know about any errors you find, + as well as your suggestions for future editions, by + writing:

+ +
+


+ O'Reilly & Associates, Inc.
+ 103 Morris Street, Suite A
+ Sebastopol, CA 95472
+ 1-800-998-9938 (in the US or Canada)
+ + 1-707-829-0515 (international/local)
+ 1-707-829-0104 (FAX)
+

+
+ +

You can also send us messages electronically. To be put + on the mailing list or request a catalog, send email + to:

+ +
+ + + + + + + + + + + + + + + + + + + +
nuts@ora.com(via the Internet)
uunet!ora!nuts(via UUCP)
+
+ +

To ask technical questions or comment on the book, send + email to:

+ +

bookquestions@ora.com (via + the Internet)

+
+ +
+
+
+

Acknowledgments

+
+
+ +

This book would not exist if I had not received support + and encouragement from my friends and colleagues, near and + far. I owe the deepest debt of gratitude to my wife, + Deborah, for patience, understanding, and support as I + progressed through what is easily the most all-consuming + task I have ever undertaken.

+ +

The earliest draft of this book came about because my + advisor at the University of Massachusetts, Eliot Moss, + allowed me to tinker with the TeX installation in the + Object Systems Lab and was always able to suggest ways to + make it better. My friends and colleages at UMass, Amer + Diwan, Darko Stefanovi\'c, Dave Yates, Eric Brown, Erich + Nahum, Jody Daniels, Joe McCarthy, Ken Magnani, Rick + Hudson, and Tony Hosking, asked all the hard questions and + didn't seem to mind when I used them as guinea pigs for my + latest idea.

+ +

I'm indebted also to Eberhard Mattes, Geoffrey Tobin, + George D. Greenwade, Peter Schmitt, Sebastian Rahtz, and + Tomas Rokicki, who provided technical review comments on + the materials presented here. Jim Breen and Ken Lunde + offered invaluable feedback on Chapter 7.

+ +

And I'd like to thank a lot of people at O'Reilly for + their help and enthusiasm; in particular, my editor, Debby + Russell, offered advice, helpful criticism, and support + beyond the call of duty (Debby keyed most of the index for + this book as production deadlines drew near and other + arrangements fell through); Chris Tong organized the raw + entries into a usable index; Lenny Muellner, Donna + Woonteiler, and Sheryl Avruch allowed me to work on the + book when it wasn't technically my job; Stephen Spainhour + copyedited it into English with the help of Leslie Chalmers + and Kismet McDonough (Stephen offered helpful suggestions + along the way, too); Jennifer Niederst helped me get the + design right; and Chris Reilly created the figures and + screen dumps. I enjoyed working with everyone at O'Reilly + so much that I left UMass and joined the production + department myself ;-).

+ +

Several companies provided review copies of their + software while I was writing this book. I would like to + thank ArborText, Blue Sky Research, Borland International, + The Kinch Computer Company, LaserGo, Personal TeX, TCI + Software Research, and Y&Y, for their generosity.

+ +

Finally, I'd like to thank the entire Internet TeX + community. Countless thousands of questions and answers on + the Net refined my understanding of how TeX works and what + it can do.

+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/pt01.html b/Master/texmf-doc/doc/english/make-tex-work/html/pt01.html new file mode 100644 index 00000000000..e86a45b1926 --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/pt01.html @@ -0,0 +1,489 @@ + + + + + + + + + Part I. An Introduction to TeX + + + + + + + + + + + +
+
+
+

An Introduction to TeX

+
+
+ +
+

Part I, + introduces TeX and the tools that make up the TeX system. + It describes various editing environments that simplify the + job of editing TeX documents. It also discusses the + mechanics of running TeX and recovery from errors, and it + provides an overview of TeX macro packages and format + files.

+ +
+

Table of Contents

+ +
+
1. The Big Picture
+ +
+
+
What Is + TeX?
+ +
TeX for + Beginners
+ +
+
+
Boxes + and Glue
+ +
Control + Sequences
+ +
Special + Characters
+
+
+ +
Text Formatting + Versus Word Processing
+ +
+
+
What + About Desktop Publishing?
+ +
What About + troff?
+ +
What About + SGML?
+
+
+ +
How TeX + Works
+ +
+
+
TeXing a + Simple Document
+ +
TeXing More + Complex Documents
+ +
Building a + Table of Contents
+ +
Figure + References
+ +
Indexes and + Glossaries
+ +
Bibliographies
+ +
Special + Things
+
+
+
+
+ +
2. Editing
+ +
+
+
What Can an + Editor Do?
+ +
+
+
Quoting + Automatically
+ +
Matching + Braces
+ +
Inserting + Common Control Sequences
+ +
Running TeX + Automatically
+
+
+ +
GNU + Emacs
+ +
+
+
Starting TeX + Mode
+ +
Typing in + Emacs
+ +
Running TeX + Automatically
+
+
+ +
aucTeX
+ +
+
+
Starting + aucTeX
+ +
Typing in + aucTeX
+ +
aucTeX + Outline Mode
+ +
Intelligent + Paragraph Reformatting
+ +
Multi-file + Documents
+ +
Running + TeX
+ +
Finding + Errors
+
+
+ +
Multi-Edit
+ +
+
+
Setting Up + TeX Support
+ +
Typing in + Multi-Edit
+ +
Running + TeX
+
+
+ +
Brief
+ +
MicroEMACS
+ +
epm: OS/2's + Enhanced Editor
+ +
Other + Tools
+ +
TeX as a + Compiler
+ +
+
+
Processing a + Document
+
+
+ +
Spellchecking
+ +
+
+
ispell
+ +
amSpell
+
+
+ +
Revision + Control
+ +
TeX + Shells
+ +
+
+
TeXShell
+ +
TeXPert
+ +
4TeX
+ +
PMTeX
+ +
TeXit
+
+
+
+
+ +
3. Running TeX
+ +
+
+
What Do + You Run?
+ +
What Files Does + TeX Need?
+ +
+
+
Pool + Files
+ +
Format + Files
+ +
User + Files
+
+
+ +
The Command + Line
+ +
+
+
Command-line + Options
+ +
Command-line + Cautions
+
+
+ +
TeX Without + Options
+ +
What About + Errors?
+ +
+
+
Log + Files
+ +
Interpreting TeX + Error Messages
+ +
Naming a File + TeX Cannot Find
+ +
Misspelling a + Control Sequence Name
+ +
Failure to + Close an Environment
+ +
Math Outside + of Math Mode
+ +
Missing + Fonts
+ +
Everything + Else
+
+
+ +
The Question Mark + Prompt
+
+
+ +
4. Macro Packages
+ +
+
+
Installation: + Making Format Files
+ +
+
+
Hyphenation + Patterns
+
+
+ +
General-purpose + Formats
+ +
+
+
Plain + TeX
+ +
Extended + Plain TeX
+ +
LaTeX2e + Versus LaTeX
+ +
LaTeX2e
+ +
LaTeX
+ +
AMSTeX
+ +
AMSLaTeX
+ +
Lollipop
+ +
TeXinfo
+ +
Other + Formats
+
+
+ +
Special-purpose + Formats
+ +
+
+
SliTeX
+ +
FoilTeX
+ +
Seminar
+
+
+ +
TeX in + Color
+ +
+
+
Setting Up + Color
+ +
Using + Color
+ +
Now I've Got + Color, but I Need Black and White!
+ +
Color Under + LaTeX2e
+ +
Color Is + Subtle
+ +
Further + Reading
+
+
+
+
+
+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/pt02.html b/Master/texmf-doc/doc/english/make-tex-work/html/pt02.html new file mode 100644 index 00000000000..840f2ee62bc --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/pt02.html @@ -0,0 +1,733 @@ + + + + + + + + + Part II. Elements of a Complex + Document + + + + + + + + + + + +
+
+
+

Elements of a Complex + Document

+
+
+ +
+

Part II, + describes the major components of TeX involved in producing + a non-trivial document. It discusses how to use different + font technologies, how to incorporate pictures and figures + into the document, how to typeset non-English languages, + and how to maintain complex structures like indexes and + bibliographies. This section also explains the preview and + printing processes in detail.

+ +
+

Table of Contents

+ +
+
5. Fonts
+ +
+
+
What TeX + Needs To Know
+ +
+
+
Selecting a + Font in TeX
+ +
Which + Character Is Which?
+
+
+ +
The Issue of + Size
+ +
+
+
Expressing + Design Size in TeX
+ +
Expressing + Magnification in TeX
+ +
Standard + Magnifications
+ +
Where Do TFM + Files Come From?
+
+
+ +
The New Font + Selection Scheme
+ +
+
+
Selecting + Fonts with the New Font Selection + Scheme
+ +
Defining + Fonts with NFSS2
+ +
Storing Font + Definitions
+ +
Changing the + Defaults
+ +
NFSS + Pitfalls
+
+
+ +
PostScript Fonts + Under NFSS
+ +
+
+
Adjustments + to Scale
+
+
+ +
When Things Go + Wrong
+ +
+
+
When TeX + Complains
+ +
When the DVI + Driver Complains
+
+
+ +
Encoding + Vectors
+ +
Virtual + Fonts
+ +
Automatic Font + Generation by DVI Drivers
+ +
Math Fonts in + TeX
+ +
Concrete + Examples
+ +
+
+
MetaFont + Fonts
+ +
PostScript + Type 1 Fonts
+ +
HP LaserJet + Softfonts
+ +
TrueType + Fonts
+
+
+
+
+ +
6. Pictures and + Figures
+ +
+
+
Different + Kinds of Images
+ +
+
+
Bitmapped + Images
+ +
Scalable + Images
+
+
+ +
Device + Independence Revisited
+ +
Using Only + TeX
+ +
+
+
Plain + TeX
+ +
LaTeX
+ +
PiCTeX
+ +
XYPic
+ +
DraTeX
+
+
+ +
Using a Little + Help
+ +
+
+
MFPic
+ +
Fig2MF
+ +
MetaFont
+
+
+ +
Using a Little + More Help
+ +
PSTricks
+ +
TeXdraw
+ +
tpic
+ +
Using a Lot + of Help
+ +
+
+
Electronic + Cut-and-paste
+ +
Scalable + Image Formats
+ +
Bitmapped + Image Formats
+ +
Inserting + PostScript Images into TeX
+
+
+ +
Manipulating + Images
+ +
+
+
Image + Magick
+ +
PBMplus
+ +
xv
+ +
xloadimage
+ +
Image + Alchemy
+ +
ColorView
+ +
Jpeg4
+ +
pmjpeg
+ +
txt2pcx
+ +
Ghostscript
+ +
GoScript
+ +
hp2xx
+
+
+ +
Image + Editors
+ +
+
+
xfig
+ +
idraw
+ +
tgif
+ +
bitmap/pixmap
+ +
Other Bitmap + Editors
+ +
texcad/xtexcad
+
+
+ +
Screen + Dumps
+
+
+ +
7. International + Considerations
+ +
+
+
Typesetting in + Any Language
+ +
+
+
Reading Input + Files
+ +
Changing the + Rules
+ +
Printing the + Result
+
+
+ +
The Babel + Styles
+ +
+
+
Building + Multilingual Babel Formats
+
+
+ +
TeX + Pitfalls
+ +
Very Complex + Languages
+ +
+
+
Japanese
+ +
Chinese
+ +
Arabic
+ +
Hebrew
+
+
+
+
+ +
8. Printing
+ +
+
+
Printing + Fonts
+ +
+
+
Built-in + Fonts
+ +
External + Fonts
+ +
Bitmapped + Fonts
+ +
Scalable + Fonts
+ +
Font Printing + Pitfalls
+
+
+ +
Printing Pictures + and Figures
+ +
+
+
Unsolvable + Problems
+ +
Solvable + Problems
+ +
Pictures + Using Only TeX
+ +
MetaFont + Figures
+ +
Scalable + Images
+ +
Bitmap + Images
+
+
+ +
Selected + Drivers
+ +
+
+
emTeX + Drivers
+ +
dvilj2
+ +
dvips
+ +
DVILASER/HP
+ +
DVILASER/PS
+ +
PTI Laser/HP + and PTI Jet
+ +
PTI + Laser/PS
+ +
dvipsone
+
+
+
+
+ +
9. Previewing
+ +
+
+
Previewing + Under X11
+ +
+
+
Previewing + with xdvi
+ +
Previewing + with \xtex
+
+
+ +
Previewing with + Ghostscript
+ +
Previewing with + emTeX
+ +
Previewing with + dvivga
+ +
TeX + Preview
+ +
dvideo
+ +
PTI View
+ +
Previewing Under + Windows
+ +
+
+
dvimswin
+ +
dviwin
+ +
wdviwin
+ +
DVIWindo
+
+
+ +
Previewing + on a TTY
+ +
+
+
dvi2tty
+ +
dvgt/dvitovdu
+ +
crudetype
+
+
+
+
+ +
10. Online + Documentation
+ +
+
+
Something Is + Lost
+ +
TeXinfo
+ +
\LaTeX2HTML
+ +
LameTeX
+ +
latex2hy
+ +
detex
+ +
dvispell
+
+
+ +
11. Introducing + MetaFont
+ +
+
+
What + to Run?
+ +
What Files Does + MetaFont Need?
+ +
+
+
Pool + Files
+ +
Base + Files
+ +
MetaFont + Programs
+
+
+ +
Command-line + Options
+ +
Building a Base + File
+ +
Running + MetaFont
+ +
+
+
Picking a + Mode
+ +
Selecting a + Size
+ +
Making a GF + Font
+ +
Making a PK + Font
+
+
+ +
What About + Errors?
+ +
+
+
Other + Errors
+
+
+ +
Output at Very + High Resolutions
+ +
Output at Very + Low Resolutions
+
+
+ +
12. Bibliographies, Indexes, + and Glossaries
+ +
+
+
BibTeX
+ +
+
+
How BibTeX + Works
+ +
Building a + Bibliography Database
+ +
Bibliography + Styles
+ +
Bibliography + Database Tools
+
+
+ +
Tib
+ +
Making + Indexes
+ +
+
+
Index + Entries
+
+
+ +
Index + Format
+ +
Special-purpose + styles
+ +
Making + Glossaries
+
+
+
+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/make-tex-work/html/pt03.html b/Master/texmf-doc/doc/english/make-tex-work/html/pt03.html new file mode 100644 index 00000000000..18fd309698e --- /dev/null +++ b/Master/texmf-doc/doc/english/make-tex-work/html/pt03.html @@ -0,0 +1,948 @@ + + + + + + + + + Part III. A Tools Overview + + + + + + + + + + + +
+
+
+

A Tools Overview

+
+
+ +
+

Part III, + summarizes the tools you can use in processing TeX + documents. It describes the major free and commercial + implementations of TeX, and then briefly summarizes the + many TeXnical tools available.

+ +
+

Table of Contents

+ +
+
13. Non-commercial + Environments
+ +
+
+
Web2C
+ +
emTeX
+ +
+
+
Where to + Start
+ +
Unpacking the + Archives
+ +
Setting Up + the Environment
+ +
Testing the + Installation
+ +
Installing + Fonts
+ +
Making emTeX + Smaller
+ +
Basic + Customization
+ +
Installing + the Beta Test Versions of emTeX
+ +
Running + emTeX 386 in Windows
+ +
Automatic + Font Generation with emTeX
+ +
Installing + emTeX on a Network
+
+
+ +
texas
+ +
sbTeX
+ +
gTeX
+
+
+ +
14. Commercial + Environments
+ +
+
+
µTeX by + ArborText
+ +
\yyTeX
+ +
Textures
+ +
TurboTeX
+ +
PCTeX
+ +
PCTeX For + Windows
+ +
Scientific + Word
+
+
+ +
15. TeX on the + Macintosh
+ +
+
+
CMacTeX
+ +
DirectTeX
+ +
OzTeX
+ +
Textures
+ +
Other + Tools
+ +
+
+
Alpha
+ +
BBEdit
+ +
BSR Font + Tools
+ +
Excalibur
+ +
HyperBibTeX
+ +
MacGS
+ +
dvidvi
+ +
MacDVIcopy
+ +
MacBibTeX
+ +
MacMakeIndex
+
+
+
+
+ +
16. TeX Utilities
+ +
+
+
List of + Tools
+
+
+ +
A. Filename Extension + Summary
+ +
B. Font Samples
+ +
+
+
Font + Encodings
+ +
Font + Samples
+
+
+ +
C. Resources
+ +
+
+
TUG: The TeX Users + Group
+ +
+
+
Other User + Groups
+
+
+ +
TeX + Software
+ +
TeX + Shells
+ +
Editors
+ +
Macro Packages + (Formats)
+ +
Styles and + Macros
+ +
+
+
Styles That + Produced This Book
+
+
+ +
Utilities
+ +
Miscellaneous
+
+
+ +
D. Long Examples
+ +
E. GNU Free Documentation + License
+ +
+
+
0. PREAMBLE
+ +
1. APPLICABILITY + AND DEFINITIONS
+ +
2. VERBATIM + COPYING
+ +
3. COPYING IN + QUANTITY
+ +
4. MODIFICATIONS
+ +
5. COMBINING + DOCUMENTS
+ +
6. COLLECTIONS OF + DOCUMENTS
+ +
7. AGGREGATION + WITH INDEPENDENT WORKS
+ +
8. TRANSLATION
+ +
9. TERMINATION
+ +
10. FUTURE + REVISIONS OF THIS LICENSE
+ +
How to use this + License for your documents
+
+
+ +
Bibliography
+
+
+
+ +
+
+
+

Bibliography

+
+
+ +
+ + +

[pk:texdraw] manual author = + "Peter Kabal", title = "{\TeX draw}: PostScript drawings + from {\TeX}", edition = "1.4a", month = jul, year = 1992, + etext = "CTAN:graphics/texdraw/manual/*"

+
+ +
+ + +

[chicman] manual editor = "John + Grossman", Title = "The Chicago Manual of Style", + publisher = "University of Chicago Press", year = "1993", + edition = "fourteenth", organization = "University of + Chicago"

+
+ +
+ + +

[lw:progperl] book Author = "Larry + Wall and Randal L. Schwartz", Title = "Programming Perl", + Publisher = O'Reilly & Associates, Year = 1992, isbn + = "0-937175-64-1"

+
+ +
+ + +

[eu:international] book Author = + "Emmanual Uren and Robert Howard and Tiziana Perinotti", + title = "Software Internationalization and Localization: + An Introduction", publisher = "Van Nostrand Reinhold", + year = 1993, isbn = "0-442-01498-8"

+
+ +
+ + +

[latexcompanion] book author = + "Michel Goossens and Frank Mittelbach and Alexander + Samarin", title = "The {\LaTeX} Companion", publisher = + Addison Wesley, year = 1994, isbn = "0-201-54199-8"

+
+ +
+ + +

[eg:dratex] Book author = "Eitan + M. Gurari", title = "{\TeX} {\&} {\LaTeX}: Drawing + and Literate Programming", publisher = "McGraw Hill", + year = 1993, isbn = "0-07-911616-7"

+
+ +
+ + +

[kl:japinfoproc] Book author = + "Ken Lunde", title = "Understanding Japanese Information + Processing", address = "Sebastopol, CA", publisher = + O'Reilly & Associates, year = 1993, edition = + "first", isbn = "1-56592-043-0"

+
+ +
+ + +

[kn:texbook] Book author = "Donald + E. Knuth", title = "The {\TeX}book", publisher = Addison + Wesley, year = 1989, edition = "Fifteenth", isbn = + "0-201-13447-0", paperisbn = "0-201-13448-9"

+
+ +
+ + +

[jh:latexforeveryone] Book author + = "Jane Hahn", title = "{\LaTeX} For Everyone", publisher + = "Personal {\TeX}, Inc.", year = 1991, edition = + "Second", paperisbn = "0-9631044-0-3"

+
+ +
+ + +

[dn:psyeveryday] Book author = + "Donald A. Norman", title = "The Psychology of Everyday + Things", publisher = "Basic Books, Inc.", year = 1988, + paperisbn = "0-465-06709-3"

+
+ +
+ + +

[ll:latexbook] Book author = + "Leslie Lamport", title = "{\rm \LaTeX:} A Document + Preparation System", publisher = Addison Wesley, year = + 1986, paperisbn = "0-201-15790-X"

+
+ +
+ + +

[ll:makeindex] unpublished author + = "Leslie Lamport", title = "MakeIndex: An Index + Processor for {\rm\LaTeX}", year = 1987, month = feb, + etext = "CTAN:indexing/makeindex/doc/*"

+
+ +
+ + +

[dc:colorlatex] unpublished author + = "David Carlisle", title = "The implementation of the + {\LaTeX} Colour interface", year = 1994, month = feb

+
+ +
+ + +

[kn:mfbook] Book author = "Donald + E. Knuth", title = "{\TheMFbook}", publisher = Addison + Wesley, year = 1986, isbn = "0-201-13445-4"

+
+ +
+ + +

[ms:joyoftex] Book author = + "Michel Spivak", title = "The Joy of {\TeX}---A Gourmet + Guide to Typesetting with the {\AMSTeX} Macro Package", + publisher = Addison Wesley, year = "1986"

+
+ +
+ + +

[or:emacs] Book author = "Debra + Cameron and Bill Rosenblatt", title = "Learning GNU + Emacs", address = "Sebastopol, CA", publisher = O'Reilly + & Associates, year = "1991", isbn = + "0-937175-84-6"

+
+ +
+ + +

[gu:numbertheory] Book author = + "Richard K. Guy", title = "Unsolved Problems in Number + Theory", publisher = "Springer-Verlag", year = 1981, isbn + = "0-387-90593-6", series = "Unsolved Problems in + Intuitive Mathematics", volume = 1

+
+ +
+ + +

[js:comp] unpublished author = + "Joachim Schrod", title = "The Components of {\TeX{}}", + year = 1991, month = mar, etext = + "CTAN:info/components-of-TeX/*"

+
+ +
+ + +

[em:dvidrv] manual author = + "Eberhard Mattes", title = "The {\emTeX} DVI Driver + Manual", year = 1993, month = Jun,

+
+ +
+ + +

[mw:pictex] manual author = + "Michael J. Wichura", title = "The {\PiCTeX} Manual", + year = 1992, month = mar, publisher = "The \TeX\ User's + Group"

+
+ +
+ + +

[l3:project] unpublished author = + "Frank Mittelbach and Chris Rowley", title = "The + {\LaTeX}3 Project", year = 1993, month = apr, etext = + "CTAN:info/ltx3pub/l3d001.tex"

+
+ +
+ + +

[FAQ:comp.text] unpublished author + = "Chris Lewis and Nils-Peter Nelson", title = + "Frequently Asked Questions for {\texttt{comp.text}}", + year = 1993, month = jun, etext = + "rtfm.mit.edu:/pub/usenet/comp.text.tex"

+
+ +
+ + +

[texware:tftopl] unpublished + author = "Donald E. Knuth", title = "The TF to PL + Processor", howpublished = "Part of the {\web} + distribution",

+
+ +
+ + +

[texware:vptovf] unpublished + author = "Donald E. Knuth", title = "The VP to VF + Processor", howpublished = "Part of the {\web} + distribution",

+
+ +
+ + +

[mfware:gftopk] unpublished author + = "Donald E. Knuth", title = "The GF to PK Processor", + howpublished = "Part of the {\web} distribution",

+
+ +
+ + +

[texware:pltotf] unpublished + author = "Donald E. Knuth", title = "The PL to TF + Processor", howpublished = "Part of the {\web} + distribution",

+
+ +
+ + +

[texware:vftovp] unpublished + author = "Donald E. Knuth", title = "The VF to VP + Processor", howpublished = "Part of the {\web} + distribution",

+
+ +
+ + +

[gt:mfbeginners] unpublished + author = "Geoffrey Tobin", title = "METAFONT for + Beginners", year = 1992, month = dec, etext = + "CTAN:info/metafont-for-beginners.tex"

+
+ +
+ + +

[zw:simple] unpublished author = + "Zden\v{e}k Wagner", title = "Simple Drawings in {\MF}", + year = "1993", etext = "CTAN:info/wagner-drawing.tex"

+
+ +
+ + +

[lreq:metafonts] unpublished + author = "Liam R. E. Quin", title = "Definitive List of + All Fonts Available for {\MF}", year = 1991, month = sep, + etext = "CTAN:info/metafonts.lst"

+
+ +
+ + +

[mf:inrstexref] Manual author = + "Michael J. Ferguson", title = "{\INRSTeX} Manual", + organization = "INRS Communications", year = "1991",

+
+ +
+ + +

[pcl5:techref] Manual title = "PCL + 5 Printer Language Technical Reference Manual", + organization = "Hewlett Packard", year = 1990, month = + sep, edition = "First"

+
+ +
+ + +

[type1:format] Manual title = + "Adobe Type 1 Font Format, version 1.1", organization = + Adobe Systems Incorporated, year = 1990, month = aug, + Edition = "First"

+
+ +
+ + +

[intellifont] Manual title = + "IntelliFont Scalable Typeface Format", organization = + "Agfa Compugraphic Division", year = 1991, Month = apr, + Edition = "First"

+
+ +
+ + +

[nfss] unpublished AUTHOR = "Frank + Mittelbach and Rainer {Sch\"opf}", TITLE = "The New Font + Selection Scheme---User Interface Standard to {\LaTeX}", + YEAR = 1990, howpublished = "Part of the NFSS + distribution"

+
+ +
+ + +

[nfss2interface] unpublished + AUTHOR = "Frank Mittelbach", TITLE = "Interface + description of NFSS2", YEAR = 1993, howpublished = "Part + of the NFSS2 distribution"

+
+ +
+ + +

[psfonts] Techreport key = Adobe + Systems Incorporated, TITLE = "Supporting Downloadable + PostScript Fonts", address = "Mountain View, CA", + INSTITUTION = Adobe Systems Incorporated, NUMBER = + "5040", YEAR = 1988, MONTH = jan, etext = + "CTAN:fonts/postscript/adobe/Documents/5040.Download_Fonts.ps"

+
+ +
+ + +

[abffiles] techreport key = adobe, + TITLE = "Adobe Binary Screen Font Files", INSTITUTION = + Adobe Systems Incorporated, YEAR = 1989, MONTH = jan, + NUMBER = 5006, etext = + "CTAN:fonts/postscript/adobe/Documents/5006.ABF_Spec.ps"

+
+ +
+ + +

[afmfiles] techreport key = adobe, + TITLE = "Adobe Font Metric Files", INSTITUTION = Adobe + Systems Incorporated, YEAR = 1990, MONTH = mar, NUMBER = + 5004, etext = + "CTAN:fonts/postscript/adobe/Documents/5004.AFM_Spec.ps"

+
+ +
+ + +

[macfond] Techreport key = adobe, + TITLE = "Macintosh {FOND} Resources", INSTITUTION = Adobe + Systems Incorporated, NUMBER = "0091", YEAR = 1990, MONTH + = jul, etext = + "jasper.ora.com:/pub/AdobeDocs/Specifications/0091-FondResources.ps"

+
+ +
+ + +

[bdffiles] techreport key = adobe, + TITLE = "Character Bitmap Distribution Format", + INSTITUTION = Adobe Systems Incorporated, YEAR = 1989, + MONTH = jan, NUMBER = 5005, etext = + "CTAN:fonts/postscript/adobe/Documents/5005.BDF_Spec.ps"

+
+ +
+ + +

[dvi:standard] unpublished key = + "tug dvi driver standards committee", author = "{The TUG + DVI Driver Standards Committee}", TITLE = "The DVI Driver + Standard, Level 0 Version 0.05", INSTITUTION = "The + {\TeX} User's Group", YEAR = 1991, MONTH = aug, etext = + "jasper.ora.com:/pub/docs/DVI-Standard-level0/*"

+
+ +
+ + +

[faq:comp.text.tex] unpublished + AUTHOR = "Bobby Bodenheimer", title = "{\TeX}, {\LaTeX}, + etc.: Frequently Asked Questions with Answers", year = + 1992, month = dec, etext = + "rtfm.mit.edu:/pub/usenet/comp.text.tex/*"

+
+ +
+ + +

[faq:comp.fonts] unpublished + AUTHOR = "Norman Walsh", title = "The + {\texttt{comp.fonts}} Frequently Asked Questions List", + year = 1992, month = dec, etext = + "rtfm.mit.edu:/pub/usenet/comp.fonts/FAQ.*"

+
+ +
+ + +

[nw:fontbook] unpublished AUTHOR = + "Norman Walsh", title = "Font Samples of + Internet-Available PostScript Type1 Fonts", year = 1992, + month = dec, etext = "jasper.ora.com:/pub/fontbook/*"

+
+ +
+ + +

[metapost] unpublished AUTHOR = + "John D. Hobby", title = "A User's Manual for MetaPost", + institution = "AT{\&}T Bell Laboratories", etext = + "research.att.com:/pub/research/cstr/162.Z"

+
+ +
+ + +

[tug:10-2] ARTICLE AUTHOR = "Frank + Mittelbach and Rainer {Sch\"opf}", TITLE = "A new font + selection scheme for {\TeX} macro packages---the basic + macros", JOURNAL = "TUGboat", YEAR = 1989, MONTH = jul, + NUMBER = 2, VOLUME = 10, PAGES = "222--238"

+
+ +
+ + +

[tug:vfonts:dek] ARTICLE AUTHOR = + "Donald E. Knuth", TITLE = "Virtual Fonts: More fun for + Grand Wizards", JOURNAL = "TUGboat", YEAR = 1990, MONTH = + apr, NUMBER = 1, VOLUME = 11, PAGES = "13--23"

+
+ +
+ + +

[tug:gr-tex-pc:1] ARTICLE AUTHOR = + "Lee S. Pickrell", TITLE = "Combining graphics with + {\TeX} on IBM PC-compatible systems with LaserJet + printers", JOURNAL = "TUGboat", YEAR = 1990, MONTH = apr, + NUMBER = 1, VOLUME = 11, PAGES = "26--31"

+
+ +
+ + +

[tug:gr-tex-pc:2] ARTICLE AUTHOR = + "Lee S. Pickrell", TITLE = "Combining graphics with + {\TeX} on PC systems with laser printers, part II", + JOURNAL = "TUGboat", YEAR = 1990, MONTH = jun, NUMBER = + 2, VOLUME = 11, PAGES = "200--206"

+
+ +
+ + +

[tug:gr-tex-implementation] + ARTICLE AUTHOR = "Gerhard Berendt", TITLE = "On the + implementation of graphics into {\TeX}", JOURNAL = + "TUGboat", YEAR = 1990, MONTH = jun, NUMBER = 2, VOLUME = + 11, PAGES = "190--194"

+
+ +
+ + +

[tug:mac-graphics-latex] ARTICLE + AUTHOR = "Len Schwer", TITLE = "Including Macintosh + graphics in {\LaTeX} documents", JOURNAL = "TUGboat", + YEAR = 1990, MONTH = jun, NUMBER = 2, VOLUME = 11, PAGES + = "194--200"

+
+ +
+ + +

[tug:nfss-userinterface] ARTICLE + AUTHOR = "Frank Mittelbach and Rainer {Sch\"opf}", TITLE + = "The new font family selection---User Interface to + Standard {\LaTeX}", JOURNAL = "TUGboat", YEAR = 1990, + MONTH = jun, NUMBER = 1, VOLUME = 11, PAGES = "297--305", + Note = "Reprinted with corrections in TUGboat 11:2."

+
+ +
+ + +

[tug:transfig] ARTICLE AUTHOR = + "Micah Beck and A. Siegal", TITLE = "Transfig: Portable + Graphics for {\TeX}", JOURNAL = "TUGboat", YEAR = 1990, + MONTH = sep, NUMBER = 3, VOLUME = 11, PAGES = + "373--380"

+
+ +
+ + +

[tug:vtex] ARTICLE AUTHOR = + "Michael Vulis", TITLE = "V{\TeX} enhancements to the + {\TeX} language", JOURNAL = "TUGboat", YEAR = 1990, MONTH + = sep, NUMBER = 3, VOLUME = 11, PAGES = "429--435"

+
+ +
+ + +

[tug:filenames-fonts] ARTICLE + AUTHOR = "Karl Berry", TITLE = "Filenames for Fonts", + JOURNAL = "TUGboat", YEAR = 1990, MONTH = nov, NUMBER = + 4, VOLUME = 11, PAGES = "517--520"

+
+ +
+ + +

[tug:gr-tex-bm2font] ARTICLE + AUTHOR = "Friedhelm Sowa", TITLE = "Integration of + graphics into {\TeX}", JOURNAL = "TUGboat", YEAR = 1991, + MONTH = mar, NUMBER = 1, VOLUME = 12, PAGES = + "58--63",

+
+ +
+ + +

[tug:halftoning] ARTICLE AUTHOR = + "Adrian F. Clark", TITLE = "Practical halftoning in + {\TeX}", JOURNAL = "TUGboat", YEAR = 1991, MONTH = mar, + NUMBER = 1, VOLUME = 12, PAGES = "157--165",

+
+ +
+ + +

[tug:xbitmaps] ARTICLE AUTHOR = + "Reinhard {F\"o\ss{}meier}", TITLE = "X bitmaps in + {\TeX}", JOURNAL = "TUGboat", YEAR = 1991, MONTH = jun, + NUMBER = 2, VOLUME = 12, PAGES = "229--232"

+
+ +
+ + +

[tug:bm2font2] ARTICLE AUTHOR = + "Friedhelm Sowa", TITLE = "Bitmaps and halftones with + BM2FONT", JOURNAL = "TUGboat", YEAR = 1991, MONTH = dec, + NUMBER = 3, VOLUME = 12, PART = "II", PAGES = + "534--539"

+
+ +
+ + +

[op:btxdoc] unpublished author = + "Oren Patashnik", title = "{\BibTeX}ing", year = 1988, + month = feb, etext = + "CTAN:biblio/bibtex/distribs/doc/btxdoc.tex"

+
+ +
+ + +

[op:btxhak] unpublished author = + "Oren Patashnik", title = "Designing {\BibTeX} Styles", + year = 1988, month = feb, etext = + "CTAN:biblio/bibtex/distribs/doc/btxhak.tex"

+
+
+
+ + + + + diff --git a/Master/texmf-doc/doc/english/math-into-latex/errors.txt b/Master/texmf-doc/doc/english/math-into-latex/errors.txt new file mode 100644 index 00000000000..3ab9c0a06fd --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/errors.txt @@ -0,0 +1,32 @@ +Corrections to the book + +Math into LaTeX +An Introduction to LaTeX and AMS-LaTeX + +by George Gratzer, published by Birkhauser Boston, +ISBN 0-8176-3805-9. + +These errors have been corrected in the document mil.pdf. + +page xxvi, lines 11-12: +Package names are printed in Helvetica. (PJA) + +page 5, line 13: +"Unless there are" should read "Unless" (PJA) + +page 8, line 14: +"Since it only" should read "Since it" (PJA) + +page 12, line 25: +"3 + 5" should read "3+5" (PJA) + +page 358, Table B.6 +delete lines 9 of table (PJA) + +page 359, Table B.8 +correct order of entries: (PJA) + +\Tiny, \tiny, \SMALL or \scriptsize, \Small or \footnotesize, \small, +\normalsize, \large, \Large, \LARGE, \huge, \Huge + +Pedro J. Aphalo (PJA) \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/gratzer b/Master/texmf-doc/doc/english/math-into-latex/gratzer new file mode 100644 index 00000000000..af9cde2ece8 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/gratzer @@ -0,0 +1,6 @@ +This small document was added to the mil (Math into +LaTeX) distribution, so that people looking for it with + +quote site index gratzer + +would find it. diff --git a/Master/texmf-doc/doc/english/math-into-latex/mil.txt b/Master/texmf-doc/doc/english/math-into-latex/mil.txt new file mode 100644 index 00000000000..0c63cfd6b51 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/mil.txt @@ -0,0 +1,88 @@ +November 7, 1995 + +The file mil.pdf provides an introduction to LaTeX: + +Math into LaTeX +Short Course + +based on the book + +Math into LaTeX +An Introduction to LaTeX and AMS-LaTeX + +by George Gratzer, published by Birkhauser Boston, +ISBN 0-8176-3805-9. + +The following parts are reproduced from the book: + + 1. Short contents + 2. Contents + 3. List of tables + 4. List of figures + 5. Preface + 6. Introduction + 7. Part I, A short course + 8. Appendix A, Math symbol tables + 9. Appendix B, Text symbol tables +10. Afterword + +In addition, there is an Index but it is not the full index for +the whole book but the index for the parts reproduced here. + +Please note that this material is copyrighted by Birkhauser +Boston; the copyright information and isbn number is on page 4 of +mil.pdf. + +mil.pdf is a portable document format (pdf) file. To view the pdf +file (it cannot be printed), you need the Acrobat Reader; it is +available (free of charge) from Adobe Inc. for the following +platforms: + +DOS +Windows 3.1, Windows NT, Windows 95 +Macintosh +Silicon Graphics Irix +Sun Sparc and HP + +If you do not have the reader, you can download it from the ftp site: + +ftp.adobe.com + +or from the WWW site: + +www.adobe.com + +Ask an Adobe dealer for a free copy. + +To see the thumbnail sketches of the pages, choose the + +Thumbnails and Page + +option in the View menu. + +Some pages on the Macintosh do not read correctly on the computer +monitor; it seems then preferable to read the printed version of +mil.pdf. If the System file contains only Adobe licensed fonts, all +the significant problems go away. + +The subdirectory + +templates + +contains the templates and sample documents for Part I of the book. + +This directory contains two more files: + +errors.txt is a listing of the errors in the book; + +gratzer is a file added to the distribution, so that people + looking for it with + + quote site index gratzer + + would find it. + +Please direct your comments concerning the Math into LaTeX, Short +Course to + +George_Gratzer@umanitoba.ca \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/article.tpl b/Master/texmf-doc/doc/english/math-into-latex/templates/article.tpl new file mode 100644 index 00000000000..16626ed4d58 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/article.tpl @@ -0,0 +1,95 @@ +% Sample file: article.tpl +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amsmath,amssymb} + +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\newtheorem{definition}{Definition} +\newtheorem{corollary}{Corollary} +\newtheorem{notation}{Notation} + +\begin{document} +\title{ + titleline1\\ + titleline2} +\author{name\thanks{support}\\ + addressline1\\ + addressline2\\ + addressline3} +\date{date} +\maketitle + +\begin{abstract} + abstract +\end{abstract} + +\begin{thebibliography}{99} + +\end{thebibliography} +\end{document} + +Papers: + +\bibitem{xxx} + author, \emph{title}, journal \textbf{volume} + (year), pages. + +Books: + +\bibitem{xxx} + author, \emph{title}, publisher, address, year. + +\bibitem{xxx} + author, \emph{title}, series, vol.~volume, + publisher, address, edition, date. + +\bibitem{xxx} + editor, ed., \emph{title}, publisher, address, year. + +Papers in books: + +\bibitem{xxx} + author, \emph{title}, book title, publisher, + year, pp~pages. + +\bibitem{xxx} + author, \emph{title}, book title (editor, ed.), + vol.~volume, publisher, publisher address, date, + pp.~pages. + +Theses: + +\bibitem{xxx} + author, \emph{title}, Ph.D. thesis, university, year. + +Tech reports: + +\bibitem{xxx} + author, \emph{title}, tech. report, university, year. + +Research notes: + +\bibitem{xxx} + author, \emph{title}, Research Note number, + university, location, date, research paper in + preparation. + +Conference proceedings: + +\bibitem{xxx} + author, \emph{title}, conference title (location, + year). + +\bibitem{xxx} + author, \emph{title}, conference title, year + (editor, ed.), vol.~volume, publisher, address, + pp.~pages. + +Abstracts: + +\bibitem{xxx} + author, \emph{title}, Abstract: journal, volume, + year. \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/article2.tpl b/Master/texmf-doc/doc/english/math-into-latex/templates/article2.tpl new file mode 100644 index 00000000000..d9af7aae62f --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/article2.tpl @@ -0,0 +1,100 @@ +% Sample file: article2.tpl for two authors +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amsmath,amssymb} + +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\newtheorem{definition}{Definition} +\newtheorem{corollary}{Corollary} +\newtheorem{notation}{Notation} + +\begin{document} + +\title{titleline1\\ + titleline2} +\author{name1\thanks{support1}\\ + address1line1\\ + address1line2\\ + address1line3 + \and + name2\thanks{support2}\\ + address2line1\\ + address2line2\\ + address2line3} +\date{date} +\maketitle + +\begin{abstract} + abstract +\end{abstract} + +\begin{thebibliography}{99} + +\end{thebibliography} +\end{document} + +Papers: + +\bibitem{xxx} + author, \emph{title}, journal \textbf{volume} + (year), pages. + +Books: + +\bibitem{xxx} + author, \emph{title}, publisher, address, year. + +\bibitem{xxx} + author, \emph{title}, series, vol.~volume, + publisher, address, edition, date. + +\bibitem{xxx} + editor, ed., \emph{title}, publisher, address, year. + +Papers in books: + +\bibitem{xxx} + author, \emph{title}, book title, publisher, + year, pp~pages. + +\bibitem{xxx} + author, \emph{title}, book title (editor, ed.), + vol.~volume, publisher, publisher address, date, + pp.~pages. + +Theses: + +\bibitem{xxx} + author, \emph{title}, Ph.D. thesis, university, year. + +Tech reports: + +\bibitem{xxx} + author, \emph{title}, tech. report, university, year. + +Research notes: + +\bibitem{xxx} + author, \emph{title}, Research Note number, + university, location, date, research paper in + preparation. + +Conference proceedings: + +\bibitem{xxx} + author, \emph{title}, conference title (location, + year). + +\bibitem{xxx} + author, \emph{title}, conference title, year + (editor, ed.), vol.~volume, publisher, address, + pp.~pages. + +Abstracts: + +\bibitem{xxx} + author, \emph{title}, Abstract: journal, volume, + year. \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/contents.doc b/Master/texmf-doc/doc/english/math-into-latex/templates/contents.doc new file mode 100644 index 00000000000..8ef21393743 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/contents.doc @@ -0,0 +1,14 @@ +article.tpl section 1-6 +article2.tpl section 1-6 +contents.doc this document +gallery.tex section 1-3 +ggart.tpl section 1-6 +ggart2.tpl section 1-6 +inbibl.tpl section 1-7.4 +intrart.tex section 1-5 +math.tex section 1-2.2 +mathb.tex section 1-2.2 +note1.tex section 1-1.2 +note1b.tex section 1-1.3 +note2.tex section 1-1.4 +noteslug.tex section 1-1.3 diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/gallery.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/gallery.tex new file mode 100644 index 00000000000..630be7c11d9 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/gallery.tex @@ -0,0 +1,224 @@ +% Sample file: gallery.tex formula template file +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amsmath,amssymb} + +\begin{document} + +Step 1 +$\left[ \frac{n}{2} \right]$ + +Step 2 +\[ + \sum_{i = 1}^{ \left[ \frac{n}{2} \right] } +\] + +Step 3 +\[ + x_{i, i + 1}^{i^{2}} \qquad \left[ \frac{i + 3}{3} \right] +\] + +Step 4 +\[ + \binom{ x_{i,i + 1}^{i^{2}} }{ \left[ \frac{i + 3}{3} \right] } +\] + +Step 5 +$\sqrt{ \mu(i)^{ \frac{3}{2} } (i^{2} - 1) }$ + +Step 6 +$\sqrt[3]{ \rho(i) - 2 }$ $\sqrt[3]{ \rho(i) - 1 }$ + +Step 7 +\[ + \frac{ \sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} -1) } } + { \sqrt[3]{\rho(i) - 2} + \sqrt[3]{\rho(i) - 1} } +\] + +Step 8 +\[ + \sum_{i = 1}^{ \left[ \frac{n}{2} \right] } + \binom{ x_{i, i + 1}^{i^{2}} } + { \left[ \frac{i + 3}{3} \right] } + \frac{ \sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} - 1) } } + { \sqrt[3]{\rho(i) - 2} + \sqrt[3]{\rho(i) - 1} } +\] + +\[\sum_{i=1}^{\left[\frac{n}{2}\right]}\binom{x_{i,i+1}^{i^{2}}} +{\left[\frac{i+3}{3}\right]}\frac{\sqrt{\mu(i)^{\frac{3} +{2}}(i^{2}-1)}}{\sqrt[3]{\rho(i)-2}+\sqrt[3]{\rho(i)-1}}\] + +\[\sum_{i=1}^{\left[\frac{n}{2}\right]}\binom{x_{i,i+1}^{i^{2}}} +{\left[\frac{i+3}{3}\right]}\frac{\sqrt{\mu(i)^{\frac{3} +{2}}}(i^{2}-1)}}{\sqrt[3]{\rho(i)-2}+\sqrt[3]{\rho(i)-1}}\] + + +Formula 1 +\[ + x \mapsto \{\, c \in C \mid c \leq x \,\} +\] + +Formula 2 +\[ + \left| \bigcup (\, I_{j} \mid j \in J \,) \right| + < \mathfrak{m} +\] + +Formula 3 +\[ + A = \{\, x \in X \mid x \in X_{i} + \mbox{\quad for some } i \in I \,\} +\] + +Formula 4 +\[ + \langle a_{1}, a_{2} \rangle \leq \langle a'_{1}, a'_{2}\rangle + \qquad \mbox{if{f}} \qquad a_{1} < a'_{1} \quad \mbox{or} + \quad a_{1} = a'_{1} \mbox{ and } a_{2} \leq a'_{2} +\] + +Formula 5 +\[ + \Gamma_{u'} = \{\, \gamma \mid \gamma < 2\chi, + \ B_{\alpha} \nsubseteq u', \ B_{\gamma} \subseteq u' \,\} +\] + +Formula 6 +\[ + A = B^{2} \times \mathbb{Z} +\] + +Formula 7 +\[ + \left( \bigvee (\, s_{i} \mid i \in I \,) \right)^{c} = + \bigwedge (\, s_{i}^{c} \mid i \in I \,) +\] + +Formula 8 +\[ + y \vee \bigvee (\, [B_{\gamma}] \mid \gamma + \in \Gamma \,) \equiv z \vee \bigvee (\, [B_{\gamma}] + \mid \gamma \in \Gamma \,) \pmod{ \Phi^{x} } +\] + +Formula 9 +\[ + f(\mathbf{x}) = \bigvee\nolimits_{\!\mathfrak{m}} + \left(\, + \bigwedge\nolimits_{\mathfrak{m}} + (\, x_{j} \mid j \in I_{i} \,) \mid i < \aleph_{\alpha} + \,\right) +\] + +Formula 10 +\[ + \left. F(x) \right|_{a}^{b} = F(b) - F(a) +\] + +Formula 11 +\[ + u \underset{\alpha}{+} v \overset{1}{\thicksim} w + \overset{2}{\thicksim} z +\] + +Formula 12 +\[ + f(x) \overset{ \text{def} }{=} x^{2} - 1 +\] + +Formula 13 +\[ + \overbrace{a + b + \cdots + z}^{n} +\] + +Formula 14 +\[ + \begin{vmatrix} + a + b + c & uv\\ + a + b & c + d + \end{vmatrix} + = 7 +\] + +\[ + \begin{Vmatrix} + a + b + c & uv\\ + a + b & c + d + \end{Vmatrix} + = 7 +\] + +Formula 15 +\[ + \sum_{j \in \mathbf{N}} b_{ij} \hat{y}_{j} = + \sum_{j \in \mathbf{N}} b^{(\lambda)}_{ij} \hat{y}_{j} + + (b_{ii} - \lambda_{i}) \hat{y}_{i} \hat{y} +\] + +Formula 16 +\[ + \left( \prod^n_{\, j = 1} \hat x_{j} \right) H_{c} = + \frac{1}{2} \hat k_{ij} \det \hat{ \mathbf{K} }(i|i) +\] + +\[ + \biggl( \prod^n_{\, j = 1} \hat x_{j} \biggr) H_{c} = + \frac{1}{2} \hat{k}_{ij} \det \widehat{ \mathbf{K} }(i|i) +\] + +Formula 17 +\[ + \det \mathbf{K} (t = 1, t_{1}, \dots, t_{n}) = + \sum_{I \in \mathbf{n} }(-1)^{|I|} + \prod_{i \in I} t_{i} + \prod_{j \in I} (D_{j} + \lambda_{j} t_{j}) + \det \mathbf{A}^{(\lambda)} (\overline{I} | \overline{I}) = 0 +\] + +Formula 18 +\[ + \lim_{(v, v') \to (0, 0)} + \frac{H(z + v) - H(z + v') - BH(z)(v - v')} + {\| v - v' \|} = 0 +\] + +Formula 19 +\[ + \int_{\mathcal{D}} | \overline{\partial u} |^{2} + \Phi_{0}(z) e^{\alpha |z|^2} \geq + c_{4} \alpha \int_{\mathcal{D}} |u|^{2} \Phi_{0} + e^{\alpha |z|^{2}} + c_{5} \delta^{-2} \int_{A} + |u|^{2} \Phi_{0} e^{\alpha |z|^{2}} +\] + +Formula 20 +\[ + \mathbf{A} = + \begin{pmatrix} + \dfrac{\varphi \cdot X_{n, 1}} + {\varphi_{1} \times \varepsilon_{1}} + & (x + \varepsilon_{2})^{2} & \cdots + & (x + \varepsilon_{n - 1})^{n - 1} + & (x + \varepsilon_{n})^{n}\\ + \dfrac{\varphi \cdot X_{n, 1}} + {\varphi_{2} \times \varepsilon_{1}} + & \dfrac{\varphi \cdot X_{n, 2}} + {\varphi_{2} \times \varepsilon_{2}} + & \cdots & (x + \varepsilon_{n - 1})^{n - 1} + & (x + \varepsilon_{n})^{n}\\ + \hdotsfor{5}\\ + \dfrac{\varphi \cdot X_{n, 1}} + {\varphi_{n} \times \varepsilon_{1}} + & \dfrac{\varphi \cdot X_{n, 2}} + {\varphi_{n} \times \varepsilon_{2}} + & \cdots & \dfrac{\varphi \cdot X_{n, n - 1}} + {\varphi_{n} \times \varepsilon_{n - 1}} + & \dfrac{\varphi\cdot X_{n, n}} + {\varphi_{n} \times \varepsilon_{n}} + \end{pmatrix} + + \mathbf{I}_{n} +\] + +\end{document} + diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/ggart.tpl b/Master/texmf-doc/doc/english/math-into-latex/templates/ggart.tpl new file mode 100644 index 00000000000..b07fd2ec5b9 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/ggart.tpl @@ -0,0 +1,97 @@ +% Sample file: ggart.tpl +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amssymb,amsmath} + +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\newtheorem{definition}{Definition} +\newtheorem{corollary}{Corollary} +\newtheorem{notation}{Notation} + +\begin{document} +\title{titleline1\\ + titleline2} +\author{George Gr\"{a}tzer\thanks{Research supported by the + NSERC of Canada.}\\ + University of Manitoba\\ + Department of Mathematics\\ + Winnipeg, MN, R3T 2N2\\ + Canada} +\date{date} +\maketitle + +\begin{abstract} + abstract +\end{abstract} + +\begin{thebibliography}{99} + + +\end{thebibliography} +\end{document} + +Papers: + +\bibitem{xxx} + author, \emph{title}, journal \textbf{volume} + (year), pages. + +Books: + +\bibitem{xxx} + author, \emph{title}, publisher, address, year. + +\bibitem{xxx} + author, \emph{title}, series, vol.~volume, + publisher, address, edition, date. + +\bibitem{xxx} + editor, ed., \emph{title}, publisher, address, year. + +Papers in books: + +\bibitem{xxx} + author, \emph{title}, book title, publisher, + year, pp~pages. + +\bibitem{xxx} + author, \emph{title}, book title (editor, ed.), + vol.~volume, publisher, publisher address, date, + pp.~pages. + +Theses: + +\bibitem{xxx} + author, \emph{title}, Ph.D. thesis, university, year. + +Tech reports: + +\bibitem{xxx} + author, \emph{title}, tech. report, university, year. + +Research notes: + +\bibitem{xxx} + author, \emph{title}, Research Note number, + university, location, date, research paper in + preparation. + +Conference proceedings: + +\bibitem{xxx} + author, \emph{title}, conference title (location, + year). + +\bibitem{xxx} + author, \emph{title}, conference title, year + (editor, ed.), vol.~volume, publisher, address, + pp.~pages. + +Abstracts: + +\bibitem{xxx} + author, \emph{title}, Abstract: journal, volume, + year. \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/ggart2.tpl b/Master/texmf-doc/doc/english/math-into-latex/templates/ggart2.tpl new file mode 100644 index 00000000000..96b71eef459 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/ggart2.tpl @@ -0,0 +1,102 @@ +% Sample file: ggart2.tpl for two authors +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amssymb,amsmath} + +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\newtheorem{proposition}{Proposition} +\newtheorem{definition}{Definition} +\newtheorem{corollary}{Corollary} +\newtheorem{notation}{Notation} + +\begin{document} +\title{titleline1\\ + titleline2} +\author{George Gr\"{a}tzer\thanks{Research supported by the + NSERC of Canada.}\\ + University of Manitoba\\ + Department of Mathematics\\ + Winnipeg, MN, R3T 2N2\\ + Canada + \and + name2\thanks{support2}\\ + address2line1\\ + address2line2\\ + address2line3} +\date{date} +\maketitle + +\begin{abstract} + abstract +\end{abstract} + +\begin{thebibliography}{99} + + +\end{thebibliography} +\end{document} + +Papers: + +\bibitem{xxx} + author, \emph{title}, journal \textbf{volume} + (year), pages. + +Books: + +\bibitem{xxx} + author, \emph{title}, publisher, address, year. + +\bibitem{xxx} + author, \emph{title}, series, vol.~volume, + publisher, address, edition, date. + +\bibitem{xxx} + editor, ed., \emph{title}, publisher, address, year. + +Papers in books: + +\bibitem{xxx} + author, \emph{title}, book title, publisher, + year, pp~pages. + +\bibitem{xxx} + author, \emph{title}, book title (editor, ed.), + vol.~volume, publisher, publisher address, date, + pp.~pages. + +Theses: + +\bibitem{xxx} + author, \emph{title}, Ph.D. thesis, university, year. + +Tech reports: + +\bibitem{xxx} + author, \emph{title}, tech. report, university, year. + +Research notes: + +\bibitem{xxx} + author, \emph{title}, Research Note number, + university, location, date, research paper in + preparation. + +Conference proceedings: + +\bibitem{xxx} + author, \emph{title}, conference title (location, + year). + +\bibitem{xxx} + author, \emph{title}, conference title, year + (editor, ed.), vol.~volume, publisher, address, + pp.~pages. + +Abstracts: + +\bibitem{xxx} + author, \emph{title}, Abstract: journal, volume, + year. \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/inbibl.tpl b/Master/texmf-doc/doc/english/math-into-latex/templates/inbibl.tpl new file mode 100644 index 00000000000..7b47595e83d --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/inbibl.tpl @@ -0,0 +1,77 @@ +% Sample file: inbibl.tpl +% in article bibliography template file + +\begin{thebibliography}{99} +\bibitem{hA70} + Henry~H. Albert, + \emph{Free torsoids}, + Current Trends in Lattice Theory, D.~Van Nostrand, 1970. +\bibitem{hA70a} + Henry~H. Albert, + \emph{Free torsoids}, + Current Trends in Lattice Theory (G.~H. Birnbaum, ed.), vol.~7, + D.~Van Nostrand, Princeton-Toronto-London-Melbourne, + January 1970, + no translation available, pp.~173--215 (Hungarian). +\bibitem{sF90} + Soo-Key Foo, + \emph{Lattice Constructions}, + Ph.D. thesis, + University of Winnebago, 1990. +\bibitem{sF90a} + Soo-Key Foo, + \emph{Lattice Constructions}, + Ph.D. thesis, + University of Winnebago, Winnebago, MN, December 1990, + final revision not yet available (Chinese). +\bibitem{gF86} + Grant~H. Foster, + \emph{Computational complexity in lattice theory}, + tech. report, Carnegie Mellon University, 1986. +\bibitem{gF86a} + Grant~H. Foster, + \emph{Computational complexity in lattice theory}, + Research Note 128A, Carnegie Mellon University, + Pittsburgh PA, December 1986, + research article in preparation (English). +\bibitem{pK69} + Peter~A. Konig, + \emph{Composition of functions}, + Proceedings of the Conference on Universal Algebra + (Kingston, 1969). +\bibitem{pK69a} + Peter~A. Konig, + \emph{Composition of functions}, + Proceedings of the Conference on Universal Algebra, 1969 + (G.~H. Birnbaum, ed.), vol.~7, Canadian Mathematical + Society, Queen's Univ., available from the Montreal office, + pp.~1--106 (English). +\bibitem{wL75} + William~A. Landau, + \emph{Representations of complete lattices}, + Abstract: Notices Amer. Math. Soc., \textbf{18}, 937. +\bibitem{wL75a} + William~A. Landau, + \emph{Representations of complete lattices}, + Abstract: Notices Amer. Math. Soc. \textbf{18}, 937, + December 1975 (English). +\bibitem{gM68} + George~A. Menuhin, + \emph{Universal Algebra}, + D.~van Nostrand, Princeton-Toronto-London-Melbourne, 1968. +\bibitem{gM68a} + George~A. Menuhin, + \emph{Universal Algebra}, + University Series in Higher Mathematics, vol.~58, + D.~van Nostrand, Princeton-Toronto-London-Melbourne, + second ed., March 1968, no Russian translation (English). +\bibitem{eM57} + Ernest~T. Moynahan, + \emph{On a problem of M.~H. Stone}, + Acta Math. Acad. Sci. Hungar. \textbf{8} (1957), 455--460. +\bibitem{eM57a} + Ernest~T. Moynahan, + \emph{On a problem of M.~H. Stone}, + Acta Math. Acad. Sci. Hungar. \textbf{8} (1957), 455--460, + Russian translation available (English). +\end{thebibliography} diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/intrart.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/intrart.tex new file mode 100644 index 00000000000..dbfa149f7af --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/intrart.tex @@ -0,0 +1,133 @@ +% Introductory sample article: intrart.tex +% Typeset with LaTeX format + +\documentclass{article} +\usepackage{amsmath,amssymb} +\newtheorem{theorem}{Theorem} +\newtheorem{definition}{Definition} +\newtheorem{notation}{Notation} + +\begin{document} +\title{A construction of complete-simple\\ + distributive lattices} +\author{George~A. Menuhin\thanks{Research supported + by the NSF under grant number~23466.}\\ + Computer Science Department\\ + Winnebago, Minnesota 23714\\ + menuhin@ccw.uwinnebago.edu} +\date{March 15, 1995} +\maketitle + +\begin{abstract} + In this note we prove that there exist \emph{complete-simple + distributive lattices}, that is, complete distributive + lattices in which there are only two complete congruences. +\end{abstract} + +\section{Introduction} \label{S:intro} +In this note we prove the following result: + +\begin{theorem} + There exists an infinite complete distributive lattice $K$ + with only the two trivial complete congruence relations. +\end{theorem} + +\section{The $\Pi^{*}$ construction} \label{S:P*} +The following construction is crucial in our proof of our Theorem: + +\begin{definition} \label{D:P*} + Let $D_{i}$, $i \in I$, be complete distributive + lattices satisfying condition~\textup{(J)}. Their + $\Pi^{*}$ product is defined as follows: + \[ + \Pi^{*} ( D_{i} \mid i \in I ) = + \Pi ( D_{i}^{-} \mid i \in I ) + 1; + \] + that is, $\Pi^{*} ( D_{i} \mid i \in I )$ is + $\Pi ( D_{i}^{-} \mid i \in I )$ with a new unit element. +\end{definition} + +\begin{notation} + If $i \in I$ and $d \in D_{i}^{-}$, then + \[ + \langle \dots, 0, \dots, \overset{i}{d}, \dots, 0, + \dots \rangle + \] + is the element of $\Pi^{*} ( D_{i} \mid i \in I )$ whose + $i$th component is $d$ and all the other components + are $0$. +\end{notation} + +See also Ernest~T. Moynahan~\cite{eM57a}. + +Next we verify the following result: + +\begin{theorem} \label{T:P*} + Let $D_{i}$, $i \in I$, be complete distributive + lattices satisfying condition~\textup{(J)}. Let $\Theta$ + be a complete congruence relation on + $\Pi^{*} ( D_{i} \mid i \in I )$. + If there exist $i \in I$ and $d \in D_{i}$ with + $d < 1_{i}$ such that for all $d \leq c < 1_{i}$, + \begin{equation} \label{E:cong1} + \langle \dots, 0, \dots,\overset{i}{d}, + \dots, 0, \dots \rangle \equiv \langle \dots, 0, \dots, + \overset{i}{c}, \dots, 0, \dots \rangle \pmod{\Theta}, + \end{equation} + then $\Theta = \iota$. +\end{theorem} + +\emph{Proof.} Since +\begin{equation} \label{E:cong2} + \langle \dots, 0, \dots, \overset{i}{d}, \dots, 0, + \dots \rangle \equiv \langle \dots, 0, \dots, + \overset{i}{c}, \dots, 0, \dots \rangle \pmod{\Theta}, +\end{equation} +and $\Theta$ is a complete congruence relation, it follows +from condition~(C) that +\begin{align} \label{E:cong} + & \langle \dots, \overset{i}{d}, \dots, 0, + \dots \rangle \equiv\\ + &\qquad \qquad \quad \bigvee ( \langle \dots, 0, \dots, + \overset{i}{c}, \dots, 0, \dots \rangle \mid d \leq c < 1 ) + \equiv 1 \pmod{\Theta}. \notag +\end{align} + +Let $j \in I$, $j \neq i$, and let $a \in D_{j}^{-}$. +Meeting both sides of the congruence \eqref{E:cong2} with +$\langle \dots, 0, \dots, \overset{j}{a}, \dots, 0, +\dots \rangle$, we obtain + +\begin{align} \label{E:comp} + 0 = & \langle \dots, 0, \dots, \overset{i}{d}, \dots, 0, \dots + \rangle \wedge \langle \dots, 0, \dots, \overset{j}{a}, + \dots, 0, \dots \rangle \equiv\\ + &\langle \dots, 0, \dots, \overset{j}{a}, \dots, 0, \dots + \rangle \pmod{\Theta}, \notag +\end{align} +Using the completeness of $\Theta$ and \eqref{E:comp}, +we get: +\[ + 0 \equiv \bigvee ( \langle \dots, 0, \dots, \overset{j}{a}, + \dots, 0, \dots \rangle \mid a \in D_{j}^{-} ) = 1 \pmod{\Theta}, +\] +hence $\Theta = \iota$. + +\begin{thebibliography}{9} + \bibitem{sF90} + Soo-Key Foo, \emph{Lattice Constructions}, Ph.D. thesis, + University of Winnebago, Winnebago, MN, December 1990. + \bibitem{gM68} + George~A. Menuhin, \emph{Universal Algebra}, D.~van Nostrand, + Princeton-Toronto-London-Mel\-bourne, 1968. + \bibitem{eM57} + Ernest~T. Moynahan, \emph{On a problem of M.~H. Stone}, Acta Math. + Acad. Sci. Hungar. \textbf{8} (1957), 455--460. + \bibitem{eM57a} + Ernest~T. Moynahan, \emph{Ideals and congruence relations in + lattices.~II}, Magyar Tud. Akad. Mat. Fiz. Oszt. K\"{o}zl. \textbf{9} + (1957), 417--434. +\end{thebibliography} + +\end{document} + diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/math.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/math.tex new file mode 100644 index 00000000000..995b0cf52f5 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/math.tex @@ -0,0 +1,21 @@ +% Sample file: math.tex +% Typeset with LaTeX format +\documentclass{article} + +\begin{document} +In first year Calculus, we define intervals such as +$(u, v)$ and $(u, \infty)$. Such an interval is a +\emph{neighborhood} of $a$ +if $a$ is in the interval. Students should +realize that $\infty$ is only a +symbol, not a number. This is important since +we soon introduce concepts + such as $\lim_{x \to \infty} f(x)$. + +When we introduce the derivative +\[ + \lim_{x \to a} \frac{f(x) - f(a)}{x - a}, +\] +we assume that the function is defined and continuous +in a neighborhood of $a$. +\end{document} diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/mathb.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/mathb.tex new file mode 100644 index 00000000000..4a1d4bbc1c3 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/mathb.tex @@ -0,0 +1,24 @@ +% Sample file: mathB.tex +% Typeset with LaTeX format +\documentclass{article} + +\begin{document} +In first year Calculus, we define intervals such as +%$(u, v)$ and $(u, \infty)$. Such an interval is a + $(u, v)$ and (u, \infty)$. Such an interval is a + {\emph{neighborhood} of $a$ +if $a$ is in the interval. Students should +realize that $\infty$ is only a +symbol, not a number. This is important since +we soon introduce concepts + such as $\lim_{x \to \infty} f(x)$. +%such as $\lim_{x \to \infty f(x)$. + +When we introduce the derivative +\[ + \lim_{x \to a} \frac{f(x) - f(a)}{x - a} + %\lim_{x \to a} \frac{f(x) - f(a) x - a} +\] +we assume that the function is defined and continuous +in a neighborhood of $a$. +\end{document} diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/note1.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/note1.tex new file mode 100644 index 00000000000..6ae24ab3ec3 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/note1.tex @@ -0,0 +1,22 @@ +% Sample file: note1.tex +% Typeset with LaTeX format +\documentclass{article} + +\begin{document} +It is of some concern to me that +the terminology used in multi-section + math courses is not uniform. + +In several sections of the course on +matrix theory, the term + ``hamiltonian-reduced'' is used. + I, personally, would rather call these ``hyper-simple''. I +invite others to comment on this problem. + +Of special concern to me is the terminology in the course +by Prof.~Rudi Hochschwabauer. + Since his field is new, there is + no accepted +terminology. It is imperative +that we arrive at a satisfactory solution. +\end{document} diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/note1b.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/note1b.tex new file mode 100644 index 00000000000..d117539c2b6 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/note1b.tex @@ -0,0 +1,22 @@ +% Sample file: note1b.tex +% Typeset with LaTeX format +\documentclass{article} + +\begin{document} +It is of some concern to me that +the terminology used in multi-section + math courses is not uniform. + +In several sections of the course on +matrix theory, the strange term + ``hamiltonian-reduced'' is used. + I, personally, would rather call these ``hyper-simple''. I +invite others to comment on this problem. + +Of special concern to me is the terminology in the course +by Prof.~Hochschwabauer. + Since his field is new, there is + no accepted +terminology. It is imperative +that we arrive at a satisfactory solution. +\end{document} \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/note2.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/note2.tex new file mode 100644 index 00000000000..0e0ac630315 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/note2.tex @@ -0,0 +1,15 @@ +% Sample file: note2.tex +% Typeset with LaTeX format +\documentclass{article} + +\begin{document} +\begin{flushright} + \today +\end{flushright} +\textbf{From the desk of George Gr\"{a}tzer}\\[10pt] + +February~7--21 \emph{please} use my temporary e-mail address: +\begin{center} + \texttt{George\_Gratzer@umanitoba.ca} +\end{center} +\end{document} diff --git a/Master/texmf-doc/doc/english/math-into-latex/templates/noteslug.tex b/Master/texmf-doc/doc/english/math-into-latex/templates/noteslug.tex new file mode 100644 index 00000000000..723909db4d5 --- /dev/null +++ b/Master/texmf-doc/doc/english/math-into-latex/templates/noteslug.tex @@ -0,0 +1,22 @@ +% Sample file: noteslug.tex +% Typeset with the LaTeX format +\documentclass[draft]{article} + +\begin{document} +It is of some concern to me that +the terminology used in multi-section + math courses is not uniform. + +In several sections of the course on +matrix theory, the strange term + ``hamiltonian-reduced'' is used. + I, personally, would rather call these ``hyper-simple''. I +invite others to comment on this problem. + +Of special concern to me is the terminology in the course +by Prof.~Hochschwabauer. + Since his field is new, there is + no accepted +terminology. It is imperative +that we arrive at a satisfactory solution. +\end{document} \ No newline at end of file diff --git a/Master/texmf-doc/doc/english/mathmode/Changes b/Master/texmf-doc/doc/english/mathmode/Changes new file mode 100644 index 00000000000..254ee0bfc66 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/Changes @@ -0,0 +1,34 @@ +..... Mathmode.ltx|tex|bib|ist + +2.09 2005-10-24 fix problem with braket package +2.08 2005-10-21 example for linear equation matrix + typos +2.07 2005-10-08 update everymath subsection +2.06 2005-08-28 add an example for braces around operators with + with stacked limits +2.05 2005-08-15 add an example for vertical line spacing +2.04 2005-07-07 small changes to the text +2.03 2005-07-07 wrong references +2.02 2005-07-07 typos +2.01 2005-07-02 do not use PSTricks with pdflatex +2.00 2005-06-30 typos +1.99 2005-06-03 typos and bugfix with sqrt +1.98 2005-05-13 small tweaks +1.97 2005-05-08 small tweaks +1.96 2005-05-03 small tweaks +1.95 2005-04-23 added xlongleftrightarrow +1.94 2005-04-10 small tweaks +1.93 2005-02-22 one more example for different vertical spacing + in arrays, amsmath without usind \def\arraystretch +1.92 2005-02-02 minor changes +1.91 2005-01-30 different sizes of operators +1.90 2004-12-22 preventing linebreaks for inline mode +1.89 2004-12-08 fixed typos +1.87 2004-11-14 fixed typos +1.86 2004-11-08 fixed a small bug with inline math +1.85 2004-11-08 forgot a LateX run for the TOC +1.84 2004-11-03 fixing typos +1.83 2004-10-18 added an example for alignat + Some more bib entries +1.82 2004-10-01 TeX math macros + diff --git a/Master/texmf-doc/doc/english/mathmode/Mathmode.bib b/Master/texmf-doc/doc/english/mathmode/Mathmode.bib new file mode 100644 index 00000000000..9bfd164295f --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/Mathmode.bib @@ -0,0 +1,226 @@ +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{PS = {{P}ost{S}cript} } + +@Manual{MathGuide, + Title = {Short Math Guide for \LaTeX}, + Author = {Downes, Michael}, + Organization = {American Mathematical Society}, + Address = {\url{http://www.ams.org/tex/short-math-guide.html}}, + Note = {}, + year = 2002, +} + +@Manual{Notes, + Title = {Technical Notes on the \texttt{amsmath} package}, + Author = {Downes, Michael}, + Organization = {American Mathematical Society}, + Address = {\url{ftp://ftp.ams.org/pub/tex/doc/amsmath/technote.pdf}}, + Note = {}, + year = 1999, +} + +@Manual{webmath, + Title = {Web Math Formulas Using \TeX}, + Author = {Fitzgerald, J. Anthony}, + Organization = {}, + Address = {\url{http://www.unb.ca/web/Sample/math/}}, + Note = {}, + year = 1997, +} + +@article{rahtz92, + Author = {Sebastian Rahtz and Leonor Barroca}, + Title = {A style option for rotated objects in {\LaTeX}}, + journal = {TUGboat Journal}, + year = 1992, + volume = 13, + number = 2, + pages = "156--180", + month = jul, +} + +@Manual{mathwriting87, + Title= {Mathematical Writing}, + Author= {Donald {E}. {K}nuth and {T}racy {L}arrabee and {P}aul {M}. Roberts}, + Organization = {Stanford University, Computer Science Department}, + Address = {\url{http://sunburn.stanford.edu/~knuth/papers/mathwriting.tex.gz}}, + Note = {}, + year = 1987, +} + +@Manual{harvard, + Title= {An Introduction to using {\LaTeX} in the {H}arvard {M}athematics {D}epartment}, + Author= {R. Kuhn and R. Scott and L. Andreev}, + Organization = {Harvard University, Department of Mathematics}, + Address = {\url{http://abel.math.harvard.edu/computing/latex/manual/texman.html}}, + Note = {}, + year = {}, +} + +@book{graetzer00, + Title = {Math into {\LaTeX}}, + Author = {George Grätzer}, + Publisher = {Birkhäuser Boston}, + Edition= {third}, + Year= {2000}, +} + +@Manual{impatient, + Title= {{\TeX} for the {I}mpatient}, + Author = {Paul W. Abrahams and Karl Berry and Kathryn Hargreaves}, + Address = {\url{http://tug.org/ftp/tex/impatient/book.pdf}}, + Note = {}, + year = {2003}, +} + +@book{knuth86, + Title = {The {\TeX}book}, + Author = {Donald E. Knuth}, + Publisher = {Addison Wesley Professional}, + Edition= {21}, + Year= {1986}, +} +@book{companion94, + Title = {The {\LaTeX} {C}ompanion}, + Author = {Michel Goosens and Frank Mittelbach and Alexander Samarin}, + Publisher = {Addison Wesley}, + Edition= {13}, + Year= {1994}, +} + +@Manual{eijkhout, + Title= {{\TeX} by {T}opic}, + Author = {Victor Eijkhout}, + Address = {\url{http://www.eijkhout.net/tbt/}}, + Note = {}, + year = {1992}, +} +@Manual{taylor00, + Title = {Commutative Diagrams in \TeX}, + Author = {Paul Taylor}, + Organization = {Department of Computer Science, Queen Mary and Westfield College}, + Address = {\url{http://www.dcs.qmw.ac.uk/~pt/diagrams/}}, + Note = {}, + year = 2000, +} +@Manual{selden00, + Title = {Math cheat sheet}, + Author = {Steve Seiden}, + Organization = {TUG}, + Address = {\url{http://www.tug.org/texshowcase/#math}}, + Note = {}, + year = 2000, +} + +@Manual{nist, + Title= {Typefaces for Symbols in Scientific +Manuscripts}, + Author = {NIST}, + Address = {\url{http://physics.nist.gov/Document/typefaces.pdf}}, + Note = {}, + year = {2004}, +} + +@Manual{expressionsI, + Title= {Ecrire des mathématiques avec \LaTeX}, + Author = {David Cobac}, + Address = {\url{http://crdp.ac-lille.fr/crdp2003/archives/latex/Ateliers/Atelier2/prepDocMaths.pdf}}, + Note = {}, + year = {2004}, +} + +@Manual{expressionsII, + Title= {Atelier documents mathématiques}, + Author = {David Cobac}, + Address = {\url{http://crdp.ac-lille.fr/crdp2003/archives/latex/Ateliers/Atelier2/Presentation4.pdf}}, + Note = {}, + year = {2004}, +} + +@Manual{kuester:2004, + Title= {Fonts for Mathematics}, + Author= {Johannes Küster}, + Address={\url{http://www.typoma.com/publ/20041002-atypi.pdf}}, + Note = {Vortrag auf der {AT}yp{I}-{K}onferenz in {P}rag}, + month={oct}, + year = {2004}, +} + +@Manual{kuester:2004-2, + Title= {Designing Math Fonts}, + Author= {Johannes Küster}, + Address={\url{http://www.typoma.com/publ/20040430-bachotex.pdf}}, + Note = {Vortrag auf der polnischen TeX-Konferenz »BachoTeX«}, + month={apr}, + year = {2004}, +} + +@article{bouchie98, + Author = {Thierry Bouche}, + Title = {Diversity in math fonts}, + journal = {TUGboat Journal}, + year = 1998, + volume = 19, + number = 2, + pages = "121--135", + Address={\url{http://www.tug.org/TUGboat/Articles/tb19-2/tb59bouc.pdf}}, +} + + @article{beccardi97, + Author = {Claudio Beccari}, + Title = {Typesetting mathematics for science + and technology according to ISO 31/XI}, + journal = {TUGboat Journal}, + year = 1997, + volume = 18, + number = 1, + pages = "39--47", + Address={\url{http://www.tug.org/TUGboat/Articles/tb18-1/tb54becc.pdf}}, +} + +@article{padovani03, + Author = {Luca Padovani}, + Title = {MathML formatting with TeX rules and TeX fonts}, + journal = {TUGboat Journal}, + year = 2003, + volume = 24, + number = 1, + pages = "53--61", + Address={\url{http://www.tug.org/TUGboat/Articles/tb24-1/padovani.pdf}}, +} + +@article{lawrence04, + Author = {Richard Lawrence}, + Title = {Math={T}ypography?}, + journal = {TUGboat Journal}, + year = 2003, + volume = 24, + number = 2, + pages = "165--168", + Address={\url{http://www.tug.org/TUGboat/Articles/tb24-2/tb77lawrence.pdf}}, +} +@Article{dtk04.2:voss, + author = {Herbert Vo{\ss}}, + title = {Farbige {M}athematik}, + journal = dtk, + year = 2004, + volume = {2/04}, + month = mar, + pages = {81--87}, + annote = bretter, + keywords = {}, +} + +@Article{dtk04.3:voss, + author = {Carole Siegfried and Herbert Vo{\ss}}, + title = {{M}athematik im {I}nline-Modus}, + journal = dtk, + year = 2004, + volume = {3/04}, + month = nov, + pages = {25--32}, + annote = bretter, + keywords = {}, +} + diff --git a/Master/texmf-doc/doc/english/mathmode/Mathmode.ist b/Master/texmf-doc/doc/english/mathmode/Mathmode.ist new file mode 100644 index 00000000000..898825bc52e --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/Mathmode.ist @@ -0,0 +1,35 @@ +%% +%% This is file `Letter.ist', +%% +%% The idea is from Ingo Kloeckl, Latex2e: +%% Herbert Voss 000726 +%% +%% This is a MAKEINDEX style file which should be used to +%% generate the formatted change history for use with the doc +%% package. The TeX commands used below are defined in +%% doc.sty. The commands for MAKEINDEX like `level' +%% `item_x1' are described in `` Makeindex, A General +%% Purpose, Formatter-Independent Index Processor'' by +%% Pehong Chen. +%% +headings_flag 1 % headings yes +heading_prefix "\\textbf{" % boldfont +heading_suffix "}\n" % newline +quote '"' +preamble + "\\begin{theindex}\n" +item_1 + "\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}" +item_01 + "\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}" +item_x1 + "\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}" +item_2 + "\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }" +item_12 + "\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }" +item_x2 + "\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }" +%% +%% +%% End of file `Letter.ist'. diff --git a/Master/texmf-doc/doc/english/mathmode/Mathmode.ltx b/Master/texmf-doc/doc/english/mathmode/Mathmode.ltx new file mode 100644 index 00000000000..ca4585d2e2c --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/Mathmode.ltx @@ -0,0 +1,306 @@ +%% +%% This is file `Mathmode.ltx', +%% +%% IMPORTANT NOTICE: +%% +%% Herbert Voss +%% 2005-06-30 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `Mathmode' is a document how the math mode works inside LaTeX +%% +\listfiles +\documentclass[11pt,a4paper,english]{article} +\usepackage{fixltx2e}%% the official fixes for LaTeX2e +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +%\usepackage{lmodern} +% +\usepackage{ifpdf} +\usepackage{ifvtex} +\ifvtex\pdffalse\fi +\usepackage{comment} +\usepackage{graphicx} +\usepackage{varwidth} +\usepackage{array} +\usepackage{delarray} +\usepackage{tabularx} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsopn} +\usepackage{bm} +\usepackage{upgreek} +\usepackage{cancel} +\newcommand\hcancel[2][black]{\setbox0=\hbox{#2}% + \rlap{\raisebox{.45\ht0}{\textcolor{#1}{\rule{\wd0}{1pt}}}}#2} +\DeclareMathOperator{\Res}{Res} +\usepackage{amscd} +\usepackage{accents} +\usepackage{dsfont} +\usepackage{multirow} +\usepackage{bigdelim} +\usepackage{framed} +\usepackage{longtable} +\usepackage{varioref} +% +\ifvtex + \usepackage{pstricks} + \usepackage{pst-node} +\else\ifpdf\usepackage{xcolor}\else + \usepackage{pstricks} + \usepackage{pst-node} +\fi\fi +\usepackage{makeidx} +\makeindex +\usepackage{url} +\usepackage{setspace} +\usepackage{framed} +% +% +\DeclareMathDelimiter{\Norm} + {\mathord}{largesymbols}{"3E}{largesymbols}{"3E} +% +\makeatletter +\def\mathllap{\mathstrut\mathpalette\mathllapinternal} +%\def\mathllap{\mathpalette\mathllapinternal} +\def\mathllapinternal#1#2{% + \llap{$\mathsurround=0pt#1{#2}$}% +} +\def\clap#1{\hbox to 0pt{\hss#1\hss}} +\def\mathclap{\mathpalette\mathclapinternal} +\def\mathclapinternal#1#2{% + \clap{$\mathsurround=0pt#1{#2}$}% +} + +\def\mathrlap{\mathpalette\mathrlapinternal} +\def\mathrlapinternal#1#2{% + \rlap{$\mathsurround=0pt#1{#2}$}% +} +\def\bijmap{\ensuremath{% + \mathrlap{\rightarrowtail}\rightarrow}} +% extensible Arrow +\newcommand{\xLongLeftRightArrow}[2][]{% + \ext@arrow 0055{\LongLeftRightArrowfill@}{#1}{#2}} +\def\LongLeftRightArrowfill@{% + \arrowfill@\Leftarrow\Relbar\Rightarrow} +\newcommand\xlongleftrightarrow[2][]{% + \ext@arrow 0055{\longleftrightarrowfill@}{#1}{#2}} +\def\longleftrightarrowfill@{% + \arrowfill@\leftarrow\relbar\rightarrow} +% +% +\def\@bracketheight{2pt} +\def\underbracket{\@ifnextchar[{\@underbracket}{\@underbracket[\@bracketheight]}} +\def\@underbracket[#1]{\@ifnextchar[{\@under@bracket[#1]}{\@under@bracket[#1][0.4em]}} +\def\@under@bracket[#1][#2]#3{%\message {Underbracket: #1,#2,#3} + \mathop {\vtop {\m@th \ialign {##\crcr $\hfil \displaystyle {#3}\hfil $% + \crcr \noalign {\kern 3\p@ \nointerlineskip }\upbracketfill{#1}{#2} + \crcr \noalign {\kern 3\p@ }}}}\limits} +\def\upbracketfill#1#2{$\m@th \setbox \z@ \hbox {$\braceld$} + \edef\@bracketheight{\the\ht\z@}\bracketend{#1}{#2} + \leaders \vrule \@height #1 \@depth \z@ \hfill + \leaders \vrule \@height #1 \@depth \z@ \hfill \bracketend{#1}{#2}$} +\def\bracketend#1#2{\vrule height #2 width #1\relax} +\def\overbracket{\@ifnextchar[{\@overbracket}{\@overbracket[\@bracketheight]}} +% +\def\@overbracket[#1]{\@ifnextchar[{\@over@bracket[#1]}{\@over@bracket[#1][0.3em]}} +\def\@over@bracket[#1][#2]#3{%\message {Overbracket: #1,#2,#3} + \mathop {\vbox {\m@th \ialign {##\crcr \noalign {\kern 3\p@ + \nointerlineskip }\downbracketfill {#1}{#2} + \crcr \noalign {\kern 3\p@ } + \crcr $\hfil \displaystyle {#3}\hfil $% + \crcr} }}\limits} +\def\downbracketfill#1#2{$\m@th \setbox \z@ \hbox {$\braceld$} + \edef\@bracketheight{\the\ht\z@}\downbracketend{#1}{#2} + \leaders \vrule \@height #1 \@depth \z@ \hfill + \leaders \vrule \@height #1 \@depth \z@ \hfill +\downbracketend{#1}{#2}$} +\def\downbracketend#1#2{\vrule depth #2 width #1\relax} +% +\def\rightharpoondownfill@{% + \arrowfill@\relbar\relbar\rightharpoondown} +\def\rightharpoonupfill@{% + \arrowfill@\relbar\relbar\rightharpoonup} +\def\leftharpoondownfill@{% + \arrowfill@\leftharpoondown\relbar\relbar} +\def\leftharpoonupfill@{% + \arrowfill@\leftharpoonup\relbar\relbar} +\newcommand{\xrightharpoondown}[2][]{% + \ext@arrow 0359\rightharpoondownfill@{#1}{#2}} +\newcommand{\xrightharpoonup}[2][]{% + \ext@arrow 0359\rightharpoonupfill@{#1}{#2}} +\newcommand{\xleftharpoondown}[2][]{% + \ext@arrow 3095\leftharpoondownfill@{#1}{#2}} +\newcommand{\xleftharpoonup}[2][]{% + \ext@arrow 3095\leftharpoonupfill@{#1}{#2}} +\newcommand{\xleftrightharpoons}[2][]{\mathrel{% + \raise.22ex\hbox{% + $\ext@arrow 3095\leftharpoonupfill@{\phantom{#1}}{#2}$}% + \setbox0=\hbox{% + $\ext@arrow 0359\rightharpoondownfill@{#1}{\phantom{#2}}$}% + \kern-\wd0 \lower.22ex\box0}% +} +\newcommand{\xrightleftharpoons}[2][]{\mathrel{% + \raise.22ex\hbox{% + $\ext@arrow 3095\rightharpoonupfill@{\phantom{#1}}{#2}$}% + \setbox0=\hbox{% + $\ext@arrow 0359\leftharpoondownfill@{#1}{\phantom{#2}}$}% + \kern-\wd0 \lower.22ex\box0}% +} + +\usepackage{empheq}% defines also harpoon macros + +\newcommand*{\threesim}{% + \mathrel{\vcenter{\offinterlineskip + \hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}}}} +% +\newcounter{subequation} +% +\newlength\mtabskip\mtabskip=-1.25cm +% +\newcommand\eqnCnt[1][]{% + \refstepcounter{subequation}% + \begin{align}#1\end{align}% + \addtocounter{equation}{-1}% +} +\def\mtabLong{long} +\makeatletter +\newenvironment{mtabular}[2][\empty]{% + \parindent=0pt% + \def\@xarraycr{% + \global\stepcounter{equation}% + \setcounter{subequation}{0}% + \@ifnextchar[\@argarraycr{\@argarraycr[\mtabskip]}% + } + \let\theoldequation\theequation% + \renewcommand\theequation{\theoldequation.\alph{subequation}} + \edef\mtabOption{#1} + \setcounter{subequation}{0}% + \tabcolsep=0pt + \ifx\mtabOption\mtabLong\longtable{#2}\else\tabular{#2}\fi% +}{% + \ifx\mtabOption\mtabLong\endlongtable\else\endtabular\fi% + \let\theequation\theoldequation% + \stepcounter{equation} +} +% +\makeatother +\def\zero{\multicolumn{1}{>{\columncolor{white}}c}{0}} +\def\colCell#1#2{\multicolumn{1}{>{\columncolor{#1}}c}{#2}} +%% For printing a cirumflex inside a formula +\newcommand{\mathcircumflex}[0]{\mbox{\^{}}} +\providecommand{\tabularnewline}{\\} +\usepackage{exscale} +\usepackage{relsize} +\usepackage{xspace} +\usepackage[mathscr]{eucal} +\usepackage{dsfont} +\usepackage[bottom]{footmisc} +\usepackage{esint} +\usepackage{esvect} +\usepackage{remreset} +\usepackage{calc} +\usepackage{xypic} +\usepackage{fancyhdr} +% +\pagestyle{fancy} +\lfoot{\footnotesize\ttfamily\jobname.tex} +\cfoot{} +\rfoot{\thepage} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +% +\definecolor{umbra}{rgb}{0.8,0.8,0.5} +\definecolor{gray90}{gray}{0.9} +% +\addtocontents{toc}{\hfill Page\endgraf\vspace{-4ex}} +\addtocontents{lof}{\ Figure\hfill Page} +\addtocontents{lot}{\ Table\hfill Page} +\let\myPart\part +\renewcommand\part[1]{\clearpage\myPart{#1}} +% +%%%%%%%%%%%%% Math symbols %%%%%%%%%%%%%%%%% +\newcommand{\mysin}{\operatorname{mysin}} +\newcommand{\eqdef}{\ensuremath{\stackrel{\mathrm{def}}{=}}} +\newcommand{\eqexcl}{\ensuremath{\stackrel{\mathrm{!}}{=}}} +\newcommand{\eqhat}{\ensuremath{\widehat{=}}} +% +\newlength{\fullwidth} +\setlength\fullwidth{\textwidth} +\addtolength\fullwidth{\marginparsep} +\addtolength\fullwidth{\marginparwidth} +% +\newlength{\LBoxWidth} +\newcommand{\LyXBox}[1]{% + \settowidth{\LBoxWidth}{#1} + \fbox{\parbox[c]{\LBoxWidth}{#1}}\xspace% +} +\let\mpar\marginpar +\renewcommand\marginpar[1]{% + \mpar{\small #1}% +} +\newcommand{\logo}{% + \bgroup + \psset{unit=1in,linewidth=2pt} + \psline(-2.5,2.5)(-2.5,-\paperheight) + \psline(-2,2.5)(-2,-\paperheight) + \rput[lb]{90}(-2.05,-0.7\paperheight){\red\Huge\textbf{\AllTeX}} + \rput[lb]{90}(-2.15,-0.1\paperheight){\red\Huge\textbf{Documentation}} + \egroup +} +\newcommand*{\CMD}[1]{\texttt{\textbackslash#1}} +% +\makeatletter +\def\La{% + L\kern-.36em{% + \setbox0\hbox{T}% + \vbox to\ht0{% + \hbox{$\m@th$% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont A}% + \vss% + }% + }% +} +\def\AllTeX{(\La\kern-.075em)\kern-.075em\TeX\xspace} +\def\AMS{American Mathematical Society\xspace} +\def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox + {$\mathcal{M}$}\kern-.125em$\mathcal{S}$\xspace} +\def\AmSmath{\AmS{}math\xspace} +\def\AmSLaTeX{\AmS-\LaTeX\xspace} +\def\AmSTeX{\AmS-\TeX\xspace} +\makeatother +% +\def\cIndex#1{\index{#1@\CMD{#1}}} +% +\usepackage{showexpl} +\lstset{language=[AlLaTeX]TeX} +% +\usepackage[% + pdftitle={TeX Mathmode},% + pdfauthor={Herbert Voss},% + urlcolor=blue,% + linktocpage,% + a4paper,% + colorlinks=true]{hyperref} +\usepackage{hypcap} +\usepackage{babel} + +\def\tIndex#1{\index{#1@{\UrlFont\texttt{#1}}}} +\def\cIndex#1{\index{#1@\CMD{#1}}} +\def\pIndex#1{\index{Parameter@\textbf{Parameter}!{\UrlFont\texttt{#1}}}} +\def\PIndex#1{\index{Paket@\textbf{Paket}!\texttt{#1}}} + +\usepackage{braket}% there were problems when loading before other packages ... + +\begin{document} + +\input{Mathmode.tex} +%\input{test.tex} + +\end{document} diff --git a/Master/texmf-doc/doc/english/mathmode/Mathmode.pdf b/Master/texmf-doc/doc/english/mathmode/Mathmode.pdf new file mode 100644 index 00000000000..5d33ec9bc14 Binary files /dev/null and b/Master/texmf-doc/doc/english/mathmode/Mathmode.pdf differ diff --git a/Master/texmf-doc/doc/english/mathmode/Mathmode.tex b/Master/texmf-doc/doc/english/mathmode/Mathmode.tex new file mode 100644 index 00000000000..5fde86ff401 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/Mathmode.tex @@ -0,0 +1,7061 @@ +%% +%% This is file `Mathmode.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Herbert Voss +%% 2005-06-30 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `Mathmode' is a document how the math mode works inside LaTeX +%% +\def\MathmodeVersion{2.09} +\ifvtex\title{\logo Math mode - v.\MathmodeVersion}\else + \ifpdf\title{Math mode - v.\MathmodeVersion}\else + \title{\logo Math mode - v.\MathmodeVersion}\fi\fi +% +\author{Herbert Vo\ss\footnote{\sloppy Thanks for the feedback to: + Hendri Adriaens; + Alexander Boronka; Christian Faulhammer; Jos\'e{} Luis G\'omez Dans; + Azzam Hassam; Martin Hensel; + Morten H\o{}gholm; M. Kalidoss; Dan Lasley; + Angus Leeming; Tim Love; + Hendrik Maryns; Heinz Mezera; + David Neuway; + Joachim Punter; + Carl Riehm; Will Robertson; Christoph Rumsm\"uller; + Jos\'e{} Carlos Santos; Jens Schwaiger; Uwe Siart; Martin Sievers; Heiko Stamer; Uwe St\"ohr; + Carsten Thiel; + David Weenink; + Zou Yuan-Chuan; + Michael Zedler; + and last but not least a special thanks to Monika Hattenbach for her + excellent job of proofreading. +}} +\date{\today} + +\maketitle + +\begin{abstract} +More than once people say that \TeX{} was designed for mathematical or technical purpose. +This maybe true when we remember the reasons why Donald Knuth created \TeX{}. But nowadays +there are a lot +of examples where \TeX{} was used for publications without any mathematical or technical background. +Nevertheless, we have to consider, that writing publications with a lot of mathematical +material is one of the important advantages of \TeX{} and it seems that is impossible to +know all existing macros and options of \AllTeX{} and the several additional packages, +especially \AmSmath. This is the reason why I tried to collect all important +facts in this paper. + +\vspace{3cm} +\noindent Please report typos or any other comments to this documentation to +\href{mailto:voss@perce.de}{voss@perce.de}. +\noindent This document was written with the \LaTeX{} editor \verb+Kile 1.8+ \verb+(Qt 3.3+ \verb+KDE 3.4)+ +\href{http://sourceforge.net/projects/kile/}{http://sourceforge.net/projects/kile/} and the PDF output +was built with the Linux version of \texttt{V\TeX/Free}, Version 8.46 +(\href{http://www.micropress-inc.com/linux/}{http://www.micropress-inc.com/linux/}) + +This file can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from \verb+CTAN+ archives +in directory \url{CTAN://macros/latex/base/lppl.txt}. + +\end{abstract} + + +\clearpage +\tableofcontents{} + +\part{Standard \protect\LaTeX{} math mode} + +\section{Introduction} +The following sections describe all the math commands which are available +without any additional package. Most of them also work with special +packages and some of them are redefined. At first some important facts for typesetting math expressions. + +\section{The Inlinemode}\label{sec:The-Inlinemode} +As the name says this are always math expressions which are in a standard +textline, like this one: $f(x)=\int_{a}^{b}\frac{\sin x}{x}dx$. There +are no limitations for the height of the math expressions, so that +the layout may be very lousy if you insert a big matrix in an inline mode +like this: +$\underline{A}=\left[\begin{array}{ccc} +a & b & c\\ +d & e & f\\ +g & h & i\end{array}\right]$. In this case it is better to use the \verb|\smallmatrix| environment +$\underline{A}=\left[\begin{smallmatrix}% +a & b & c\cr +d & e & f\cr +g & h & i\end{smallmatrix}\right]$ from the \AmSmath{} package (see section \vref{sec:ams-matrix}) or the +displaymath mode\index{Display math mode} (section \ref{display} on page \pageref{display}). + +This inline mode is possible with three different commands: + +\bigskip +\begin{minipage}{0.35\fullwidth} +\(\sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1)\)\\[10pt] +$\sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1)$\\[10pt] +\begin{math} + \sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1) +\end{math} +\end{minipage}\hfill +\begin{minipage}{0.62\fullwidth} +\begin{lstlisting} +\(\sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1)\)\\[10pt] +$\sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1)$\\[10pt] +\begin{math} + \sum_{i=1}^{n}i=\frac{1}{2}n\cdot(n+1) +\end{math} +\end{lstlisting} +\end{minipage} + +\begin{enumerate} +\item \CMD{( ... }\CMD{)} \marginpar{\CMD{(}...\CMD{)}}, the problem is that \verb+\(+ is +not a robust macro (see section~\vref{subsec:mathInTitles}). +\item \verb+$ ... $+ \marginpar{\$...\$} +\item \CMD{begin\{math\}} ... \CMD{end\{math\}}, also not robust% +\marginpar{\CMD{begin\{math\}}\\...\\\CMD{end\{math\}}} +\end{enumerate} + +In general \verb+$...$+ is the best choice, but this does not work in environments like \verb+verbatim+ +or \verb+alltt+. In this case \verb+\(...\)+ works. + + +\subsection{Limits}\label{sub:Limits-Inline} + +In the inline mode the limits\index{limits@\textbackslash limits} are by default only in +super\index{Superscript} or subscript mode\index{Subscript} and +the fractions\index{Fraction} are always in the scriptstyle\footnote{See section \vref{sec:Styles}.}\index{scriptstyle} +font size. For +example: $\int_{1}^{\infty}\frac{1}{x^2}dx=1$, which is not too +big for the textline. You % +\marginpar{\CMD{limits}}can change this with the command \CMD{limits}, +which must follow a math operator\footnote{To define a new operator see +page~\pageref{OperatorNames}}\index{Math operator} like % +\marginpar{\CMD{int}\\\CMD{lim}\\\CMD{prod}\\\CMD{sum}} + an integral (\CMD{int}\index{int@\textbackslash int}), a sum (\CMD{sum}\index{sum@\textbackslash sum}), +a product (\CMD{prod}\index{prod@\textbackslash prod}) or a limes +(\CMD{lim}\index{lim@\textbackslash lim}). But this $\int\limits_{1}^{\infty}\frac{1}{x^2}dx=1$ +does not look very nice in a text line when it appears between two lines, +especially when there are multiline limits.\footnote{For more +information about limits see section \vref{sub:Multiple-Limits} or section \vref{sec:limit-AMS}.} + + +\subsection{Fraction command}\label{sub:fraction command} + +For inlined formulas the fractions\index{Fraction} are by default +in the scriptstyle\index{scriptstyle@\textbackslash scriptstyle} (see tabular \vref{cap:Mathstyles}), +which is good for typesetting $y=\frac{a}{b+1}$, because the +linespacing % +\marginpar{\CMD{frac}}is nearly the same, but not optimal, when the formula shows some important +facts. There are two solutions to get a better reading: + +\begin{enumerate} +\item choose the display mode instead of the inline mode, which is the better +one; +\item set the fontstyle to \verb+displaystyle+\index{displaystyle@\textbackslash displaystyle}, which makes +the fraction $y={\displaystyle\frac{a}{b+1}}$ more readable but +the linespacing increases which is always a bad solution and should +only be used when the first solution makes no sense.\footnote{For an abbreviation see +section \vref{sec:ams-fraction}, there is a special \CMD{dfrac} macro.} + +\bigskip +\begin{minipage}{0.25\fullwidth} +$y=\frac{a}{b+1}={\displaystyle\frac{a}{b+1}}$ +\end{minipage}\hfill +\begin{minipage}{0.72\fullwidth} +\begin{lstlisting} +$y=\frac{a}{b+1}={\displaystyle\frac{a}{b+1}}$ +\end{lstlisting} +\end{minipage} +\end{enumerate} + + +\subsection[Math in Chapter/Section Titles]{\label{inline-chapter}Math in \CMD{part}, +\CMD{chapter}, \CMD{section}, +... titles like $f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)$}\label{subsec:mathInTitles} + +All commands which appear in positions like contents, index, header, +... must be robust\footnote{% +\texttt{robust} means that the macro is not expanded before it is moved +into for example the tableofcontents file (\texttt{*.toc}). No robustness is +often a problem, when a macro is part of another macro.} +which is the case for \verb+$...$+ but not for \verb+\(\...\)+. +If you do not have any contents, index, a.s.o. +you can write the mathstuff in \CMD{chapter}\index{chapter@\textbackslash chapter}, +\CMD{section}\index{section@\textbackslash section}, +a.s.o without any restriction. Otherwise use \verb+\protect\(+ and \verb+\protect\)+ or the +\verb+$...$+ version. + +The whole math expression appears in the default font shape and not +in bold like the other text. Section \vref{sec:titleItem} describes how the math +expressions can be printed also in bold. + +\marginpar{\CMD{texorpdfstring}}% +There are problems with \verb+hyperref+\index{hyperref.sty} when there is a non +text part in a title. It is possible to tell \verb+hyperref+\index{hyperref.sty} to use different +commands, one for the title and another one for the bookmarks\index{texorpdfstring@\textbackslash texorpdfstring}: + +\begin{verbatim} +\texorpdfstring{}{} +\end{verbatim} + +E.g. + +\begin{minipage}{\fullwidth} +\begin{lstlisting} +\texorpdfstring{$\int f(x)\,dx$}{Integral function} +\end{lstlisting} +\end{minipage} + + + +\subsection{Equation numbering} + +It is obvious that the numbering of inline mathstuff makes no sense! + +\subsection{Framed math} +With the \verb|\fbox| macro everything of inline math can be framed\index{Framed inline +math}\index{boxed inline math}, like the following one: + +\bigskip +\begin{minipage}{0.325\fullwidth} +\fbox{$f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)$} +\end{minipage}\hfill +\begin{minipage}{0.67\fullwidth} +\begin{lstlisting} +\fbox{$f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)$} +\end{lstlisting} +\end{minipage} + + +Parameters are the width of \verb|\fboxsep| and \verb|\fboxrule|, the predefined values +from \verb|latex.ltx| are: + +\bigskip +\begin{minipage}{\fullwidth} +\begin{lstlisting} +\fboxsep = 3pt +\fboxrule = .4pt +\end{lstlisting} +\end{minipage} + +The same is possible with the \verb|\colorbox| +\colorbox{yellow}{$f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)$} +from the color package. + +\bigskip +\begin{minipage}{\fullwidth} +\begin{lstlisting} +\colorbox{yellow}{$f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)$} +\end{lstlisting} +\end{minipage} + + + +\subsection{Linebreak} + +\LaTeX{} can break an inline formula only when a relation symbol ($=, <, >, \ldots$) or a +binary operation symbol ($+,-, \ldots$) exists and at least one of these symbols appears at +the outer level of a formula. +Thus \verb|$a+b+c$| can be broken across lines, but \verb|${a+b+c}$| not. + +\begin{itemize} +\item The default: \hspace{1cm} +$f(x)=a_nx^n+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+\ldots + +a_ix^i +a_2x^2 +a_1x^1 +a_0$ +\item The same inside a group \{...\}: +${f(x)=a_nx^n+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+\ldots + +a_ix^i +a_2x^2 +a_1x^1 +a_0}$ + +\item Without any symbol: \hspace{4cm} +$f(x)=a_n\left(a_{n-1}\left(a_{n-2}\left(\ldots\right)\ldots\right)\ldots\right)$ +\end{itemize} + +If it is not possible to have any mathsymbol, then split the inline formula in two +or more pieces (\verb|$...$ $...$|). If you do not want a linebreak for the whole +document, you can set in the preamble: +\begin{verbatim} +\relpenalty=9999 +\binoppenalty=9999 +\end{verbatim} + +\noindent +which is the extreme case of grudgingly allowing breaks in extreme cases. + + +\subsection{Whitespace}\label{subsec:whitespace} +\LaTeX{} defines the length \verb|\mathsurround|\index{mathsurround@\textbackslash mathsurround} with the default value of +\verb|0pt|. This length is added before and after an inlined math expression (see table \vref{tab:whitespace}). + +\begin{table}[htb] +\hspace*{-0.1\linewidth}% +\begin{tabular}{@{}cc@{}} +foo \fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $} bar & +\begin{minipage}{0.7\linewidth} +\begin{lstlisting} +foo \fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $} bar +\end{lstlisting} +\end{minipage}\tabularnewline +% +foo \rule{20pt}{\ht\strutbox}\fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $}\rule{20pt}{\ht\strutbox} bar & +\begin{minipage}{0.7\linewidth} +\begin{lstlisting} +foo \rule{20pt}{\ht\strutbox}\fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $}\rule{20pt}{\ht\strutbox} bar +\end{lstlisting} +\end{minipage}\tabularnewline +\setlength{\mathsurround}{20pt}foo \fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $} bar & +\begin{minipage}{0.7\linewidth} +\begin{lstlisting} +\setlength{\mathsurround}{20pt} +foo \fbox{$ f(x)=\int_1^{\infty}\frac{1}{x^2}dx=1 $} bar +\end{lstlisting} +\end{minipage} +\end{tabular} +% +\caption{Meaning of \CMD{mathsurround}}\label{tab:whitespace} +\end{table} + + +\subsection{\AmSmath for the inline mode} + +None of the \AmSmath-functions are available in inline mode. + +\section{Displaymath mode}\label{display} +This means, that every formula gets its own paragraph (line). There are +some differences in the layout to the one from the title +of \ref{inline-chapter}. + + +\subsection{\texttt{equation} environment} + +For example: + +\bigskip\noindent +\begin{tabular}{cc} +\begin{minipage}{0.35\linewidth} +\begin{equation} + f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right) +\end{equation} +\end{minipage} & +\begin{minipage}{0.63\linewidth} +\begin{lstlisting} +\begin{equation} + f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right) +\end{equation} +\end{lstlisting} +\end{minipage} +\end{tabular} + +\bigskip +The delimiters\index{Delimiter} +\CMD{begin\{equation\} ... }\CMD{end\{equation\}} are the only difference to the inline version. There +are some equivalent commands for the display-math mode: + +\begin{enumerate} +\marginpar{\CMD{begin\{displaymath\}}\\ +\ldots\\ +\CMD{end\{displaymath\}}}% +\item \CMD{begin\{displaymath\}}\ldots\CMD{end\{displaymath\}}, same as +\CMD{[} \ldots \CMD{]} +% +\item \CMD{[\ldots}\CMD{]}. (see above) the short form of a displayed formula, no number% +\marginpar{\texttt{\textbackslash[\ldots\textbackslash{}]}} +\[ +f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right) +\] +displayed, no number. Same as 1. +% +\item \CMD{begin\{equation\}\ldots}\CMD{end\{equation\}}% +\marginpar{\CMD{begin\{equation\}}\\ +\ldots\\ +\CMD{end\{equation\}}}% +% +\begin{equation} +f(x)=\prod_{i=1}^{n}\left(i-\frac{1}{2i}\right)\end{equation} +\\ +displayed, a sequential equation number, which may be reset when +starting a new chapter or section. + + +\begin{enumerate} +\item There is only \textbf{one} equation number for the whole environment. +\item \marginpar{\CMD{nonumber}}There exists no star-version of the equation environment +because \verb|\[...\]| is the equivalent. With the tag +\CMD{nonumber}\index{nonumber@\textbackslash nonumber} it is possible to suppress the equation number: + +\begin{minipage}{0.5\linewidth} +\begin{equation} + f(x)= [...] \nonumber +\end{equation} +\end{minipage}% +\begin{minipage}{0.6\linewidth} +\begin{lstlisting} +\begin{equation} + f(x)= [...] \nonumber +\end{equation} +\end{lstlisting} +\end{minipage} +% +\end{enumerate} +\end{enumerate} + + +\subsection{\texttt{eqnarray} environment}\label{display:eqnarray} + +This is by default an array with three columns and as many rows as +you like. \marginpar{\CMD{begin\{eqnarray\}}\\ +...\\ +\CMD{end\{eqnarray\}}} It is nearly the same as an array with a \verb|rcl| column definition. + +It is \textbf{not possible} to change the internal behaviour of the \verb|eqnarray| environment without +rewriting the environment. +It is always an impli\-cit array with \textbf{three} columns and the horizontal +alignment \verb|right-center-left (rcl)| and small \textbf{symbol} sizes for the +middle column. All this can not be changed by the user without rewriting +the whole environment in \verb|latex.ltx|. + +\bigskip\noindent +\begin{tabular}{cc} +\begin{minipage}{0.35\linewidth} +\begin{eqnarray*} +\mathrm{left} & \mathrm{middle} & \mathrm{right}\\ +\frac{1}{\sqrt{n}}= & \frac{\sqrt{n}}{n}= & \frac{n}{n\sqrt{n}} +\end{eqnarray*} +\end{minipage} & +\begin{minipage}{0.63\linewidth} +\begin{lstlisting} +\begin{eqnarray*} +\mathrm{left} & \mathrm{middle} & \mathrm{right}\\ +\frac{1}{\sqrt{n}}= & \frac{\sqrt{n}}{n}= & \frac{n}{n\sqrt{n}} +\end{eqnarray*} +\end{lstlisting} +\end{minipage} +\end{tabular} + +\bigskip +The \verb|eqnarray| environment should not be used as an array. As seen in the above +example the typesetting is wrong for the middle column. The numbering of eqnarray +environments is always for every row, means, +that four lines get four different equation numbers (for the labels see section \ref{sec:Labels}): + +\bigskip +\begin{minipage}{0.5\columnwidth} +\begin{eqnarray} +y & = & d\label{eq:2}\\ +y & = & cx+d\\ +y & = & bx^{2}+cx+d\\ +y & = & ax^{3}+bx^{2}+cx+d\label{eq:5} +\end{eqnarray} +\end{minipage}\hfill +\begin{minipage}{0.43\columnwidth} +\begin{lstlisting} +\begin{eqnarray} +y & = & d\label{eq:2}\\ +y & = & cx+d\\ +y & = & bx^{2}+cx+d\\ +y & = & ax^{3}+bx^{2}+cx+d\label{eq:5} +\end{eqnarray} +\end{lstlisting} +\end{minipage} + + +\medskip +Toggling numbering off/on for \textbf{all} rows is possible +with the starred version of eqnarray. + +\medskip +\begin{minipage}{0.45\columnwidth} +\begin{eqnarray*} +y & = & d\label{eq:3}\\ +y & = & cx+d\\ +y & = & bx^{2}+cx+d\\ +y & = & ax^{3}+bx^{2}+cx+d\label{eq:4} +\end{eqnarray*} +\end{minipage} +\begin{minipage}{0.53\columnwidth} +\begin{lstlisting} +\begin{eqnarray*} +y & = & d\label{eq:3}\\ +y & = & cx+d\\ +y & = & bx^{2}+cx+d\\ +y & = & ax^{3}+bx^{2}+cx+d\label{eq:4} +\end{eqnarray*} +\end{lstlisting} +\end{minipage} + +\medskip +Toggling off/on for \textbf{single} rows is possible with the above +mentioned \CMD{nonumber}\index{nonumber@\textbackslash nonumber} tag at the end of a row +(before the newline command). +For example: + +\medskip +\begin{minipage}{0.45\columnwidth} +\begin{eqnarray} + y & = & d\nonumber \\ + y & = & cx+d\nonumber \\ + y & = & bx^{2}+cx+d\nonumber \\ + y & = & ax^{3}+bx^{2}+cx+d +\end{eqnarray} +\end{minipage} +\begin{minipage}{0.53\columnwidth} +\begin{lstlisting} +\begin{eqnarray} + y & = & d\nonumber \\ + y & = & cx+d\nonumber \\ + y & = & bx^{2}+cx+d\nonumber \\ + y & = & ax^{3}+bx^{2}+cx+d +\end{eqnarray} +\end{lstlisting} +\end{minipage} + + +\subsubsection{Short commands}\label{subsec:shortcommand} +It is possible to define short commands for the \verb|eqnarray| environment +\begin{lstlisting} +\makeatletter +\newcommand{\be}{% + \begingroup +% \setlength{\arraycolsep}{2pt} + \eqnarray% + \@ifstar{\nonumber}{}% +} +\newcommand{\ee}{\endeqnarray\endgroup} +\makeatother +\end{lstlisting} + +\makeatletter +\newcommand{\be}{% + \begingroup +% \setlength{\arraycolsep}{2pt} + \eqnarray% + \@ifstar{\nonumber}{}% +} +\newcommand{\ee}{\endeqnarray\endgroup} +\makeatother + +Now you can write the whole equation as + + +\begin{showexample}[width=0.5\columnwidth,wide] +\be + f(x) &=& \int\frac{\sin x}{x}dx +\ee +\end{showexample} + +\medskip +\noindent or, if you do not want to have a numbered equation as + +\begin{showexample}[width=0.5\columnwidth,wide] +\be* + f(x) &=& \int\frac{\sin x}{x}dx +\ee +\end{showexample} + + +\subsection{Equation numbering}\label{sub:Equationnumbering} + +For all equations which can have one or % +\marginpar{\CMD{nonumber}}more equation numbers (for every line/row) the numbering +for the whole equation can be disabled with switching from the unstarred to the star +version. This is still for the whole formula and doesn't work for single rows. +In this case use the \CMD{nonumber} tag. + +\begin{itemize} +\item This doc is written with the article-class, which counts the equations +continuously over all parts/sections. You can change this behaviour +in different ways (see the following subsections). +\item In standard \LaTeX{} it is a problem with too long equations and the +equation number, which may be printed with the equation one upon the other. In this case +use the \AmSmath package, where the number is set above or below +of a too long equation (see equation \vref{eq:braces}). +\item For counting subequations see section \vref{ams:subeqn}. +\end{itemize} + +\subsubsection{Changing the style} + +\marginpar{\CMD{theequation}}% +With the beginning of Section \vref{sec:alignat environment} the +counting changes from ``\ref{eq:IntoSection}{}'' into the new style +``\ref{eq:newCounting}''. The command sequence is + +\begin{lstlisting} +\renewcommand\theequation{% + \thepart-\arabic{equation}% +} +\end{lstlisting} +See section \vref{sec:Equation-numbering} for the \AmSmath command. + + +\subsubsection{Resetting a counter style} + +Removing a given reset is possible with the package \verb+remreset+.% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/supported/carlisle/remreset.sty}{CTAN://macros/latex/contrib/supported/carlisle/remreset.sty}} Write into the % +\marginpar{\CMD{@removefromreset}} preamble + +\begin{lstlisting} +\makeatletter +\@removefromreset{equation}{section} +\makeatother +\end{lstlisting} +or anywhere in the text. + +Now the equation counter is no longer reset when a new section starts. +You can see this after section~\vref{split}. + + +\subsubsection{Equation numbers on the left side} + +Choose package \texttt{leqno}% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/unpacked/leqno.sty}{CTAN://macros/latex/unpacked/leqno.sty}} +or have a look at your document class, if such an option exists. + +\subsubsection{Changing the equation number style} +The number style can be changed with a redefinition of + +\begin{verbatim} +\def\@eqnnum{{\normalfont \normalcolor (\theequation)}} +\end{verbatim} + +For example: if you want the numbers not in parentheses write + +\begin{lstlisting} +\makeatletter +\def\@eqnnum{{\normalfont \normalcolor \theequation}} +\makeatother +\end{lstlisting} + +For \AmSmath there is another macro, see section~\ref{sec:Equation-numbering} on +page~\pageref{sec:Equation-numbering}. + +\subsubsection{More than one equation counter} +You can have more than the default equation counter. With the following code you +can easily toggle between roman and arabic equation counting. +\makeatletter +%Roman counter +\newcounter{roem} +\renewcommand{\theroem}{\roman{roem}} + +% save the original counter +\newcommand{\c@org@eq}{} +\let\c@org@eq\c@equation +\newcommand{\org@theeq}{} +\let\org@theeq\theequation + +%\setroem sets roman counting +\newcommand{\setroem}{ + \let\c@equation\c@roem + \let\theequation\theroem} + +%\setarab the arabic counting +\newcommand{\setarab}{ + \let\c@equation\c@org@eq + \let\theequation\org@theeq} +\makeatother + +\begin{lstlisting} +%code by Heiko Oberdiek +\makeatletter +%Roman counter +\newcounter{roem} +\renewcommand{\theroem}{\roman{roem}} + +% save the original counter +\newcommand{\c@org@eq}{} +\let\c@org@eq\c@equation +\newcommand{\org@theeq}{} +\let\org@theeq\theequation + +%\setroem sets roman counting +\newcommand{\setroem}{ + \let\c@equation\c@roem + \let\theequation\theroem} + +%\setarab the arabic counting +\newcommand{\setarab}{ + \let\c@equation\c@org@eq + \let\theequation\org@theeq} +\makeatother +\end{lstlisting} + +The following examples show how it works: + +\noindent +\begin{minipage}{1.2\linewidth} +\begin{minipage}{0.38\linewidth} +\begin{align} +f(x) &= \int\sin x dx\label{eq:arab1}\\ +g(x) &= \int\frac{1}{x}dx +\end{align} +% +\setroem +% +\begin{align} +F(x) &=-\cos x\\ +G(x) &=\ln x\label{eq:rom1} +\end{align} +% +\setarab +% +\begin{align} +f^{\prime} (x) &= \sin x\\ +g^{\prime} (x) &= \frac{1}{x}\label{eq:arab2} +\end{align} +\end{minipage}\hfill +\begin{minipage}{0.58\linewidth} +\begin{lstlisting} +\begin{align} +f(x) &= \int\sin x dx\label{eq:arab1}\\ +g(x) &= \int\frac{1}{x}dx +\end{align} +% +\setroem +% +\begin{align} +F(x) &=-\cos x\\ +G(x) &=\ln x\label{eq:rom1} +\end{align} +% +\setarab +% +\begin{align} +f^{\prime} (x) &= \sin x\\ +g^{\prime} (x) &= \frac{1}{x}\label{eq:arab2} +\end{align} +\end{lstlisting} +\end{minipage} +\end{minipage} + +\medskip +There can be references to these equations in the usual way, like eq.\ref{eq:arab1}, +\ref{eq:arab2} and for the roman one eq.\ref{eq:rom1}. + + +\subsection{Labels}\label{sec:Labels} + +Every numbered equation can have a label\index{Label} to which a +reference\index{Reference} is possible. + +\begin{itemize} +\item There is one restriction for the label names, they cannot include +one of \LaTeX{}'s command characters.\footnote{\$ \_ \^{} \textbackslash{} \& \% \{ \}} +\item The label names are replaced by the equation number. +\end{itemize} +% +\marginpar{\CMD{tag}}If you do not want a reference to the equation number but to a self +defined name then use the \AmS{}math command \CMD{tag{...}}, +which is described in section \vref{sec:Labels-and-Tags}\index{tag@\textbackslash tag}. + +\subsection{Frames}\label{sec:Frames} +Similiar to the inline mode, displayed equations can also be framed with +the \verb|\fbox|\index{fbox@\textbackslash fbox} command, like equation \ref{eq:frame0}. +The only difference is +the fact, that the equation must be packed into a parbox or minipage. It is +nearly the same for a colored box, where the \verb|\fbox{...}| has to be +replaced with \verb|\colorbox{yellow}{...}|. The package \verb|color.sty| must +be loaded and --important -- the \verb|calc.sty| package to get a correct boxwidth. + +\noindent\fbox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{% +\begin{equation}\label{eq:frame0} +f(x)=\int_1^{\infty}\dfrac{1}{x^2}dx=1 +\end{equation}% +}} + +\medskip +\begin{lstlisting} +\noindent\fbox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{% +\begin{equation}\label{eq:frame0} + f(x)=\int_1^{\infty}\dfrac{1}{x^2}dx=1 +\end{equation}% +}} +\end{lstlisting} + + +If the equation number should not be part of the frame, then it is a bit +complicated. There is one tricky solution, which puts an unnumbered equation +just beside an empty numbered equation. The \verb|\hfill| is only useful for +placing the equation number right aligned, which is not the default. The +following four equations \ref{eq:frame2}-\ref{eq:frame5} are the same, +only the second one written with the \verb|\myMathBox| macro which has the +border and background color as optional arguments with the defaults +\verb|white| for background and \verb|black| for the frame. If there is only +one optional argument, then it is still the one for the frame color (\ref{eq:frame3}). + +\makeatletter +\def\myMathBox{\@ifnextchar[{\my@MBoxi}{\my@MBoxi[black]}} +\def\my@MBoxi[#1]{\@ifnextchar[{\my@MBoxii[#1]}{\my@MBoxii[#1][white]}} +\def\my@MBoxii[#1][#2]#3#4{% + \par\noindent% + \fcolorbox{#1}{#2}{% + \parbox{\linewidth-\labelwidth-2\fboxrule-2\fboxsep}{#3}% + }% + \parbox{\labelwidth}{% + \begin{eqnarray}\label{#4}\end{eqnarray}% + }% + \par% +} +\makeatother + +\begin{lstlisting} +\makeatletter +\def\myMathBox{\@ifnextchar[{\my@MBoxi}{\my@MBoxi[black]}} +\def\my@MBoxi[#1]{\@ifnextchar[{\my@MBoxii[#1]}{\my@MBoxii[#1][white]}} +\def\my@MBoxii[#1][#2]#3#4{% + \par\noindent% + \fcolorbox{#1}{#2}{% + \parbox{\linewidth-\labelwidth-2\fboxrule-2\fboxsep}{#3}% + }% + \parbox{\labelwidth}{% + \begin{eqnarray}\label{#4}\end{eqnarray}% + }% + \par% +} +\makeatother +\end{lstlisting} + +\begin{equation}\label{eq:frame2} + f(x)=x^2 +x +\end{equation} +\myMathBox[red]{\[f(x)=x^2 +x\]}{eq:frame3} +\myMathBox[red][yellow]{\[f(x)=x^2 +x\]}{eq:frame4} +\myMathBox{\[f(x)=x^2 +x\]}{eq:frame5} + +\medskip +\begin{lstlisting} +\begin{equation}\label{eq:frame2} + f(x)=x^2 +x +\end{equation} +\myMathBox[red]{\[f(x)=x^2 +x\]}{eq:frame3} +\myMathBox[red][yellow]{\[f(x)=x^2 +x\]}{eq:frame4} +\myMathBox{\[f(x)=x^2 +x\]}{eq:frame5} +\end{lstlisting} + +If you are using the \AmSmath package, then try the solutions from section +\vref{sec:ams-frames}. + +\section{\texttt{array} environment} +\marginpar{\CMD{begin\{array\}}\\...\\\CMD{end\{array\}}} +This is simply the same as the eqnarray environment only with the +possibility of variable rows \textbf{and} columns and the fact, that +the whole formula has only \textbf{one} equation number and that the +\verb|array| environment can only be part of another math environment, +like \verb|equation| or \verb|displaymath|. + +\begin{equation} +\left.% +\begin{array}{r@{\quad}ccrr} + \textrm{a}) & y & = & c & (constant)\\ + \textrm{b}) & y & = & cx+d & (linear)\\ + \textrm{c}) & y & = & bx^{2}+cx+d & (square)\\ + \textrm{d}) & y & = & ax^{3}+bx^{2}+cx+d & (cubic) +\end{array}% +\right\} \textrm{Polynomes} +\end{equation} + + +\begin{lstlisting} +\begin{equation} +\left.% +\begin{array}{r@{\\ +\quad}ccrr} + \textrm{a}) & y & = & c & (constant)\\ + \textrm{b}) & y & = & cx+d & (linear)\\ + \textrm{c}) & y & = & bx^{2}+cx+d & (square)\\ + \textrm{d}) & y & = & ax^{3}+bx^{2}+cx+d & (cubic) +\end{array}% +\right\} \textrm{Polynomes} +\end{equation} +\end{lstlisting} + + +The horizontal alignment of the columns is the same as the one from the +\texttt{tabular} environment. + +For arrays with delimiters see section \vref{delarray}. + +\subsection{Cases structure} + +If you do not want to use the \AmSmath package then write your own +cases structure\index{cases@\textbackslash cases} with the \verb|array| environment: + +\begin{showexample}[pos=b] +\begin{equation} +x=\left\{ \begin{array}{cl} +0 & \textrm{if A=...}\\ +1 & \textrm{if B=...}\\ +x & \textrm{this runs with as much text as you like, but without an raggeright text.}\end{array}\right. +\end{equation} +\end{showexample} + + +It is obvious, that we need a \CMD{parbox} if the text is longer than the possible linewidth. + +\begin{showexample}[pos=b] +\begin{equation} +x = \left\{% + \begin{array}{l>{\raggedright}p{.5\textwidth}}% + 0 & if A=...\tabularnewline + 1 & if B=...\tabularnewline + x & \parbox{0.5\columnwidth}{this runs with as much text as you like, % + because an automatic linebreak is given with % + a raggedright text. Without this % + \raggedright command, you'll get a formatted % + text like the following one ... but with a parbox ... it works} + \end{array}% + \right. % +\end{equation} +\end{showexample} + + + +\subsection{\texttt{arraycolsep}}\label{sec:arraycolsep} +\marginpar{\CMD{arraycolsep}}All the foregoing math environments use the array to typeset the math +expression. The predefined separation between two columns is the length +\verb|\arraycolsep|, which is set by nearly all document classes to \verb|5pt|, +which seems to be too big. The following equation is typeset with the +default value and the second one with \verb|\arraycolsep=1.4pt| + + +\bgroup +\fboxsep=0pt +\def\xstrut{\vphantom{\int\frac{\sin x}{x}}} +\begin{eqnarray*} +\boxed{f(x)\xstrut} & \boxed{=\xstrut} & \boxed{\int\frac{\sin x}{x}dx} +\end{eqnarray*} + +\vspace{-2ex} +\arraycolsep=1.4pt +\begin{eqnarray*} +\boxed{f(x)\xstrut} & \boxed{=\xstrut} & \boxed{\int\frac{\sin x}{x}dx} +\end{eqnarray*} +\egroup + +If this modification should be valid for all arrays/equations, then write it into the +preamble, otherwise put it into a group or define your own environment as done +in section \vref{subsec:shortcommand}. + +\begin{lstlisting} +\bgroup +\arraycolsep=1.4pt +\begin{eqnarray} +f(x) & = & \int\frac{\sin x}{x}dx +\end{eqnarray} +\egroup +\end{lstlisting} + +\begin{lstlisting} +\makeatletter +\newcommand{\be}{% + \begingroup + \setlength{\arraycolsep}{1.4pt} +[ ... ] +\end{lstlisting} + +\section{Matrix}\label{sec:matrix} +\marginpar{\CMD{matrix}\\\CMD{bordermatrix}}\TeX{} knows two macros and \LaTeX{} one more for typesetting a matrix\index{bordermatrix@\textbackslash bordermatrix}: + +\begin{showexample} +$\begin{matrix} + A & B & C \\ + d & e & f \\ + 1 & 2 & 3 \\ +\end{matrix}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix{% + & 0 & 1 & 2 \cr + 0 & A & B & C \cr + 1 & d & e & f \cr + 2 & 1 & 2 & 3 \cr +}$ +\end{showexample} + +\iffalse % smallmatrix belongs to amsmath +\begin{minipage}{0.4\textwidth} +\begin{center} +$ +\begin{smallmatrix}% + A & B & C \\ + d & e & f \\ + 1 & 2 & 3 +\end{smallmatrix} +$ +\end{center} +\end{minipage}\hfill +\begin{minipage}{0.4\textwidth} +\begin{lstlisting} +\begin{smallmatrix}% + A & B & C \\ + d & e & f \\ + 1 & 2 & 3 +\end{smallmatrix} +\end{lstlisting} +\end{minipage} +\fi + +The first two macros are listed here for some historical reason, because the \verb|array| or especially the +\AmSmath package offers the same or better macros/environments. Nevertheless it is +possible to redefine the \verb|bordermatrix| macro to get other parentheses and a star +version which takes the left top part as matrix: + +\makeatletter +\newif\if@borderstar +\def\bordermatrix{\@ifnextchar*{% + \@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}% +} +\def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}} +\def\@bordermatrix@ii[#1]#2{% +\begingroup + \m@th\@tempdima8.75\p@\setbox\z@\vbox{% + \def\cr{\crcr\noalign{\kern 2\p@\global\let\cr\endline }}% + \ialign {$##$\hfil\kern 2\p@\kern\@tempdima & \thinspace % + \hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut % + \hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit % + \strut\cr}}% + \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{% + $\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1% + \if@borderstar\kern2pt\else\kern -\wd\@ne\fi% + \global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}% + \vcenter{\if@borderstar\else\kern -\ht\@ne\fi% + \unvbox\z@\kern-\if@borderstar2\fi\baselineskip}% + \if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $% + }\null \;\vbox{\kern\ht\@ne\box\tw@}% +\endgroup +} +\makeatother + +\begin{showexample} +$\bordermatrix{% + & 1 & 2 \cr +1 & x1 & x2 \cr +2 & x3 & x4 \cr +3 & x5 & x6 +}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix[{[]}]{% + & 1 & 2 \cr +1 & x1 & x2 \cr +2 & x3 & x4 \cr +3 & x5 & x6 +}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix[\{\}]{% + & 1 & 2 \cr +1 & x1 & x2 \cr +2 & x3 & x4 \cr +3 & x5 & x6 +}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix*{% + x1 & x2 & 1 \cr + x3 & x4 & 2 \cr + x5 & x6 & 3 \cr + 1 & 2 +}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix*[{[]}]{% + x1 & x2 & 1 \cr + x3 & x4 & 2 \cr + x5 & x6 & 3 \cr + 1 & 2 +}$ +\end{showexample} +\vspace{-10pt} +\begin{showexample} +$\bordermatrix*[\{\}]{% + x1 & x2 & 1 \cr + x3 & x4 & 2 \cr + x5 & x6 & 3 \cr + 1 & 2 +}$ +\end{showexample} + + +There is now an optional argument for the parenthesis with \verb|()| as the default one. To get such a behaviour, write into the preamble: +\begin{lstlisting}[xleftmargin=-0.75cm,xrightmargin=-0.75cm] +\makeatletter +\newif\if@borderstar +\def\bordermatrix{\@ifnextchar*{% + \@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}% +} +\def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}} +\def\@bordermatrix@ii[#1]#2{% +\begingroup + \m@th\@tempdima8.75\p@\setbox\z@\vbox{% + \def\cr{\crcr\noalign{\kern 2\p@\global\let\cr\endline }}% + \ialign {$##$\hfil\kern 2\p@\kern\@tempdima & \thinspace % + \hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut % + \hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit % + \strut\cr}}% + \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{% + $\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1% + \if@borderstar\kern2pt\else\kern -\wd\@ne\fi% + \global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}% + \vcenter{\if@borderstar\else\kern -\ht\@ne\fi% + \unvbox\z@\kern-\if@borderstar2\fi\baselineskip}% + \if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $% + }\null \;\vbox{\kern\ht\@ne\box\tw@}% +\endgroup +} +\makeatother +\end{lstlisting} + +The \verb|matrix| macro cannot be used together with the \AmSmath package, it redefines +this macro (see section \vref{sec:ams-matrix}). + +\section{Super/Subscript and limits}\label{sec:limits} +Writing $a_{min}$ and $a_{max}$ gives the same depth for the subscript, but +writing them in upright mode with \verb+\mbox+ gives a different depth: $a_{\mbox{min}}$ and $a_{\mbox{max}}$. +The problem is the different height, which can be modified in several ways +\begin{itemize} +\item \verb+$a_{\mbox{\vphantom{i}max}}+: $a_{\mbox{min}}$ and $a_{\mbox{\vphantom{i}max}}$; +\item \verb+$a_{\mathrm{max}}+: $a_{\mathrm{min}}$ and $a_{\mathrm{max}}$; +\item \verb+$a_{\max}+: $a_{\min}$ and $a_{\max}$. Both are predefined operators (see section~\vref{sec:ltxOperators}). +\end{itemize} + + +\subsection{Multiple limits}\label{sub:Multiple-Limits} + +\marginpar{\CMD{atop}}For general information about limits\index{Limits} read section +\vref{sub:Limits-Inline}. With the \CMD{atop}\index{atop@\textbackslash atop} command +multiple limits for a sum\index{sum@\textbackslash sum} or prod\index{prod@\textbackslash prod} +are possible. The syntax is: + +\begin{showexample}[width=0.4\linewidth] +\[ {above \atop below} \] +\end{showexample} + +\noindent which is nearly the same as a fraction without a rule. This can +be enhanced to \verb|a\atop b\atop c| and so on. For equation \ref{eq:atop} do the following steps: + +\begin{showexample}[width=0.4\linewidth] +\begin{equation}\label{eq:atop} +\sum_{{1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}% +}a_{ij}b_{jk}c_{ki} +\end{equation} +\end{showexample} + + +\bigskip +There are other solutions to get multiple limits, e.g. an array, +which is not the best solution because the space between the lines +is too big. The \AmSmath package provides several commands for limits (section \ref{sec:limit-AMS}) and the \CMD{underset} and \CMD{overset} commands (see section \ref{sec:misc-AMS}). + +\subsection{Problems} + +\begin{equation}\label{eq:disp-limits} +\fboxsep=0pt\fboxrule=0.1pt +\boxed{\sum_{ + {{1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}% + }}% +}\boxed{a_{ij}b_{jk}c_{ki}} +\end{equation} + +The equation \ref{eq:disp-limits} shows that the horizontal alignment +is not optimal, because the math expression on the right follows at the +end of the limits which are a unit together with the sum symbol. There +is an elegant solution with \AmSmath, described in subsection +\vref{subsec:ams-limits}. If you do not want to use \AmSmath, +then use \CMD{makebox}. But there is a problem when the general fontsize +is increased, \CMD{makebox} knows nothing about the actual math font +size. Equation \ref{eq:disp-limits2} shows the effect and equation +\ref{eq:disp-limits3} the view without the boxes. + +\vspace{\abovedisplayskip} +\begin{subequations} +\begin{minipage}{0.45\textwidth} +\begin{equation}\label{eq:disp-limits2} +\fboxsep=0pt\fboxrule=0.1pt +\boxed{\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}% + }% +}\boxed{a_{ij}b_{jk}c_{ki}} +\end{equation} +\end{minipage}\hfill +\begin{minipage}{0.45\textwidth} +\begin{equation}\label{eq:disp-limits3} +\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}}a_{ij}b_{jk}c_{ki} +\end{equation} +\end{minipage} +\end{subequations} + +\medskip +\begin{lstlisting} +\begin{equation} +\sum_{\makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}}a_{ij}b_{jk}c_{ki} +\end{equation} +\end{lstlisting} + + +\section{Roots}\label{sec:Roots} + +The square root\index{Root} \CMD{sqrt}\index{sqrt@\textbackslash sqrt} is the default +for \LaTeX{} and the $n$-th root can be inserted with the optional parameter \CMD{sqrt[n]\{\ldots\}}. +\marginpar{\CMD{sqrt}}. + +\begin{center} +\begin{tabular}{cc} + \verb|\sqrt{x}| & $\sqrt{x}$\\ + \verb|\sqrt[3]{x}| & $\sqrt[3]{x}$ +\end{tabular} +\end{center} + +There is a different typesetting in roots. Equation \vref{eq:root1} +has different heights for the roots, whereas equation \vref{eq:root2} +has the same one. This is possible with the % +\marginpar{\CMD{vphantom}}% +\verb+\vphantom+\index{vphantom@\textbackslash vphantom} command, +which reserves the vertical space (without a horizontal one) of the +parameter height. + +\begin{showexample}[width=0.35\linewidth,wide] +\begin{equation} + \sqrt{a}\,% + \sqrt{T}\,% + \sqrt{2\alpha k_{B_1}T^i}\label{eq:root1} +\end{equation} +\end{showexample} + + +\vspace{-10pt} +\begin{showexample}[width=0.35\linewidth,wide] +\begin{equation}\label{eq:root2} + \sqrt{a\vphantom{k_{B_1}T^i}}\,% + \sqrt{T\vphantom{k_{B_1}T^i}}\,% + \sqrt{2\alpha k_{B_1}T^i} +\end{equation} +\end{showexample} + + +The typesetting looks much better, especially when the formula +has different roots in a row, like equation \vref{eq:root1}. Using +\AmSmath with the \CMD{smash} command% +\footnote{The \CMD{smash} command exists also in \LaTeX{} +but without an optional argument, which makes the use for roots possible.% +} gives some more possibilities for the typesetting of roots (see section +\vref{sec:Roots-ams}). + + +\section[Brackets, braces \ldots]{Brackets, braces and parentheses}\label{sec:Brackets,-Braces-and} + +This is one of the major problems inside the math mode, because there is often a need for different brackets, braces and parentheses in different size. At first we had to admit, that +there is a difference between the characters ``\verb|()[]/\| +$\lbrace\rbrace$ +| +$\Vert$ +$\lfloor\rfloor$ +$\lceil\rceil$ +$\langle\rangle$ +$\uparrow\Uparrow$ +$\downarrow\Downarrow$ +$\updownarrow\Updownarrow${}'' +and their use as an argument % +\marginpar{\CMD{leftX}\\\CMD{rightX}} of the \CMD{left}\index{left@\textbackslash left} +and \CMD{right}\index{right@\textbackslash right} +command, where \LaTeX{} stretches the size in a way that everything between +the pair of left and right parentheses is smaller than the parentheses themselves. In some cases% +\footnote{See section \vref{cap:Use-of-the-vphantom} for example.% +} it may be useful to choose a fixed height, which is possible with +the \CMD{big}-series. Instead of writing \CMD{leftX} +or \CMD{rightX} one of the following commands can +be chosen: + +\medskip +\marginpar{\CMD{bigX}\\\CMD{BigX}\\\CMD{biggX}\\\CMD{BiggX}} +\index{big@\textbackslash big}\index{Big@\textbackslash Big}% +\index{bigg@\textbackslash bigg}\index{Bigg@\textbackslash Bigg} +\begin{tabular}{rl} +default & ()[]/\textbackslash$\lbrace\rbrace$|$\Vert$ $\lfloor\rfloor$ +$\lceil\rceil$ $\langle\rangle$ $\uparrow\Uparrow$ $\downarrow\Downarrow$% +$\updownarrow\Updownarrow$\\[2pt] +\CMD{bigX} & $\big(\big)$ $\big[\big]$ +$\bigl/\big\backslash\big\{\big\}$ +$\big|$ $\big\Vert$ $\big\lfloor\big\rfloor$ $\big\lceil\big\rceil$ +$\big\langle\big\rangle$ $\big\uparrow\big\Uparrow$ $\big\downarrow\big\Downarrow$ +$\big\updownarrow\big\Updownarrow$\\[2pt] +\CMD{BigX} & $\Big(\Big)$ +$\Big[\Big]$ $\Bigl/\Big\backslash\Big\{\Big\}$ +$\Big|$ $\Big\Vert$ $\Big\lfloor\Big\rfloor$ +$\Big\lceil\Big\rceil$ $\Big\langle\Big\rangle$ +$\Big\uparrow\Big\Uparrow$ $\Big\downarrow\Big\Downarrow$ +$\Big\updownarrow\Big\Updownarrow$\\[4pt] +\CMD{biggX} & $\bigg(\bigg)$ +$\bigg[\bigg]$ $\biggl/\bigg\backslash\bigg\{\bigg\}$% +$\bigg|$ $\bigg\Vert$ $\bigg\lfloor\bigg\rfloor$ $\bigg\lceil\bigg\rceil$ +$\bigg\langle\bigg\rangle$ $\bigg\uparrow\bigg\Uparrow$ +$\bigg\downarrow\bigg\Downarrow$ $\bigg\updownarrow\bigg\Updownarrow$\\[8pt] +\CMD{Big}gX & $\Bigg(\Bigg)$ +$\Bigg[\Bigg]$ $\Biggl/\Bigg\backslash\Bigg\{\Bigg\}$ +$\Bigg|$ $\Bigg\Vert$ $\Bigg\lfloor\Bigg\rfloor$ +$\Bigg\lceil\Bigg\rceil$ $\Bigg\langle\Bigg\rangle$ +$\Bigg\uparrow\Bigg\Uparrow$ $\Bigg\downarrow\Bigg\Downarrow$% +$\Bigg\updownarrow\Bigg\Updownarrow$ +\end{tabular} + +\medskip{} +Only a few commands can be written in a short form like \CMD{big(}. +The ``X{}'' has to be replaced with one of the following characters +or commands from table \ref{tab:big}, which shows the parentheses +character, its code for the use with one of the ``big{}'' commands +and an example with the code for that. + +\marginpar{\CMD{biglX}\\\CMD{bigrX}}% +For all commands there exists a left/right version \CMD{bigl}\index{bigl@\textbackslash bigl}, +\CMD{bigr}\index{bigr@\textbackslash bigr}, \CMD{Bigl}\index{Bigl@\textbackslash Bigl} +and so on, which only makes sense when writing things like: + +\begin{showexample}[width=0.3\linewidth,wide] +\begin{align} + \biggl)\times \frac{a}{b} \times\biggr( +\end{align} +\begin{align} + \bigg)\times \frac{a}{b} \times\bigg( +\end{align} +\end{showexample} + +\LaTeX{} takes the \verb|\biggl)| as a mathopen symbol, which has by default +another horizontal spacing. + +In addition to the above additional commands there exist some more: +\CMD{bigm}\index{bigm@\textbackslash bigm}, \CMD{Bigm}\index{Bigm@\textbackslash Bigm}, \CMD{biggm}\index{biggm@\textbackslash biggm} and \CMD{Biggm}\index{Biggm@\textbackslash Biggm}, +which work as the standard ones (without the addtional ``m{}'') +but add some more horizontal space% +\marginpar{\CMD{bigmX}\\\CMD{bigmX}} between the delimiter and the formula before and after (see table \ref{cap:Difference-between-the-bigg}). + +\begin{table}[htb] +\begin{showexample} +$3\bigg|a^2-b^2-c^2\bigg|+2$ +\end{showexample} +\vspace{-15pt} +\begin{showexample} +$3\biggm|a^2-b^2-c^2\biggm|+2$ +\end{showexample} +\caption{Difference between the default +\CMD{bigg} and the \CMD{biggm} command}\label{cap:Difference-between-the-bigg} +\end{table} + + +\newcommand{\xstrut}{\rule{0pt}{0.55cm}} +{\setlength{\hangindent}{-\marginparwidth} +\begin{longtable}{l>{\raggedright}p{2.4cm}l>{\raggedright}p{5.7cm}} +Char & Code & Example & Code\tabularnewline +\hline +\endhead +\xstrut$(\ )$ & ( ) & % + $3\Big(a^{2}+b^{c^{2}}\Big)$ & % + \texttt{3\CMD{Big}( a\^{}2+b\^{}\{c\^{}2\}\CMD{Big})}\tabularnewline +% +\xstrut$[\ ]$ & {[} {]}& +$3\Big[a^{2}+b^{c^{2}}\Big]$& +\texttt{3\CMD{Big}{[} a\^{}2+b\^{}\{c\^{}2\}\CMD{Big}{]}}\tabularnewline +% +\xstrut$/\ \backslash$ & \texttt{/}\CMD{backslash} & $3\Big/a^{2}+b^{c^{2}}\Big\backslash$ & +\texttt{3\CMD{Big}/ a\^{}2+b\^{}\{c\^{}2\}\CMD{Big}\CMD{backslash}}\tabularnewline +% +\xstrut$\{\ \}$ & \CMD{\{}\CMD{\}}\\ + & $3\Big\{ a^{2}+b^{c^{2}}\Big\}$ & +\texttt{3\CMD{Big}\CMD{\{} a\^{}2+b\^{}\{c\^{}2\}\CMD{Big}\CMD{\}}}\tabularnewline +% +\xstrut$\vert\ \Vert$ & | \CMD{Vert} & $3\Big|a^{2}+b^{c^{2}}\Big\Vert$ & \texttt{3\CMD{Big}|a\^{}2+b\^{}\{c\^{}2\}\CMD{Big}\CMD{Vert}}\tabularnewline +% +\xstrut$\lfloor\ \rfloor$ & \CMD{lfloor} \CMD{rfloor} & % + $3\Big\lfloor a^{2}+b^{c^{2}}\Big\rfloor$ & % + \texttt{3\CMD{Big}\CMD{lfloor} a\^{}2+b\^{}\{c\^{}2\} + \CMD{Big}\CMD{rfloor}}\tabularnewline +% +\xstrut$\lceil\ \rceil$ & \CMD{lceil}\CMD{rceil} & + $3\Big\lceil a^{2}+b^{c^{2}}\Big\rceil$ & + \texttt{3\CMD{Big}\CMD{lceil} a\^{}2+b\^{}\{c\^{}2\} \CMD{Big}% + \CMD{rceil}}\tabularnewline +% +\xstrut$\langle\ \rangle$ & \CMD{langle}\CMD{rangle} & + $3\Big\langle a^{2}+b^{c^{2}}\Big\rangle$ & + \texttt{3\CMD{Big}\CMD{langle} a\^{}2+b\^{}\{c\^{}2\}% + \CMD{Big}\CMD{rangle}}\tabularnewline +% +\xstrut$\uparrow\ \Uparrow$ & + \CMD{uparrow} \CMD{Uparrow} & + $3\Big\uparrow a^{2}+b^{c^{2}}\Big\Uparrow$ & + \texttt{3\CMD{Big}\CMD{uparrow} a\^{}2+b\^{}\{c\^{}2\}% + \CMD{Big}\CMD{Uparrow}}\tabularnewline +% +\xstrut$\downarrow\ \Downarrow$ & \CMD{downarrow} \CMD{Downarrow} & + $3\Big\downarrow a^{2}+b^{c^{2}}\Big\Downarrow$ & + \texttt{3\CMD{Big}\CMD{downarrow} a\^{}2+b\^{}\{c\^{}2\} + \CMD{Big}\CMD{Downarrow}}\tabularnewline +% +\xstrut$\updownarrow\ \Updownarrow$ & \CMD{updownarrow} \CMD{Updownarrow} & + $3\Big\updownarrow a^{2}+b^{c^{2}}\Big\Updownarrow$ & + \texttt{3\CMD{Big}\CMD{updownarrow} a\^{}2+b\^{}\{c\^{}2\} + \CMD{Big}\CMD{Updownarrow}}\tabularnewline +& & &\\ +\caption{Use of the different parentheses for the ``big{}'' commands} \label{tab:big}\tabularnewline +\end{longtable}} + + +\subsection{Examples} +\subsubsection{Braces over several lines}\label{cap:Use-of-the-vphantom} +The following equation in the single line mode looks like + + +\begin{equation} +\frac{1}{2}\Delta(f_{ij}f^{ij})=2\left(\sum_{i{\mskip\medmuskip} +\def\;{\mskip\thickmuskip} +\def\!{\mskip-\thinmuskip} +\end{verbatim} +In math mode there is often a need for additional tiny spaces between variables, +e.g. $L\dfrac{di}{dt}$ written with a tiny space between $L$ and +$\dfrac{di}{dt}$ looks nicer: $L\:\dfrac{di}{dt}$. Table \ref{cap:Spaces-in-math mode} +shows a list of all commands for horizontal space which can be used +in math mode. The ``space{}'' is seen ``between{}'' the boxed a +and b. For all examples a is \texttt{\textbackslash{}boxed\{a\}} and +b is \texttt{\textbackslash{}boxed\{b\}}. The short forms for some +\marginpar{\CMD{hspace}\\ +\CMD{hphantom}\\ +\CMD{kern}}spaces may cause problems with other packages. In this case use the +long form of the commands. + +\subsection{Problems}\label{space:problems} +Using \verb+\hphantom+\index{hphantom@\textbackslash hphantom}\index{phantom@\textbackslash phantom} +in mathmode depends to on object. \verb+\hphantom+ reserves only the space of +the exact width without any additional space. In the following example the second line is +wrong: \verb+& \hphantom{\rightarrow} b\\+. It does not reserve any additional space. + +\begin{showexample}[width=0.15\linewidth,wide] +\begin{align*} +a & \rightarrow b\\ + & \hphantom{\rightarrow} b\\ + & \mkern\thickmuskip\hphantom{\rightarrow}\mkern\thickmuskip b\\ + & \mathrel{\hphantom{\rightarrow}} b +\end{align*} +\end{showexample} + +This only works when the math symbol is a mathrel one, otherwise you have to change the +horizontal space to \verb+\medmuskip+ or \verb+\thinmuskip+. For more informations +about the math objects look into \verb+fontmath.ltx+ or \verb+amssymb.sty+ or use the \verb+\show+ +macro, which prints out the type of the mathsymbol, e.g.: \verb+\show\rightarrow+ with the +output: + +\begin{lstlisting} +> \rightarrow=\mathchar"3221. +l.20 \show\rightarrow +\end{lstlisting} + +The first digit represents the type: + +\begin{tabular}{l@{ : }l} +0 & ordinary\\ +1 & large operator\\ +2 & binary operation\\ +3 & relation\\ +4 & opening\\ +5 & closing\\ +6 & punctuation\\ +7 & variable family +\end{tabular} + + +%\iffalse +\begingroup +\thinmuskip=3mu +\medmuskip=4mu plus 2mu minus 4mu +\thickmuskip=5mu plus 5mu + +\medskip +Grouping a math symbol can change the behaviour in horizontal spacing. Compare +$50\mkern\thinmuskip\times\mkern\thinmuskip10^{12}$ and $50{\times}10^{12}$, the first one is typeset with +\verb+$50\times10^{12}$+ and the second one with \verb+$50{\times}10^{12}$+. +\endgroup +%\fi +Another possibilty is to use the \verb+numprint+ package.\footnote{% +\href{ftp://ftp.dante.de/tex-archive/macros/latex/contrib/numprint/}% +{CTAN://macros/latex/contrib/numprint/}} + +\subsection{Dot versus comma}\label{subsec:dot-comma} +\marginpar{\CMD{mathpunct}\\\CMD{mathord}}% +In difference to a decimal point\index{decimal point} and a \index{comma}comma as a marker of thousends a lot of +countries prefer it vice versa. To get the same behaviour the meaning of \index{dot}dot and +comma has to be changed: + +\begin{align} +1,234,567.89 & \textrm{ default}\\ +1.234.567,89 & \textrm{ vice versa, wrong spacing}\\\label{eq:comma} +1\mathpunct{.}234\mathpunct{.}567{,}89 & \textrm{ correct spacing} +\end{align} + + +\begin{lstlisting} +1,234,567.89 & \textrm{ default}\\ +1.234.567,89 & \textrm{ vice versa, wrong spacing}\\ +1\mathpunct{.}234\mathpunct{.}567{,}89 & \textrm{ correct spacing} +\end{lstlisting} + +The original definitions from \verb+fontmath.ltx+\footnote{% +Located in \url{texmf/tex/latex/base/}} are + +\begin{verbatim} +\DeclareMathSymbol{,}{\mathpunct}{letters}{"3B} +\DeclareMathSymbol{.}{\mathord}{letters}{"3A} +\end{verbatim} + +\noindent\index{mathord@\textbackslash mathord}\index{mathpunct@\textbackslash mathpunct}and can be changed for a documentwide other behaviour. In the above equation~\ref{eq:comma} the comma is only set in a pair of braces \verb+{,}+, which is the same as writing \verb+\mathord{,}+ because LaTeX{} handles everything +inside of parenthises as a formula, which gets the same spacing. + +It is also possible to use the package \verb+icomma.sty+\footnote{% +\href{ftp://ftp.dante.de/tex-archive/macros/latex/contrib/was/}% +{CTAN:// macros/latex/contrib/was/}} for a documentwide +correct spacing. + +\subsection{Vertical whitespace}\label{subsec:whitespace} +\subsubsection{Before/after math expressions}\label{subsubsec:displayskip} + +There are four predefined lengths, which control the vertical whitespace +of displayed formulas: +\begin{verbatim} +\abovedisplayskip=12pt plus 3pt minus 9pt +\abovedisplayshortskip=0pt plus 3pt +\belowdisplayskip=12pt plus 3pt minus 9pt +\belowdisplayshortskip=7pt plus 3pt minus 4pt +\end{verbatim} +\index{abovedisplayskip@\textbackslash abovedisplayskip} +\index{abovedisplayshortskip@\textbackslash abovedisplayshortskip} +\index{belowdisplayskip@\textbackslash belowdisplayskip} +\index{belowdisplayshortskip@\textbackslash belowdisplayshortskip} +The short skips are used if the formula starts behind the end of the foregoing +last line. Only for demonstration the shortskips +are set to \verb|0pt| in the following examples and the normal skips to \verb|20pt| without any glue: + +\medskip +\noindent\fbox{\begin{minipage}{\linewidth-2\fboxsep-2\fboxrule} +\abovedisplayshortskip=0pt +\belowdisplayshortskip=0pt +\abovedisplayskip=20pt +\belowdisplayskip=20pt +\noindent The line ends before. +\begin{equation} +f(x) = \int\frac{\sin x}{x}dx +\end{equation} +\noindent The line doesn't end before the formula. +\begin{equation} +f(x) = \int\frac{\sin x}{x}dx +\end{equation} +\noindent And the next line starts as usual with some text ... +\end{minipage}} + +\medskip +\begin{lstlisting} +\abovedisplayshortskip=0pt +\belowdisplayshortskip=0pt +\abovedisplayskip=20pt +\belowdisplayskip=20pt +\noindent The line ends before. +\begin{equation} + f(x) = \int\frac{\sin x}{x}dx +\end{equation} +\noindent The line doesn't end before the formula. +\begin{equation} + f(x) = \int\frac{\sin x}{x}dx +\end{equation} +\noindent And the next line starts as usual with some text ... +\end{lstlisting} + +\subsubsection{Inside math expressions}\label{subsec:vspacing} + +\paragraph{\CMD{\textbackslash []}} +This works inside the math mode in the same way as in the text mode. + + +\paragraph{\CMD{jot}}\marginpar{\CMD{jot}} +The vertical space between the lines for all math expressions which allow multiple +lines can be changed with the length +\verb|\jot|\index{jot@\textbackslash jot}, which is predefined as + +\begin{verbatim} +\newdimen\jot \jot=3pt +\end{verbatim} + +The following three formulas show this for the default value, \verb|\jot=0pt| and \verb|\jot=10pt|. + +\begin{minipage}{0.3\linewidth} +\begin{eqnarray*} + y & = & d\\ + y & = & c\frac{1}{x}+d\\ + y & = & b\frac{1}{x^{2}}+cx+d\\ +\end{eqnarray*} +\end{minipage}\hfill +\begin{minipage}{0.3\linewidth} +\jot=0pt +\begin{eqnarray*} + y & = & d\\ + y & = & c\frac{1}{x}+d\\ + y & = & b\frac{1}{x^{2}}+cx+d\\ +\end{eqnarray*} +\end{minipage}\hfill +\begin{minipage}{0.3\linewidth} +\jot=10pt +\begin{eqnarray*} + y & = & d\\ + y & = & c\frac{1}{x}+d\\ + y & = & b\frac{1}{x^{2}}+cx+d\\ +\end{eqnarray*} +\end{minipage} + +Defining a new environment with a parameter makes things easier, because changes to the +length are locally. +\begin{lstlisting} +\newenvironment{mathspace}[1]{% + \setlength{\jot}{#1}% + \ignorespaces% +}{% + \ignorespacesafterend% +} +\end{lstlisting} + +\paragraph{\CMD{arraystretch}}\cIndex{arraystretch} +\marginpar{\CMD{arraystretch}}% +The vertical space between the lines for all math expressions which contain an +\verb+array+ environment can be changed with the command +\verb|\arraystretch|, which is predefined +as +\begin{verbatim} +\def\arraystretch{1} +\end{verbatim} + +Renewing this definition is global to all following math expressions, so it should be used +in the same way as \verb+\jot+. + +\paragraph{\CMD{vskip}}\cIndex{vskip}\index{Vertical spacing}\index{Spacing!vertical} +Another spacing for single lines is possible with the \CMD{vskip} macro: + +\begin{LTXexample}[width=0.4\linewidth] +\[ +\begin{pmatrix} +0 & 1 & 1 & 0 & 0 & 1 \\ +1 & 0 & 0 & 1 & 1 & 0 \\ +\noalign{\vskip2pt} +0 & 1 & 1 & 0 & \dfrac{1}{\sqrt{2}} & 1\\ +\noalign{\vskip2pt} +1 & 0 & 1 & 0 & 1 & 0 \\ +0 & 1 & 0 & 1 & 0 & 1 \\ +\end{pmatrix} +\] +\end{LTXexample} + + + +\paragraph{Package \texttt{setspace}} +\PIndex{setspace} +To have all formulas with another vertical spacing, one can choose +the package \verb+setspace+ and redefining some of the math macros, e.g. + +\begingroup +\newcommand*\Array[2][1]{\setstretch{#1}\array{#2}} +\let\endArray\endarray + +\begin{lstlisting} +\newcommand*\Array[2][1]{\setstretch{#1}\array{#2}} +\let\endArray\endarray +\end{lstlisting} + +\begin{showexample}[width=0.25\linewidth] +\[ +\begin{Array}[2]{cc} +a =&b\\ +a =&b\\ +a =&b +\end{Array} +\] + +text $\begin{Array}{cc} +a =&b\\ +a =&b\\ +a =&b +\end{Array}$ text +\end{showexample} +\endgroup + +\section{Styles}\label{sec:Styles} + +\begin{table}[htb] +\newlength\formula +\settowidth{\formula}{$f(t)=\frac{T}{2\pi }\int \frac{1}{\sin \frac{\omega }{t}}dt$} +\begin{tabular}{l|ll} +Mode & Inline & Displayed\\\hline +default & $f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt$& +\begin{minipage}{\formula}\[ +f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt\] +\end{minipage}\\ +\CMD{displaystyle} & +${\displaystyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}$& +\begin{minipage}{\formula}\[ +{\displaystyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}\] +\end{minipage}\\ +\CMD{scriptstyle} & +${\scriptstyle {\textstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}}$& +\begin{minipage}{\formula}\[ +{\textstyle {\scriptstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}}\] +\end{minipage}\tabularnewline +\CMD{scriptscriptstyle} & +${\scriptscriptstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}$& +\begin{minipage}{\formula}\[ +{\scriptscriptstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}\] +\end{minipage}\tabularnewline +\CMD{textstyle} & +${\textstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}$& +\begin{minipage}{\formula}\[ +{\textstyle f(t)=\frac{T}{2\pi}\int\frac{1}{\sin\frac{\omega}{t}}dt}\] +\end{minipage} +\end{tabular} +\caption{Math styles}\label{cap:Mathstyles} +\end{table} + +\makeatletter +\newenvironment{smallequation}[1]{% + \skip@=\baselineskip + #1% + \baselineskip=\skip@ + \equation +}{\endequation \ignorespacesafterend} +\makeatother + +This depends on the environment in which they are used. An inline +formula has a default math % +\marginpar{\CMD{textstyle}\\ +\CMD{displaystyle}\\ +\CMD{scriptstyle}\\ +\CMD{scripscriptstyle}} fontsize called \CMD{textstyle}\index{textstyle@\textbackslash textstyle}, +which is smaller than the one for a display formula (see section \ref{display}), which is called +\CMD{displaystyle}\index{displaystyle@\textbackslash displaystyle}. +Beside this predefinition there are two other special fontstyles for +math, \CMD{scriptstyle}\index{scriptstyle@\textbackslash scriptstyle} +and \CMD{scriptscriptstyle}\index{scriptscriptstyle@\textbackslash scriptscriptstyle}. +They are called ``style{}'' in difference to ``size{}'', because +they have a dynamic character, their real fontsize belongs to the +environment in which they are used. A fraction for example is by default in scriptstyle when it is in an +inline formula like this $\frac{a}{b}$, which can be changed to +${\displaystyle \frac{a}{b}}$. +This may be in some cases useful but it looks in general ugly because +the line spacing is too big. +These four styles\index{Style} are predefined and together in a +logical relationship. It is no problem to use the other styles like +\CMD{large}\index{large@\textbackslash large}, +\CMD{Large}\index{Large@\textbackslash Large}, +... \textbf{outside} the math environment. For example a fraction written with +\CMD{Huge}\index{Huge@\textbackslash Huge}: {\Huge$\frac{a}{b}$} +(\verb|\Huge$\frac{a}{b}$|). This may cause some problems when you want to write +a displayed formula in another fontsize\index{Font size}, because it also affects the interline spacing of +the preceding part of the paragraph. +If you end the paragraph, you get problems with spacing and page breaking +above the equations. So it is better to declare the font size and then +restore the baselines: +\begin{smallequation}{\tiny} +\int_1^2\,\frac{1}{x^2}\,dx=0.5 +\end{smallequation} +\begin{lstlisting} +\makeatletter +\newenvironment{smallequation}[1]{% + \skip@=\baselineskip + #1% + \baselineskip=\skip@ + \equation +}{\endequation \ignorespacesafterend} +\makeatother + +\begin{smallequation}{\tiny} +\int_1^2\,\frac{1}{x^2}\,dx=0.5 +\end{smallequation} +\end{lstlisting} +If you use this the other way round for huge fontsizes, don't forget to load package +\verb+exscale+ (see section~\vref{sec:exscale}). Also see this section for diffent symbol sizes. + + + +\section{Dots\label{sec:Dots}} + +\marginpar{\CMD{cdots}\\ +\CMD{dots}\\ +\CMD{dotsb}\\ +\CMD{dotsc}\\ +\CMD{dotsi}\\ +\CMD{dotsm}\\ +\CMD{dotso}\\ +\CMD{ldots}\\ +\CMD{vdots}}% +In addition to the above decorations there are some more different +dots which are single commands and not by default over/under a letter. +It is not easy to see the differences between some of them. Dots from +lower left to upper right are possible with \verb|\reflectbox{$\ddots$}|\index{reflectbox@\textbackslash reflectbox} +\reflectbox{$\ddots$} + +\begin{table}[htb] +\centering\begin{tabular}{*{5}{rc}} +\CMD{cdots}\index{cdots@\textbackslash cdots}&$\cdots$ & +\CMD{ddots}\index{ddots@\textbackslash ddots}&$\ddots$ & +\CMD{dotsb}\index{dotsb@\textbackslash dotsb}&$\dotsb$ & +\CMD{dotsc}\index{dotsc@\textbackslash dotsc}&$\dotsc$ & +\CMD{dotsi}\index{dotsi@\textbackslash dotsi}&$\dotsi$ \\\hline +\CMD{dotsm}\index{dotsm@\textbackslash dotsm}&$\dotsm$ & +\CMD{dotso}\index{dotso@\textbackslash dotso}&$\dotso$ & +\CMD{ldots}\index{ldots@\textbackslash ldots}&$\ldots$ & +\CMD{vdots}\index{vdots@\textbackslash vdots}&$\vdots$ +\end{tabular} +\caption{Dots in math mode} +\end{table} + + + +\section{Accents}\label{sec:Accents} + +The letter ``a{}'' is only for demonstration. The table \ref{cap:Accents-in-math mode} +shows all in standard \LaTeX{} available accents and also the ones placed under a character. +With package \verb|amssymb| it is easy to define new accents. For +more information see section \vref{amssymb} or +other possibilities at section \vref{sec:package-accent}. + + +\begin{table}[htb] +\makebox[\textwidth]{% +\begin{tabular}{rc|rc|rc} +\CMD{acute}\index{acute@\textbackslash acute} &$\acute{a}$& +\CMD{bar}\index{bar@\textbackslash bar}&$\bar{a}$& +\CMD{breve}\index{breve@\textbackslash breve} & $\breve{a}$\\ +\CMD{bar}\index{bar@\textbackslash bar}&$\bar{a}$& +\CMD{breve}\index{breve@\textbackslash breve} &$\breve{a}$\tabularnewline +\CMD{check}\index{check@\textbackslash check} &$\check{a}$& +\CMD{dddot} \index{dddot@\textbackslash dddot}&$\dddot{a}$& +\CMD{ddot}\index{ddot@\textbackslash ddot}&$\ddot{a}$\tabularnewline +\CMD{dot}\index{dot@\textbackslash dot}&$\dot{a}$& +\CMD{grave}\index{grave@\textbackslash grave}&$\grave{a}$& +\CMD{hat}\index{hat@\textbackslash hat}&$\hat{a}$\tabularnewline +\CMD{mathring}\index{mathring@\textbackslash mathring}&$\mathring{a}$& +\CMD{overbrace}\index{overbrace@\textbackslash overbrace}&$\overbrace{a}$& +\CMD{overleftarrow}\index{overleftarrow@\textbackslash overleftarrow}&$\overleftarrow{a}$\tabularnewline +\CMD{overleftrightarrow}\index{overleftrightarrow@\textbackslash overleftrightarrow}&$\overleftrightarrow{a}$& +\CMD{overline}\index{overline@\textbackslash overline}&$\overline{a}$& +\CMD{overrightarrow}\index{overrightarrow@\textbackslash overrightarrow}&$\overrightarrow{a}$\tabularnewline +\CMD{tilde}\index{tilde@\textbackslash tilde}&$\tilde{a}$& +\CMD{underbar}\index{underbar@\textbackslash underbar}&$\underbar{a}$& +\CMD{underbrace}\index{underbrace@\textbackslash underbrace}&$\underbrace{a}$\tabularnewline +\CMD{underleftarrow}\index{underleftarrow@\textbackslash underleftarrow}&$\underleftarrow{a}$& +\CMD{underleftrightarrow}\index{underleftrightarrow@\textbackslash underleftrightarrow}& +$\underleftrightarrow{a}$& +\CMD{underline}\index{underline@\textbackslash underline}&$\underline{a}$\tabularnewline +\CMD{underrightarrow}\index{underrightarrow@\textbackslash underrightarrow}&$\underrightarrow{a}$& +\CMD{vec}\index{vec@\textbackslash vec}&$\vec{a}$& +\CMD{widehat}\index{widehat@\textbackslash widehat}&$\widehat{a}$\tabularnewline +\CMD{widetilde}\index{widetilde@\textbackslash widetilde}&$\widetilde{a}$ & & & & +\end{tabular}% +} +\caption{Accents in math mode}\label{cap:Accents-in-math mode} +\end{table} + +The letters \verb+i+ and \verb+j+ can be substituted with the macros \verb+\imath+ and \verb+\jmath+ when an accents is placed over these letters and the dot should +disappear: $\vec{\imath}\ \dddot{\jmath}$ (\verb+$\vec{\imath}\ \dddot{\jmath}$+). +\index{imath@\textbackslash imath}\index{jmath@\textbackslash jmath} + +Accents can be used in different ways, e.g. strike a single character with a horizontal line like +\verb+$\mathaccent`-A$+: $\mathaccent`-A$ or \verb+$\mathaccent\mathcode`-A$+: $\mathaccent\mathcode`-A$. +In section \vref{cancel.sty} is a better solution for more than one character. + +\subsection{Over- and underbrackets} +There are no \CMD{underbracket}\index{underbracket@\textbackslash{}underbracket} and \CMD{overbracket}\index{overbracket@\textbackslash{}overbracket} +commands in the list of accents. They can be defined in the preamble +with the following code. + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1cm] +\makeatletter +\def\underbracket{% + \@ifnextchar[{\@underbracket}{\@underbracket [\@bracketheight]}% +} +\def\@underbracket[#1]{% + \@ifnextchar[{\@under@bracket[#1]}{\@under@bracket[#1][0.4em]}% +} +\def\@under@bracket[#1][#2]#3{%\message {Underbracket: #1,#2,#3} + \mathop{\vtop{\m@th \ialign {##\crcr $\hfil \displaystyle {#3}\hfil $% + \crcr \noalign {\kern 3\p@ \nointerlineskip }\upbracketfill {#1}{#2} + \crcr \noalign {\kern 3\p@ }}}}\limits} +\def\upbracketfill#1#2{$\m@th \setbox \z@ \hbox {$\braceld$} + \edef\@bracketheight{\the\ht\z@}\bracketend{#1}{#2} + \leaders \vrule \@height #1 \@depth \z@ \hfill + \leaders \vrule \@height #1 \@depth \z@ \hfill \bracketend{#1}{#2}$} +\def\bracketend#1#2{\vrule height #2 width #1\relax} +\makeatother +\end{lstlisting} + +\begin{enumerate} +\item \verb/\underbrace{...}/ is an often used command: +\begin{eqnarray} +\underbrace{{x^{2}+2x+1}} & = & f(x)\\ +\left(x+1\right)^{2}\,\,\,\nonumber +\end{eqnarray} + +\item Sometimes an under\textbf{bracket} is needed, which can be used in + more ways than \verb/\underbrace{...}/. An example for \verb/\underbracket{...}/: + + +\begin{eqnarray*} +\textrm{Hate Science }& \underbracket[0.5pt]{1\rightarrow2\rightarrow3\rightarrow4} + \underbracket[0.75pt][0.75em]{\rightarrow5\rightarrow6\rightarrow7} + \underbracket[1pt][1em]{\rightarrow8\rightarrow9\rightarrow10} & \textrm{Love Science}\\ + & \textrm{low}\hspace{1.5cm}\textrm{medium}\hspace{1.5cm}\textrm{high} + \end{eqnarray*} + + +\end{enumerate} + +\subsubsection{Use of \CMD{underbracket\{...\}}} + +The \verb/\underbracket{...}/ command has two optional parameters: + +\begin{itemize} +\item the line thickness in any valid latex unit, e.g. \verb/1pt/ +\item the height of the edge brackets, e.g. \verb/1em/ +\end{itemize} +using without any parameters gives the same values for thickness and +height as predefined for the \verb/\underbrace/ command. + + +\vspace{0.3cm} +\begin{center} +\begin{tabular}{|c|c|c|} +\hline +1.& \verb/$\underbracket{foo~bar}$/ & $\underbracket{foo~bar}$ \tabularnewline\hline +2.& \verb/$\underbracket[2pt]{foo~bar}$/ & $\underbracket[2pt]{foo~bar}$ \tabularnewline\hline +3.& \verb/$\underbracket[2pt][1em] {foo~bar}$/& $\underbracket[2pt][1em] {foo~bar}$\tabularnewline\hline +\end{tabular} +\end{center} + + +\subsubsection{Overbracket} + +In addition to the underbracket an overbracket is also useful, which can be used in +more ways than \verb/\overbrace{...}/. For example: + + +\begin{eqnarray*} +\textrm{Hate Science }& \overbracket[0.5pt]{1\rightarrow2\rightarrow3\rightarrow4} + \overbracket[0.75pt][0.75em]{\rightarrow5\rightarrow6\rightarrow7} + \overbracket[1pt][1em]{\rightarrow8\rightarrow9\rightarrow10} & \textrm{Love Science}\\ + & \textrm{low}\hspace{1.5cm}\textrm{medium}\hspace{1.5cm}\textrm{high}\nonumber + \end{eqnarray*} + + +The \verb/\overbracket{...}/ command has two optional parameters: + +\begin{itemize} +\item the line thickness in any valid latex unit, e.g. \verb/1pt/ +\item the height of the edge brackets, e.g. \verb/1em/ +\end{itemize} +using without any parameters gives the same values for thickness and +height as predefined for the \verb/\overbrace/ command. + + +\vspace{0.3cm} +\begin{center}\begin{tabular}{|c|c|c|} +\hline +1.&\verb/$\overbracket {foo\ bar}$/ & $\overbracket {foo\ bar}$ \tabularnewline\hline +2.&\verb/$\overbracket[2pt] {foo\ bar}$/ &$\overbracket[2pt] {foo\ bar}$ \tabularnewline\hline +3.&\verb/$\overbracket[2pt] [1em] {foo\ bar}$/&$\overbracket[2pt] [1em] {foo\ bar}$\tabularnewline\hline +\end{tabular} +\end{center} + + +\subsection{Vectors} + +Especially for vectors\index{Vector} there is the \verb|esvect.sty|\index{esvect.sty}% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/esvect/}% + {CTAN://macros/latex/contrib/esvect/}} package, which looks better than the +\CMD{overrightarrow}\index{overrightarrow@\textbackslash overrightarrow}, f.ex: + +\begin{table}[htb] +\centering\begin{tabular}{c|c} +\textbackslash{}vv\{...\}&\textbackslash{}overrightarrow\{...\}\tabularnewline\hline +$\vv{a}$ & $\overrightarrow{a}$\tabularnewline +$\vv{abc}$ & $\overrightarrow{abc}$\tabularnewline +$\vv{\imath}$ & $\overrightarrow{\imath}$\tabularnewline +$\vv*{A}{x}$ & $\overrightarrow{A}_{x}$\tabularnewline +\end{tabular} +\caption{Vectors with package \texttt{esvect.sty} (in the right column the +default one from \LaTeX{})} +\end{table} + + +Look into the documentation for more details about \verb|esvect.sty|. + +\section{Exponents and indices}\label{sec:exponents} +The two active characters \verb|_| and \verb|^| can only be used in math mode. The +\textbf{following} character will be printed as an index (\verb|$y=a_1x+a_0$|: $y=a_1x+a_0$) +or as an exponent (\verb|$x^2+y^2=r^2$|: $x^2+y^2=r^2$). For more than the next character +put it inside of \verb|{}|, like \verb|$a_{i-1}+a_{i+1}}| doesn't work with lower greek character. See +section \vref{sec:greek-AMS} for the \verb|\pmb| macro, which makes it possible to print bold lower greek\index{Greek} letters. Not all upper case letters have own macro names. If there is no difference to the roman font, then the default letter is used, e.g.: A for the upper case of +$\alpha$. Table \ref{tab:greek-letters} shows only those upper case letters which have own macro names. Some of the lower case letters have an additional \verb|var| option for +an alternative. + +\bgroup +\tabcolsep=3pt +\begin{longtable}{lclccc} +lower & default & upper & default & \verb|\mathbf| & \verb|\mathit|\\\hline +\endhead +\verb|\alpha| & $\alpha$ \\ +\verb|\beta| & $\beta$ \\ +\verb|\gamma| & $\gamma$ + & \verb|\Gamma| & $\Gamma$ & $\mathbf{\Gamma}$ & $\mathit{\Gamma}$\\ +\verb|\delta| & $\delta$ + & \verb|\Delta| & $\Delta$ & $\mathbf{\Delta}$ & $\mathit{\Delta}$\\ +\verb|\epsilon| & $\epsilon$\\ +\verb|\varepsilon| & $\varepsilon$\\ +\verb|\zeta| & $\zeta$\\ +\verb|\eta| & $\eta$ \\ +\verb|\theta| & $\theta$ + & \verb|\Theta| & $\Theta$ & $\mathbf{\Theta}$ & $\mathit{\Theta}$\\ +\verb|\vartheta| & $\vartheta$\\ +\verb|\iota| & $\iota$\\ +\verb|\kappa| & $\kappa$\\ +\verb|\delta| & $\lambda$ + & \verb|\Lambda| & $\Lambda$ & $\mathbf{\Lambda}$ & $\mathit{\Lambda}$\\ +\verb|\mu| & $\mu$ \\ +\verb|\nu| & $\nu$\\ +\verb|\xi| & $\xi$ + & \verb|\Xi| & $\Xi$ & $\mathbf{\Xi}$ & $\mathit{\Xi}$\\ +\verb|\pi| & $\pi$ + & \verb|\Pi| & $\Pi$ & $\mathbf{\Pi}$ & $\mathit{\Pi}$\\ +\verb|\varpi| & $\varpi$ \\ +\verb|\rho| & $\rho$\\ +\verb|\varrho| & $\varrho$\\ +\verb|\sigma| & $\sigma$ + & \verb|\Sigma| & $\Sigma$ & $\mathbf{\Sigma}$ & $\mathit{\Sigma}$\\ +\verb|\varsigma| & $\varsigma$\\ +\verb|\tau| & $\tau$\\ +\verb|\upsilon| & $\upsilon$ + & \verb|\Upsilon| & $\Upsilon$ & $\mathbf{\Upsilon}$ & $\mathit{\Upsilon}$\\ +\verb|\phi| & $\phi$ + & \verb|\Phi| & $\Phi$ & $\mathbf{\Phi}$ & $\mathit{\Phi}$\\ +\verb|\varphi| & $\varphi$\\ +\verb|\chi| & $\chi$ \\ +\verb|\psi| & $\psi$ + & \verb|\Psi| & $\Psi$ & $\mathbf{\Psi}$ & $\mathit{\Psi}$\\ +\verb|\omega| & $\omega$ + & \verb|\Omega| & $\Omega$ & $\mathbf{\Omega}$ & $\mathit{\Omega}$\\[5pt] +\caption{The greek letters}\label{tab:greek-letters}\\ +\end{longtable} +\egroup + +Bold greek letters are possible with the package \verb+bm+ (see section \vref{sec:bm}) +and if they should also be upright with the package \verb+upgreek+: +\index{greek}\index{greek!upright}\index{greek!bold} + +\medskip +\verb+$\bm{\upalpha}, \bm{\upbeta} ... $+ $ \bm{\upalpha}, \bm{\upbeta} ... $ + + + + +\section{Pagebreaks} +\marginpar{\CMD{allowdisplaybreaks}}By default a displayed formula cannot have a pagebreak. This makes some sense, but sometimes it gives a better typesetting when a pagebreak is possible. + +\begin{verbatim} +\allowdisplaybreaks +\end{verbatim} + +\index{allowdisplaybreaks@\textbackslash allowdisplaybreaks} This macro enables \TeX{} to insert pagebreaks into displayed formulas whenever a newline command appears.\index{Pagebreak} With the command \verb+\displaybreak+ it is also possible to insert a pagebreak at any place.\index{displaybreak@\textbackslash displaybreak} + +\section{\CMD{stackrel}} + +\CMD{stackrel}\index{stackrel@\textbackslash stackrel} +puts a character on top of another one which may be important if a +used symbol is not predefined. For example ``$\stackrel{\wedge}{=}$'' +(\verb|\stackrel{\wedge}{=}|). +The syntax is + + +\begin{lstlisting} +\stackrel{top}{base} +\end{lstlisting} +Such symbols may be often needed so that a macro definition in the preamble makes some sense: + +\begin{lstlisting} +\newcommand{\eqdef}{% + \ensuremath{% + \stackrel{\mathrm{def}}{=}% + }% +} +\end{lstlisting} +With the \CMD{ensuremath}\index{ensuremath@\textbackslash ensuremath} +command we can use the new \CMD{eqdef} command in text +and in math mode, \LaTeX{} switches automatically in math mode, which +saves some keystrokes like the following command, which is written +without the delimiters (\texttt{\$...\$}) for the math mode \eqdef , +only \CMD{eqdef} with a space at the end. In math mode +together with another material it may look like $\vec{x}\eqdef\left(x_{1},\ldots,x_{n}\right)$ and as command sequence + +\begin{lstlisting} +$\vec{x}\eqdef\left(x_{1},\ldots,x_{n}\right)$ +\end{lstlisting} + +The fontsize of the top is one size smaller than the one from the +base, but it is no problem to get both the same size, just increase the +top or decrease the base. + +\section{\CMD{choose}} + +\CMD{choose}\index{choose@\textbackslash choose}\index{Binom} +is like \CMD{atop}\index{atop@\textbackslash atop} +with delimiters or like \CMD{frac}\index{frac@\textbackslash frac} +without the fraction line and also with delimiters. It is often used +for binoms and has the following syntax: + +\begin{lstlisting} +{above \choose below} +\end{lstlisting} +The two braces are not really important but it is safe to use them. + +\begin{equation} +{{m+1 \choose n}}={{m \choose n}}+{{m \choose k-1}}\label{eq:choose} +\end{equation} + +\begin{lstlisting} +{{m+1 \choose n}}={{m \choose n}}+{{m \choose k-1}}\label{eq:choose} +\end{lstlisting} + + +See section \vref{sub:Binoms} for the \AmSmath equivalents and enhancements. + +\section{Color in math expressions}\label{sec:color} +\index{Color}There is no difference in using colored text and colored math expressions. With +\begin{verbatim} +\usepackage{color} +\end{verbatim} + +\noindent in the preamble the macro \verb|\textcolor{}{}| exists. +\begin{equation} +\textcolor{blue}{f(x)} = \int\limits_1^{\infty}\textcolor{red}{\frac{1}{x^2}}\,dx=1 +\end{equation} + +\begin{lstlisting} +\begin{equation} +\textcolor{blue}{f(x)} = \int\limits_1^{\infty}\textcolor{red}{\frac{1}{x^2}}\,dx=1 +\end{equation} +\end{lstlisting} + +If all math expressions should be printed in the same color, then it is better +to use the \verb+everydisplay+ macro (section~\vref{sec:other}). + + +\section{Boldmath}\label{sec:boldmath} + +\marginpar{\CMD{mathversion}\\\CMD{boldmath}\\\CMD{unboldmath}}% +Writing a whole formula in bold\index{boldmath@\textbackslash boldmath} is possible with the command sequence +\verb|\boldmath ... \unboldmath|, which itself must be written in textmode (outside the +formula) or with the command \verb+{\mathversion{bold} ... }+. +\index{mathversion@\textbackslash mathversion}\index{boldmath@\textbackslash +boldmath}\index{unboldmath@\textbackslash unboldmath} + +\noindent\begin{minipage}{0.49\linewidth} +\[ +\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}% + }a_{ij}b_{jk}c_{ki} +\] +\end{minipage}\hfill +\begin{minipage}{0.49\linewidth} +\boldmath +\[ +\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}% + }a_{ij}b_{jk}c_{ki} +\] +\unboldmath +\end{minipage} + +\medskip +\begin{lstlisting} +\boldmath +\[ +\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}% + }a_{ij}b_{jk}c_{ki} +\] +\unboldmath +\end{lstlisting} + +The \verb+\mathversion+ macro defines a math style which is valid for all following +math expressions. If you want to have all math in bold then use this macro instead of +\verb+\boldmath+. But it is no problem to put \verb+\mathversion+ inside a group to hold +the changes locally. + +{\mathversion{bold}% +\begin{equation} +y(x) = ax^3+bx^2+cx+d +\end{equation}} + +\begin{lstlisting} +{\mathversion{bold}% +\begin{equation} +y(x) = ax^3+bx^2+cx+d +\end{equation}} +\end{lstlisting} + + +Single characters inside a formula can be written in bold with \verb|mathbf|, but only in upright mode, which is in general not useful as shown in equation~\ref{eq:bold}. It is better +to use package \verb|bm.sty| (see section \vref{sec:bm}). + +\begin{equation}\label{eq:bold} +\sum_{% + \makebox[0pt]{$% + {{\scriptscriptstyle 1\le j\le p\atop {% + {1\le j\le q\atop 1\le k\le r}}}}% + $}% + }a_{ij}\mathbf{b_{jk}}c_{ki} +\end{equation} + +\subsection[Bold math titles and items]{Bold math expressions as part of titles and items}\label{sec:titleItem} +By default the titles in sections, subsections, a.s.o. are printed in bold. Same for the +\verb|description| environment. The problem is that a math expression in one of these +environments is printed in default font shape, like the following example for a \verb|section| and +\verb|description| environment: + +\medskip +\fbox{% +\begin{minipage}{.75\linewidth} +\section*{\thesection\ Function $f(x)=x^2$} +\begin{description} +\item[This is $y=f(x)$] Only a demonstration. +\item[And $z=f(x,y)$] Another demonstration. +\end{description} +\end{minipage}% +} + +\medskip +With a redefinition of the \verb|section| and \verb|item| macros it is possible to get everything in bold font. + +\medskip +\fbox{% +\begin{minipage}{.75\linewidth} +\let\itemOld\item +\makeatletter +\renewcommand\item[1][]{% + \def\@tempa{#1} + \ifx\@tempa\@empty\itemOld\else\boldmath\itemOld[#1]\unboldmath\fi% +} +\makeatother +\section*{\thesection\ \boldmath Function $f(x)=x^2$\unboldmath} +\begin{description} +\item[This is $y=f(x)$] Only a demonstration. +\item[And $z=f(x,y)$] Another demonstration. +\end{description} +\end{minipage}% +} + + +\medskip +\begin{lstlisting} +\let\itemOld\item +\makeatletter +\renewcommand\item[1][]{% + \def\@tempa{#1} + \ifx\@tempa\@empty\itemOld\else\boldmath\itemOld[#1]\unboldmath\fi% +} +\makeatother +\let\sectionOld\section +\renewcommand\section[2][\empty]{% + \boldmath\sectionOld[#1]{#2}\unboldmath% +} +\end{lstlisting} + +\section{Multiplying numbers} +When the dot is used as the decimal marker as in the United States, the preferred sign +for the multiplication of +numbers or values of quantities is a cross (\verb|\times| $\times$ ), not a half-high and +centered dot (\verb|\cdot| $\cdot$ ). + +When the comma is used as the decimal marker as in Europe, the preferred sign for the +multiplication of +numbers is the half-high dot. The multiplication of quantity symbols (or numbers in +parentheses or values of +quantities in parentheses) may be indicated in one of the following ways: $ab$, +$a\cdot b$, $a\times b$. + +For more information see ``Nist Guide to SI Units -More on Printing and Using Symbols and +Numbers in Scientific and +Technical Documents''\footnote{\url{http://physics.nist.gov/Pubs/SP811/sec10.html}} or +the German DIN 1304, Teil 1. + + +\section{Other macros}\label{sec:other} +\marginpar{\CMD{everymath}\\\CMD{everydisplay}\\\CMD{underline}}% +There are some other macros which are not mentioned in the foregoing text. Here comes +a not really complete list of these macros. +\begin{description} +\item[\CMD{everymath}] \index{everymath@\textbackslash everymath} puts the argument before +any inlined math expression, e.g. \verb+\everymath{\small}+. +\item[\CMD{everydisplay}] \index{everydisplay@\textbackslash everydisplay} puts the +argument before any displayed math expression, e.g. \verb+\everydisplay{\color{blue}}+. +\item[\CMD{underline}] \index{underline@\textbackslash underline} underlines a math +expression and has to be used inside the math mode. +\[ +\underline{F(x)=\int f(x)\,dx} +\] +\end{description} + + + +\part{\texorpdfstring{\AmSmath}{amsmath} package}\label{par:AMSmath-package} + +In general the \AmS packages are at least a collection of three different ones: +\begin{enumerate} +\item \verb|amsmath.sty| +\item \verb|amssymb.sty| +\item \verb|amsfonts.sty| +\end{enumerate} +In the following only the first one is described in detail. + +The \AmSmath has the following options: + +\bigskip\noindent +\begin{tabularx}{\linewidth}{@{}lX@{}} +\verb+centertags+\index{centertags} & (default) For a split equation, place +equation numbers vertically centered on the total height of the equation.\\\hline +\verb+tbtags+\index{tbtags} & `Top-or-bottom tags' For a split equation, +place equation numbers level with the last (resp. first) line, if +numbers are on the right (resp. left).\\\hline +\verb+sumlimits+\index{sumlimits} & (default) Place the subscripts and superscripts +of summation symbols above and below, in displayed equations. This +option also affects other symbols of the same type -- $\prod$, $\coprod$, +$\bigotimes$, $\bigoplus$, and so forth -- but excluding integrals +(see below).\\\hline +\verb+nosumlimits+\index{nosumlimits} & Always place the subscripts and +superscripts of summation-type symbols to the side, even in displayed +equations.\\\hline +\verb+intlimits+\index{intlimits} & Like sumlimits, but for integral symbols.\\\hline +\verb+nointlimits+\index{nointlimits} & (default) Opposite of intlimits.\\\hline +\verb+namelimits+\index{namelimits} & (default) Like sumlimits, but for +certain `operator names' such as \verb+det+, \verb+inf+, \verb+lim+, \verb+max+, \verb+min+, that traditionally +have subscripts placed underneath when they occur in a displayed equation.\\\hline +\verb+nonamelimits+\index{nonamelimits} & Opposite of namelimits.\\\hline +\end{tabularx} +\bigskip + +To use one of these package options, put the option name in the optional +argument, e.g., +\verb|\usepackage[intlimits]{amsmath}|. The %%% ----- Martin ----- +\AmSmath also recognises the following options which are normally +selected (implicitly or explicitly) through the \verb|documentclass| +command, and thus need not be repeated in the option list of the \verb|\usepackage{amsmath}| statement. %%% ----- Martin ----- + +\bigskip\noindent +\begin{tabularx}{\linewidth}{@{}lX@{}} +\verb+leqno+\index{leqno} & Place equation numbers on the left.\\\hline +\verb+reqno+\index{reqno} & (default) Place equation numbers on the right.\\\hline +\verb+fleqn+\index{fleqn} & Position equations at a fixed indent from the +left margin rather than centered in the text column. \AmSmath defines the +length \CMD{mathindent} and uses it when the equations have only one +tabbing character (\verb+&+).\index{mathindent@\textbackslash mathindent}\\\hline +\end{tabularx} + +\bigskip\noindent All math environments are displayed ones, so there is no special inline +math. + +\section{\texttt{align} environments} + +There are four different align environments, described in the following +subsections. Their behaviour is shown in table \ref{cap:align}. The +code for all align environments was: + +\begin{lstlisting} +\begin{} + &= x & x &= x\\ + &= x & x &= x +\end{} +\end{lstlisting} + +\begin{table}[htb] +\begin{align*} +\framebox[0.125\columnwidth]{align} &= \framebox[0.125\columnwidth]{x} & \framebox[0.125\columnwidth]{x}&= & \framebox[0.125\columnwidth]{x}\\ +\framebox[0.125\columnwidth]{align}&= \framebox[0.1\columnwidth]{x} & \framebox[0.1\columnwidth]{x} &= \framebox[0.1\columnwidth]{x} +\end{align*} + +\begin{alignat*}{2} +\framebox[0.125\columnwidth]{alignat} &= \framebox[0.125\columnwidth]{x} & \framebox[0.125\columnwidth]{x} &= \framebox[0.125\columnwidth]{x}\\ +\framebox[0.125\columnwidth]{alignat} &= \framebox[0.1\columnwidth]{x} & \framebox[0.1\columnwidth]{x} &= \framebox[0.1\columnwidth]{x} +\end{alignat*} + +\begin{flalign*} +\framebox[0.125\columnwidth]{flalign} &= \framebox[0.125\columnwidth]{x} & \framebox[0.125\columnwidth]{x} &= \framebox[0.125\columnwidth]{x}\\ +\framebox[0.125\columnwidth]{flalign} &= \framebox[0.1\columnwidth]{x} & \framebox[0.1\columnwidth]{x} &= \framebox[0.1\columnwidth]{x} +\end{flalign*} + +\begin{xalignat*}{2} +\framebox[0.125\columnwidth]{xalignat} &= \framebox[0.125\columnwidth]{x} & \framebox[0.125\columnwidth]{x} &= \framebox[0.125\columnwidth]{x}\\ +\framebox[0.125\columnwidth]{xalignat} &= \framebox[0.1\columnwidth]{x} & \framebox[0.1\columnwidth]{x} &= \framebox[0.1\columnwidth]{x} +\end{xalignat*} + +\begin{xxalignat}{2} +\framebox[0.125\columnwidth]{xxalignat} &= \framebox[0.125\columnwidth]{x} & \framebox[0.125\columnwidth]{x} &= \framebox[0.125\columnwidth]{x}\\ +\framebox[0.125\columnwidth]{xxalignat} &= \framebox[0.1\columnwidth]{x} & \framebox[0.1\columnwidth]{x} &= \framebox[0.1\columnwidth]{x} +\end{xxalignat} + +\caption{Comparison between the different align environments +with the same code, where the first three can have an equation number}\label{cap:align} +\end{table} + +In difference to the \verb+eqnarray+ environment from standard \LaTeX{} +(section~\ref{display:eqnarray}), the ``three'' parts +of one equation \verb+expr.-symbol-expr.+ are divided by only one ampersand %%% ----- Martin ----- +in two parts. In general the ampersand should be before the symbol to get the right spacing, e.g. +\verb+y &= x+. Compare the following three equations, the second one has a wrong spacing. %%% ----- Martin ----- + + +\begin{minipage}{0.4\linewidth} +\begin{align} +\rnode[lt]{a}{y} &= \rnode[rt]{A}{x} +\end{align} +\vspace*{-3\abovedisplayskip} +\begin{align} +y =& x +\end{align} +\vspace*{-3\abovedisplayskip} +\begin{align} +\rnode[lb]{b}{y} ={}& \rnode[rb]{B}{x} +\end{align} +\ncline[nodesep=-10pt,linewidth=0.1pt]{A}{B} +\ncline[nodesepA=-11pt,nodesepB=-10pt,linewidth=0.1pt]{a}{b} +\end{minipage} +\hfill\begin{minipage}{0.4\linewidth} +\begin{lstlisting} + y &= x + y =& x + y ={}& x +\end{lstlisting} +\end{minipage} + +\subsection{The default \texttt{align} environment} + +The \texttt{eqnarray} environment has a not so good spacing between +the cells. Writing the equations no. \ref{eq:2} to \ref{eq:5} with +the \texttt{align} environment gives: + +\begin{align} + y & =d\label{eq:IntoSection}\\ + y & =cx+d\\ + y_{12} & =bx^{2}+cx+d\\ + y(x) & =ax^{3}+bx^{2}+cx+d +\end{align} + +\noindent The code looks like: +\begin{lstlisting} +\begin{align} + y & =d\label{eq:IntoSection}\\ + y & =cx+d\\ + y_{12} & =bx^{2}+cx+d\\ + y(x) & =ax^{3}+bx^{2}+cx+d +\end{align} +\end{lstlisting} + +\begin{itemize} +\item The \texttt{align} environment has an implicit \textbf{\{rlrl...\}} +horizontal alignment with a vertical column-alignment, e.g.: +\begin{showexample}[width=0.5\linewidth] +\begin{align*} + 1 & 2 & 3 +\end{align*} +\end{showexample} + +\item A nonumber-version \texttt{\small \textbackslash{}begin\{align{*}\}...\textbackslash{}end\{align{*}\}} +exists. +\item Unnumbered single rows are possible with \CMD{nonumber}. %%% ----- Martin ----- +\item The \texttt{align} environment takes the whole horizontal space if +you have more than two columns: +\begin{align} +y & =d & z & =1\\ +y & =cx+d & z & =x+1\\ +y_{12} & =bx^{2}+cx+d & z & =x^{2}+x+1\nonumber \\ +y(x) & =ax^{3}+bx^{2}+cx+d & z & =x^{3}+x^{2}+x+1 +\end{align} + +\end{itemize} +The code for this example looks like% +\begin{lstlisting} +\begin{align} + y & =d & z & =1\\ + y & =cx+d & z & =x+1\\ + y_{12} & =bx^{2}+cx+d & z & =x^{2}+x+1\nonumber \\ + y(x) & =ax^{3}+bx^{2}+cx+d & z & =x^{3}+x^{2}+x+1 +\end{align} +\end{lstlisting} + +\subsection{\texttt{alignat} environment\label{sec:alignat environment}} +\marginpar{\CMD{begin\{align\}\\...\\\CMD{end\{align\}}}} +\renewcommand{\theequation}{% + \thepart-\arabic{equation}% +} + +\begin{leftbar} +>From now the counting of the equation changes. It is introduced with a foregoing command, +which doesn't really make sense, it is only for demonstration:\\ +\verb|\renewcommand{\theequation}{\thepart-\arabic{equation}}|. +\end{leftbar} + + +This means ``align at several places{}'' and is something like +more than two \verb+align+ environment side by side. +Parameter is the number of the \verb+align+ environments, which +is not important for the user. The +above last \verb+align+ example looks like: + +\begin{alignat}{2} +y & =d & z & =1\label{eq:newCounting}\\ +y & =cx+d & z & =x+1\\ +y_{12} & =bx^{2}+cx+d & z & =x^{2}+x+1\nonumber \\ +y(x) & =ax^{3}+bx^{2}+cx+d\quad & z & =x^{3}+x^{2}+x+1\end{alignat} + + +The parameter was 2 and it is 3 for the following example: %%% ----- Martin ----- + +\begin{alignat}{3} +i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber \\ +i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12} & i_{23} & =i_{31}\\ +i_{31} & =0.33i_{22}\quad & i_{32} & =0.15i_{32}\quad & i_{33} & =i_{11}\end{alignat} + + +For this example the code is: +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{alignat}{3} + i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber\\ + i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12}& i_{23} & =i_{31}\\ + i_{31} & =0.33i_{22}\quad & i_{32} & =0.15i_{32}\quad & i_{33} & =i_{11} +\end{alignat} +\end{lstlisting} + +With the \verb+alignat+ environment one can easily align equations vertically +at more than one marker: + +\begin{alignat}{3} + abc &= xxx &&= xxxxxxxxxxxx &&= aaaaaaaaa \\ + ab &= yyyyyyyyyyyyyyy &&= yyyy &&= ab +\end{alignat} +\begin{lstlisting} +\begin{alignat}{3} + abc &= xxx &&= xxxxxxxxxxxx &&= aaaaaaaaa \\ + ab &= yyyyyyyyyyyyyyy &&= yyyy &&= ab +\end{alignat} +\end{lstlisting} + + + + +\begin{itemize} +\item The \texttt{alignat} environment has an implicit \{rlrl...rlrl\} +horizontal alignment with a vertical column alignment. +\item A nonumber-version \texttt{\small +\textbackslash{}begin\{alignat{*}\}...\textbackslash{}end\{alignat{*}\}} +exists. +\item Unnumbered single rows are possible with \CMD{nonumber}. %%% ----- Martin ----- +\end{itemize} + +\subsection{\texttt{flalign} environment}\label{ams:flalign} +\marginpar{\CMD{begin\{flalign\}\\...\\\CMD{end\{flalign\}}}}This is the new replacement for the \texttt{xalignat} and \texttt{xxalignat} +environments. It is nearly the same as the \texttt{xalignat} environment, only +more ``out spaced'' and ``left aligned''. + +\begin{showexample}[width=0.5\linewidth] +\begin{flalign} +i_{11} & =0.25\nonumber \\ +i_{21} & =\frac{1}{3}i_{11}\\ +i_{31} & =0.33i_{22} +\end{flalign} +\end{showexample} + +\medskip +As seen, the equations are not really left aligned, when they have only one +ampersand. In this case \verb+flalign+ has the same behaviour as the \verb+align+ +environment. + + +When there are more than one tabbing characters (\verb+&+), then the equations are +really left aligned. This is also an easy way to get an equation with only one +ampersand left aligned, see equation \ref{eq:leftaligned} below. +\begin{flalign} +i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber \\ +i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12} & i_{23} & =i_{31}\\ +i_{31} & =0.33i_{22} & i_{32} & =0.15i_{32} & i_{33} & =i_{11} +\end{flalign} +The code looks like: + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{flalign} + i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber\\ + i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12}& i_{23} & =i_{31}\\ + i_{31} & =0.33i_{22}\quad & i_{32} & =0.15i_{32}\quad & i_{33} & =i_{11} +\end{flalign} +\end{lstlisting} + +\medskip +This environment can be used to mix centered and left aligned\index{Left aligned} +equations without +using the document wide valid option \verb|fleqn|. +\begin{align}\label{eq:centered} + f(x) & = \int\frac{1}{x^2}\,dx +\end{align} + +\begin{flalign}\label{eq:leftaligned} + f(x) & = \int\frac{1}{x^2}\,dx & +\end{flalign} +Equation \ref{eq:leftaligned} is left aligned in fact of the second tabbing +character \verb|&|. + +\begin{lstlisting} +\begin{align}\label{eq:centered} + f(x) & = \int\frac{1}{x^2}\,dx +\end{align} + +\begin{flalign}\label{eq:leftaligned} + f(x) & = \int\frac{1}{x^2}\,dx & +\end{flalign} +\end{lstlisting} + +Another case is placing text left aligned, whereas the formulas should be right aligned. + +\begin{flalign*} + && 12(x-1)+20(y-3)+14(z-2) &= 0\\ +\text{same as } && 6x+10y+7z &= 0 +\end{flalign*} + +\begin{lstlisting} +\begin{flalign*} + && 12(x-1)+20(y-3)+14(z-2) &= 0\\ +\text{same as } && 6x+10y+7z &= 0 +\end{flalign*} +\end{lstlisting} + + +\subsection{\texttt{xalignat} environment} +\marginpar{\CMD{begin\{xalignat\}\\...\\\CMD{end\{xalignat\}}}}% +This is an obsolete macro but still supported by the \AmSmath package. +Same as \texttt{alignat} environment, only a little more ``out spaced{}''. +\begin{xalignat}{3} +i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber \\ +i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12} & i_{23} & =i_{31}\\ +i_{31} & =0.33i_{22} & i_{32} & =0.15i_{32} & i_{33} & =i_{11} +\end{xalignat} +The same code looks like: + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{xalignat}{3} + i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber\\ + i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12}& i_{23} & =i_{31}\\ + i_{31} & =0.33i_{22}\quad & i_{32} & =0.15i_{32}\quad & i_{33} & =i_{11} +\end{xalignat} +\end{lstlisting} + +\subsection{\texttt{xxalignat} environment} +\marginpar{\CMD{begin\{xxalignat\}\\...\\\CMD{end\{xxalignat\}}}}% +Like \texttt{xalignat} an obsolete macro but still supported by the \AmSmath package. +Same as \texttt{align} environment, only extremely ``out spaced{}'', +therefore no equation number! +\begin{xxalignat}{3} +i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\\ +i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12} & i_{23} & =i_{31}\\ +i_{31} & =0.33i_{22} & i_{32} & =0.15i_{32} & i_{33} & =i_{11} +\end{xxalignat} +The same code looks like: + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{xxalignat}{3} + i_{11} & =0.25 & i_{12} & =i_{21} & i_{13} & =i_{23}\nonumber\\ + i_{21} & =\frac{1}{3}i_{11} & i_{22} & =0.5i_{12}& i_{23} & =i_{31}\\ + i_{31} & =0.33i_{22} & i_{32} & =0.15i_{32} & i_{33} & =i_{11} +\end{xxalignat} +\end{lstlisting} + +\subsection{\texttt{aligned} environment}\label{sec:aligned} +\marginpar{\CMD{begin\{aligned\}\\...\\\CMD{end\{aligned\}}}}In difference to the \verb|split| environment (section \vref{split})\index{Split equation}, the \verb|aligned| environment allows more than one horizontal alignment but has also only one equation number: +\begin{equation} +\begin{aligned} + 2x+3 &= 7 & 2x+3-3 &=7-3 \\ + 2x &= 4 & \frac{2x}2 &=\frac42\\ + x &= 2 +\end{aligned} +\end{equation} + +\begin{lstlisting} +\begin{equation} +\begin{aligned} + 2x+3 &= 7 & 2x+3-3 &= 7-3 \\ + 2x &= 4 & \frac{2x}2 &= \frac42\\ + x &= 2 +\end{aligned} +\end{equation} +\end{lstlisting} + +The \verb|aligned| environment is similar to the \verb|array|\index{array} environment, there exists no +starred version and it has only one equation number and has to be part of another math environment, which should be \verb|equation| environment. The advantage of \verb|aligned| is the much + better horizontal and vertical spacing. %%% ----- Martin ----- + + +\subsection{Problems} +When using one of the \verb+align+ environments, there should be no \verb+\\+ at the +end of the last line, otherwise you'll get another equation number for this ``empty{}'' line: %%% ----- Martin ----- + +\begin{showexample}[width=0.65\linewidth] +\begin{align} + 2x+3 &= 7\\ +\end{align} +\end{showexample} + +\begin{showexample}[width=0.65\linewidth] +\begin{align} + 2x+3 &= 7 +\end{align} +\end{showexample} +\section{Other environments} + +\subsection{\texttt{gather} environment} +\marginpar{\CMD{begin\{gather\}\\...\\\CMD{end\{gather\}}}} +This is like a multi line environment with no special horizontal alignment. +All rows are centered and can have an own equation number: +\begin{gather} +i_{11}=0.25\\ +i_{21}=\frac{1}{3}i_{11}\nonumber \\ +i_{31}=0.33i_{22} +\end{gather} +For this example the code looks like: +\begin{lstlisting} +\begin{gather} + i_{11} = 0.25\\ + i_{21} = \frac{1}{3}i_{11}\nonumber\\ + i_{31} =0.33i_{22} +\end{gather} +\end{lstlisting} + +\begin{itemize} +\item The \texttt{gather}\index{gather} environment has an implicit \texttt{\{c\}} +horizontal alignment with no vertical column alignment. It is just +like an one column array/table. +\item A nonumber-version \texttt{\small \textbackslash{}begin\{gather{*}\}...\textbackslash{}end\{gather{*}\}} +exists. +Look at section \vref{split} for an example. +\end{itemize} + +\subsection{\texttt{multline} environment} +\marginpar{\CMD{begin\{multline\}\\...\\\CMD{end\{multline\}}}} +This is also like a multi line% +\footnote{It is no typo, the name of the environment is \texttt{multline}, no +missing i here!} environment with a special vertical alignment. The \textbf{first} +row is \textbf{left aligned}, the second and all following ones except +the last one are \textbf{centered} and the \textbf{last} line is \textbf{right +aligned}. It is often used to write extremely long formulas: + + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{multline} + A = \lim _{n\rightarrow \infty }\Delta x\left( a^{2}+\left( a^{2}+2a\Delta x + +\left( \Delta x\right) ^{2}\right)\right.\\ + +\left( a^{2}+2\cdot 2a\Delta x+2^{2}\left( \Delta x\right) ^{2}\right)\\ + +\left( a^{2}+2\cdot 3a\Delta x+3^{2}\left( \Delta x\right) ^{2}\right)\\ + + \ldots\\ + \left.+\left( a^{2}+2\cdot (n-1)a\Delta x +(n-1)^{2}\left( \Delta x\right) ^{2}\right) \right)\\ + = \frac{1}{3}\left( b^{3}-a^{3}\right) +\end{multline} +\end{lstlisting} +\begin{multline} +A=\lim_{n\rightarrow\infty}\Delta x\left(a^{2}+\left(a^{2}+2a\Delta x+\left(\Delta x\right)^{2}\right)\right.\label{eq:reset}\\ ++\left(a^{2}+2\cdot2a\Delta x+2^{2}\left(\Delta x\right)^{2}\right)\\ ++\left(a^{2}+2\cdot3a\Delta x+3^{2}\left(\Delta x\right)^{2}\right)\\ ++\ldots\\ +\left.+\left(a^{2}+2\cdot(n-1)a\Delta x+(n-1)^{2}\left(\Delta x\right)^{2}\right)\right)\\ +=\frac{1}{3}\left(b^{3}-a^{3}\right) +\end{multline} + + +\begin{figure}[htb] +\begin{multline} +\framebox[0.5\columnwidth]{x}\\ +\framebox[0.5\columnwidth]{x}\\ +\framebox[0.5\columnwidth]{x}\\ +\shoveright{\framebox[0.5\columnwidth]{x}}\\ +\framebox[0.5\columnwidth]{x}\\ +\framebox[0.5\columnwidth]{x} +\end{multline} +\caption{\texttt{multline} Alignment demo +(the fourth row is shifted to the right with \CMD{shoveright})} +\label{cap:multline-Alignment-Demo} +\end{figure} + +\begin{figure}[htb] +\begin{minipage}[c]{0.45\textwidth}% +\fbox{\parbox{\columnwidth}{\begin{multline} +\framebox[0.5\columnwidth]{\textrm{\textbackslash multlinegap=}}\\ +\framebox[0.5\columnwidth]{\the\multlinegap}\end{multline} +}} +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.45\textwidth}% +{\setlength{\multlinegap}{0pt}\fbox{\parbox{\columnwidth}{\begin{multline} +\framebox[0.5\columnwidth]{\textbackslash\textrm{multlinegap=}}\\ +\framebox[0.5\columnwidth]{\the\multlinegap}\end{multline} +}}} +\end{minipage}% +\caption{\label{cap:multlinegap}Demonstration of \CMD{multlinegap} (default is 0pt)} +\end{figure} + + + +\begin{itemize} +\item A nonumber-version \CMD{begin\{multline{*}\}...}\CMD{end\{multline{*}\}} +exists. +\item By default only the last line (for right equation numbers) or the +first line (for left equation numbers) gets a number, the others can't. +\item The alignment of a single line can be changed with the command +\CMD{shoveright}\index{shoveright@\textbackslash shoveright} (figure \vref{cap:multline-Alignment-Demo}) +\item The first line and the last line have a small gap to the text border.% +\footnote{When the first (numbers left) or last line (numbers right) has an +equation number then \CMD{multlinegap} is not used +for these ones, only for the line without a number.} See figure \ref{cap:multlinegap}, where the length of \CMD{multlinegap}\index{multlinegap@\textbackslash multlinegap} +is set to \texttt{0pt} for the right one. +\end{itemize} + +\subsection{\texttt{split} environment}\label{split} +\marginpar{\CMD{begin\{split\}\\...\\\CMD{end\{split\}}}}% +\makeatletter +\@removefromreset{equation}{section} +\makeatother +% +\begin{leftbar} +>From now on the counting of the equations changes. It is introduced with a foregoing command, which doesn't really make sense, it is only for demonstration: %%% ----- Martin ----- +\begin{lstlisting} +\makeatletter +\@removefromreset{equation}{section} +\makeatother +\end{lstlisting} +\end{leftbar} + + +The \verb|split| environment is like the \verb|multline|\index{multline} +or \verb|array| environment for equations longer than the column +width. Just like the array environment and in contrast to \verb|multline|, +\verb|split| can only be used as \textbf{part of another environment}. +\verb|split| itself has no own numbering, this is given by the other +environment. Without an ampersand all lines in the split environment +are right-aligned and can be aligned at a special point by using an +ampersand. In difference to the \verb|aligned| environment (section \vref{sec:aligned}), the \verb|split| environment permits more than one horizontal alignment. + +It is important that the split environment has another behaviour when used inside one of the %%% ----- Martin ----- +``old'' \LaTeX{} environments \verb+\[...\]+ or \verb+\begin{equation}+ \verb+...+\verb+ \end{equation}+, in this +case more than one horizontal alignment tabs are possible. + +\hspace*{-\marginparwidth}% +\begin{minipage}{0.5\columnwidth} +\[ +\begin{split} + \framebox[0.35\columnwidth]{x}\\ + \framebox[0.75\columnwidth]{x}\\ + \framebox[0.65\columnwidth]{x}\\ + \framebox[0.95\columnwidth]{x} +\end{split} +\] +\end{minipage}\hfill% +\begin{minipage}{0.5\columnwidth} +\footnotesize\begin{verbatim} +\[ +\begin{split} + \framebox[0.35\columnwidth]{x}\\ + \framebox[0.75\columnwidth]{x}\\ + \framebox[0.65\columnwidth]{x}\\ + \framebox[0.95\columnwidth]{x} +\end{split} +\] +\end{verbatim} +\end{minipage} +\vspace{2ex} + +\hspace*{-\marginparwidth}% +\begin{minipage}{0.5\columnwidth} +\[ +\begin{split} + \vec{a} = {}&\framebox[0.35\columnwidth]{x}\\ + &\framebox[0.75\columnwidth]{x}\\ + &\framebox[0.65\columnwidth]{x}\\ + &\framebox[0.95\columnwidth]{x} +\end{split} +\] +\end{minipage}\hspace{1cm}% +\begin{minipage}{0.5\columnwidth} +\footnotesize\begin{verbatim} +\[ +\begin{split} + \vec{a} = {}&\framebox[0.35\columnwidth]{x}\\ + &\framebox[0.75\columnwidth]{x}\\ + &\framebox[0.65\columnwidth]{x}\\ + &\framebox[0.95\columnwidth]{x} +\end{split} +\] +\end{verbatim} +\end{minipage} +\vspace{1ex} + +The following example shows the \texttt{split} environment as part +of the \texttt{equation} environment: + +\begin{equation} +\begin{split}A_{1} & =\left|\int_{0}^{1}(f(x)-g(x))dx\right|+\left|\int_{1}^{2}(g(x)-h(x))dx\right|\\ + & =\left|\int_{0}^{1}(x^{2}-3x)dx\right|+\left|\int_{1}^{2}(x^{2}-5x+6)dx\right|\\ + & =\left|\frac{x^{3}}{3}-\frac{3}{2}x^{2}\right|_{0}^{1}+\left|\frac{x^{3}}{3}-\frac{5}{2}x^{2}+6x\right|_{1}^{2}\\ + & =\left|\frac{1}{3}-\frac{3}{2}\right|+\left|\frac{8}{3}-\frac{20}{2}+12-\left(\frac{1}{3}-\frac{5}{2}+6\right)\right|\\ + & =\left|-\frac{7}{6}\right|+\left|\frac{14}{3}-\frac{23}{6}\right|=\frac{7}{6}+\frac{5}{6}=2\,\textrm{FE}\end{split} +\label{eq:Beispiel-Integral}\end{equation} + + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{equation} + \begin{split} + A_{1} & = \left| \int _{0}^{1}(f(x)-g(x))dx\right| +\left| + \int _{1}^{2}(g(x)-h(x))dx\right| \\ + & = \left| \int _{0}^{1}(x^{2}-3x)dx\right| +\left| + \int _{1}^{2}(x^{2}-5x+6)dx\right| \\ + & = \left| \frac{x^{3}}{3}-\frac{3}{2}x^{2}\right| _{0}^{1}+ + \left| \frac{x^{3}}{3}- + \frac{5}{2}x^{2}+6x\right| _{1}^{2}\\ + & = \left| \frac{1}{3}-\frac{3}{2}\right| +\left| + \frac{8}{3}-\frac{20}{2}+12- + \left( \frac{1}{3}-\frac{5}{2}+6\right) \right| \\ + & = \left| -\frac{7}{6}\right| +\left| \frac{14}{3}-\frac{23}{6} + \right| =\frac{7}{6}+\frac{5}{6}=2\, \textrm{FE} + \end{split} +\end{equation} +\end{lstlisting} + +\bigskip{} +The same using the \verb|array| environment with \verb|{rl}|-alignment +instead of \verb|split| gives same horizontal alignment, but another %%% ----- Martin ----- +vertical spacing% +\footnote{Can be changed with \texttt{\textbackslash renewcommand\textbackslash arraystretch\{1.5\}}} and the +symbols are only in scriptsize and not textsize:\footnote{See section \vref{sec:Styles}} %%% ----- Martin ----- + +\begin{equation} +\begin{array}{rl} +A_{1} & =\left|\int_{0}^{1}(f(x)-g(x))dx\right|+\left|\int_{1}^{2}(g(x)-h(x))dx\right|\\ + & =\left|\int_{0}^{1}(x^{2}-3x)dx\right|+\left|\int_{1}^{2}(x^{2}-5x+6)dx\right|\\ + & =\left|\frac{x^{3}}{3}-\frac{3}{2}x^{2}\right|_{0}^{1}+\left|\frac{x^{3}}{3}-\frac{5}{2}x^{2}+6x\right|_{1}^{2}\\ + & =\left|\frac{1}{3}-\frac{3}{2}\right|+\left|\frac{8}{3}-\frac{20}{2}+12-\left(\frac{1}{3}-\frac{5}{2}+6\right)\right|\\ + & =\left|-\frac{7}{6}\right|+\left|\frac{14}{3}-\frac{23}{6}\right|=\frac{7}{6}+\frac{5}{6}=2\,\textrm{FE} + \end{array} + \end{equation} + + +\begin{itemize} +\item There exists no starred version (\texttt{\textbackslash{}begin\{split{*}\}}) %%% ----- Martin ----- +of the \texttt{split} environment. +\end{itemize} + +\subsection[Specials]{Specials for \texttt{multline} and \texttt{split} +environments}\label{sec:Specials-for-multline} + +With the multline environment the equation~\vref{eq:braces} looks like: + +\begin{multline} +\frac{1}{2}\Delta(f_{ij}f^{ij})=2\left(\sum_{iFrom now on the counting of the equations changes. It is introduced with a foregoing command, which doesn't really make sense, it is only for demonstration: %%% ----- Martin ----- +\begin{lstlisting} +\renewcommand\theequation{\arabic{equation}} +\end{lstlisting} +\end{leftbar} + +\renewcommand\theequation{\arabic{equation}} + + +\subsection{Matrix environments}\label{sec:ams-matrix} +\begin{table}[htb] +\centering\begin{tabular}{rcrcrc} +\textbackslash{}Vmatrix\index{Vmatrix@\textbackslash Vmatrix}& +$\begin{Vmatrix}a & b\\ +c & d\end{Vmatrix}$& +\textbackslash{}Bmatrix\index{Bmatrix@\textbackslash Bmatrix}& +$\begin{Bmatrix}a & b\\ +c & d\end{Bmatrix}$& +\textbackslash{}matrix\index{matrix@\textbackslash matrix}& +$\begin{matrix}a & b\\ +c & d\end{matrix}$\tabularnewline +\rule{0pt}{0.85cm}\textbackslash{}vmatrix\index{vmatrix@\textbackslash vmatrix}& +$\begin{vmatrix}a & b\\ +c & d\end{vmatrix}$& +\textbackslash{}bmatrix\index{bmatrix@\textbackslash bmatrix}& +$\begin{bmatrix}a & b\\ +c & d\end{bmatrix}$& +\textbackslash{}pmatrix\index{pmatrix@\textbackslash pmatrix}& +$\begin{pmatrix}a & b\\ +c & d\end{pmatrix}$\tabularnewline[10pt] +&&&&\textbackslash{}smallmatrix\index{smallmatrix@\textbackslash smallmatrix}& +$\begin{smallmatrix}a & b\\ +c & d\end{smallmatrix}$ +\end{tabular} +\caption{Matrix environments} +\end{table} + +All matrix environments can be nested and an element may also contain +any other math environment, so that very complex structures are possible. +By default all cells have a centered alignment, which is often not the best +when having different decimal numbers or plus/minus values. Changing the +alignment to right (not for the \verb+smallmatrix+) is possible with +\marginpar{% +\texttt{matrix}\\ +\texttt{vmatrix}\\ +\texttt{Vmatrix}\\ +\texttt{bmatrix}\\ +\texttt{Bmatrix}\\ +\texttt{pmatrix}\\ +\texttt{smallmatrix}% +}% + +\begin{lstlisting} +\makeatletter +\def\env@matrix{\hskip -\arraycolsep + \let\@ifnextchar\new@ifnextchar + \array{*\c@MaxMatrixCols r}} +\makeatother +\end{lstlisting} + +The special matrix environment \verb+smallmatrix+, which decreases +horizontal and vertical space is typeset in scriptstyle. The \verb|smallmatrix| +\index{smallmatrix@\textbackslash smallmatrix} environment makes some sense +in the inline mode to decrease the line height. +For dots over several columns look for \CMD{hdotsfor} in the following section. + + + +\section{Vertical whitespace}\label{sec:ams-whitespace} +See section~\vref{subsec:whitespace} for the lengths which control the +vertical whitespace. There is no difference to \AmSmath. + +\section{Dots}\label{sec:ams-dots} + +In addition to section~\vref{sec:Dots} \AmSmath has two more commands +for dots: \CMD{dddot}\{...\}\footnote{already mentioned in section \ref{sec:Accents}} and \CMD{ddddot}\{...\} +\index{dddot@\textbackslash dddot}\index{ddddot@\textbackslash ddddot} + +\verb|$\dddot{y}$|: $\dddot{y}$ + +\verb|$\ddddot{y}$|: $\ddddot{y}$ + + +Another interesting dot command is \CMD{hdotsfor}\index{hdotsfor@\textbackslash hdotsfor} +with the syntax: + +\begin{lstlisting} +\hdotsfor[]{} +\end{lstlisting} + +With the spacing factor the width of the dots can be stretched or +shrinked. The number of columns allows a continuing dotted line over +more columns. Equation \ref{eq:tridiagonal} shows the definition +of a tridiagonal matrix. + +\begin{equation} +\underline{A}=\left[\begin{array}{ccccccc} +a_{11} & a_{12} & 0 & \ldots & \ldots & \ldots & 0\\ +a_{21} & a_{22} & a_{23} & 0 & \ldots & \ldots & 0\\ +0 & a_{32} & a_{33} & a_{34} & 0 & \ldots & 0\\ +\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ +\hdotsfor{7}\cr\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ +0 & \ldots & 0 & a_{n-2,n-3} & a_{n-2,n-2} & a_{n-2,n-1} & 0\\ +0 & \ldots & \ldots & 0 & q_{n-1,n-2} & a_{n-1,n-1} & a_{n-1,n}\\ +0 & \ldots & \ldots & \ldots & 0 & a_{n,n-1} & a_{nn} +\end{array}\right]\label{eq:tridiagonal} +\end{equation} + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\begin{equation} +\underline{A}=\left[\begin{array}{ccccccc} +a_{11} & a_{12} & 0 & \ldots & \ldots & \ldots & 0\\ +a_{21} & a_{22} & a_{23} & 0 & \ldots & \ldots & 0\\ +0 & a_{32} & a_{33} & a_{34} & 0 & \ldots & 0\\ +\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ +\hdotsfor{7}\cr\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ +0 & \ldots & 0 & a_{n-2,n-3} & a_{n-2,n-2} & a_{n-2,n-1} & 0\\ +0 & \ldots & \ldots & 0 & q_{n-1,n-2} & a_{n-1,n-1} & a_{n-1,n}\\ +0 & \ldots & \ldots & \ldots & 0 & a_{n,n-1} & a_{nn} +\end{array}\right] +\end{equation} +\end{lstlisting} + + +\section{\texttt{fraction} commands}\label{sec:ams-fraction} + + +\subsection{Standard} + +Additional to the font size problem described in subsection~\vref{sub:fraction command} +\AmSmath supports some more commands for fractions\index{Fraction}. The \CMD{frac} command +described in \cite{MathGuide}, does no more exist in \AmSmath. %%% ----- Martin ----- + +\begin{itemize} +\item The global fraction definition has five parameters\index{genfrac@\textbackslash genfrac} +\index{fraction@\textbackslash frac} +\begin{lstlisting}[xleftmargin=-1em,xrightmargin=-1em] +\genfrac{}{}{}{}{}{} +\end{lstlisting} +where thickness can have any length with a valid unit like \\ +\verb|genfrac{}{}{1pt}{}{x^2+x+1}{3x-2}| +$\rightarrow\genfrac{}{}{1pt}{}{x^2+x+1}{3x-2}$ +\item \CMD{cfrac}\index{cfrac@\textbackslash cfrac} (continued fraction) which is +by default set in the display mathstyle and useful for fractions like +\begin{equation} +\cfrac{1}{\sqrt{2}+\cfrac{1}{\sqrt{3}+\cfrac{1}{\sqrt{4}+\cfrac{1}{\ldots}}}}\label{cfrac} +\end{equation} +which looks with the default \CMD{frac} command like +\begin{equation} + \frac{1}{\sqrt{2}+\frac{1}{\sqrt{3}+\frac{1}{\sqrt{4}+\frac{1}{\ldots}}}} +\end{equation} +where the mathstyle decreases for every new level in the fraction. +The \CMD{cfrac} command can be called with an optional +parameter which defines the placing of the nominator, which can be +\texttt{[l]}eft, \texttt{[r]}ight or \texttt{[c]}enter (the default - see +equation~\ref{cfrac}):\\ +\begin{minipage}[c]{0.40\textwidth}% +\[ +\cfrac[l]{1}{\sqrt{2}+\cfrac[l]{1}{\sqrt{3}+\cfrac[l]{1}{\sqrt{4}+\cfrac[l]{1}{\ldots}}}} +\] +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.40\textwidth}% +\[\cfrac[r]{1}{\sqrt{2}+\cfrac[r]{1}{\sqrt{3}+\cfrac[r]{1}{\sqrt{4}+\cfrac[r]{1}{\ldots}}}}\] +\end{minipage}% + +\item \CMD{dfrac}\index{dfrac@\textbackslash dfrac} +which takes by default the displaystyle\index{displaystyle@\textbackslash displaystyle}, so that +fractions in inline mode $\dfrac{1}{2}$ have the same size than in +display mode. +\item \CMD{tfrac}\index{tfrac@\textbackslash tfrac} (vice versa to \CMD{dfrac}) which takes by default +the scriptstyle\index{scriptstyle@\textbackslash scriptstyle}, so that fractions in display +mode have the same size than in inline mode. +\end{itemize} + +\[\tfrac{2}{3} \text{\hspace{0.5cm}\CMD{tfrac\{2\}\{3\}}} \] +\[\frac{2}{3} \text{\hspace{0.5cm}\CMD{frac\{2\}\{3\}}} \] + + +\subsection{Binoms}\label{sub:Binoms} + +\marginpar{\CMD{binom}\\\CMD{dbinom}\\\CMD{tbinom}}They are like fractions without a rule and its syntax is different +to the \CMD{choose} command from standard \LaTeX{} +(see section \vref{sub:fraction command}). \AmSmath{} provides three +different commands for binoms just like the ones for fractions. + +\begin{table}[htb] +\centering% +\begin{tabular}{lcl} +Command & Inlinemath & Displaymath\tabularnewline +\hline +\texttt{\textbackslash{}binom\{m\}\{n\}} & $\binom{m}{n}$& +${\displaystyle \binom{m}{n}}$\tabularnewline +\texttt{\rule{0pt}{0.75cm}\textbackslash{}dbinom\{m\}\{n\}}& +$\dbinom{m}{n}$& +${\displaystyle \dbinom{m}{n}}$\tabularnewline +\texttt{\rule{0pt}{0.5cm}\textbackslash{}tbinom\{m\}\{n\}}& +$\tbinom{m}{n}$& +${\displaystyle \tbinom{m}{n}}$\tabularnewline +\end{tabular} +\caption{binom commands} +\end{table} + + +\section{Roots}\label{sec:Roots-ams} + +The typesetting for roots\index{uproot@\textbackslash uproot} is sometimes not +the best. Some solutions for better typesetting are % +\marginpar{\CMD{leftroot}\\\CMD{uproot}}% +described in section~\vref{sec:Roots} for standard \LaTeX{}. \AmSmath +has some more commands for the $n$-th root: + +\begin{lstlisting} +\sqrt[\leftroot{}\uproot{}]{< ... >} +\end{lstlisting} + +\noindent \verb++ indicates a value for the points% +\footnote{In PostScript units (bp -- Big Points).} of which the root can be +adjusted to the left and/or to the top, e.g.: +$\sqrt[k_n]{a}$ (\verb+$\sqrt[k_n]{a}$+) has a too deep exponent, whereas $\sqrt[\uproot{2}k_n]{a}$ \verb+$\sqrt[\uproot{2}k_n]{a}$+ looks nicer. + + + +\subsection{Roots with \CMD{smash} command} + +\marginpar{\CMD{smash}}The default for a root\index{Root} with $\lambda_{k_{i}}$ as root +argument looks like $\sqrt{\lambda_{k_{i}}}$, which may be not the %%% ----- Martin ----- +best typesetting. It is possible to reduce the lowest point of the root +to the baseline with the \CMD{smash} command: $\sqrt{\lambda_{k_{i}}}\xrightarrow{\text{with \textbackslash smash}}\sqrt{\smash[b]{\lambda_{k_{i}}}}$ + + +The syntax of the \CMD{smash} command% +\footnote{In \texttt{latex.ltx} \CMD{smash} is defined without an optional argument.} renewed by the \AmSmath package is %%% ----- Martin ----- + +\begin{lstlisting} +\smash[]{} +\end{lstlisting} +The optional argument for the position can be: + +\begin{description} +\item [t]keeps the bottom and annihilates the top +\item [b]keeps the top and annihilates the bottom +\item [tb]annihilates top and bottom (the default) +\end{description} + +\section{Accents}\label{amssymb} + +With the macro \verb|\mathaccent| it is easy to define new accent types, for example + +\begin{lstlisting} +\def\dotcup{$\mathaccent\cdot\cup$} +\end{lstlisting} + +$\mathaccent\cdot\cup$ + +\def\curvearrowleftright{% + \ensuremath{% + \mathaccent\curvearrowright{\mkern-5mu\curvearrowleft}% + }% +} + +Overwriting of two symbols is also possible: + +{\huge +$\curvearrowleft\curvearrowright\curvearrowleftright$} + +In this case the second symbol has to be shifted to the left for a length %%% ----- Martin ----- +of $5mu$ (mu: math unit\index{Math unit}). + +\begin{lstlisting} +\def\curvearrowleftright{% + \ensuremath{% + \mathaccent\curvearrowright{\mkern-5mu\curvearrowleft}% + }% +} +\end{lstlisting} + +For other possibilities to define new accents see section \vref{sec:package-accent}. %%% ----- Martin ----- + +\section{\CMD{mod} command} + +In standard \LaTeX{} the modulo command is not an operator, though %%% ----- Martin ----- +it is often used in formulas. \AmSmath provides two (three) different +commands for modulo, which are listed in tabular~\vref{cap:The-modulo commands}. + +\begin{itemize} +\item They all insert some useful space before and behind the mod-operator. +\end{itemize} + +\begin{table}[htb] +\centering\begin{tabular}{rrl} +a\textbackslash{}mod\{n\^{}2\}=b& +$\rightarrow$& +$a\mod{n^{2}}=b$\tabularnewline +a\textbackslash{}pmod\{n\^{}2\}=b& +$\rightarrow$& +$a\pmod{n^{2}}=b$\tabularnewline +a\textbackslash{}pod\{n\^{}2\}=b& +$\rightarrow$& +$a\pod{n^{2}}=b$\tabularnewline +\end{tabular} +\caption{\label{cap:The-modulo commands}The modulo commands and their meaning} +\end{table} + + + +\section{Equation numbering\label{sec:Equation-numbering}} + +See section \vref{sub:Equationnumbering} for equation numbering\index{Equation!numbering}. +It is mostly the % +\marginpar{\textbackslash{}numberwithin% +}same, only one command is new to \AmSmath. If you want +a numbering like ``\ref{eq:IntoSection}{}'' then write either in the preamble %%% ----- Martin ----- +or like this example anywhere in your doc: + +\begin{lstlisting} +\numberwithin{equation}{section} +\end{lstlisting} + +\begin{leftbar} +\numberwithin{equation}{section}From now on the numbering looks like %%% ----- Martin ----- +equation \vref{eq:IntoSection}. For the book-class you can get the +same for chapters. +\end{leftbar} + +If you want to get rid of the parentheses then write in the preamble: %%% ----- Martin ----- + +\begin{lstlisting} +\makeatletter +\def\tagform@#1{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}} +\makeatother +\end{lstlisting} + +Now the following four subequation numbers have no parentheses. + + + + +\makeatletter +\let\oldTagForm\tagform@ +\def\tagform@#1{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}} +\makeatother + +\subsection{Subequations}\label{ams:subeqn} + +Amsmath supports this with the environment \verb|subequation|\index{Subequations}. +For example: +\begin{subequations} +\begin{align} +y & = d\\ +y & = cx+d\\ +y & = bx^{2}+cx+d\\ +y & = ax^{3}+bx^{2}+cx+d +\end{align} +\end{subequations} + +\begin{lstlisting} +\begin{subequations} +\begin{align} +y & = d\\ +y & = cx+d\\ +y & = bx^{2}+cx+d\\ +y & = ax^{3}+bx^{2}+cx+d +\end{align} +\end{subequations} +\end{lstlisting} + +\makeatletter +\let\tagform@\oldTagForm +\makeatother + + +Inside of subequations only complete other environments (\texttt{\textbackslash{}begin\{...\} +... \textbackslash{}end\{...\}}) are possible. + +\begin{lstlisting} +\renewcommand{\theequation}{% + \theparentequation{}-\arabic{equation}% +} +\end{lstlisting} + +\begin{subequations} +\renewcommand{\theequation}{% + \theparentequation -\arabic{equation}% +}% +\begin{align} +y & = d\\ +y & = cx+d\label{eq:subequation-neu}\\ +y & = bx^{2}+cx+d\\ +y & = ax^{3}+bx^{2}+cx+d +\end{align} +\end{subequations} + +A ref to a subequation is possible like the one to equation \ref{eq:subequation-neu}. +The environment chooses the same counter ``\texttt{equation}'' +but saves the old value into ``\texttt{parentequation}''. + +\newcounter{mySubCounter} +\newcommand{\twocoleqn}[2]{ + \setcounter{mySubCounter}{0}% + \let\OldTheEquation\theequation% + \renewcommand{\theequation}{\OldTheEquation\alph{mySubCounter}}% + \noindent% + \begin{minipage}{.49\textwidth} + \begin{equation}\refstepcounter{mySubCounter} + #1 + \end{equation} + \end{minipage}\hfill% + \addtocounter{equation}{-1}% + \begin{minipage}{.49\textwidth} + \begin{equation}\refstepcounter{mySubCounter} + #2 + \end{equation} + \end{minipage} + \let\theequation\OldTheEquation +} + +It is also possible to place two equations side by side with counting as subfigures: + +\twocoleqn{y=f(x)}{y=f(z)} + +\vspace{1ex} +In this case, the \AmSmath internal subfigure counter cannot be used and an own +counter has to be defined: + +\begin{lstlisting} +\newcounter{mySubCounter} +\newcommand{\twocoleqn}[2]{ + \setcounter{mySubCounter}{0}% + \let\OldTheEquation\theequation% + \renewcommand{\theequation}{\OldTheEquation\alph{mySubCounter}}% + \noindent% + \begin{minipage}{.49\textwidth} + \begin{equation}\refstepcounter{mySubCounter} + #1 + \end{equation} + \end{minipage}\hfill% + \addtocounter{equation}{-1}% + \begin{minipage}{.49\textwidth} + \begin{equation}\refstepcounter{mySubCounter} + #2 + \end{equation} + \end{minipage}% + \let\theequation\OldTheEquation +} +[ ... ] +\twocoleqn{y=f(x)}{y=f(z)} +\end{lstlisting} + + +\section{Labels and tags}\label{sec:Labels-and-Tags} + +For the \CMD{label} command\index{label@\textbackslash label} \marginpar{\textbackslash{}tag% +} +see section \vref{sec:Labels}, it is just the same behaviour. \AmSmath +allows to define own single ``equation numbers\index{Equation number}'' +with the \CMD{tag} command. +\begin{align} +f(x) & =a\tag{linear}\label{eq:linear}\\ +g(x) & =dx^{2}+cx+b\tag{quadratic}\label{eq:quadratic}\\ +h(x) & =\sin x\tag*{trigonometric} +\end{align} + +\begin{lstlisting} +\begin{align} +f(x) & =a\tag{linear}\label{eq:linear}\\ +g(x) & =dx^{2}+cx+b\tag{quadratic}\label{eq:quadratic}\\ +h(x) & =\sin x\tag*{trigonometric} +\end{align} +\end{lstlisting} + +\begin{itemize} +\item The \CMD{tag} command is also possible for unnumbered +equations, \LaTeX{} changes the behaviour when a tag is detected. +\item There exists a starred version \verb|\tag{*}{...}|, %%% ----- Martin ----- +which supresses any annotations like parentheses for equation numbers\index{Equation!number}. +\item There exist two package options for tags, \verb|ctagsplit|\index{ctagsplit} %%% ----- Martin ----- +and \verb|righttag|\index{righttag} (look at the beginning of this +part on page~\pageref{par:AMSmath-package}). +\end{itemize} + + +\section{Limits}\label{sec:limit-AMS} + +By default the sum/prod has the limits above/below and the integral +at the side. To get the same behaviour for all symbols which can have +limits load the package \AmSmath in the preamble as %%% ----- Martin ----- + +\begin{lstlisting} +\usepackage[sumlimits,intlimits]{amsmath} +\end{lstlisting} + +There exist also options for the vice versa (see page~\pageref{par:AMSmath-package}). %%% ----- Martin ----- +See also section~\ref{sec:misc-AMS} for the additional commands \CMD{underset} and \CMD{overset}. + + + +\subsection{Multiple limits} + +For general information about limits\index{Limits} read section +\vref{sub:Limits-Inline}. Standard \LaTeX{} provides the \texttt{\textbackslash{}atop}\index{atop@\textbackslash atop} command +for multiple limits (section \vref{sub:Multiple-Limits}). \AmSmath \marginpar{\textbackslash{}substack% +} +has an additional command for that, which +can have several lines with the following syntax: +\marginpar{\CMD{begin\{Sb\}}\\...\\\CMD{end\{Sb\}}\\\CMD{begin\{Sp\}}\\...\\\CMD{end\{Sp\}}% +} + +\begin{lstlisting} +\substack{...\\...\\...} +\end{lstlisting} + +The environments described in \cite{MathGuide} + +\begin{lstlisting} +\begin{Sb} ... \end{Sb} +\begin{Sp} ... \end{Sp} +\end{lstlisting} +are obsolete and no more part of \AmSmath. + +The example equation \vref{eq:atop} with the \CMD{substack}\index{substack@\textbackslash substack} command +looks like: + +\begin{equation}\label{eq:multlimits} +\sum_{\substack{1\le i\le p\\ +1\le j\le q\\ +1\le k\le r} +}a_{ij}b_{jk}c_{ki} +\end{equation} + + +Insert these limits in the following way: +\begin{lstlisting} +\begin{equation} + \sum_{% + \substack{1\le i\le p\\ + 1\le j\le q\\ + 1\le k\le r} + }% + a_{ij}b_{jk}c_{ki} +\end{equation} +\end{lstlisting} + +\subsection{Problems}\label{subsec:ams-limits} + +There are still some problems with limits and the following math +expression. For example: + +\[ +X = \sum_{1\le i\le j\le n}X_{ij} +\] +\begin{lstlisting} +\[ +X = \sum_{1\le i\le j\le n}X_{ij} +\] +\end{lstlisting} + +\noindent does not look nice because of the long limit. Using a +\CMD{makebox} also does not really solve the problem, because +\CMD{makebox} is in \TeX{} horizontal mode and knows nothing about +the appropriate math font size, because limits have a smaller font size. +It is better to define a \CMD{mathclap}\index{mathclap@\textbackslash mathclap} macro, similiar to the two +macros \CMD{llap} and \CMD{rlap} and uses the also new defined \CMD{mathclap} macro\index{clap@\textbackslash clap}: + +\begin{lstlisting} +\def\mathllap{\mathpalette\mathllapinternal} +\def\mathllapinternal#1#2{% + \llap{$\mathsurround=0pt#1{#2}$}% $ +} +\def\clap#1{\hbox to 0pt{\hss#1\hss}} +\def\mathclap{\mathpalette\mathclapinternal} +\def\mathclapinternal#1#2{% + \clap{$\mathsurround=0pt#1{#2}$}% +} +\def\mathrlap{\mathpalette\mathrlapinternal} +\def\mathrlapinternal#1#2{% + \rlap{$\mathsurround=0pt#1{#2}$}% $ +} +\end{lstlisting} + + +Now we can write limits which have a boxwidth of 0pt and the right font +size and the following math expression appears just behind the symbol: + +\[ +X = \sum_{\mathclap{1\le i\le j\le n}}X_{ij} +\] +\begin{lstlisting} +\[ +X = \sum_{\mathclap{1\le i\le j\le n}}X_{ij} +\] +\end{lstlisting} + +Another problem occurs when having operators with stacked limits in braces:\index{substack@\textbackslash substack} +\index{Braces!Problems} +\index{Stacked limits} +\begin{align} +\left[\sum_{\substack{i,j\\i>j}} \dots \right] +\end{align} + +This case is not easy to handle when some other math expressions are around the braces +which should be on the same baseline. However, the following may help in some cases +to get better looking braces. + +\begin{LTXexample}[width=0.45\linewidth,wide] +\begin{align} +foo \left[\begin{array}{@{}c@{}} + \displaystyle\sum_{\substack{i,j\\i>j}} \dots + \end{array}\right] bar +\end{align} +\end{LTXexample} + + +\subsection{\CMD{sideset}} + +This is a command for a very special purpose, to combine over/under +limits with superscript/subscripts for \marginpar{\CMD{sideset}}the +sum-symbol. For example: it is not possible to place the prime +for the equation \ref{eq:sideset} near to the sum\index{sum@\textbackslash sum} symbol, +because it becomes an upper limit when writing without an preceeding \verb|{}|. +\begin{equation} +\sum_{n}{} +\end{lstlisting} + +It can place characters on all four corners of the sum-symbol: +\[ +\sideset{_{LowerLeft}^{UpperLeft}}{_{LowerRight}^{UpperRight}}\sum_{B}^{T} +\] + +\begin{lstlisting} +\[ +\sideset{_{LowerLeft}^{UpperLeft}}{_{LowerRight}^{UpperRight}}\sum_{B}^{T} +\] +\end{lstlisting} + +Now it is possible to write the equation \ref{eq:sideset} in a proper +way with the command \verb|\sideset{}{'}| before +the sum symbol: +\begin{equation} +\sideset{}{'}\sum_{n\mapstofill@{#1}{#2}} +\end{lstlisting} + +{\fboxsep=0pt +\verb+$\ext@arrow 0000$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}0000$} + +\verb+$\ext@arrow 9000$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}9000$} + +\verb+$\ext@arrow 0900$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}0900$} + +\verb+$\ext@arrow 0009$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}0009$} + +\verb+$\ext@arrow 0090$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}0090$} + +\verb+$\ext@arrow 0099$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}0099$} + +\verb+$\ext@arrow 9999$+\quad{\huge $\xmapsto[\fbox{under}]{\fbox{over}}9999$} +} + +% $ +\begin{itemize} +\item 1st digit: space left +\item 2nd digit: space right +\item 3rd digit: space left and right +\item 4th digit: space relativ to the tip of the ``arrow'' +\end{itemize} + +The two macros \verb+\xrightarrow+ and \verb+\xleftarrow+ are defined as: +\begin{lstlisting} +\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}} +\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}} +\end{lstlisting} + + + +\section{Frames}\label{sec:ams-frames} +\marginpar{\CMD{boxed}}% +\AmSmath knows the macro \verb|\boxed|\index{boxed@\textbackslash boxed} which can +be used for inline $a\boxed{b+c}$ and displayed math expressions: + +\begin{align} +\boxed{f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1} +\end{align} + +\begin{lstlisting} +\begin{align} +\boxed{f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1} +\end{align} +\end{lstlisting} + +For coloured boxes use package \verb|empheq|. For an example see section \vref{sec:empheq}. + +\section{Greek letters}\label{sec:greek-AMS} +\marginpar{\CMD{pmb}}% +The \AmSmath package simulates a bold font for the greek letters by writing a greek %%% ----- Martin ----- +character twice with a small kerning. This is done with the macro +\verb|\pmb{}|\index{pmb@\textbackslash pmb}\index{Bold greek letters}. The +\verb|\mathbf{}| doesn't work with lower greek character. + +\begin{tabular}{cc} +$\alpha$ & $\pmb{\alpha}$\\ +$\beta$ & $\pmb{\beta}$\\ +$\gamma$ & $\pmb{\gamma}$\\ +$\delta$ & $\pmb{\delta}$\\ +$\epsilon$ & $\pmb{\epsilon}$\\ +$\ldots$ & $\ldots$ +\end{tabular} + + +\section{Miscellaneous commands}\label{sec:misc-AMS} + +There are several commands which can be used in math mode:\marginpar{\CMD{overset}\\\CMD{underset}\\\CMD{boxed}} + +Some examples are shown in table~\vref{cap:Different-Mathcommands-supported-AMS}. + +\begin{table}[htb] +\centering +{\renewcommand{\arraystretch}{2} +\begin{tabular}{r|>{\raggedright}p{2cm}} +\verb|$\underset{under}{baseline}$| \index{underset@\textbackslash underset} & +$\underset{under}{baseline}$\tabularnewline +\verb|$\overset{over}{baseline}$| \index{overset@\textbackslash overset} & +$\overset{over}{baseline}$\tabularnewline +\end{tabular}} +\caption{Different mathcommands}\label{cap:Different-Mathcommands-supported-AMS} +\end{table} + +\CMD{underset} is a useful macro for having limits under non-operators (see page~\pageref{sec:amsopn}). %%% ----- Martin ----- + + +\part{\TeX{} and math} + +There is in general no need to use the \TeX{} macros, because the ones defined with \LaTeX{} +or with \AmSmath{} are much more useful. Nevertheless there may be situations, where someone %%% ----- Martin ----- +has to use one of the \TeX{} macros or special \TeX{} math length. One can not expect, that all +macros work in the usual way, a lot of them are redefined by \LaTeX{} %%% ----- Martin ----- +or \AmSmath{}. On the other hand some of these basic macros or length definitions are used +in the \TeX{} way, so it might be interesting to have all declared in a short way for some +information. + +\section{Length registers} + +\subsection{\CMD{abovedisplayshortskip}} +\cIndex{abovedisplayshortskip}A length with glue, see section~\ref{subsubsec:displayskip} for an example. + +\subsection{\CMD{abovedisplayskip}} +\cIndex{abovedisplayskip}A length with glue, see section~\ref{subsubsec:displayskip} for an example. + +\subsection{\CMD{belowdisplayshortskip}} +\cIndex{belowdisplayshortskip}A length with glue, see section~\ref{subsubsec:displayskip} for an example. + +\subsection{\CMD{belowdisplayskip}} +\cIndex{belowdisplayskip}A length with glue, see section~\ref{subsubsec:displayskip} for an example. + + +\subsection{\CMD{delimiterfactor}} +\cIndex{delimiterfactor}The height of a delimiter is often not optimally calculated by \TeX{}. In some cases it is %%% ----- Martin ----- +too short. With \verb+\delimiterfactor+ one can correct this height. The delimiterheight +is $<\textrm{calculated height}>\cdot <\textrm{\#1}>/1000$ where \verb+#1+ is the parameter of +\verb+\delimiterfactor+. The default value is $901$. + +\begin{showexample}[width=0.4\linewidth] +\[ +y = \left\{% + \begin{array}{ll} + x^2+2x &\textrm{if }x<0,\\ + x^3 &\textrm{if }0\le x<1,\\ + x^2+x &\textrm{if }1\le x<2,\\ + x^3-x^2 &\textrm{if }2\le x. + \end{array}% +\right. +\] +\end{showexample} + +\begin{showexample}[width=0.4\linewidth] +\[ +\delimiterfactor=1500 +y = \left\{% + \begin{array}{ll} + x^2+2x &\textrm{if }x<0,\\ + x^3 &\textrm{if }0\le x<1,\\ + x^2+x &\textrm{if }1\le x<2,\\ + x^3-x^2 &\textrm{if }2\le x. + \end{array}% +\right. +\] +\end{showexample} + +\subsection{\CMD{delimitershortfall}} +\cIndex{delimitershortfall}Additionally to the forgoing \verb+\delimiterfactor+ one can modify the height of the +delimiter with another value. \TeX{} makes the delimiter larger than the values of +$<\textrm{calculated height}>\cdot <\textrm{delimiterfactor}>/1000$ and $<\textrm{calculated height}>-<\textrm{delimitershortfall}>$. This makes it possible to always get different heights %%% ----- Martin ----- +of a sequence of delimiters. + +\begin{showexample}[width=0.3\linewidth] +$x\cdot\left(\left(x^2-y^2\right)-3\right)$\\[7pt] + +$ +\delimitershortfall-1pt +x\cdot\left(\left(x^2-y^2\right)-3\right)$ +\end{showexample} + +\begin{showexample}[width=0.2\linewidth] +$\left(\left(\left(A\right)\right)\right)$\\[7pt] + +$\delimitershortfall-1pt +\left(\left(\left(A\right)\right)\right)$ +\end{showexample} + + +\subsection{\CMD{displayindent}} +\cIndex{displayindent}This is the left shift amount of a line holding displayed equation. By default it is $0pt$ but +gets the value of an indented paragraph when there is an environment like the quotation one. + +The following formula is typeset in the usual way without modifying anything. + +\[ f(x) = \int \frac{\sin x}{x}dx \] + +Now we start a quotation environment which sets \verb+\labelwidth+ to new values for a greater %%% ----- Martin ----- +left margin. + +\begin{itemize} +\item The following formula is typeset in the usual way without modifying anything. + +\[ f(x) = \int \frac{\sin x}{x}dx \] + +\item Now we write the same equation, but now with modifying \verb+\displayindent+, it is set to +the negative \verb+\labelwidth+: + +\[ + \displayindent=-\labelwidth + f(x) = \int \frac{\sin x}{x}dx +\] +\end{itemize} + +\begin{lstlisting} +\[ + \displayindent=-\leftskip + f(x) = \int \frac{\sin x}{x}dx +\] +\end{lstlisting} + +\subsection{\CMD{displaywidth}} +\cIndex{displaywidth}The width of the line holding a displayed equation, which is by default \verb+\linewidth+. In the +second example the formula is centered for a display width of \verb+0.5\linewidth+. + +\[ f(x) = \int \frac{\sin x}{x}dx \] +\[ + \displaywidth=0.5\linewidth + f(x) = \int \frac{\sin x}{x}dx +\] +\begin{lstlisting} +\[ f(x) = \int \frac{\sin x}{x}dx \] +\[ + \displaywidth=0.5\linewidth + f(x) = \int \frac{\sin x}{x}dx +\] +\end{lstlisting} + +\subsection{\CMD{mathsurround}} +\cIndex{mathsurround}Extra space added when switching in and out of the +inline math mode (see section~\ref{subsec:whitespace}). + +\subsection{\CMD{medmuskip}} +\cIndex{medmuskip}See section~\ref{subsec:mathskip} for an example. + +\subsection{\CMD{mkern}} +\cIndex{mkern}Similiar to \verb+\kern+, but adds a math kern item to the current math list. Length must be a math unit. + +\subsection{\CMD{mskip}} +\cIndex{mskip}Similiar to \verb+\skip+, but adds math glue to the current math list. Length must be a math unit. + +\subsection{\CMD{muskip}} +\cIndex{muskip}Assigns a length with a math unit to one of the 256 \verb+\muskip+ register. + +\subsection{\CMD{muskipdef}} +\cIndex{muskipdef}Defines a symbolic name for a \verb+\muskip+ register. + +\subsection{\CMD{nonscript}} +\cIndex{nonscript}Ignores immediately following glue or kern in script and scriptscript styles, which makes +a redefinition of \verb+\mathchoice+ superfluous. + +\subsection{\CMD{nulldelimiterspace}} +\cIndex{nulldelimiterspace}This is the width of a null or missing delimiter, e.g. \verb+\right.+ or for the left one. + +\subsection{\CMD{predisplaysize}} +\cIndex{predisplaystyle}Is the effective width of the line preceeding a displayed equation, whether +\verb+\abovedisplayskip+ or \verb+abovedisplayshortskip+ is used for the vertical skip. + +\subsection{\CMD{scriptspace}} +\cIndex{scriptspace}The space inserted after an exponent or index, predefined as \verb+\scriptspace=0.5pt+ %%% ----- Martin ----- + +\subsection{\CMD{thickmuskip}} +\cIndex{thickmuskip}See section~\ref{subsec:mathskip}. + +\subsection{\CMD{thinmuskip}} +\cIndex{thinmuskip}The short version for positive skip is defined as \verb+\def\,{\mskip\thinmuskip}+ and the one +for a negative skip as \verb+\def\!{\mskip-\thinmuskip}+ (see also section~\ref{subsec:mathskip}). + + +\begin{showexample}[width=0.35\linewidth] +$\sqrt 2 x$ -- $\sqrt 2\,x$\\ +$\sqrt{\log x}$ -- $\sqrt{\,\log x}$\\ +$P\left({1/\sqrt n}\right)$ -- $P\left({1/ \sqrt n}\,\right)$\\[8pt] + $[0,1)$ -- $[\,0,1)$\\ +$x^2/2$ -- $x^2\!/2$\\ +\end{showexample} + +\begin{showexample}[width=0.35\linewidth] +\[\int\int_D dxdy \quad + \int\!\int_D dx\,dy\] +\[\int\!\!\int_D dx\,\,dy \quad + \int\!\!\!\int_D dx\,\,\,dy\] +\[\int\!\!\!\!\int_D dx\,\,\,\,dy \quad + \int\!\!\!\!\!\int_D dx\,\,\,\,\,dy\] +\[\int\!\!\!\int_D dx\,dy\] +\end{showexample} + +\subsection{\CMD{medmuskip}} +See section~\ref{subsec:mathskip}. + + +\section{Math font macros} +\subsection{\CMD{delcode}} +\cIndex{delcode}Each character has not only a \verb+\catcode+ and \verb+\mathcode+ but also a \verb+\delcode+ +which defines for a single chracter how it should look when used as a math delimiter. + +\subsection{\CMD{delimiter}} +\cIndex{delimiter}Every character can be declared as a delimiter, but \TeX{} must know which characters +should be used for the default and the big size. For \LaTeX{} the macro \verb+\DeclareMathDelimiter+ should be used (see section~\ref{subsec:delim}). + +In the following example \verb+\tdela+ is the character $0x22$ ($\uparrow$) from font number $2$ (\verb+csmy+) and character $0x78$ from font number $3$ (\verb+cmex+) for the big version. +\verb+\tdelb+ is the same vice versa ($\downarrow$). +\begin{showexample}[width=0.35\linewidth] +\def\tdela{\delimiter"4222378\relax} +\def\tdelb{\delimiter"5223379\relax} + +$\tdela x-y\tdelb(x+y)=x^2-y^2$ + +\[\tdela\sum_{n=0}^\infty {1\over2^n}\tdelb^2 = 4\] + +\[\left\tdela\sum_{n=0}^\infty {1\over2^n}\right\tdelb^2 = 4\] +\end{showexample} + +\subsection{\CMD{displaystyle}} +\cIndex{displaystyle}See section~\ref{sec:Styles} for an example. + +\subsection{\CMD{fam}} +\cIndex{fam}When \TeX{} switches into the math mode, it typesets everything using one of the 16 +possible families of fonts. \verb+\fam+ in an internal register where other macros can check which font is the actual one. At the beginning \TeX{} starts with \verb+\fam=-1+. + +\bigskip +\begin{center} +\begin{tabular}{ll} +\verb+\fam=-1+ & $\fam=-1 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=0+ & $\fam=0 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=1+ & $\fam=1 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=2+ & $\fam=2 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=3+ & $\fam=3 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=4+ & $\fam=4 123abcABC\alpha\beta\gamma$\\ +\verb+\fam=5+ & $\fam=5 123abcABC\alpha\beta\gamma$ +\end{tabular} +\end{center} + + +\begin{showexample}[width=0.3\linewidth] +$\mathrm{123abcABC\alpha\beta\gamma (\the\fam)}$\\[5pt] +$\mathbf{123abcABC\alpha\beta\gamma (\the\fam)}$\\[5pt] +$\mathit{123abcABC\alpha\beta\gamma (\the\fam)}$\\[5pt] +$\mathtt{123abcABC\alpha\beta\gamma (\the\fam)}$\\[5pt] +$\mathsf{123abcABC\alpha\beta\gamma (\the\fam)}$\\[5pt] +$\mathnormal{123abcABC\alpha\beta\gamma (\the\fam)}$ +\end{showexample} + + +\subsection{\CMD{mathaccent}} +\cIndex{mathaccent}Requires three parameter as one number, the class, the font family and the character. + +\begin{showexample}[width=0.3\linewidth] +\def\dA{\mathaccent"7015\relax} +{\Large $\dA{A}$} +\end{showexample} + +\subsection{\CMD{mathbin}} +\cIndex{mathbin}Declares a following character as a binary symbol with another spacing before and behind such +a symbol. + +\begin{showexample}[width=0.3\linewidth] +{\Large +$a|b \quad a\mathbin| b$} +\end{showexample} + +\subsection{\CMD{mathchar}} +\cIndex{mathchar}Declares a math character by three integer numbers as Parameters, giving its class, %%% ----- Martin ----- +font family, and font position. In the following example \verb+\mathchar+ defines a +character of class 1 (big operators), font family 3 (math extension font) and number +58 (big sum character). + +\begin{showexample}[width=0.3\linewidth] +{\Large +$a\sum\limits_{i=1}^{\infty} b \quad + a\mathchar"1358\limits_{i=1}^{\infty} b$} +\end{showexample} + +\subsection{\CMD{mathchardef}} +\cIndex{mathchardef}This is in principle the same as \verb+\mathchar+, it only allows to make such definitions permanent. %%% ----- Martin ----- + +\begin{showexample}[width=0.25\linewidth] +\bgroup +\mathchardef\sum="1358 +$a\sum\limits_{i=1}^{\infty}\sqrt{i+1}$\\[5pt] +\egroup + +$a\sum\limits_{i=1}^{\infty}\sqrt{i+1}$ +\end{showexample} + + +\subsection{\CMD{mathchoice}} +\cIndex{mathchoice}Specifies specific subformula sizes for the 4 main styles: \verb+displaystyle+ -- \verb+textstyle+ -- +\verb+scriptstyle+ -- \verb+scriptscriptstyle+. + +\begin{showexample}[width=0.15\linewidth] +\Large +\def\myRule{{% + \color{red}% + \mathchoice{\rule{2pt}{20pt}}{\rule{1pt}{10pt}}% + {\rule{0.5pt}{5pt}}{\rule{0.25pt}{2.5pt}}% + \mkern2mu}} +$\myRule\sum\limits_{\myRule i=1}^{\myRule\infty}% + \myRule\frac{\myRule\sqrt{\myRule i+1}}{\myRule i^2}$ +\end{showexample} + +\subsection{\CMD{mathclose}}\label{subsec:mathclose} +\cIndex{mathclose}Assigns class 5 (closing character) to the following parameter, which can hold a single character +or a subformula. + +\begin{showexample}[width=0.2\linewidth] +{\large +$A:\frac{B}{C}:D$\\[5pt] +$A\mathopen:\frac{B}{C}\mathclose: D $} +\end{showexample} + + +\subsection{\CMD{mathcode}} +\cIndex{mathcode}A math font is far different from a text font. A lot of the characters has to be defined with +\verb+\mathcode+, which defines the character with its class, font family and character number, e.g. +\verb+\mathcode`\<="313C+. It defines the character ``<''{} as a realtion symbol (class 3) from +the font family 1 and the character number 0x3C, which is 60 decimal. + +\subsection{\CMD{mathop}} +\cIndex{mathop}Assigns class 1 (large operator) to the parameter, which can be a single character or a subformula. + +\begin{showexample}[width=0.2\linewidth] +\[ A_{i=1}^{\infty} \] +\[ \mathop{A}_{i=1}^{\infty} \] +\end{showexample} + +\subsection{\CMD{mathopen}} +\cIndex{mathopen}Vice versa to \verb+\mathclose+ (see section~\ref{subsec:mathclose}). + + +\subsection{\CMD{mathord}} +\cIndex{mathord}Assigns class 0 (ordinary character) to the following parameter, which can be a single character +or a subformula. + +\begin{showexample}[width=0.2\linewidth] +{\large +$y = f(x)$\\[5pt] +$y \mathord= f(x)$} +\end{showexample} + +\subsection{\CMD{mathpunct}} +\cIndex{mathpunct}Assigns class 6 (punctuation) to the following parameter, which can be a single character +or a subformula (see section~\ref{subsec:dot-comma} for an example). + +\subsection{\CMD{mathrel}} +\cIndex{mathrel}Assigns class 3 (relation) to the following parameter, which can be a single character +or a subformula. + +\begin{showexample}[width=0.25\linewidth] +{\large +$x_1 o x_2 o x_3$\\[5pt] +$x_1\mathrel o x_2\mathrel o x_3$} +\end{showexample} + + +\subsection{\CMD{scriptfont}} +\cIndex{scriptfont}Specifies the scriptstyle font (used for super/subscript) for a family. + +\begin{showexample}[width=0.25\linewidth] +$A_1$ +\font\tenxii=cmr12 +\scriptfont0=\tenxii +$A_1$ +\end{showexample} + + +\subsection{\CMD{scriptscriptfont}} +\cIndex{scriptscriptfont}Specifies the scriptscriptstyle font for a family. + +\subsection{\CMD{scriptscriptstyle}} +\cIndex{scriptscriptstyle}Selects scriptscript style for the following characters. + +\subsection{\CMD{scriptstyle}} +\cIndex{scriptstyle}Selects script style for the following characters. + + +\subsection{\CMD{skew}} +\cIndex{skew}Especially for italic characters double accents are often misplaced. \verb+\skew+ has three arguments +\begin{description} +\item[horizontal shift:] A value in math units for the additional shift of the accent. +\item[the accent:] The symbol which is placed above the character. +\item[the character:] This is in general a single character, but can also include itself an accent. +\end{description} + +\AmSmath\ redefines the setting of double accents. This is the reason why there are only a few +cases where someone has to use \verb+\skew+ when \verb+amsmath.sty+ is loaded, like +in this document. + +\begin{showexample}[width=0.2\linewidth] +\large +$\tilde i$ \qquad $\tilde{A}$\\[5pt] +$\skew{3}{\tilde}{i}$ \qquad $\skew{7}{\tilde}{A}$ +\end{showexample} + +\subsection{\CMD{skewchar}} +\cIndex{skewchar}Is -1 or the character (reference symbol) used to fine-tune the positioning of math accents. + +\subsection{\CMD{textfont}} +\cIndex{textfont}Specifies the text font for a family. + +\subsection{\CMD{textstyle}} +\cIndex{textstyle}Selects the text style for the following characters. + + + +\section{Math macros} + + +\subsection{\CMD{above}} +\cIndex{above} +\begin{showexample}[width=0.2\linewidth] +$a\above0pt b$\\[8pt] + +${a\above1pt b}$\\[8pt] + +${a\above2.5pt b}$\\[8pt] + +$\displaystyle{a\above0pt b}$ +\end{showexample} + + + +\subsection{\CMD{abovewithdelims}} +\cIndex{abovewithdelims} +\begin{showexample}[width=0.2\linewidth] +$a\abovewithdelims()0pt b$\\[8pt] + +\def\fdelimA{\abovewithdelims\{)1.0pt} +${a\fdelimA b}$\\[8pt] + +\def\fdelimB{\abovewithdelims[]2.0pt} +${a\fdelimB b}$\\[8pt] + +\def\fdelimC{\abovewithdelims\{.0pt} +$\displaystyle{a\fdelimC b}$ +\end{showexample} + +\subsection{\CMD{atop}} +\cIndex{atop} + +\begin{showexample}[width=0.2\linewidth] +$a\atop b$\\[8pt] + +$({n \atop k}) = {n!\above1pt k!(n-k)!}$\\[8pt] + +$\displaystyle{a\atop b}$ +\end{showexample} + + +\subsection{\CMD{atopwithdelims}} +\cIndex{atopwithdelims} +\begin{showexample}[width=0.2\linewidth] +$a\atopwithdelims() b$\\[8pt] + +${n \atopwithdelims() k} = {n!\above1pt k!(n-k)!}$\\[8pt] + +$\displaystyle{a\atopwithdelims\{. b}$ +\end{showexample} + +\subsection{\CMD{displaylimits}} +\cIndex{displaylimits}Resets the conventions for using limits with operators to the standard for the used environment. + +\subsection{\CMD{eqno}}\label{subsec:eqno} +\cIndex{eqno}Puts an equation number at the right margin, the parameter can hold anything. \verb+\eqno+ places +only the parameter, but doesn't increase any equation counter. + +\begin{showexample}[width=0.5\linewidth] +\[ y=f(x) \eqno{(A12)} \] +\end{showexample} + +\subsection{\CMD{everydisplay}} +\cIndex{everydisplay}Inserts the parameter at the start of every switch to display math mode. + +\begin{showexample}[width=0.4\linewidth] +\everydisplay{\color{red} +} +\[ f(x) = \int \frac{\sin x}{x}dx \] +\[ g(x) = \int \frac{\sin^2 x}{x^2}dx \] +\end{showexample} + +\subsection{\CMD{everymath}} +\cIndex{everymath}Same as \verb+\everydisplay+, but now for the inline mode. In the following example +the displaystyle is used (besides using color red) for every inline math expression. %%% ----- Martin ----- + +\bgroup +\begin{showexample}[width=0.45\linewidth] +\everymath{\color{red}% + \displaystyle} +\[ f(x) = \int \frac{\sin x}{x}dx \] +Instead of $\frac{\sin x}{x}$ + now with $\frac{\cos x}{x}$: +\[ g(x) = \int \frac{\cos x}{x}dx \] +\end{showexample} +\egroup + +Pay attention for side effects on footnotes and other macros which use the math mode for superscript +and other math related modes. In this case you'll get the footnotes also in red. + +\subsection{\CMD{left}} +\cIndex{left}\TeX{} calculates the size of the following delimiter needed at the left side of a formula. +Requires an additional \verb+right+. + +\subsection{\CMD{leqno}} +\cIndex{leqno}Vice versa to \verb+\eqno+ (see section~\ref{subsec:eqno}). + +\subsection{\CMD{limits}} +\cIndex{limits}Typesets limits above and/or below operators (see section~\ref{sec:limits}). + +\subsection{\CMD{mathinner}} +\cIndex{mathinner}Defines the following parameter as subformula. + +\subsection{\CMD{nolimits}} +\cIndex{nolimits}The opposit of \verb+\limits+, instead of above/below limits are placed to the right of large +operators (class 1). + + +\subsection{\CMD{over}} +\cIndex{over}Is equivalent to the fraction macro of \LaTeX{} and equivalent to the +\verb+\overwithdelims+, see section~\ref{subsec:overwithdelims}. + +\begin{showexample}[width=0.2\linewidth] +$ {a\over b} \qquad {{m\over n}\over{a+b}} $ +\[ {m\over n}\over{a+b} \] +\end{showexample} + + +\subsection{\CMD{overline}} +\cIndex{overline}Puts a line over the following character or subformula and has the same problems with different +heights as underlines (see section~\ref{subsec:underline}). + +\begin{showexample}[width=0.2\linewidth] +$\overline{x}+\overline{y}=\overline{z}$\\ +\let\ol\overline +$ \ol{x} + \ol{A} = \ol{z} $\\[5pt] +\def\yPh{\vphantom{A}} +$ \ol{x\yPh} + \ol{A} = \ol{z\yPh} $ +\end{showexample} + +\subsection{\CMD{overwithdelims}}\label{subsec:overwithdelims} +\cIndex{overwithdelims}Is a generalized fraction command with preset fraction bar thickness. %%% ----- Martin ----- + +\begin{showexample}[width=0.25\linewidth] +$ {a\overwithdelims() b} \qquad {{m\over n}\overwithdelims[]{a+b}} $ +\[ {m\over n}\overwithdelims\{.{a+b} \] +\end{showexample} + + +\subsection{\CMD{radical}} +\cIndex{radical}Makes a radical atom from the delimiter (27-bit number) and the math field. + +\begin{showexample}[width=0.2\linewidth] +\def\mySqrt{\radical"0270371\relax} +$ \mySqrt{\frac{1}{7}} $\\[5pt] + +\def\mySqrt{\radical"0270372\relax} +$ \mySqrt{\frac{1}{7}} $\\[5pt] + +\def\mySqrt{\radical"0270373\relax} +$ \mySqrt{\frac{1}{7}} $\\[5pt] + +\def\mySqrt{\radical"0270374\relax} +$ \mySqrt{\frac{1}{7}} $\\[5pt] +\end{showexample} + +\subsection{\CMD{right}} +\cIndex{right}Opposite to \verb+\left+, makes \TeX{} calculate the size of the delimiter needed at the right of a formula. + +\subsection{\CMD{underline}}\label{subsec:underline} +\cIndex{underline}When there is a combination of variables with and without an index, the underlines are typeset %%% ----- Martin ----- +with a different depth. Using \verb+\vphantom+ in this case is a good choice. + +\begin{showexample}[width=0.2\linewidth] +$\underline{x}+\underline{y}=\underline{z}$\\ + +\let\ul\underline +\def\yPh{\vphantom{y}} +$ \ul{x\yPh} + \ul{y} = \ul{z\yPh} $\\ + +$ \ul{x_1} + \ul{y_2} = \ul{z_3} $ +\end{showexample} + +\subsection{\CMD{vcenter}} +\cIndex{vcenter}Centers vertical material with respect to the axis. + + +\section{Math penalties} + +\subsection{\CMD{binoppenalty}} +\cIndex{binoppenalty}A penalty for breaking math expressions between lines in a paragraph. TeX breaks lines only +when the binary symbol is not the last one and when the penalty is below 10,000. + +\subsection{\CMD{displaywidowpenalty}} +\cIndex{displaywidowpenalty}The penalty which is added after the penultimate line immediately preceeding a display math formula. + +\subsection{\CMD{postdisplaypenalty}} +\cIndex{postdisplaypenalty}Is added immediately after a math display ends. + +\subsection{\CMD{predisplaypenalty}} +\cIndex{predisplaypenalty}Is added immediately before a math display starts. + +\subsection{\CMD{relpenalty}} +\cIndex{relpenalty}The penalty for a line break after a relation symbol (if a break is possible). + + +\part{Other packages} +The following sections are not a replacement for the package documentation! +\section{List of available math packages} + + +\begin{center} +\noindent +\begin{tabular}{llll} +\href{http://www.dante.de/CTAN/help/Catalogue/entries/accents.html}{accents}& +\href{http://www.dante.de/CTAN/help/Catalogue/entries/alphalph.html}{alphalph}& +\href{http://www.dante.de/CTAN/help/Catalogue/entries/amsart.html}{amsart}& +\href{http://www.dante.de/CTAN/help/Catalogue/entries/amsbook.html}{amsbook}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsbsy.html}{amsbsy}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amscd.html}{amscd}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amscls.html}{amscls}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsfonts.html}{amsfonts}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amslatex.html}{amslatex}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsltx11.html}{amsltx11}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsmath.html}{amsmath}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsppt.html}{amsppt}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsppt1.html}{amsppt1}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsproc.html}{amsproc}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amssym.html}{amssym (plain TeX)}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amssymb.html}{amssymb (LaTeX)}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amstex.html}{amstex (Plain TeX)}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amstext.html}{amstext}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/amsthm.html}{amsthm}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/bez123.html}{bez123}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/bitfield.html}{bitfield}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/brclc.html}{brclc}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/breqn.html}{breqn}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/cancel.html}{cancel}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/cases.html}{cases}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/comma.html}{comma}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/datenumber.html}{datenumber}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/diagxy.html}{diagxy}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/doublestroke.html}{doublestroke}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/easyeqn.html}{easyeqn}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/easybmat.html}{easybmat}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/easymat.html}{easymat}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/eqnarray.html}{eqnarray}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/esvect.html}{esvect}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/fixmath.html}{fixmath}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/fltpoint.html}{ftlpoint}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/icomma.html}{icomma}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/leftidx.html}{leftidx}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/mathdots.html}{mathdots}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/mathematica.html}{mathematica}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/mil3.html}{mil3}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/mtbe.html}{mtbe}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/nath.html}{Nath}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/numprint.html}{numprint}\\ +\href{http://www.dante.de/CTAN//help/Catalogue/entries/random.html}{random}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/romannum.html}{romannum}& +\href{http://www.dante.de/CTAN//help/Catalogue/entries/texaide.html}{TeXaide}& +\end{tabular} +\end{center} + +The following examples depend on the listed versions of the packages: %%% ----- Martin ----- + +{\small +\begin{verbatim} + amsopn.sty 1999/12/14 v2.01 operator names + bm.sty 1999/07/05 v1.0g Bold Symbol Support (DPC/FMi) + empheq.sty 2004/08/03 v2.11 Emphasizing equations (MH) + amscd.sty 1999/11/29 v2.0 + accents.sty 2000/08/06 v1.2 Math Accent Tools + framed.sty 2002/12/29 v 0.5: framed or shaded text with page breaks + pstcol.sty 2001/06/20 v1.1 PSTricks color colompatibility (DPC) +pstricks.sty 2004/05/06 v0.2k LaTeX wrapper for `PSTricks' (RN,HV) +pstricks.tex 2003/03/07 v97 patch 15 `PSTricks' (tvz) +pst-node.sty 1997/03/25 package wrapper for PSTricks pst-node.tex +delarray.sty 1994/03/14 v1.01 array delimiter package (DPC) + xypic.sty 1999/02/16 Xy-pic version 3.7 + exscale.eps Graphic file (type veps) +\end{verbatim} +} + + +\section{\texttt{accents}}\label{sec:package-accent} +\index{Accent}If you want to write for example an underlined M, then you can do it by %%% ----- Martin ----- + +\medskip +\begin{tabular}{ll} +\verb|\underline{$M$}| & \underline{$M$}\\ +\verb|\underbar{$M$}| & \underbar{$M$}\\ +\verb|\underaccent{\bar}{M}| & $\underaccent{\bar}{M}$ +\end{tabular} +\medskip + +As seen, there is no difference between \verb|\underline| and \verb|\underbar|. For %%% ----- Martin ----- +some reasons it may be better to use the package \verb|accents.sty| with the +\verb|\underaccents| macro. + +\section{\texttt{amscd} -- commutative diagrams} + +\verb|amscd.sty|\index{amscd.sty} is part of the \AmSmath bundle +or available at CTAN% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/amscd.dtx}% +{CTAN://macros/latex/required/amslatex/math/amscd.dtx}} and has no options for the +\verb|\usepackage| command. +\texttt{amscd.sty} does not support diagonal arrows but is much %%% ----- Martin ----- +easier to handle than the complex pstricks\index{pstricks.sty} or +the xypic\index{xypic.sty} package. On the other hand simple diagrams +can be written with the array environment or look at \cite{taylor00}. + +\[ +\begin{CD} + R\times S\times T @>\text{restriction}>> S\times T \\ + @VprojVV @VVprojV \\ + R\times S @<<\text{inclusion}< S +\end{CD} +\] + +\begin{lstlisting} +\[ +\begin{CD} + R\times S\times T @>\text{restriction}>> S\times T \\ + @VprojVV @VVprojV \\ + R\times S @<<\text{inclusion}< S +\end{CD} +\] +\end{lstlisting} + + +\section{\texttt{amsopn}}\label{sec:amsopn} +With this package it is very easy to declare new math operators, which are written in +upright mode: + +$\underset{s=p}{Res}\quad\text{versus}\quad\underset{s=p}{\Res}$ + +\medskip +\begin{lstlisting} +\documentclass[10pt]{article} +\usepackage{amsmath} +\usepackage{amsopn} +\DeclareMathOperator{\Res}{Res} +\begin{document} +$\underset{s=p}{Res}\quad\underset{s=p}{\Res}$ +\end{document} +\end{lstlisting} + +Table~\ref{tab:amsopn} shows the predefined operatornames of \verb+amsopn+. + +\begin{table}[htb] +\centering +\begin{tabular}{llllll} +\verb+\arccos+ & $\arccos$ & \verb+\arcsin+ & $\arcsin$ & \verb+\arctan+ & $\arctan$\\ +\verb+\arg+ & $\arg$ & \verb+\cos+ & $\cos$ & \verb+\cosh+ & $\cosh$\\ +\verb+\cot+ & $\cot$ & \verb+\coth+ & $\coth$ & \verb+\csc+ & $\csc$\\ +\verb+\deg+ & $\deg$ & \verb+\det+ & $\det$ & \verb+\dim+ & $\dim$\\ +\verb+\exp+ & $\exp$ & \verb+\gcd+ & $\gcd$ & \verb+\hom+ & $\hom$\\ +\verb+\inf+ & $\inf$ & \verb+\injlim+ & $\injlim$ & \verb+\ker+ & $\ker$\\ +\verb+\lg+ & $\lg$ & \verb+\lim+ & $\lim$ & \verb+\liminf+ & $\liminf$\\ +\verb+\limsup+ & $\limsup$ & \verb+\ln+ & $\ln$ & \verb+\log+ & $\log$\\ +\verb+\max+ & $\max$ & \verb+\min+ & $\min$ & \verb+\Pr+ & $\Pr$\\ +\verb+\projlim+& $\projlim$& \verb+\sec+ & $\sec$ & \verb+\sin+ & $\sin$\\ +\verb+\sinh+ & $\sinh$ & \verb+\sup+ & $\sup$ & \verb+\tan+ & $\tan$\\ +\verb+\tanh+ & $\tanh$ +\end{tabular} +\caption{The predefined operators of \texttt{amsopn.sty}}\label{tab:amsopn} +\end{table} + + +\section{\texttt{bigdel}}\label{sec:bigdelim} +This is a very useful package together with the \verb|multirow.sty| package. +In the following example we need additional parentheses for a different +number of rows. This is also possible with the \verb|array| environment, +but not as easy as with \verb|bigdelim.sty|. The trick is that you need one +separate column for a big delimiter, but with empty cells in all rows, which +the delimiter spans. + +\[ + \begin{pmatrix} + & x_{11} & x_{12} & \dots & x_{1p} & \rdelim\}{4}{3cm}[some text]\\ + \ldelim[{5}{1cm}[text] & x_{21} & x_{22} & \dots & x_{2p} \\ + & \vdots\\ + & x_{n_1 1}& x_{n_1 2} & \dots & x_{n_1 p}\\ + & x_{n_1+1,1}&x_{n_1+1,2} & \dots & x_{n_1+1, p} & + \rdelim\}{3}{3cm}[some more text]\\ + & \vdots\\ + & x_{n_1+n_2, 1} & x_{n_1+n_2,2} & \dots & x_{n_1+n_2,p}\\ + & \vdots \\ + \end{pmatrix} +\] + +\begin{lstlisting}[xleftmargin=-1cm,xrightmargin=-1.5cm] +\[ + \begin{pmatrix} + & x_{11} & x_{12} & \dots & x_{1p} & \rdelim\}{4}{3cm}[some text]\\ + \ldelim[{5}{1cm}[text] & x_{21} & x_{22} & \dots & x_{2p} \\ + & \vdots\\ + & x_{n_1 1}& x_{n_1 2} & \dots & x_{n_1 p}\\ + & x_{n_1+1,1}&x_{n_1+1,2} & \dots & x_{n_1+1, p} & + \rdelim\}{3}{3cm}[some more text]\\ + & \vdots\\ + & x_{n_1+n_2, 1} & x_{n_1+n_2,2} & \dots & x_{n_1+n_2,p}\\ + & \vdots \\ + \end{pmatrix} +\] +\end{lstlisting} + +As seen in the above listing the left big delimiter is placed in the first +column, all other rows start with second column. It is possible to use all +columns above and below the delimiter. For the \verb|array| environment +there must be two more columns defined, in case of a big delimiter left and +right. The syntax of \verb|\ldelim| and \verb|\rdelim| is: +\begin{verbatim} +\ldelim{}{}[] +\rdelim{}{}[] +\end{verbatim} + +Any delimiter which is possible for the \verb|\left| or \verb|\right| command +is allowed, e.g.: ``\verb/()[]{}|/''. The text is an optional argument and %%% ----- Martin ----- +always typeset in text mode. + +\section{\texttt{bm}}\label{sec:bm} +By default the math macro \verb|mathbf| writes everything in bold and in upright mode +$\mathbf{y=f(x)}$ (\verb|$\mathbf{y=f(x)}$|), but it should be in italic mode especially +for variables $\bm{y=f(x)}$ (\verb|$\bm{y=f(x)}$|). For writing a whole formula in bold +have a look at section \vref{sec:boldmath}. + + +\section{\texttt{braket}}\label{sec:braket} +It is available at + \href{http://www.ctan.org/tex-archive/macros/latex/contrib/other/misc/braket.sty}% +{CTAN://macros/latex/contrib/other/misc/braket.sty} +and provides several styles for writing math expressions inside brakets. For example: + +\[ \left\{ x\in\mathbf{R} | 0<{|x|}<\frac{5}{3}\right\} \] + +\begin{lstlisting} +\[ \left\{ x\in\mathbf{R} | 0<{|x|}<\frac{5}{3}\right\} \] +\end{lstlisting} + +\noindent looks not quit right and it is not really easy to get the first vertical line in the same +size as the outer braces. Some solution may be using \CMD{vphantom}: %%% ----- Martin ----- + +\[ +\left\{\vphantom{\frac{5}{3}}x\in\mathbf{R} \right|\left. 0<{|x|}<\frac{5}{3}\right\} +\] + +\begin{lstlisting} +\[ +\left\{\vphantom{\frac{5}{3}}x\in\mathbf{R} \right|\left. 0<{|x|}<\frac{5}{3}\right\} +\] +\end{lstlisting} + +\verb|braket.sty| has the macros + +\begin{lstlisting} +\Bra{} +\Ket{} +\Braket{} +\Set{} +\end{lstlisting} + +\noindent and the same with a leading lower letter, which are not really interesting. + +\[ \Bra{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Ket{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Braket{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Braket{x\in\mathbf{R} | 0<\vert x\vert <\frac{5}{3}} \] +\[ \Set{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] + +\begin{lstlisting} +\[ \Bra{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Ket{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Braket{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\[ \Braket{x\in\mathbf{R} | 0<\vert x\vert <\frac{5}{3}} \] +\[ \Set{x\in\mathbf{R} | 0<|x|<\frac{5}{3}} \] +\end{lstlisting} + +The difference between the \CMD{Set} and the \CMD{Braket} macro is the handling of the +vertical lines. In \CMD{Set} only the first one gets the same size as the +braces\index{Braces} and in \CMD{Braket} all. + +\[ \Braket{ \phi | \frac{\partial^2}{\partial t^2} | \psi }\] +\[ \Set{ \phi | \frac{\partial^2}{\partial t^2} | \psi }\] +\begin{lstlisting} +\[\Braket{\phi | \frac{\partial^2}{\partial t^2} | \psi}\] +\[\Set{\phi | \frac{\partial^2}{\partial t^2} | \psi}\] +\end{lstlisting} + + +\CMD{Bra} and \CMD{Ket} do nothing with the inner vertical lines. + + +\section{\texttt{cancel}}\label{cancel.sty} +This is a nice package for canceling anything in mathmode with a slash, backslash or a \verb+X+. To get +a horizontal line we can define an additional macro called \verb+hcancel+ with an optional argument +for the line color (requires package \verb+color+): +\begin{lstlisting} +\newcommand\hcancel[2][black]{\setbox0=\hbox{#2}% + \rlap{\raisebox{.45\ht0}{\textcolor{#1}{\rule{\wd0}{1pt}}}}#2} +\end{lstlisting} + +It is no problem to redefine the \verb+cancel+ macros to get also colored lines. A horizontal line for +single characters is also decribed in section \vref{sec:Accents}. + +\medskip +\noindent +\verb+\cancel+: $f(x)=\dfrac{\left(x^2+1\right)\cancel{(x-1)}}{\cancel{(x-1)}(x+1)}$\\[0.5cm] +\verb+\bcancel+: $\bcancel{3}\qquad\bcancel{1234567}$\\[0.5cm] +\verb+\xcancel+: $\xcancel{3}\qquad\xcancel{1234567}$\\[0.5cm] +\verb+\hcancel+: $\hcancel{3}\qquad\hcancel[red]{1234567}$ + +\bigskip +\begin{lstlisting} +$f(x)=\dfrac{\left(x^2+1\right)\cancel{(x-1)}}{\cancel{(x-1)}(x+1)}$\\[0.5cm] +$\bcancel{3}\qquad\bcancel{1234567}$\\[0.5cm] +$\xcancel{3}\qquad\xcancel{1234567}$\\[0.5cm] +$\hcancel{3}\qquad\hcancel[red]{1234567}$ +\end{lstlisting} + + +\section{\texttt{delarray}}\label{delarray} + +Package \texttt{delarray.sty}% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/required/tools/delarray.dtx}{CTAN://macros/latex/required/tools/delarray.dtx}% +} supports different delimiters which are defined together with the +beginning of an array: + +\begin{lstlisting} +\begin{array}{cc} +... +\end{lstlisting} + +\noindent defines an array with two centered columns and the delimiters\\ +``\texttt{}{}'', e.g. ``\texttt{()}{}''. + +\medskip{} +\begin{minipage}[c]{0.45\textwidth}% +\begin{lstlisting} +\[ +A=\begin{array}({cc}) + a & b\\ + c & d +\end{array} +\] +\end{lstlisting} + +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.45\textwidth}% +\[ +A=\begin{array}({cc}) +a & b \\ +c & d +\end{array} +\] +\end{minipage}% + +\medskip{} + +\verb|delarray.sty| expects a pair of delimiters. If you need only +one (like the cases structure) then use the dot for an ``empty'' +delimiter, e.g. + +\medskip{} +\begin{minipage}[c]{0.45\textwidth}% +\begin{lstlisting} +\[ +A=\begin{array}\{{cc}. + a & b\\ + c & d +\end{array} +\] +\end{lstlisting} + +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.45\textwidth}% +\[A=\begin{array}\{{cc}. +a & b \\ +c & d +\end{array}\] +\end{minipage}% + +\medskip{} + +\noindent which is a useful command for a cases structure without the \AmSmath package, which is described in the \AmSmath part. + + +\section{\texttt{empheq}}\label{sec:empheq} + +This package supports different frames for math environments of the \AmSmath +package. It doesn't support all the environments from standard \LaTeX{} which %%% ----- Martin ----- +are not modified by \AmSmath, e.g. \verb|eqnarray|. + +With the optional argument of the environment \verb|empheq| the preferred box type +can be specified. A simple one is \verb|\fbox| + +\begin{empheq}[box=\fbox]{align} + f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1 +\end{empheq} + +\begin{lstlisting} +\begin{empheq}[box=\fbox]{align} + f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1 +\end{empheq} +\end{lstlisting} + +The same is possible with the macro \verb|\colorbox|: +\begin{empheq}[box={\fboxsep=10pt\colorbox{yellow}}]{align} + f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1 +\end{empheq} + +\begin{lstlisting} +\begin{empheq}[box={\fboxsep=10pt\colorbox{yellow}}]{align} + f(x)=\int_1^{\infty}\frac{1}{x^2}\,dt=1 +\end{empheq} +\end{lstlisting} + +The key \verb|box| can hold any possible \LaTeX{} command sequence. Boxing +subequations is also no problem, the \verb|empheq| environment works in the same way: + +\begin{subequations} +\begin{empheq}[box={\fboxsep=10pt\colorbox{cyan}}]{align} + f(x) & =\int_1^{\infty}\frac{1}{x^1}\,dt=1\\ + f(x) & =\int_2^{\infty}\frac{1}{x^2}\,dt=0.25 +\end{empheq} +\end{subequations} + +\begin{lstlisting} +\begin{subequations} +\begin{empheq}[box={\fboxsep=10pt\colorbox{cyan}}]{align} + f(x) & =\int_1^{\infty}\frac{1}{x^2}\,dt=1\\ + f(x) & =\int_2^{\infty}\frac{1}{x^2}\,dt=0.25 +\end{empheq} +\end{subequations} +\end{lstlisting} + +For more information on \verb|empheq| have a look at the documentation of the package +which is available at any CTAN server. + +\section{\texttt{esint}}\label{sec:esint} +This is a very useful package when you want nice double or triple integral or curve +integral symbols. The ones from \verb|wasysym|% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/wasysym/}% +{CTAN://macros/latex/contrib/wasysym/}} are not the best. +\verb|esint|\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/esint/}% +{CTAN://macros/latex/contrib/esint/} +\href{http://www.ctan.org/tex-archive/fonts/ps-type1/esint/}{CTAN://fonts/ps-type1/esint/}} supports the following symbols: + +\allowdisplaybreaks +\begin{align} +\text{\CMD{int}} &: \int\\ +\text{\CMD{iint}} &: \iint\\ +\text{\CMD{iiintop}} &: \iiintop\\ +\text{\CMD{iiiintop}} &: \iiiintop\\ +\text{\CMD{dotsintop}}&: \dotsintop\\ +\text{\CMD{ointop}} &: \ointop\\ +\text{\CMD{oiint}} &: \oiint\\ +\text{\CMD{sqint}} &: \sqint\\ +\text{\CMD{sqiint}} &: \sqiint\\ +\text{\CMD{ointctrclockwise}} &: \ointctrclockwise\\ +\text{\CMD{ointclockwise}} &: \ointclockwise\\ +\text{\CMD{varointclockwise}} &: \varointclockwise\\ +\text{\CMD{varointctrclockwise}} &: \varointctrclockwise\\ +\text{\CMD{fint}} &: \fint\\ +\text{\CMD{varoiint}} &: \varoiint\\ +\text{\CMD{landupint}} &: \landupint\\ +\text{\CMD{landdownint}} &: \landdownint +\end{align} + + +\section{\texttt{eucal} and \texttt{euscript.sty}}\label{sec:euscript.sty} + +These packages should be part of your local \TeX{} installation, because +they come with the \AmSmath packages. Otherwise get them from CTAN% +\footnote{\href{http://www.ctan.org/tex-archive/fonts/amsfonts/latex/euscript.sty}% +{CTAN://fonts/amsfonts/latex/euscript.sty}}. They support a scriptwriting of only uppercase +letters: + +\begin{center} +\texttt{\textbackslash{}mathscr\{...\}}\index{EuScript@\textbackslash EuScript} +{$\EuScript{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$} +\end{center} + +Read the documentation for the interdependence to the %%% ----- Martin ----- +\verb|\mathcal| command. For the above example the +package \verb|eucal.sty| was loaded with the option \verb|mathscr|. + + +\section{\texttt{exscale}}\label{sec:exscale} + +The following formula is written with the default fontsize where everything +looks more or less well: + +\[ +\int_{-1}^{+1}\frac{f(x)}{\sqrt{1-x^{2}}}\,% +dx\approx\frac{\pi}{n}\sum_{i=1}^{n}f\left(\cos\left(\frac{2i-1}{2n}\right)\right)\] + + +Writing the same with the fontsize \texttt{\textbackslash{}huge} gives +a surprising result, which belongs to the historical development of +\LaTeX{}, the int\index{int@\textbackslash int} and sum\index{sum@\textbackslash sum} symbols +are not stretched. This extreme fontsize is often needed for slides +and not only written ``just for fun{}''. + +\begin{center} +\includegraphics{exscale} +\end{center} + +Using the \texttt{exscale.sty}% +\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/base/}% +{CTAN://macros/latex/base/}} package, which should be part of any local \TeX{} +installation, all symbols get the right size. + +\begin{minipage}[c]{1.0\textwidth}% +\centering\huge\[ +\int_{-1}^{+1}\frac{f(x)}{\sqrt{1-x^{2}}}\, dx\approx\frac{\pi}{n}% +\sum_{i=1}^{n}f\left(\cos\left(\frac{2i-1}{2n}\right)\right)\] +\end{minipage}% + +\section{\texttt{relsize}}\label{sec:relsize} +Often consecutives math operators are used, like two sum symbols, e.g.: +\[ \sum\sum_{i=1}^n i^2 \] + + +As seen the sums are of the same size. To increase the first operator size, someone +can use the \verb+\scalebox+ macro from \verb+graphicx+ and write an own macro %%% ----- Martin ----- +\verb+\Sum+, e.g.:\index{Operator!size}\index{Size!Operator} + +\begin{lstlisting} +\def\Sum{\ensuremath\mathop{\scalebox{1.2}{$\displaystyle\sum$}}} +\[ \Sum_{j=1}\sum_{i=1}^\infty i \] +\end{lstlisting} + +\def\Sum{\ensuremath\mathop{\scalebox{1.2}{$\displaystyle\sum$}}} +\[ \Sum_{j=1}\sum_{i=1}^\infty i \] + +Another solution is to use the \verb+relsize+\footnote{\href{http://www.ctan.org/tex-archive/macros/latex/ltxmisc/}% +{CTAN://macros/latex/ltxmisc/}} package together with the \verb+exscale+ +one. \verb+relsize+ defines a useful macro \verb+mathlarger+: + +\begin{showexample} +\[ \mathlarger{\sum}\sum_{i=1}^n i^2 \] +\end{showexample} + + +\section{\texttt{xypic}}\label{xypic.sty} + +The \texttt{xymatrix}\index{xymatrix@\textbackslash xymatrix} macro is part of the +\verb+xypic+ package% +\footnote{\href{http://www.ctan.org/tex-archive/support/latex2html/}% +{CTAN://macros/generic/diagrams/xypic/xy-3.7/}} which can be loaded with several options +which are not so important.% +\footnote{For more information look at the style file \texttt{xy.sty}, which +is often saved in \texttt{/usr/share/texmf/tex/generic}}. + +\begin{equation} +\xymatrix{A\POS[];[d]**\dir{~},[];[dr]**\dir{-} & B & C\\ +D & E\POS[];[l]**\dir{.},[];[r]**\dir{~} & F\POS[];[dl]**\dir{~}\\ +G & H & I} +\label{eq:xymatrix} +\end{equation} + + +This matrix was created with + +\begin{lstlisting} +\[ +\xymatrix{ A\POS [];[d]**\dir {~},[];[dr]**\dir {-} & B & C\\ + D & E\POS [];[l]**\dir {.},[];[r]**\dir {~} & F\POS [];[dl]**\dir {~}\\ + G & H & I} +\] +\end{lstlisting} + + +\part{Special symbols} + +In this section only those symbols are defined, which are not part of the %%% ----- Martin ----- +list of all available symbols: +\href{http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf}% +{CTAN://info/symbols/comprehensive/symbols-a4.pdf}. With +\verb+fontmath.ltx+ \LaTeX{} itself defines the following special symbols for using inside math: %%% ----- Martin ----- + +\begin{table}[htb] +\centering +\begin{tabular}{l|c} +Name & Meaning\\\hline +\verb+\mathparagraph+ & $\mathparagraph$\\ +\verb+\mathsection+ & $\mathsection$\\ +\verb+\mathdollar+ & $\mathdollar$\\ +\verb+\mathsterling+ & $\mathsterling$\\ +\verb+\mathunderscore+ & $\mathunderscore$\\ +\verb+\mathellipsis+ & $\mathellipsis$\\ +\end{tabular} +\caption{Predefined math symbols from \texttt{fontmath.ltx}}\label{fontmath.ltx} +\end{table} + +\section{Integral symbols} +\index{Integral symbols} + +\def\Xint#1{\mathchoice + {\XXint\displaystyle\textstyle{#1}}% + {\XXint\textstyle\scriptstyle{#1}}% + {\XXint\scriptstyle\scriptscriptstyle{#1}}% + {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}% + \!\int} +\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$} + \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}} +\def\ddashint{\Xint=} +\def\dashint{\Xint-} +\def\clockint{\Xint\circlearrowright} % GOOD! +\def\counterint{\Xint\rotcirclearrowleft} % Good for Computer Modern! +\def\rotcirclearrowleft{\mathpalette{\RotLSymbol{-30}}\circlearrowleft} +\def\RotLSymbol#1#2#3{\rotatebox[origin=c]{#1}{$#2#3$}} + +\begin{center} +\begin{tabular}{lc} +Name & Symbol\\\hline +\verb|\dashint| & $\dashint$\\ +\verb|\ddashint| & $\ddashint$\\ +\verb|\clockint| & $\clockint$\\ +\verb|\counterint| & $\counterint$ +\end{tabular} +\end{center} + +For all new integral symbols limits can be used in the usual way: + +\begin{equation} +\ddashint_01=\dashint_10<\oint\limits_{-\infty}^\infty = \clockint\counterint_A +\end{equation} + +\begin{lstlisting} +\ddashint_01=\dashint_10<\oint\limits_{-\infty}^\infty = \clockint\counterint_A +\end{lstlisting} + +Put the following definitions into the preamble to use one or all of these new +integral symbols. + +\begin{lstlisting} +\def\Xint#1{\mathchoice + {\XXint\displaystyle\textstyle{#1}}% + {\XXint\textstyle\scriptstyle{#1}}% + {\XXint\scriptstyle\scriptscriptstyle{#1}}% + {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}% + \!\int} +\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$} + \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}} +\def\ddashint{\Xint=} +\def\dashint{\Xint-} +\def\clockint{\Xint\circlearrowright} % GOOD! +\def\counterint{\Xint\rotcirclearrowleft} % Good for Computer Modern! +\def\rotcirclearrowleft{\mathpalette{\RotLSymbol{-30}}\circlearrowleft} +\def\RotLSymbol#1#2#3{\rotatebox[origin=c]{#1}{$#2#3$}} +\end{lstlisting} + +%\clearpage +\section{Harpoons} +\LaTeX{} knows no stretchable harpoon\index{Harpoon} symbols, like \verb|\xrightarrow|. +The following code defines several harpoon symbols.% +\index{xrightharpoondown@\textbackslash xrightharpoondown} +\index{xrightharpoonup@\textbackslash xrightharpoonup} +\index{xleftharpoondown@\textbackslash xleftharpoondown} +\index{xleftharpoonup@\textbackslash xleftharpoonup} +\index{xleftrightharpoons@\textbackslash xleftrightharpoons} +\index{xrightleftharpoons@\textbackslash xrightleftharpoons}% +% +\marginpar{\CMD{xrightharpoondown}\\% +\CMD{xrightharpoonup}\\% +\CMD{xleftharpoondown}\\% +\CMD{xleftharpoonup}\\% +\CMD{xleftrightharpoons}\\% +\CMD{xrightleftharpoons}% +} + +\begin{lstlisting} +\def\rightharpoondownfill@{% + \arrowfill@\relbar\relbar\rightharpoondown} +\def\rightharpoonupfill@{% + \arrowfill@\relbar\relbar\rightharpoonup} +\def\leftharpoondownfill@{% + \arrowfill@\leftharpoondown\relbar\relbar} +\def\leftharpoonupfill@{% + \arrowfill@\leftharpoonup\relbar\relbar} +\newcommand{\xrightharpoondown}[2][]{% + \ext@arrow 0359\rightharpoondownfill@{#1}{#2}} +\newcommand{\xrightharpoonup}[2][]{% + \ext@arrow 0359\rightharpoonupfill@{#1}{#2}} +\newcommand{\xleftharpoondown}[2][]{% + \ext@arrow 3095\leftharpoondownfill@{#1}{#2}} +\newcommand{\xleftharpoonup}[2][]{% + \ext@arrow 3095\leftharpoonupfill@{#1}{#2}} +\newcommand{\xleftrightharpoons}[2][]{\mathrel{% + \raise.22ex\hbox{% + $\ext@arrow 3095\leftharpoonupfill@{\phantom{#1}}{#2}$}% + \setbox0=\hbox{% + $\ext@arrow 0359\rightharpoondownfill@{#1}{\phantom{#2}}$}% + \kern-\wd0 \lower.22ex\box0}% +} +\newcommand{\xrightleftharpoons}[2][]{\mathrel{% + \raise.22ex\hbox{% + $\ext@arrow 3095\rightharpoonupfill@{\phantom{#1}}{#2}$}% + \setbox0=\hbox{% + $\ext@arrow 0359\leftharpoondownfill@{#1}{\phantom{#2}}$}% + \kern-\wd0 \lower.22ex\box0}% +} +\end{lstlisting} + +\begin{tabular}{ll} +\verb|\xrightharpoondown[under]{over}| & $\xrightharpoondown[under]{over}$\\[10pt] +\verb|\xrightharpoonup[under]{over}| & $\xrightharpoonup[under]{over}$ \\[10pt] +\verb|\xleftharpoondown[under]{over}| & $\xleftharpoondown[under]{over}$\\[10pt] +\verb|\xleftharpoonup[under]{over}| & $\xleftharpoonup[under]{over}$ \\[10pt] +\verb|\xleftrightharpoons[under]{over}|& $\xleftrightharpoons[under]{over}$\\[10pt] +\verb|\xrightleftharpoons[under]{over}|& $\xrightleftharpoons[under]{over}$ +\end{tabular} + + +\section{Bijective mapping arrow} + +To get something like \bijmap~we can define: +\begin{lstlisting} +\def\bijmap{% + \ensuremath{% + \mathrlap{\rightarrowtail}\rightarrow% + }% +} +\end{lstlisting} + +This uses the \verb+\mathrlap+ definition from section~\vref{subsec:ams-limits}. With this +definition a huge symbol is also possible: \verb+{\Huge\bijmap}+ {\Huge\bijmap}. + +\section{Stacked equal sign} +There are several symbols stacked with an equal sign, e.g. \verb+\doteq+, \verb+\equiv+ or +\verb+\cong+ ($\doteq$, $\equiv{}$, $\cong$ ). But there are still some missing, which are +shown in table~\ref{tab:equal} and the following definitions. + +\begin{table}[htb] +\centering +\begin{tabular}{ll} +\verb+\eqdef+ & \eqdef\\ +\verb+\eqexcl+ & \eqexcl\\ +\verb+\eqhat+ & \eqhat +\end{tabular} +\caption{New symbols in combination with the equal sign}\label{tab:equal} +\end{table} + +\begin{lstlisting} +\newcommand{\eqdef}{\ensuremath{\stackrel{\mathrm{def}}{=}}} +\newcommand{\eqexcl}{\ensuremath{\stackrel{\mathrm{!}}{=}}} +\newcommand{\eqhat}{\ensuremath{\widehat{=}}} +\end{lstlisting} + +\section{Other symbols} + +\begin{minipage}{0.7\linewidth} +\begin{lstlisting} +\newcommand*{\threesim}{% + \mathrel{\vcenter{\offinterlineskip + \hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}}}} +$\threesim ABC$ +\end{lstlisting}% +\end{minipage}\hfill +\begin{minipage}{0.15\linewidth} +$\threesim ABC$ +\end{minipage} + + + + +\part{Examples} + +\section{Matrix} +\subsection{Identity matrix} + +There are several possibilities to write this matrix. Here is a solution +with the default array environment. + +\begin{minipage}[c]{0.4\textwidth}% +\[ +\left(\begin{array}{ccccc} +1\\ + & 1 & & \text{{\huge{0}}}\\ + & & 1\\ + & \text{{\huge{0}}} & & 1\\ + & & & & 1\end{array}\right)\] + +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.49\textwidth}% +\begin{lstlisting} +\[ +\left(\begin{array}{ccccc} +1\\ + & 1 & & \text{{\huge{0}}}\\ + & & 1\\ + & \text{{\huge{0}}} & & 1\\ + & & & & 1\end{array}\right) +\] +\end{lstlisting} +\end{minipage}% + +\subsection{System of linear equations} + +\begin{LTXexample}[pos=t] +\[ +\begin{array}{l@{\:=\:}*{5}{l@{\:+\:}}l} +y_1 & x_{11} & x_{12} & x_{13} & \dots & x_{1(n-1)} & x_{1n} \\ +y_2 & x_{21} & x_{22} & x_{23} & \dots & x_{2(n-1)} & x_{2n} \\ +\ \vdots &\ \vdots &\ \vdots &\ \vdots &\ \vdots &\ \vdots &\ \vdots\\ +y_{n-1} & x_{(n-1)1} & x_{(n-1)2} & x_{(n-1)3} & \dots & x_{(n-1)3} & x_{(n-1)n}\\ +y_n & x_{n1} & x_{n2} & x_{n3} & \dots & x_{(n-1)(n-1)} & x_{nn} +\end{array} +\] +\end{LTXexample} + +\section{Cases structure} + +\index{Cases!numbered lines}Sometimes it is better to use the array environment instead of amsmath's %%% ----- Martin ----- +cases environment. To get optimal horizontal spacing for the conditions, +there are two matrixes in series, one $3\times 1$ followed by $3\times 3$ matrix. +To minimize the horizontal space around the variable $z$ a + +\begin{lstlisting} +\addtolength{\arraycolsep}{-3pt} +\end{lstlisting} +is a useful command. + +\begin{equation} +\addtolength{\arraycolsep}{-3pt} +I(z)=\delta_{0}\left\{% + \begin{array}{lcrcl} + D+z & \quad & -D & \le z\le & -p\\ + D-\frac{1}{2}\left(p-\frac{z^{2}}{p}\right)% + & \quad & -p & \le z\le & \phantom{-}p\\ + D-z & \quad & p & \le z\le & \phantom{-}D + \end{array}\right. +\end{equation} + +\begin{lstlisting} +\addtolength{\arraycolsep}{-3pt} +I(z)=\delta_{0}\left\{% + \begin{array}{lcrcl} + D+z & \quad & -D & \le z\le & -p\\ + D-\frac{1}{2}\left(p-\frac{z^{2}}{p}\right)% + & \quad & -p & \le z\le & \phantom{-}p\\ + D-z & \quad & p & \le z\le & \phantom{-}D + \end{array}\right. +\end{equation} +\end{lstlisting} + + +The \CMD{phantom}\index{phantom@\textbackslash phantom} command +replaces exactly that place with whitespace which the argument needs. + +\subsection{Cases with numbered lines} +This is not possible in an easy way, because \verb+cases+ uses the array +environment for typesetting which has by default no numbering. However, there +are some tricky ways to get numbered lines. The following three examples +use the \verb+tabular+, the \verb+tabularx+ and the \verb+array+ environment. + +\bigskip\noindent +\begin{tabular}{rc} +\ldelim\{{2}{2.75cm}[some text here] & %%% ----- Martin ----- + \parbox{{\linewidth-3cm-4\tabcolsep}}{ + \vspace*{1ex} + \begin{flalign} + x & = 2\quad\text{if }y >2 &\\ + x & = 3\quad\text{if }y \le 2& + \end{flalign}} +\end{tabular} + +\bigskip +\begin{lstlisting} +\begin{tabular}{rc} +\ldelim\{{2}{2.75cm}[some text here] & %%% ----- Martin ----- + \parbox{{\linewidth-3cm-4\tabcolsep}}{ + \vspace*{1ex} + \begin{flalign} + x & = 2\quad\text{if }y >2 &\\ + x & = 3\quad\text{if }y \le 2& + \end{flalign}} +\end{tabular} +\end{lstlisting} + + +\bigskip\noindent +\begin{tabularx}{\linewidth}{rXc} +\ldelim\{{2}{2.75cm}[some text here] %%% ----- Martin ----- + & $ x = 2\quad\text{if }y > 2 $ & \refstepcounter{equation}(\theequation)\\ + & $ x = 3\quad\text{if }y \le 2$ &\refstepcounter{equation}(\theequation) +\end{tabularx} + +\bigskip +\begin{lstlisting} +\begin{tabularx}{\linewidth}{rXc} +\ldelim\{{2}{2.75cm}[some text here] %%% ----- Martin ----- + & $ x = 2\quad\text{if }y > 2 $ & \refstepcounter{equation}(\theequation)\\ + & $ x = 3\quad\text{if }y \le 2$ &\refstepcounter{equation}(\theequation) +\end{tabularx} +\end{lstlisting} + + +\bigskip +\[ +\begin{array}{rc@{\qquad}c} +\ldelim\{{2}{2.75cm}[some text here] %%% ----- Martin ----- + & x = 2\quad\text{if }y > 2 & \refstepcounter{equation}(\theequation)\\ + & x = 3\quad\text{if }y \le 2& \refstepcounter{equation}(\theequation) +\end{array} +\] + + +\bigskip +\begin{lstlisting} +\[ +\begin{array}{rc@{\qquad}c} +\ldelim\{{2}{2.75cm}[some text here] %%% ----- Martin ----- + & x = 2\quad\text{if }y > 2 & \refstepcounter{equation}(\theequation)\\ + & x = 3\quad\text{if }y \le 2& \refstepcounter{equation}(\theequation) +\end{array} +\] +\end{lstlisting} + + + +\section{Arrays} + +There is a general rule that a lot of mathematical stuff should be +divided in smaller pieces. But sometimes it is difficult to get a nice +horizontal alignment when splitting a formula. The following ones +uses the \texttt{array} environment to get a proper alignment. + + +\subsection{Quadratic equation} + +\begin{equation} +\begin{array}{rcll} +y & = & x^{2}+bx+c\\ + & = & x^{2}+2\cdot{\displaystyle\frac{b}{2}x+c}\\ + & = & \underbrace{x^{2}+2\cdot\frac{b}{2}x+\left(\frac{b}{2}\right)^{2}}-{\displaystyle% + \left(\frac{b}{2}\right)^{2}+c}\\ + & & \qquad\left(x+{\displaystyle \frac{b}{2}}\right)^{2}\\ + & = & \left(x+{\displaystyle \frac{b}{2}}\right)^{2}-\left({\displaystyle% + \frac{b}{2}}\right)^{2}+c & \left|+\left({\displaystyle% + \frac{b}{2}}\right)^{2}-c\right.\\ +y+\left({\displaystyle \frac{b}{2}}\right)^{2}-c & = & \left(x+{\displaystyle% + \frac{b}{2}}\right)^{2} & \left|(\textrm{Scheitelpunktform})\right.\\ +y-y_{S} & = & (x-x_{S})^{2}\\ +S(x_{S};y_{S}) & \,\textrm{bzw.}\, & S\left(-{\displaystyle% + \frac{b}{2};\,\left({\displaystyle \frac{b}{2}}\right)^{2}-c}\right) +\end{array} +\end{equation} + +\begin{lstlisting} +\begin{equation} +\begin{array}{rcll} +y & = & x^{2}+bx+c\\ + & = & x^{2}+2\cdot{\displaystyle\frac{b}{2}x+c}\\ + & = & \underbrace{x^{2}+2\cdot\frac{b}{2}x+\left(\frac{b}{2}\right)^{2}}-{\displaystyle% + \left(\frac{b}{2}\right)^{2}+c}\\ + & & \qquad\left(x+{\displaystyle \frac{b}{2}}\right)^{2}\\ + & = & \left(x+{\displaystyle \frac{b}{2}}\right)^{2}-\left({\displaystyle% +\frac{b}{2}}\right)^{2}+c & \left|+\left({\displaystyle% +\frac{b}{2}}\right)^{2}-c\right.\\ +y+\left({\displaystyle \frac{b}{2}}\right)^{2}-c & = & \left(x+{\displaystyle% +\frac{b}{2}}\right)^{2} & \left|(\textrm{Scheitelpunktform})\right.\\ +y-y_{S} & = & (x-x_{S})^{2}\\ +S(x_{S};y_{S}) & \,\textrm{bzw.}\, & S\left(-{\displaystyle% +\frac{b}{2};\,\left({\displaystyle \frac{b}{2}}\right)^{2}-c}\right) +\end{array} +\end{equation} +\end{lstlisting} + + + +\subsection{Vectors and matrices} +\index{Vector} +\begin{equation} +\begin{array}{rcl} +\underline{RS} & = & \left(\begin{array}{cccccccc} +01 & a4 & 55 & 87 & 5a & 58 & db & 9e\\ +a4 & 56 & 82 & f3 & 1e & c6 & 68 & e5\\ +02 & a1 & fc & c1 & 47 & ae & 3d & 19\\ +a4 & 55 & 87 & 5a & 58 & db & 9e & 03\end{array}\right)\\ +\\ +\left(\begin{array}{c} + s_{i,0}\\ + s_{i,1}\\ + s_{i,2}\\ + s_{i,3} +\end{array}\right) & = & \underline{RS}\cdot% +\left(\begin{array}{c} + m_{8i+0}\\ + m_{8i+1}\\ + \cdots\\ + m_{8i+6}\\ + m_{8i+7} +\end{array}\right)\\ +\\ +S_{i} & = & \sum_{j=0}^{3}s_{i,j}\cdot2^{8j}\qquad i=0,1,...,k-1\\ +\\ +S & = & \left(S_{k-1},S_{k-2},...,S_{1},S_{0}\right) +\end{array} +\end{equation} + +\begin{lstlisting} +\begin{equation} +\begin{array}{rcl} +\underline{RS} & = & \left(\begin{array}{cccccccc} +01 & a4 & 55 & 87 & 5a & 58 & db & 9e\\ +a4 & 56 & 82 & f3 & 1e & c6 & 68 & e5\\ +02 & a1 & fc & c1 & 47 & ae & 3d & 19\\ +a4 & 55 & 87 & 5a & 58 & db & 9e & 03\end{array}\right)\\ +\\ +\left(\begin{array}{c} + s_{i,0}\\ + s_{i,1}\\ + s_{i,2}\\ + s_{i,3} +\end{array}\right) & = & \underline{RS}\cdot% +\left(\begin{array}{c} + m_{8i+0}\\ + m_{8i+1}\\ + \cdots\\ + m_{8i+6}\\ + m_{8i+7} +\end{array}\right)\\ +\\ +S_{i} & = & \sum_{j=0}^{3}s_{i,j}\cdot2^{8j}\qquad i=0,1,...,k-1\\ +\\ +S & = & \left(S_{k-1},S_{k-2},...,S_{1},S_{0}\right) +\end{array} +\end{equation} +\end{lstlisting} + + +\subsection{Cases with (eqn)array environment} + +This solution is important when \AmSmath can't be used. %%% ----- Martin ----- + +$\lim\limits_{n->\infty}q^{n}=\left\{% + \begin{array}{lc@{\kern2pt}c@{\kern2pt}r} + \textrm{divergent}\ & q & \le & -1\\ + 0 & |q| & < & 1\\ + 1 & q & = & 1\\ + \infty & q & > & 1 + \end{array}\right.$ + +\medskip +\begin{lstlisting} +$\lim\limits_{n->\infty}q^{n}=\left\{% + \begin{array}{lc@{\kern2pt}c@{\kern2pt}r} + \textrm{divergent}\ & q & \le & -1\\ + 0 & |q| & < & 1\\ + 1 & q & = & 1\\ + \infty & q & > & 1 + \end{array}\right.$ +\end{lstlisting} +%$ + +\subsection{Arrays inside arrays} +The array environment is a powerful one because it can be nested in several ways: + +\[ +\left( +\begin{array}{c@{}c@{}c} +\begin{array}{|cc|} +\hline +a_{11} & a_{12} \\ +a_{21} & a_{22} \\ +\hline +\end{array} & 0 & 0 \\ +0 & \begin{array}{|ccc|} + \hline + b_{11} & b_{12} & b_{13}\\ + b_{21} & b_{22} & b_{23}\\ + b_{31} & b_{32} & b_{33}\\ + \hline + \end{array} & 0 \\ +0 & 0 & \begin{array}{|cc|} + \hline + c_{11} & c_{12} \\ + c_{21} & c_{22} \\ + \hline + \end{array} \\ +\end{array} +\right) +\] + +\begin{lstlisting} +\[ +\left( +\begin{array}{c@{}c@{}c} + \begin{array}{|cc|}\hline + a_{11} & a_{12} \\ + a_{21} & a_{22} \\\hline + \end{array} & \mathbf{0} & \mathbf{0} \\ + \mathbf{0} & + \begin{array}{|ccc|}\hline + b_{11} & b_{12} & b_{13}\\ + b_{21} & b_{22} & b_{23}\\ + b_{31} & b_{32} & b_{33}\\\hline + \end{array} & \mathbf{0} \\ + \mathbf{0} & \mathbf{0} & + \begin{array}{|cc|}\hline + c_{11} & c_{12} \\ + c_{21} & c_{22} \\\hline + \end{array} \\ +\end{array} +\right) +\] +\end{lstlisting} + +\[ +Y^1= +\begin{array}{c} + \null\\[1ex]% kann weg + \left[\begin{array}{rrrr} + 0 & 0 & 1 & 0\\ + 1 & 0 & 1 & 0\\ + 1 & 1 & 1 & 1 + \end{array}\right]\\[3ex]\hline + \begin{array}{rrrr} +% \hdotsfor{4}\\% statt \\[3ex]\hline + 2 & 1 &3 & 1 + \end{array} +\end{array} +\] + +\begin{lstlisting} +\[ +Y^1= +\begin{array}{c} + \null\\[1ex]% only vor vertical alignment + \left[\begin{array}{rrrr} + 0 & 0 & 1 & 0\\ + 1 & 0 & 1 & 0\\ + 1 & 1 & 1 & 1 + \end{array}\right]\\[3ex]\hline + \begin{array}{rrrr} +% \hdotsfor{4}\\%( needs \AmSmath) instead of \\[3ex]\hline + 2 & 1 &3 & 1 + \end{array} +\end{array} +\] +\end{lstlisting} + +\subsection{Colored cells}\label{sub:color} +In general there is no difference in coloring tabular or array cells. The following example +shows how one can put \index{color}colors in rows, columns and cells. +\index{rowcolor@\textbackslash rowcolor}\index{columncolor@\textbackslash columncolor} + +\medskip +\includegraphics[width=\columnwidth]{colArray} +%\[ +%\left[\, +%\begin{array}{*{5}{>{\columncolor[gray]{0.95}}c}} +% {h_{k,1,0}(n)} & {h_{k,1,1}(n)} & {h_{k,1,2}(n)} & \zero & \zero \\ +% {h_{k,2,0}(n)} & {h_{k,2,1}(n)} & {h_{k,2,2}(n)} & \zero & \zero \\ +% {h_{k,3,0}(n)} & {h_{k,3,1}(n)} & {h_{k,3,2}(n)} & \zero & \zero \\ +% {h_{k,4,0}(n)} & \colCell{umbra}{h_{k,4,1}(n)} & {h_{k,4,2}(n)} & \zero & \zero \\ +% \zero & {h_{k,1,0}(n-1)} & {h_{k,1,1}(n-1)} & {h_{k,1,2}(n-1)} & \zero \\ +% \zero & {h_{k,2,0}(n-1)} & {h_{k,2,1}(n-1)} & {h_{k,2,2}(n-1)} & \zero \\ +% \zero & {h_{k,3,0}(n-1)} & {h_{k,3,1}(n-1)} & {h_{k,3,2}(n-1)} & \zero \\ +% \zero & \colCell{umbra}{h_{k,4,0}(n-1)} & {h_{k,4,1}(n-1)} & {h_{k,4,2}(n-1)} & \zero \\ +% \zero & \zero & {h_{k,1,0}(n-2)} & {h_{k,1,1}(n-2)} & {h_{k,1,2}(n-2)}\\ +% \rowcolor[gray]{0.75}% +% \zero & \zero & {h_{k,2,0}(n-2)} & {h_{k,2,1}(n-2)} & {h_{k,2,2}(n-2)}\\ +% \zero & \zero & {h_{k,3,0}(n-2)} & {h_{k,3,1}(n-2)} & {h_{k,3,2}(n-2)}\\ +% \zero & \zero & {h_{k,4,0}(n-2)} & {h_{k,4,1}(n-2)} & {h_{k,4,2}(n-2)} +%\end{array} \,\right] +%\end] + + +\medskip +\begin{lstlisting}[xrightmargin=-1cm] +... +\usepackage{array} +\usepackage{colortbl} +\definecolor{umbra}{rgb}{0.8,0.8,0.5} +\def\zero{\multicolumn{1}{>{\columncolor{white}}c}{0}} +\def\colCell#1#2{\multicolumn{1}{>{\columncolor{#1}}c}{#2}} +\begin{document} +\[\left[\, +\begin{array}{*{5}{>{\columncolor[gray]{0.95}}c}} + h_{k,1,0}(n) & h_{k,1,1}(n) & h_{k,1,2}(n) & \zero & \zero\\ + h_{k,2,0}(n) & h_{k,2,1}(n) & h_{k,2,2}(n) & \zero & \zero\\ + h_{k,3,0}(n) & h_{k,3,1}(n) & h_{k,3,2}(n) & \zero & \zero\\ + h_{k,4,0}(n)} & \colCell{umbra}{h_{k,4,1}(n)} & h_{k,4,2}(n) & \zero & \zero\\ + \zero & h_{k,1,0}(n-1) & h_{k,1,1}(n-1) & h_{k,1,2}(n-1) & \zero\\ + \zero & h_{k,2,0}(n-1) & h_{k,2,1}(n-1) & h_{k,2,2}(n-1) & \zero\\ + \zero & h_{k,3,0}(n-1) & h_{k,3,1}(n-1) & h_{k,3,2}(n-1) & \zero\\ + \zero & \colCell{umbra}{h_{k,4,0}(n-1)} & h_{k,4,1}(n-1) & h_{k,4,2}(n-1) & \zero\\ + \zero & \zero & h_{k,1,0}(n-2) & h_{k,1,1}(n-2) & h_{k,1,2}(n-2)\\ + \zero & \zero & h_{k,2,0}(n-2) & h_{k,2,1}(n-2) & h_{k,2,2}(n-2)\\ + \zero & \zero & h_{k,3,0}(n-2) & h_{k,3,1}(n-2) & h_{k,3,2}(n-2)\\ + \zero & \zero & h_{k,4,0}(n-2) & h_{k,4,1}(n-2) & h_{k,4,2}(n-2) +\end{array} \,\right]_{12\times 5}\] +... +\end{lstlisting} + + + +\section{Over- and underbraces} +\subsection{Braces and roots} +To put an underbrace in a root without enlarging the root symbol is possible with +the \verb+\makebox+ macro: + +\[ z =\;\;\underbrace{\makebox[\widthof{~$x^2+y^2$}][r]{$\sqrt{x^2+y^2}$}}_{=z^2} \] + +\begin{lstlisting} +\[ +z =\;\;\underbrace{% + \makebox[\widthof{~$x^2+y^2$}][r]{% + $\sqrt{x^2+y^2}$}}_{=z^2} +\] +\end{lstlisting} + + + +\subsection{Overlapping braces} +Overlapping under- and overbraces like% +\parbox{10em}{\begin{align*} +\qquad\overbrace{\qquad\qquad}^o\qquad\\[-16pt] +\underbrace{\qquad\qquad}_{u1}\underbrace{\qquad\qquad}_{u2} +\end{align*}} needs some tricky code, because we cannot have parts of the argument inside +\verb+overbrace+\index{overbrace@\textbackslash overbrace} and also \verb+underbrace+. +\index{underbrace@\textbackslash underbrace} The following equation~\vref{eq:pqFormel} +is an example for such a construction: + +\begin{align}\label{eq:pqFormel} +y &= 2x^2 -3x +5\nonumber\\ + & \hphantom{= \ 2\left(x^2-\frac{3}{2}\,x\right. }% + \textcolor{blue}{% + \overbrace{\hphantom{+\left(\frac{3}{4}\right)^2- % + \left(\frac{3}{4}\right)^2}}^{=0}}\nonumber\\[-11pt] + &= 2\left(\textcolor{red}{% + \underbrace{% + x^2-\frac{3}{2}\,x + \left(\frac{3}{4}\right)^2}% + }% + \underbrace{% + - \left(\frac{3}{4}\right)^2 + \frac{5}{2}}% + \right)\\ + &= 2\left(\qquad\textcolor{red}{\left(x-\frac{3}{4}\right)^2} + \qquad + \ \frac{31}{16}\qquad\right)\nonumber\\ +y\textcolor{blue}{-\frac{31}{8}} + &= 2\left(x\textcolor{cyan}{-\frac{3}{4}}\right)^2\nonumber +\end{align} + +\medskip +\begin{lstlisting} +\begin{align}\label{eq:pqFormel} +y &= 2x^2 -3x +5\nonumber\\ + & \hphantom{= \ 2\left(x^2-\frac{3}{2}\,x\right. }% + \textcolor{blue}{% + \overbrace{\hphantom{+\left(\frac{3}{4}\right)^2- % + \left(\frac{3}{4}\right)^2}}^{=0}}\nonumber\\[-11pt] + &= 2\left(\textcolor{red}{% + \underbrace{% + x^2-\frac{3}{2}\,x + \left(\frac{3}{4}\right)^2}% + }% + \underbrace{% + - \left(\frac{3}{4}\right)^2 + \frac{5}{2}}% + \right)\\ + &= 2\left(\qquad\textcolor{red}{\left(x-\frac{3}{4}\right)^2} + \qquad + \ \frac{31}{16}\qquad\right)\nonumber\\ +y\textcolor{blue}{-\frac{31}{8}} + &= 2\left(x\textcolor{cyan}{-\frac{3}{4}}\right)^2\nonumber +\end{align} +\end{lstlisting} + +\subsection[Vertical alignment]{Vertical alignment of different braces} +When having several braces in one formula line, then it looks better when all +braces are also on the same line, e.g.: + +\begin{equation} + \binom{x_R}{y_R} = \underbrace{r\vphantom{\binom{A}{B}}}_{\text{Scaling}}\cdot% + \underbrace{% + \begin{pmatrix} + \sin \gamma & -\cos \gamma \\ + \cos \gamma & \sin \gamma \\ + \end{pmatrix}% + }_{\text{Rotation}} + \binom{x_K}{y_K} + + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} +\end{equation} + +\begin{lstlisting} +\begin{equation} + \binom{x_R}{y_R} = \underbrace{r\vphantom{\binom{A}{B}}}_{\text{Skaling}}\cdot% + \underbrace{% + \begin{pmatrix} + \sin \gamma & -\cos \gamma \\ + \cos \gamma & \sin \gamma \\ + \end{pmatrix}% + }_{\text{Rotation}} + \binom{x_K}{y_K} + + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} +\end{equation} +\end{lstlisting} + +It is again the \verb+\vphantom+ macro which reserves the needed vertical space. +Nevertheless the horizontal space around the \verb+r+ of the first underbrace and the last \verb|+| should +be decreased to get a better typesetting. This is possible with \verb+\hspace+ or +simply \verb+\kern+: + +\[ \binom{x_R}{y_R} = % + \kern-10pt\underbrace{r\vphantom{\binom{A}{B}}}_{\text{Skaling}}\kern-10pt% + \cdot\underbrace{% + \begin{pmatrix} + \sin \gamma & -\cos \gamma \\ + \cos \gamma & \sin \gamma \\ + \end{pmatrix}% + }_{\text{Rotation}} + \binom{x_K}{y_K} +\kern-5pt% + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} \] + +\begin{lstlisting} +\[ \binom{x_R}{y_R} = % + \kern-10pt\underbrace{r\vphantom{\binom{A}{B}}}_{\text{Skaling}}\kern-10pt% + \cdot\underbrace{% + \begin{pmatrix} + \sin \gamma & -\cos \gamma \\ + \cos \gamma & \sin \gamma \\ + \end{pmatrix}% + }_{\text{Rotation}} + \binom{x_K}{y_K} +\kern-5pt% + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} \] +\end{lstlisting} + + +\subsection[Alignment]{Vertical and horizontal alignment} +The forgoing example simply uses \verb+\hspace+ to decrease the horizontal width between two +\index{underbrace@\textbackslash underbrace} underbraces. This may be okay for a single solution, but in general it is better to have some %%% ----- Martin ----- +code which works in any case. + +The following example looks simple but it needs some tricky code to get vertical and horizontal +alignment.\index{substack@\textbackslash substack} + +\def\num#1{\hphantom{#1}} +\def\vsp{\vphantom{\rangle_1}} + +\begin{equation*} + \frac{300}{5069}% + \underbrace{\longmapsto\vphantom{\frac{1}{1}}}_{% + \mathclap{\substack{% + \Delta a=271\num9\vsp \\[2pt] + \Delta b=4579\vsp\\[2pt] + \text{$1$ iteration}% + }}} \frac{29}{490}% + \underbrace{\longmapsto \frac{19}{321}\longmapsto}_{% + \mathclap{\substack{% + \Delta a=10\num{9}=\langle271\rangle_{29}\num{20}\\[2pt] + \Delta b=169=\langle4579\rangle_{490}\\[2pt] + \text{$2$ iterations} + }}} \frac{9}{152} + \underbrace{\longmapsto \frac{8}{135}\longmapsto\dots\longmapsto}_{% + \substack{% + \Delta a=1\num{7}=\langle10\rangle_{9}\num{119}\\[2pt] + \Delta b=17=\langle169\rangle_{152}\\[2pt] + \text{$8$ iterations} + }} \frac{1}{16} + \underbrace{\longmapsto\dots\longmapsto\vphantom{\frac{8}{135}}}_{% + \substack{% + \Delta a=0=\langle1\rangle_{1}\num{76} \\[2pt] + \Delta b=1=\langle17\rangle_{16} \\[2pt] + \text{$8$ iterations} + }} \frac{1}{1} +\end{equation*} + +It uses the macro \verb+\mathclap+ defined in section\vref{subsec:ams-limits} +\index{mathclap@\textbackslash mathclap}\index{vphantom@\textbackslash vphantom}\index{hphantom@\textbackslash hphantom} +, which gives a better result. %%% ----- Martin ----- +It is also possible to use \verb+\makebox[0pt]{...}+ but it works only in text mode +and this needs some more \verb+$...$+.\index{substack@\textbackslash substack} + +\begin{lstlisting} +\def\num#1{\hphantom{#1}} +\def\vsp{\vphantom{\rangle_1}} + +\begin{equation*} + \frac{300}{5069}% + \underbrace{\longmapsto\vphantom{\frac{1}{1}}}_{% + \mathclap{\substack{% + \Delta a=271\num9\vsp \\[2pt] + \Delta b=4579\vsp\\[2pt] + \text{$1$ iteration}% + }}} \frac{29}{490}% + \underbrace{\longmapsto \frac{19}{321}\longmapsto}_{% + \mathclap{\substack{% + \Delta a=10\num{9}=\langle271\rangle_{29}\num{20}\\[2pt] + \Delta b=169=\langle4579\rangle_{490}\\[2pt] + \text{$2$ iterations} + }}} \frac{9}{152} + \underbrace{\longmapsto \frac{8}{135}\longmapsto\dots\longmapsto}_{% + \substack{% + \Delta a=1\num{7}=\langle10\rangle_{9}\num{119}\\[2pt] + \Delta b=17=\langle169\rangle_{152}\\[2pt] + \text{$8$ iterations} + }} \frac{1}{16} + \underbrace{\longmapsto\dots\longmapsto\vphantom{\frac{8}{135}}}_{% + \substack{% + \Delta a=0=\langle1\rangle_{1}\num{76} \\[2pt] + \Delta b=1=\langle17\rangle_{16} \\[2pt] + \text{$8$ iterations} + }} \frac{1}{1} +\end{equation*} +\end{lstlisting} + + +\section{Integrals}\label{sec:Integrals} +\index{underset@\textbackslash underset} +\def\Q#1#2{\frac{\partial #1}{\partial #2}} +% +The \emph{first theorem of Green} is: +\[ +\underset{\mathcal{G}\quad}\iiint\!% + \left[u\nabla^{2}v+\left(\nabla u,\nabla v\right)\right]d^{3}V% + =\underset{\mathcal{S}\quad}\oiint u\Q{v}{n}d^{2}A +\] + +The \emph{second theorem of Green} is: + +\[ +\underset{{\mathcal{G}\quad}}\iiint\!% + \left[u\nabla^{2}v-v\nabla^{2}u\right]d^{3}V% + =\underset{\mathcal{S}\quad}\oiint% + \left(u\Q{v}{n}-v\Q{u}{n}\right)d^{2}A +\] + + +They are both written with the \texttt{esint.sty} package% +\footnote{See section~\vref{sec:Integrals}.}, which gives nice integral symbols. The \LaTeX{} code for the first equation is: + +\begin{lstlisting} +\[ +\underset{\mathcal{G}\quad}\iiint\!% + \left[u\nabla^{2}v+\left(\nabla u,\nabla v\right)\right]d^{3}V% + =\underset{\mathcal{S}\quad}\oiint u\Q{v}{n}d^{2}A +\] +\end{lstlisting} + +\noindent with the following definition in the preamble for the partial derivation: + +\begin{lstlisting} +\def\Q#1#2{\frac{\partial#1}{\partial #2}} +\end{lstlisting} + +\noindent which makes things easier to write. + +%-------------------------------------------------------------------------- +\section{Vertical alignment}\label{sec:verticalAlignment} +%-------------------------------------------------------------------------- +\subsection{Example 1} +%-------------------------------------------------------------------------- +Sometimes it may be useful to have a vertical alignment over the whole page with a mix of %%% ----- Martin ----- +formulas and text. Section \ref{sec:Text-in-math mode} shows the use of \CMD{intertext}. +There is another trick to get all formulas vertical aligned. Let's have the following +formulas distributed over the whole page: + +\begin{align*} + f(x) &= a\\ + g(x) &= x2-4x\\ +f(x)-g(x) &= x2+x3+x\\ + g &= x2+x3+x4+x5+b +\end{align*} + +They all have a different length of the left and right side. Now we want to write some +text and other objects between them, but let the alignment untouched. We choose the +longest left and the longest right side and take them for scaling with the \CMD{hphantom} +command: + +\begin{verbatim} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}} +\end{verbatim} + +This is the first (empty) line in every equation where now all other lines are aligned to +this one. For example: + +\medskip\noindent +\rule{\columnwidth}{1pt} +\newcommand{\x}{blah blah blah blah blah blah blah blah } +\addtolength{\abovedisplayshortskip}{-1cm} % decrease the skip +\addtolength{\abovedisplayskip}{-1cm} +\x\x\x\x\x +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +f(x) &= a\\ +g(x) &= x^2-4x +\end{align} + +\x\x\x\x\x +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +f(x)-g(x) &= x^2+x^3+x +\end{align} +\x\x\x\x\x + +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +g(x) &= x^2+x^3+x^4+x^5+b +\end{align} +\x\x\x\x\x +% restore old values +\addtolength{\abovedisplayshortskip}{1cm} +\addtolength{\abovedisplayskip}{1cm} + +\noindent +\rule{\columnwidth}{1pt} +\medskip + +The phantom line is empty but leaves the vertical space for a line. This could be +corrected with decreasing the \CMD{abovedisplayshortskip} length and restoring them +after the whole sequence of commands. The code of the above looks like: + +\begin{lstlisting} +\newcommand{\x}{blah blah blah blah blah blah blah blah } +\addtolength{\abovedisplayshortskip}{-1cm} % decrease the skip +\addtolength{\abovedisplayskip}{-1cm} +\x\x\x\x\x +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +f(x) &= a\\ +g(x) &= x^2-4x +\end{align} + +\x\x\x\x\x +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +f(x)-g(x) &= x^2+x^3+x +\end{align} +\x\x\x\x\x + +\begin{align} +\hphantom{\mbox{$f(x)-g(x)$}} & \hphantom{\mbox{$= x^2+x^3+x^4+x^5+b$}}\nonumber\\ +g(x) &= x^2+x^3+x^4+x^5+b +\end{align} +\x\x\x\x\x +% restore old values +\addtolength{\abovedisplayshortskip}{1cm} +\addtolength{\abovedisplayskip}{1cm} +\end{lstlisting} + + + + +Another case of aligning equations inside an itemize environment is the following one. +With the \verb+\makebox+ macro one can have the same size on the left side of the +equal sign to get a vertical alignment. + +\newsavebox\lW +\sbox\lW{$P_{3}+P_{2}-P_{1}$}% $ + +\begin{itemize} +\item first function \\ + $\displaystyle\makebox[\wd\lW][r]{$P_1$}=\sum_a \in A$ +\item but another one \\ + $\makebox[\wd\lW][r]{$\sin\left(P_1\right)$}=blabla$ +\item or perhaps \\ + $P_{3}+P_{2}-P_{1}=blablub$ +\end{itemize} + + +\begin{lstlisting} +\newsavebox\lW +\sbox\lW{$P_{3}+P_{2}-P_{1}$} + +\begin{itemize} +\item first function \\ + $\displaystyle\makebox[\wd\lW][r]{$P_1$}=\sum_a \in A$ +\item but another one \\ + $\makebox[\wd\lW][r]{$\sin\left(P_1\right)$}=blabla$ +\item or perhaps \\ + $P_{3}+P_{2}-P_{1}=blablub$ +\end{itemize} +\end{lstlisting} +%$ + +%-------------------------------------------------------------------------- +\subsection{Example 2} +%-------------------------------------------------------------------------- +This one comes from Hartmut Henkel and offers a special form of placing +additional text between the equation and the equationnumber. This makes only +sense when you load the documentclass with the option \verb+fleqn+. The example +places the additional text at \verb+0.5\textwidth+, changing this value is no +problem. + +\clearpage +\medskip +\noindent\rule{\linewidth}{1pt} +\begingroup +\small +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text + +\makeatletter +\@fleqntrue +\let\old@mathmargin=\@mathmargin +\@mathmargin=-1sp +\let\oldmathindent=\mathindent +\let\mathindent=\@mathmargin +\newsavebox{\myendhook} % hier gehen die Tabellen rein +\def\tagform@#1{{(\maketag@@@{\ignorespaces#1\unskip\@@italiccorr)} + \makebox[0pt][r]{% hinter der Zeilennummer aufgehängt + \makebox[0.5\textwidth][l]{\usebox{\myendhook}}% + }% + \global\sbox{\myendhook}{}% Box wird geleert +}} +\makeatother +\sbox{\myendhook}{% +\begin{footnotesize}% +\begin{tabular}{@{}ll} +$a_0$ & Bohrscher Radius ($\mathrm{= 0{,}53\,\mbox{\AA}}$)\\ +$e$ & Elementarladung\\ +$N_{si}$ & Anzahl der Siliziumatome\\ +& pro Einheitsvolumen\\ +$m$ & Atomgewicht\\ +$Z$ & Kernladungszahl +\end{tabular} +\end{footnotesize}} + +\begin{equation} +\varepsilon = \frac{E \cdot 4 \cdot \pi \cdot \varepsilon_{0} +\cdot a_0 \cdot \left( Z_i^{\frac{2}{3}} + Z_{Si}^{\frac{2}{3}} +\right)^{-\frac{1}{2}}} {Z_i \cdot Z_{Si} \cdot e2 \cdot \left( 1 ++ \frac{m_i}{m_{Si}} \right)}\,; +\end{equation} + +\sbox{\myendhook}{abc} + +\begin{equation} +a2+b2=c2 +\end{equation} + +\begin{equation} +z = 9 +\end{equation} +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text +text text text text text text text text text text text text text text + +\endgroup +\noindent\rule{\linewidth}{1pt} + +\medskip +This solution works only with \AmSmath{}, without you have to redefine the +\LaTeX{} macro, which creates the equation number. + +\begin{lstlisting} +\newsavebox{\myendhook} % hier gehen die Tabellen rein +\def\tagform@#1{{(\maketag@@@{\ignorespaces#1\unskip\@@italiccorr)} + \makebox[0pt][r]{% hinter der Zeilennummer aufgehaengt + \makebox[0.4\textwidth][l]{\usebox{\myendhook}}% + }% + \global\sbox{\myendhook}{}% Box wird geleert +}} + +[ ... ] + +\sbox{\myendhook}{% +\begin{footnotesize}% +\begin{tabular}{@{}ll} +$a_0$ & Bohrscher Radius ($\mathrm{= 0{,}53\,\mbox{\AA}}$)\\ +$e$ & Elementarladung\\ +$N_{si}$ & Anzahl der Siliziumatome\\ +& pro Einheitsvolumen\\ +$m$ & Atomgewicht\\ +$Z$ & Kernladungszahl +\end{tabular} +\end{footnotesize}} + +\begin{equation} +\varepsilon = \frac{E \cdot 4 \cdot \pi \cdot \varepsilon_{0} +\cdot a_0 \cdot \left( Z_i^{\frac{2}{3}} + Z_{Si}^{\frac{2}{3}} +\right)^{-\frac{1}{2}}} {Z_i \cdot Z_{Si} \cdot e2 \cdot \left( 1 ++ \frac{m_i}{m_{Si}} \right)}\,; +\end{equation} + +\sbox{\myendhook}{abc} + +\begin{equation} +a2+b2=c2 +\end{equation} + +\begin{equation} +z = 9 +\end{equation} +\end{lstlisting} + + +%------------------------------------------------------------------------------ +\section{Node connections} +%------------------------------------------------------------------------------ +This is a typical application for PSTricks and it needs the package \verb+pst-node+ +and doesn't work with \verb+pdflatex+. Use \verb+VTeX+, \verb+ps4pdf+ or \verb+ps2pdf+. + +\medskip +\noindent\fbox{\includegraphics[width=\linewidth]{node}} + +\iffalse +\noindent\fbox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{% +\psset{nodesep=3pt} +\definecolor{lila}{rgb}{0.6,0.2,0.5} +\definecolor{darkyellow}{rgb}{1,0.9,0} +Die Bindungsenergie im Tr\"opfchenmodell setzt sich aus +folgenden Teilen zusammen: +\begin{itemize} +\item dem \rnode{b}{Oberfl\"achenanteil} +\item dem \rnode{a}{Volumenanteil},\\[0.75cm] +\def\xstrut{\vphantom{\frac{(A)^1}{(B)^1}}} +\begin{equation} +E = +\rnode[t]{ae}{\psframebox*[fillcolor=darkyellow, + linestyle=none]{\xstrut a_vA}} + +\rnode[t]{be}{\psframebox*[fillcolor=lightgray, + linestyle=none]{\xstrut -a_fA^{2/3}}} + +\rnode[t]{ce}{\psframebox*[fillcolor=green, + linestyle=none]{\xstrut -a_c\dfrac{Z(Z-1)}{A^{1/3}}}} + +\rnode[t]{de}{\psframebox*[fillcolor=cyan, + linestyle=none]{\xstrut -a_s\frac{(A-2Z)^2}{A}}} + +\rnode[t]{ee}{\psframebox*[fillcolor=yellow, + linestyle=none]{\xstrut E_p}} +\end{equation}\\ +\item dem \rnode{c}{Coulomb-Anteil} +\item der \rnode{d}{Symmetrieenergie} +\item sowie einem \rnode{e}{Paarbildungsbeitrag}. +\end{itemize} +\nccurve[angleA=-90,angleB=90]{->}{a}{ae} +\nccurve[angleB=45]{->}{b}{be} +\nccurve[angleB=-90]{->}{c}{ce} +\nccurve[angleB=-90]{->}{d}{de} +\nccurve[angleB=-90]{->}{e}{ee} +}} +\fi + +\medskip +\begin{lstlisting}[tabsize=4] +\psset{nodesep=3pt} +\definecolor{lila}{rgb}{0.6,0.2,0.5} +\definecolor{darkyellow}{rgb}{1,0.9,0} +Die Bindungsenergie im Tr\"opfchenmodell setzt sich aus +folgenden Teilen zusammen: +\begin{itemize} +\item dem \rnode{b}{Oberfl\"achenanteil} +\item dem \rnode{a}{Volumenanteil},\\[1cm] +\def\xstrut{\vphantom{\frac{(A)^1}{(B)^1}}} +\begin{equation} +E = +\rnode[t]{ae}{\psframebox*[fillcolor=darkyellow, + linestyle=none]{\xstrut a_vA}} + +\rnode[t]{be}{\psframebox*[fillcolor=lightgray, + linestyle=none]{\xstrut -a_fA^{2/3}}} + +\rnode[t]{ce}{\psframebox*[fillcolor=green, + linestyle=none]{\xstrut -a_c\frac{Z(Z-1)}{A^{1/3}}}} + +\rnode[t]{de}{\psframebox*[fillcolor=cyan, + linestyle=none]{\xstrut -a_s\frac{(A-2Z)^2}{A}}} + +\rnode[t]{ee}{\psframebox*[fillcolor=yellow, + linestyle=none]{\xstrut E_p}} +\end{equation}\\[0.25cm] +\item dem \rnode{c}{Coulomb-Anteil} +\item der \rnode{d}{Symmetrieenergie} +\item sowie einem \rnode{e}{Paarbildungsbeitrag}. +\end{itemize} +\nccurve[angleA=-90,angleB=90]{->}{a}{ae} +\nccurve[angleB=45]{->}{b}{be} +\nccurve[angleB=-90]{->}{c}{ce} +\nccurve[angleB=-90]{->}{d}{de} +\nccurve[angleB=-90]{->}{e}{ee} +\end{lstlisting} + + + + +%----------------------------------------------------------------------------- +\section[Special Placement]{Special placement of displayed equations} +%----------------------------------------------------------------------------- + + + + +%----------------------------------------------------------------------------- +\subsection{Formulas side by side}\label{sec:sidebyside} +%----------------------------------------------------------------------------- + +Sometimes it may be useful to have numbered formulas side by side like the following ones: + +%\begin{framed} +\begin{mtabular}{*{2}{m{0.35\linewidth}m{0.15\linewidth}}} +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt[\label{blah}]\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt[\label{blub}] + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt +\end{mtabular} +%\end{framed} + + +And again a default display equation: +\begin{align} +F(x) &= \int_0^\infty\dfrac{1}{x}\,dx +\end{align} + +\begin{lstlisting}[tabsize=4] +\begin{mtabular}{*{2}{m{0.35\linewidth}m{0.15\linewidth}}} +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt[\label{blah}]\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt[\label{blub}] + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt +\end{mtabular} +\end{lstlisting} + +The new environment \verb|mtabular| has two arguments, one optional and one which is the same +as the one from the \verb|tabular| environment. With the option \verb|long| it is possible to have %%% ----- Martin ----- +all the formulas in a \verb|longtable| environment, which allows a pagebreak. The new macro +\verb|\eqnCnt| controls the counting of these equations as subequations for one tabular +line. This macro can have an optional argument for a label. At least it counts the equations. If the +equation number is not centered to the foregoing equation, then it needs some more horizontal +space in the tabular column. + +\begin{verbatim} +\eqnCnt[] +\end{verbatim} + +The vertical space is controlled by the length \verb|mtabskip|, which is by default \verb|-1.25cm| and can be modified in the usual way. + +To define all these macros write into the preamble: +\begin{lstlisting}[tabsize=4] +\usepackage{amsmath} +\newcounter{subequation} +% +\newlength\mtabskip\mtabskip=-1.25cm +% +\newcommand\eqnCnt[1][]{% + \refstepcounter{subequation}% + \begin{align}#1\end{align}% + \addtocounter{equation}{-1}% +} +\def\mtabLong{long} +\makeatletter +\newenvironment{mtabular}[2][\empty]{% + \def\@xarraycr{% + \stepcounter{equation}% + \setcounter{subequation}{0}% + \@ifnextchar[\@argarraycr{\@argarraycr[\mtabskip]}% + } + \let\theoldequation\theequation% + \renewcommand\theequation{\theoldequation.\alph{subequation}} + \edef\mtabOption{#1} + \setcounter{subequation}{0}% + \tabcolsep=0pt + \ifx\mtabOption\mtabLong\longtable{#2}\else\tabular{#2}\fi% +}{% + \ifx\mtabOption\mtabLong\endlongtable\else\endtabular\fi% + \let\theequation\theoldequation% + \stepcounter{equation} +} +\makeatother +\end{lstlisting} + + +As seen in equation~\ref{blub} and equation~\ref{blah}, everything is +nonsense ... And the following tabular is defined as a longtable to enable pagebreaks. + + +\vspace*{10cm} +%\begin{framed} +\begin{mtabular}[long]{*{2}{m{0.35\linewidth}m{0.15\linewidth}}} +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt\\ +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt\\ +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt[\label{blah2}]\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt[\label{blub2}] + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt\\ +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt +\end{mtabular} +%\end{framed} + +As seen in equation~\ref{blub2} and equation~\ref{blah2}, everything is nonsense ... + + +And again a default display equation: +\begin{align} +F(x) &= \int_0^\infty\dfrac{1}{x}\,dx +\end{align} + +\begin{lstlisting}[tabsize=4] +\begin{mtabular}[long]{*{2}{m{0.375\linewidth}m{0.125\linewidth}}} +\begin{align*} \oint E ds=0 \end{align*} & \eqnCnt % + & \begin{align*} \nabla\cdot B=0 \end{align*} & \eqnCnt\\ +\begin{align*} a =\frac{c}{d} \end{align*} & \eqnCnt % + & \begin{align*} b = 1 \end{align*} & \eqnCnt\\ +\begin{align*} c =1 \end{align*} & \eqnCnt + & \begin{align*} \int 2x dx = x^2+C \end{align*} & \eqnCnt\\ + +[ ... ] +\end{lstlisting} + +%----------------------------------------------------------------------------- +\subsection[Itemize environment]{Formulas inside an itemize enviroment}\label{sec:itemize} +%----------------------------------------------------------------------------- +Without any modification it is not possible to get a numbered equation +at the same height as the symbol of the itemize environment\index{itemize@\texttt{itemize}}. This depends on %%% ----- Martin ----- +the \CMD{abovedisplayskip}. The formula has to be raised up for exactly this length. + +\begin{lstlisting} +\def\itemMath#1{% + \raisebox{-\abovedisplayshortskip}{% + \parbox{0.75\linewidth}{% + \begin{equation}#1\end{equation}}}} +% +\begin{itemize} +\item \itemMath{ f = l } +\item \itemMath{ g(x) = \int f(x) dx } +\end{itemize} +\end{lstlisting} + +\def\itemMath#1{% + \raisebox{-\abovedisplayshortskip}{% + \parbox{0.75\linewidth}{% + \begin{equation}#1\end{equation}}}} +% +\begin{itemize} +\item \itemMath{ f = l } +\item \itemMath{ g(x) = \int f(x) dx } +\end{itemize} + + +\part{Lists, bibliography and index} +\bgroup +\lhead{}\rhead{} +\clearpage\phantomsection\addcontentsline{toc}{section}{List of Figures} +\listoffigures +\clearpage\phantomsection\addcontentsline{toc}{section}{List of Tables} +\listoftables +\clearpage\phantomsection\addcontentsline{toc}{section}{Bibliography} + +{\nocite{*} +\raggedright +\bibliography{Mathmode} +\bibliographystyle{plain} +} +\clearpage\addcontentsline{toc}{section}{Index} +{\let\BSL\textbackslash +\renewcommand\textbackslash{{\tt\BSL}} +\printindex{} +} +\egroup + diff --git a/Master/texmf-doc/doc/english/mathmode/README b/Master/texmf-doc/doc/english/mathmode/README new file mode 100644 index 00000000000..068ccdd16b0 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/README @@ -0,0 +1,31 @@ +Mathmode.pdf : math in TeX/LaTeX; package amsmath.sty + needs package showexpl. Should be on CTAN in + the near future. Until then go to + http://perce.de/LaTeX/showexpl/ +Mathmode.ltx : main source file (preamble) +Mathmode.tex : document source +Mathmode.bib : BibTeX data +Mathmode.ist : index style file +showexpl.cfg : config file for the showexpl package + save it together with showexpl.sty +colArray,exscale, +node,styles : images +runVTeX : Shell script to tun vlatex +runLaTeX : Shell script to tun latex->dvips->ps2pdf + +building the document: +latex Mathmode.ltx +latex Mathmode.ltx +bibtex Mathmode +makeindex -s Mathmode.ist Mathmode.idx +latex Mathmode.ltx +dvips Mathmode.dvi +ps2pdf Mathmode.ps + + +or alternative with VTeX (http://www.micropress-inc.com/linux/) +vlatex Mathmode.ltx +vlatex Mathmode.ltx +bibtex Mathmode +makeindex -s Mathmode.ist Mathmode.idx +vlatex Mathmode.ltx diff --git a/Master/texmf-doc/doc/english/mathmode/colArray.eps b/Master/texmf-doc/doc/english/mathmode/colArray.eps new file mode 100644 index 00000000000..2c35d1793f2 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/colArray.eps @@ -0,0 +1,2856 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: xpdf/pdftops 2.02pl1 +%%LanguageLevel: 2 +%%BoundingBox: 0 0 390 189 +%%HiResBoundingBox: 0 0 389.54 188.63 +%%DocumentSuppliedResources: (atend) +%%EndComments +%%BeginProlog +%%BeginResource: procset xpdf 2.02pl1 0 +/xpdf 75 dict def xpdf begin +% PDF special state +/pdfDictSize 14 def +/pdfSetup { + 3 1 roll 2 array astore + /setpagedevice where { + pop 3 dict begin + /PageSize exch def + /ImagingBBox null def + /Policies 1 dict dup begin /PageSize 3 def end def + { /Duplex true def } if + currentdict end setpagedevice + } { + pop pop + } ifelse +} def +/pdfStartPage { + pdfDictSize dict begin + /pdfFill [0] def + /pdfStroke [0] def + /pdfLastFill false def + /pdfLastStroke false def + /pdfTextMat [1 0 0 1 0 0] def + /pdfFontSize 0 def + /pdfCharSpacing 0 def + /pdfTextRender 0 def + /pdfTextRise 0 def + /pdfWordSpacing 0 def + /pdfHorizScaling 1 def +} def +/pdfEndPage { end } def +% separation convention operators +/findcmykcustomcolor where { + pop +}{ + /findcmykcustomcolor { 5 array astore } def +} ifelse +/setcustomcolor where { + pop +}{ + /setcustomcolor { + exch + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval cvx + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace setcolor + } def +} ifelse +/customcolorimage where { + pop +}{ + /customcolorimage { + gsave + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace + 10 dict begin + /ImageType 1 def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + /Decode [1 0] def + currentdict end + image + grestore + } def +} ifelse +% PDF color state +/sCol { + pdfLastStroke not { + pdfStroke aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastStroke true def /pdfLastFill false def + } if +} def +/fCol { + pdfLastFill not { + pdfFill aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastFill true def /pdfLastStroke false def + } if +} def +% build a font +/pdfMakeFont { + 4 3 roll findfont + 4 2 roll matrix scale makefont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /Encoding exch def + currentdict + end + definefont pop +} def +/pdfMakeFont16 { + exch findfont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /WMode exch def + currentdict + end + definefont pop +} def +/pdfMakeFont16L3 { + 1 index /CIDFont resourcestatus { + pop pop 1 index /CIDFont findresource /CIDFontType known + } { + false + } ifelse + { + 0 eq { /Identity-H } { /Identity-V } ifelse + exch 1 array astore composefont pop + } { + pdfMakeFont16 + } ifelse +} def +% graphics state operators +/q { gsave pdfDictSize dict begin } def +/Q { end grestore } def +/cm { concat } def +/d { setdash } def +/i { setflat } def +/j { setlinejoin } def +/J { setlinecap } def +/M { setmiterlimit } def +/w { setlinewidth } def +% color operators +/g { dup 1 array astore /pdfFill exch def setgray + /pdfLastFill true def /pdfLastStroke false def } def +/G { dup 1 array astore /pdfStroke exch def setgray + /pdfLastStroke true def /pdfLastFill false def } def +/rg { 3 copy 3 array astore /pdfFill exch def setrgbcolor + /pdfLastFill true def /pdfLastStroke false def } def +/RG { 3 copy 3 array astore /pdfStroke exch def setrgbcolor + /pdfLastStroke true def /pdfLastFill false def } def +/k { 4 copy 4 array astore /pdfFill exch def setcmykcolor + /pdfLastFill true def /pdfLastStroke false def } def +/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor + /pdfLastStroke true def /pdfLastFill false def } def +/ck { 6 copy 6 array astore /pdfFill exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastFill true def /pdfLastStroke false def } def +/CK { 6 copy 6 array astore /pdfStroke exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastStroke true def /pdfLastFill false def } def +% path segment operators +/m { moveto } def +/l { lineto } def +/c { curveto } def +/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } def +/h { closepath } def +% path painting operators +/S { sCol stroke } def +/Sf { fCol stroke } def +/f { fCol fill } def +/f* { fCol eofill } def +% clipping operators +/W { clip newpath } def +/W* { eoclip newpath } def +% text state operators +/Tc { /pdfCharSpacing exch def } def +/Tf { dup /pdfFontSize exch def + dup pdfHorizScaling mul exch matrix scale + pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put + exch findfont exch makefont setfont } def +/Tr { /pdfTextRender exch def } def +/Ts { /pdfTextRise exch def } def +/Tw { /pdfWordSpacing exch def } def +/Tz { /pdfHorizScaling exch def } def +% text positioning operators +/Td { pdfTextMat transform moveto } def +/Tm { /pdfTextMat exch def } def +% text string operators +/awcp { % awidthcharpath + exch { + 1 string dup 0 3 index put 2 index charpath + 3 index 3 index rmoveto + 4 index eq { 5 index 5 index rmoveto } if + } forall + 6 {pop} repeat +} def +/Tj { fCol + 0 pdfTextRise pdfTextMat dtransform rmoveto + 1 index stringwidth pdfTextMat idtransform pop + sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse + pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0 + pdfTextMat dtransform + 6 5 roll + currentpoint 8 2 roll + pdfTextRender 1 and 0 eq { + 6 copy awidthshow + } if + pdfTextRender 3 and dup 1 eq exch 2 eq or { + 8 6 roll moveto + currentfont /FontType get 3 eq { fCol } { sCol } ifelse + false awcp currentpoint stroke moveto + } { + 8 {pop} repeat + } ifelse + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/Tj16 { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse + 0 pdfTextRise pdfTextMat dtransform rmoveto + 2 index stringwidth pdfTextMat idtransform pop + sub exch div + pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0 + pdfTextMat dtransform + 6 5 roll awidthshow + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/Tj16V { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse + 0 pdfTextRise pdfTextMat dtransform rmoveto + 2 index stringwidth pdfTextMat idtransform exch pop + sub exch div + 0 pdfWordSpacing pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing add 0 exch + pdfTextMat dtransform + 6 5 roll awidthshow + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/TJm { pdfFontSize 0.001 mul mul neg 0 + pdfTextMat dtransform rmoveto } def +/TJmV { pdfFontSize 0.001 mul mul neg 0 exch + pdfTextMat dtransform rmoveto } def +% Level 1 image operators +/pdfIm1 { + /pdfImBuf1 4 index string def + { currentfile pdfImBuf1 readhexstring pop } image +} def +/pdfIm1Sep { + /pdfImBuf1 4 index string def + /pdfImBuf2 4 index string def + /pdfImBuf3 4 index string def + /pdfImBuf4 4 index string def + { currentfile pdfImBuf1 readhexstring pop } + { currentfile pdfImBuf2 readhexstring pop } + { currentfile pdfImBuf3 readhexstring pop } + { currentfile pdfImBuf4 readhexstring pop } + true 4 colorimage +} def +/pdfImM1 { + /pdfImBuf1 4 index 7 add 8 idiv string def + { currentfile pdfImBuf1 readhexstring pop } imagemask +} def +% Level 2 image operators +/pdfImBuf 100 string def +/pdfIm { + image + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +/pdfImSep { + findcmykcustomcolor exch + dup /Width get /pdfImBuf1 exch string def + dup /Decode get aload pop 1 index sub /pdfImDecodeRange exch def + /pdfImDecodeLow exch def + begin Width Height BitsPerComponent ImageMatrix DataSource end + /pdfImData exch def + { pdfImData pdfImBuf1 readstring pop + 0 1 2 index length 1 sub { + 1 index exch 2 copy get + pdfImDecodeRange mul 255 div pdfImDecodeLow add round cvi + 255 exch sub put + } for } + 6 5 roll customcolorimage + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +/pdfImM { + fCol imagemask + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +end +%%EndResource +%%EndProlog +%%BeginSetup +xpdf begin +%%BeginResource: font FGXNEI+CMEX10 +%!FontType1-1.0: FGXNEI+CMEX10 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /FGXNEI+CMEX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [7 63776 659 40] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 50 /bracketlefttp put +dup 54 /bracketleftex put +dup 52 /bracketleftbt put +dup 51 /bracketrighttp put +dup 55 /bracketrightex put +dup 53 /bracketrightbt put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD76AE67CCBE6C569E3C7ED7D84E3C4204A9BD722 +50873EA47333356890CAF4A15A424FD4B234FE7DDA0F0D863C346058F4BEFE04 +3E4F768D805687A004B13452E895B459ED4E7E3D00D71DE3B36DEEF78B66260B +8C0108C27B385AA255B5F9F21F34B4E0E97A6C196B5530B656E80B32735A5236 +139BB8C47D6EB79D61BDF179B4B1F8D49461A22BBDE9291FD2B1CC422A4345C8 +C7E1C14B2A4747FFA7D56617B78A425B9532C933812BE51E236CA0E123AD7234 +9459840D2C05C10E35D1380519FCB9A0DD08DEF118264749B8C65005BD39FA71 +27C6B1427801223A24923A27F601DDD2C73F1722EBA3D878ADF3D628728744A8 +2BEBCC621729A9F9048FFE1C9F7BEEEDF314B45B5600B880DF842E731EA1C750 +0BC02BE4A2970886B606A337C2533E41678E509CA55C4D769A2C947623A71D51 +4BD6EF8CC32AEB8DC3AB64A169B8FCB6D1867D0143428ED2A5B60E870486A06B +FE4202AE7E10919CA6E42792CEB8906BEB5E589F61A1E0D4113AC2E617FD06B7 +0900F12FF3F7292A2621510928932E647456588E4C0821987A7E2C5AAF5A3308 +9D548D1F805C0943CE79B06FB75D3A92438B4DA5DA52CA4C02D148FB66EE55A2 +1E1F444B700F8C9C8F4EB07E3D44E9B2EEE7DB7E15CF0DAC8E385F2ECA975E7A +95B1BED8E5FB1ADF5E91226903B6EC0DAEE3452F7956F621260EE9FF63AB2BBC +962C25F65C69EDB56DE33D2389792E4939DB5E4A61D4313483A93586B570B925 +3DB8B56117A3E0D0677F6865A2C81AE7D40751471820B3A133973F213C391A57 +5A5D282B70CA0C22DEFAD4A251920DCBCFBE21703C45403C782D8EA736709C14 +16F2F73D094E1AA95ED1F0AB0A38641593A3D756455A2C7E6B363129869CBC89 +244132C3EB01A7A3F0562A0407BF498DE26E13C04047909D4DBFD1F48435F320 +D2EDA65DD7DFE28B21A6217E8E56885D88D2DABDEF5F60EEF16AB38EF4269351 +5683DD89EDAE81184157F06B3F4F90FE45CE58783B5ABC8530EE007406C16E13 +19C87A0671B1417F6C1AC21F5484CD43A5B33F08AE45CEA1682D582D431DD5D4 +9286E1EFBD889EA5A5003D1B7F46145095C7 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F10_0 /FGXNEI+CMEX10 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/bracketlefttp/bracketrighttp/bracketleftbt/bracketrightbt/bracketleftex/bracketrightex + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font TPVOAW+CMSY8 +%!FontType1-1.0: TPVOAW+CMSY8 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY8) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /TPVOAW+CMSY8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [0 -7 669 507] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 2 /multiply put +dup 163 /multiply put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD330986D3F10AF7B211765AF9751A064CB337B01 +56656DD95332590218B3675BDDD91DCA09CDF3C789636C6F792A396FE19645F2 +1B1867D6097F650D34C6B6C3368CE921E515344B1C5452C05252140DA29D404D +3D9CBCDAAE6E43FC6B07AFDED6F57C12B99B761D8478A484C6F4ED0B5834E6F6 +C5FACF0E1A4FF757DE8243E5C0867762774E4AFE53A5BC752BD9928AF5B1ED93 +2F821C28A58D73D8B25D28EF81264AD72C8384F071641662407585DFE3D8EBC3 +05E90AA9C7B65693A9F0137ABC75FF52261E44706141D8F4DCEE95280258B738 +0BAD7C4B16EF1AECBFA39D4A641E9D57D106E3B4C37C6DFC84306738A5F85172 +FC741BD63E8251B1FD74959DA4C9133CA03CFC169D4A888F08CEF635FC475554 +5639E768433BE8D7696E8C195F0609D5C887FB23BCA89D22ADC436596CAE59F9 +955606E6DD2456AEE72362219CF02BB28392AC5886EF4B73E2021EAB12E80549 +54E430E18066BC14D4941556BEBF7BD4AA09E10A0600823635C62F5FA09EB524 +32CBB82618413DD42038FF29DFCC4AA2EF733EB579F55C616789C4B03D5C8A98 +1352CBE43BDCA55A8FEC03EA950472507E5854B11B6CB96E4A16 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F28_0 /TPVOAW+CMSY8 1 1 +[ /.notdef/.notdef/multiply/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/multiply/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font EIXNXU+CMSY10 +%!FontType1-1.0: EIXNXU+CMSY10 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /EIXNXU+CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [0 0 694 270] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /minus put +dup 161 /minus put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD58DEADE9FDD8D1161040A11504872D56EDB3D8A +754DA50DF613433572E45F990F01381BC7E8141871C01DE3E731162DE2206649 +4D782ACD8AA055EAE84DD0DEB16C09CFA1774FA78BCB61839501922FF62F7037 +3E6C1F5DBDD3567A54F189008B0F5225798FB59F3FD46468BD1CF510B02F535E +3EA7FFE2583BAE928445D43359B4A7C4BF027456BA45D781AB71B5A7DD87F16D +E8E2A0E5C3E7175363255A9FC1B2C1734066515DA9C0C9C3AB23EBAFC56EF014 +FD1CAE59E9643B8D659ED91F7E5D38225A489707A6406BB8FAB4AC592D8F7849 +6D1EE5D02F37964D389F52A9D6F6088DBA3E88BDA46B006DEB21A55DBFA37D2F +174498304AD593651746AD2A9F1C026F612184F0436B032B1C581A0735F9D473 +890E6E7D72F5B429717EA8E1654A07A9B576258F9DFDE14EAFF935DFECADEAC8 +35035CA459C4BDC9577484FF36EA4BE997A020DD0AD3DCE87894C773CFE10D88 +CD91683874A6FAB9D28597DB2E32D200C3D8 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F25_0 /EIXNXU+CMSY10 1 1 +[ /minus/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/minus/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font OLGOPF+CMR12 +%!FontType1-1.0: OLGOPF+CMR12 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR12) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /OLGOPF+CMR12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [41 -251 448 750] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 40 /parenleft put +dup 41 /parenright put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B684ECE +D09D12596FFBF8762672645CD374900036933D4775219099EFD39C31D30F9DBD +6083595B1E68741B8FCE3C9B027EC30236ACCDBB9896C9FCA4C6301DC8AE9269 +5EC0E3AD75FEB076B541B77B40E550E773448FA2FC9C8BA961481BAB7A648EBE +3C29ED5C003A0387861340BD11D6B0B742D6AC32A4091344F369337DD86341BB +8F27E31491A01359E9B96C59D0FDB9250261D172FF8C61E4DE6E3AB896C6E2C4 +BE44C5D06B5B9BEA4A7E93E8FE4A35A0D071D80E89DE1499AB7E1BE6CBC2BDF8 +AF334B300A413D55B1A318F7AD24845F526DC3E063357584044AF0ACE86FBCDB +6B30009F47DB92CEF89B175665A8FF23D7365D869965301F8DE7A1C86EF96F9F +DEF200EC2B6B8A2468319E169D51C169691EE6103F5471499E480A4D92426784 +88146BB0E5DE1404F6F21F0CE181E528E9803B73FC93BA6D35C6915D5F0C2361 +044F05A78263EFF8C4AA8C4962C462FDCCCD210B26ABFCDE09003C31819BF02C +812986C9D10814478B3D676498310A41E887F882A1948F6FCCC567A63D0DB7A0 +0A259B2B21411E66F9B23C99ADD7781F2EDC8E2FDF9721450C78E148671B42BC +E124EDF909B2ACE5A41ED78B02C1DD560D97BF929E0E8924CBF407AACEB39764 +D0DBD98B1ADE64414CA77F392B76E4A5D515CE4AC59D635AF0FA319F45C94A18 +62F3BE07204E9F1EBEAC4DA19E90B380D010A48AE852C95C4E7B09B3319D79B9 +69C07E3954302280AEA3BEF9AE3975732BB25A9D056D449E50F8F793FA82C9DE +B0017D31390E6681F3A25B49CB1E5E6CF4552FFFBFC87E906AFDFBAD70D8D4E3 +4F2311251F9C7FF07A6D23C60A718C97466695FD760D6138534AB2F85D974D9F +AD52F4933BC5D4A905B3E3C9DFA683C7D6400398D239615DC277D55D57666402 +8740E4051BFDB0978D4F4EE789761979100F7AF3C60C0F485C933FB700E7CEAE +35205A4C9932D94804EC46E9B1FD77EF87AB2159F3C568C10E5FF16E764B3E40 +0BF6960673C438A758A113C2C74E09BAC95448BC82DB65B3D4BBFDB0E98F30C0 +F6926666F5C474C85E1EFB078FA800EDC7FFC7C66073FA73C7229230E61CA4A4 +3F0B9EC8307C2331E7485EF2E09546FBD5DB8ECF7E9A0D7591E97D5C3F23353B +70A1EE4A3023FDCAF232FC050FB83CA44BFD1A299714B778F8D78CF2D4E56157 +30BCE71CA661F9515C4191A287238FD18BD19F156CECE14E07B4D79F42FBEFD3 +A0099D1CC89D97FBC413B41638E013ED5E68906FEDD201BC27FF619050989706 +749D3A2C1CE640FDFCF8C1D0184766A7B30DBFF484C7FCA3CEC622BCAC8C34CF +C0E082A9B598B0E359CF297203BC1AEB158D0A2B1A0A18A54BA61E4D1E69E02E +27E050CDB6C3CA9ABAE28E95B9CBA3A5DFA661B35D8B963AA28E42FABF1BA196 +1F58E8DCC61576A4D577800AAADEB58704ECDC4C27FAE09739847E1AC17EDE4C +6DBD98 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F22_0 /OLGOPF+CMR12 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /parenleft/parenright/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /zero/one/two/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font DIRGWX+CMR8 +%!FontType1-1.0: DIRGWX+CMR8 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR8) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /DIRGWX+CMR8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [30 -21 500 675] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B684ECE +D09D12596FFBF8762672645CD374900036933D4775219099EFD39C31D30F9DBD +6083595B1E68741B8FCE3C9B027EC30236ADF0E7AC0DBE01565011494CE94F67 +CF1E81D9DDAD25BB3835257252F44792F8280E570F906E03366CF454A4BF386F +6312DB7993BB91E88F33CB1FC2FCE8497D778D2109DA3F11F0F2D12EA8693908 +29A9571036C39A88663C37727EA9D30FBA050EEAFF054D7FA644E535942B7F2C +5468F361E189A8BA7320D8623ECFFDD2658C8CFF8EE2D1243AA1BC321EE4B591 +70619FE57F47B1F1FBD28A7867AC779BF9C1783CB65A68C0E35E8778BEE76DD1 +8F4CF6D509D9C3D8AB52DE76E0C5BC3706E525D3E2F161484CAF7A0DF02E004A +29A233BCFF722B2A4F9459206B5CC933EDE2DD0F82433DA46E34DF88C49D2E09 +065864AC8C32F015C9DDC19934D79013881F69B63AF817718BD28AF0F7660FE7 +25DA085F7BB50D1DF286462957CFC10E4AD4D85EEA1B049E3D1B6E50E2DB2F4A +90E62CE09E7CB3894681DF62DF79E190EF0CCE1C95CDB7C7FAB6560BDE34ACF9 +072D7F390554DA636041528796A2C55BA8AEE96C8E4004439D73969DAED6D760 +3D6E79A332DD40348C1F8C7ECD1858CBAC53D006BB31A4C5B396B9C3888DA3DF +703405D0856E8CE20B2F9F047BE3446957CFDA266058DEE0BF71D2CE20C19D2A +B6B6C7F1BC86C1FE63585973A281DCBDEFAFCEAF5593EC4C0022F49A08845FAA +300FF94B264B6D3BF0191BA59C59DF64A0FF39C81195DD5D877FB46BA0FD7EBE +6E954A6A0F354D72EE20E10E65342B8D948BDB98668E2BAC530B137B1A925FB2 +8ABD4D366D217D3FD5F02BDDB00AC1633F1978D65906E950DB99947B2C348904 +34C550F7992C2B1C96E71D16A3CC9B2118521CFDE8B1B98A5023684F9E8D867F +331AE01015F25D5E13AE6F4B162E7F96127524440249B8317AE7104C3A849510 +39E71D4A4EFA857FCFF2DD40E0CBB7F5AC99A64A5187FF5EFEA9ACC578B19186 +1D177981A28036203F0A5017D5809EFF4F7A37708F1584FD3B6499CFD39BD38B +3769BC81B94B382288E47ABA78C76BED7FE0F025FBF6F4614D30E6A28BEBCD56 +465D4A3FA05C26F30CEBC0FB807BD6E318E07AD88FBA5227D8E1DFCBB5A73400 +24D1615859177A903A105096A57485A893F43C57D2CF18B847EC11C390E3E343 +B203460119CFAF486A6BD6E80F970A992F6A9CE36D5EB20003A875DDACEA27C1 +0F43FDD9E7260D17A4DE1E2A06173F7CC54BBEFCB8BF1AC66E3B558D33AA4CA3 +7A84E227A6CBD19A8E5EAF3BFDEF38D29255B194C0366EBB33EED5AB2883A3D4 +F8ECABC236274BC447492C26743E90A76918891A05B76912039E83CAE12CB81F +08952BCCC5F49616F8B8A347848E982FB47566181A9083154780204B1464E2A3 +7E955DD2D5207569E680FAFF75FBF15CFAD339336E72ECD8F02BE1E36C5766D7 +403DDF0EFE4E649FF4AEBB72269FE4CD461841E26FD077C7C477F18F9C2E8B22 +348C129E2A0E47412FB3C1DB7E1506958464342DA93C8296EEC2B66961D37EF4 +992765529F43F0C2B3A792C2F3C9B6243B9FC312F2FF83BCB7F54BD4EB7164B7 +9EC690B17DA645DED82991DA50A6D4E1EC176120C36EFFCD83C5A4337ACFC235 +05C86EF9FAD5C7A2C883EEF4A43C01A1465C0118C6743D1D9D8C913263F37884 +1150C98C8F1046CAE6D6A431CF07C7FD02BCE6B03C757F47F959D41AE303EB02 +EF2CD019DDC744CB9B970FAAC48550E1AD7856AB269789DDBDE2F3372D90495D +4599AB0BB3DA8447D61753EB670D54724F3A40EEE2F4EBC573153BE2F0F9FD53 +302EFBA66D24B22E5F93CDC6178C00A4132F289674 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F19_0 /DIRGWX+CMR8 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /zero/one/two/three/four/five/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font JGBJQA+CMMI8 +%!FontType1-1.0: JGBJQA+CMMI8 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI8) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /JGBJQA+CMMI8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [57 -193 533 694] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 107 /k put +dup 59 /comma put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B6849C6 +5AB7A317015C551080CF75E94E9F4AD2A41500BAD9F4EAE3C2E015A7EA9C591F +E01C6166DCF0C8C1E49A5B340799A136AD1FEEA433C69C85A2653364A574EDF4 +5A8844DC56498429873D085FD21C513447BB6B65802B97B2F96BB61C3F213F00 +7B7F1EDF9FCC5CD2C2EC426D1DACC8982C8F37C8576EB18A674DD63BD0265B7F +223E3B0595A81A7741F42F4E310BA9F53937E96FD5BAB6A29417AB071821242D +9E2CC011303C6B82C6D982C2254FDD1DB36CCBDBD8A21F4B033DCD34396548BC +D33DF8D79BA763F3C3A71C149987AF7B1F0D5E32B6C41B563EAE06D0D7257DDD +132654A16CCDCC9272B36C450626A2A54D816087561A38C9CEC923DC33825306 +8290A9AE233F5FEA1D141912BCCCC9C331DF01F1A907937659D848811447D768 +5A80E16E8BD004945FD5419C044AC2DBD2F6CA307062472BC5BE6841268C2F91 +B1996928E9698F0EC65E0BB1752916397302DEABBE36B9BECFF0A2812F8A6389 +8D904F1671A4C4D446C578EBE8BB1707315FB88DD47A2D608CDA50F97CDEC36C +CA19D8AD0AB9B6E474E7D28A536246499ACFEEA6B6437E0ED5F9C97770171A86 +9C397251780C87E36E8ECDEDDD999CBE735F01FB9E6F43D217F939E015B01FF7 +5EA0E4C4CE067E62468084084D69385024403BE3C646E53F152458E02202D90F +13CEDD90E2D314E815DA7BEEB5C1A11613FC3E19F29EACC763E0391E8D21CE3C +7802D3E6A38821D48BC02A5D3502DE3FBD1F1C3BEA08C2E5B9E3452CB917A8DD +45E5067FA84F4208D377FD26FF0E4CA885BB52E698D0062935A38B9111338A32 +DF9E23E025B12BA09B9FD3E2BD9EB55FA54556525B51EDEC1B3DFD1E277D0CE8 +C594A8C3A848DBA4C6E4DB86BEE62091DF59C48D79FE70FCC1F9BAE6C3352A59 +AAC43FFD0466B6368D2E0A689576BF036AAD5D72016A97DD6180E89E053F +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F16_0 /JGBJQA+CMMI8 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/comma/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/k/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font TSAJCV+CMMI12 +%!FontType1-1.0: TSAJCV+CMMI12 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI12) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /TSAJCV+CMMI12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [27 -10 555 694] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 110 /n put +dup 104 /h put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B6849C6 +5AB7A317015C551080CF75E94E9F4AD2A41500BAD9F4EAE3C2E015A7EA9C591F +E01C6166DCF0C8C1E49A5B340799A136AD1E3C8AA3EA27312D553F2088704093 +7751C735CE592C288572864EB2718EB665BE90E509BAEE8508951E593D1E179F +0A470525771A782381BE0E9948E3D83B13FFD9774C91FB0C1008C7F16762BED0 +7E44AFCD43E2244A354B59E8A95A95BF8FD7B74DE96F37A1543E59996A8CB698 +A884F9F0B08EAAE5166094B0773D520FCF3A537BE7CFEE2B8C9880CE214B8C9C +0470FD9C04B8E67C2987FAC7A39193D572FDD46517E87D5BA492237CE61244DF +A9BB3C9B5ADFB3B9EA24865ECEC713B6BCD372E81DEBF23FC0F7D04792A9CA4C +8F1DD005C9EE62F8A04D68925046AC7F61D0001391BF09DC66D168B5395F02C7 +1A870375CF38B9011F0A4013E127D47E2B053470D392EDF1375E5140EC25100E +DAA39691AD088BF998FCB198CBA3A280FCA5386AB3D3FF6B75BDE154F280A737 +F61C40F11AD85203DA12048C9946F4F616197AAE8307C91930C5CD8E21F362B9 +2AF5D9740DFC4BD28F8CCB3911785ABACAC51ABDEC842BFD0CA7A1FC285C65E6 +C216C62605E2C2C4DF6A34BB6238CD491FEDFAEA8E24DCB3765F841D56B6DCD5 +7A1F1047F4315AA0DF1433B07EC31589F088EF67CCB96686CECB2C517D780CA5 +0A8DCE3B65C7DEB19EC3E36D7EF8E5FE19D1B10D9FA0DE18D28E8B4AE231005A +DA76D7A1C350195EE5772E7A2E1278C7FABA422C1ACC3EC125A9BF676BD7EB2D +B891F02058FE9C38DCB90841636170C1F1C56C7EB590CC60F0BBD4F1467CDE3C +1B90631450C4031EC206E6B3ACEF21EE7A05A86CFE4CA29D014E188E553B395D +208FEB1E433BD35FCE5E9DF228357C09F9F2DC8E38A8416516B5D557E2887226 +E9986E1BE85FF961A73240AA7B6C5DA7A4DD964E9936C80E446EFA7E3FE2F314 +B0BA860C8E9842D3D1AE9ABE9402D27695FD828E00DEB8B60A044C34CBFA78EF +3D3DF166E953F1BE161886CA4417FD33ABCF8010A88405B9D9B76F764125C767 +7FEB85CB115ED57B488500D43DFEFE85704F1D424BAF4BC30267C1B9ED3890A0 +992FF444D04E6E28BD4BB689 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F13_0 /TSAJCV+CMMI12 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /h/.notdef/.notdef/.notdef/.notdef/.notdef/n/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%EndSetup +pdfStartPage +[] 0 d +0 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[0.1 0 0 0.1 0 0] cm +q +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 7.60098 174.785] Tm +0 0 Td +/F10_0 9.96264 Tf +(2) 6.63512 Tj +0 -17.541 Td +(6) 6.63512 Tj +0 -23.517 Td +(6) 6.63512 Tj +0 -29.493 Td +(6) 6.63512 Tj +0 -35.4689 Td +(6) 6.63512 Tj +0 -41.4449 Td +(6) 6.63512 Tj +0 -47.4299 Td +(6) 6.63512 Tj +0 -53.4059 Td +(6) 6.63512 Tj +0 -59.3819 Td +(6) 6.63512 Tj +0 -65.3579 Td +(6) 6.63512 Tj +0 -71.3339 Td +(6) 6.63512 Tj +0 -77.3099 Td +(6) 6.63512 Tj +0 -83.2949 Td +(6) 6.63512 Tj +0 -89.2709 Td +(6) 6.63512 Tj +0 -95.2469 Td +(6) 6.63512 Tj +0 -101.223 Td +(6) 6.63512 Tj +0 -107.199 Td +(6) 6.63512 Tj +0 -113.184 Td +(6) 6.63512 Tj +0 -119.16 Td +(6) 6.63512 Tj +0 -125.136 Td +(6) 6.63512 Tj +0 -131.112 Td +(6) 6.63512 Tj +0 -137.088 Td +(6) 6.63512 Tj +0 -143.064 Td +(6) 6.63512 Tj +0 -149.049 Td +(6) 6.63512 Tj +0 -155.421 Td +(4) 6.63512 Tj +Q +0.953 g +1 i +162 1607 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 21.218 165.065] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74099 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3644 -1.79102 Td +(;) 2.34321 Tj +13.7076 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9318 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.275 -1.79102 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.029 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.572 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5537 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +673 1607 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 82.5107 165.065] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76531 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79102 Td +(;) 2.34321 Tj +13.732 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9561 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +1389 1607 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 154.061 165.065] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76533 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79102 Td +(;) 2.34321 Tj +13.732 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9561 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +1 g +2104 1607 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 243.242 165.065] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +2820 1607 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.797 165.065] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +162 1463 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 21.218 150.62] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74099 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3644 -1.79099 Td +(;) 2.34321 Tj +13.7076 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9318 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.275 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.029 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.572 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5537 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +673 1463 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 82.5107 150.62] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76531 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +1389 1463 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 154.061 150.62] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76533 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +1 g +2104 1463 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 243.242 150.62] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +2820 1463 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.797 150.62] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +162 1318 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 21.218 136.175] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74099 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3644 -1.79099 Td +(;) 2.34321 Tj +13.7076 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9318 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.275 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.029 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.572 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5537 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +673 1318 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 82.5107 136.175] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76531 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +1389 1318 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 154.061 136.175] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76533 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +1 g +2104 1318 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 243.242 136.175] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +2820 1318 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.797 136.175] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +162 1174 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 21.218 121.73] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74099 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3644 -1.79099 Td +(;) 2.34321 Tj +13.7076 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9318 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.275 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.029 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.572 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5537 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.8 0.8 0.498 rg +673 1174 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 82.5107 121.73] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76531 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +0.953 g +1389 1174 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 154.061 121.73] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.76533 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3888 -1.79099 Td +(;) 2.34321 Tj +13.732 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9561 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2993 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0533 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5963 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +36.5781 0 Td +/F22_0 11.9551 Tf +(\)) 4.54294 Tj +Q +1 g +2104 1174 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 243.242 121.73] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +2820 1174 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.797 121.73] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +162 1029 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 107.285] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +673 1029 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 72.298 107.285] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.745 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3685 -1.79099 Td +(;) 2.34321 Tj +13.7116 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9358 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.279 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.033 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5759 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2127 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1658 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +1389 1029 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.816 107.285] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77717 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.968 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3112 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +2104 1029 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 107.285] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +1 g +2820 1029 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.789 107.285] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +162 885 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 92.84] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +673 885 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 72.298 92.84] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.745 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3685 -1.79102 Td +(;) 2.34321 Tj +13.7116 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9358 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.279 -1.79102 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.033 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5759 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2127 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1658 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +1389 885 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.816 92.84] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77717 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79102 Td +(;) 2.34321 Tj +13.7438 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.968 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3112 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +2104 885 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 92.84] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79102 Td +(;) 2.34321 Tj +13.7438 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9679 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +1 g +2820 885 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.789 92.84] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +162 741 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 78.395] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +673 741 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 72.298 78.395] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.745 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3685 -1.79102 Td +(;) 2.34321 Tj +13.7116 -1.79102 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9358 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.279 -1.79102 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.033 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5759 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2127 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1658 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +1389 741 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.816 78.395] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77717 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79102 Td +(;) 2.34321 Tj +13.7438 -1.79102 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.968 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3112 -1.79102 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +2104 741 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 78.395] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79102 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79102 Td +(;) 2.34321 Tj +13.7438 -1.79102 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9679 -1.79102 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79102 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +1 g +2820 741 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.789 78.395] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +162 596 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 63.95] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.8 0.8 0.498 rg +673 596 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 72.298 63.95] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.745 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3685 -1.79099 Td +(;) 2.34321 Tj +13.7116 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9358 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.279 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.033 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5759 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2127 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1658 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +1389 596 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.816 63.95] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77717 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.968 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3112 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +0.953 g +2104 596 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 63.95] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(1\)) 10.389 Tj +Q +1 g +2820 596 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 314.789 63.95] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +162 452 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 49.505] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +673 452 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 100.162 49.505] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +1389 452 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.844 49.505] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74895 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3724 -1.79099 Td +(;) 2.34321 Tj +13.7156 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9397 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2829 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.0369 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5799 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2257 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1698 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2104 452 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 49.505] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2820 452 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 286.916 49.505] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +1 g +162 307 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 35.051] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +673 307 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 100.162 35.051] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +1389 307 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.844 35.051] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74895 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3724 -1.79099 Td +(;) 2.34321 Tj +13.7156 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9397 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2829 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.0369 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5799 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2257 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1698 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2104 307 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 35.051] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2820 307 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 286.916 35.051] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +1 g +162 163 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 20.606] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +673 163 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 100.162 20.606] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +1389 163 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.844 20.606] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74895 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3724 -1.79099 Td +(;) 2.34321 Tj +13.7156 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9397 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2829 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.0369 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5799 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2257 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1698 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2104 163 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 20.606] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2820 163 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 286.916 20.606] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(3) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +1 g +162 18 510.93 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.849 6.16099] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +1 g +673 18 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 100.162 6.16099] Tm +0 0 Td +/F22_0 11.9551 Tf +(0) 5.84604 Tj +Q +0.953 g +1389 18 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 143.844 6.16099] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.74895 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.3724 -1.79099 Td +(;) 2.34321 Tj +13.7156 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9397 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.2829 -1.79099 Td +/F19_0 7.97011 Tf +(0) 4.22416 Tj +25.0369 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.5799 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2257 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.1698 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2104 18 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 215.366 6.16099] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(1) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +Q +0.953 g +2820 18 715.59 144.54 re +f +0 g +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 286.916 6.16099] Tm +0 0 Td +/F13_0 11.9551 Tf +(h) 6.73072 Tj +6.77715 -1.79099 Td +/F16_0 7.97011 Tf +(k) 4.40747 Tj +11.4006 -1.79099 Td +(;) 2.34321 Tj +13.7438 -1.79099 Td +/F19_0 7.97011 Tf +(4) 4.22416 Tj +17.9679 -1.79099 Td +/F16_0 7.97011 Tf +(;) 2.34321 Tj +20.3111 -1.79099 Td +/F19_0 7.97011 Tf +(2) 4.22416 Tj +25.0652 0 Td +/F22_0 11.9551 Tf +(\() 4.54294 Tj +29.6081 0 Td +/F13_0 11.9551 Tf +(n) 6.98178 Tj +39.2539 0 Td +/F25_0 11.9551 Tf +(\241) 9.28911 Tj +51.198 0 Td +/F22_0 11.9551 Tf +(2\)) 10.389 Tj +68.5981 168.624 Td +/F10_0 9.96264 Tf +(3) 6.63512 Tj +68.5981 151.083 Td +(7) 6.63512 Tj +68.5981 145.107 Td +(7) 6.63512 Tj +68.5981 139.131 Td +(7) 6.63512 Tj +68.5981 133.155 Td +(7) 6.63512 Tj +68.5981 127.179 Td +(7) 6.63512 Tj +68.5981 121.194 Td +(7) 6.63512 Tj +68.5981 115.218 Td +(7) 6.63512 Tj +68.5981 109.242 Td +(7) 6.63512 Tj +68.5981 103.266 Td +(7) 6.63512 Tj +68.5981 97.2901 Td +(7) 6.63512 Tj +68.5981 91.3141 Td +(7) 6.63512 Tj +68.5981 85.3291 Td +(7) 6.63512 Tj +68.5981 79.3531 Td +(7) 6.63512 Tj +68.5981 73.3771 Td +(7) 6.63512 Tj +68.5981 67.4011 Td +(7) 6.63512 Tj +68.5981 61.4251 Td +(7) 6.63512 Tj +68.5981 55.4401 Td +(7) 6.63512 Tj +68.5981 49.4641 Td +(7) 6.63512 Tj +68.5981 43.4881 Td +(7) 6.63512 Tj +68.5981 37.5121 Td +(7) 6.63512 Tj +68.5981 31.5361 Td +(7) 6.63512 Tj +68.5981 25.5601 Td +(7) 6.63512 Tj +68.5981 19.5751 Td +(7) 6.63512 Tj +68.5981 13.2031 Td +(5) 6.63512 Tj +75.2401 -4.83294 Td +/F19_0 7.97011 Tf +(12) 8.44832 Tj +83.6884 -4.83294 Td +/F28_0 7.97011 Tf +(\243) 6.58331 Tj +90.2717 -4.83294 Td +/F19_0 7.97011 Tf +(5) 4.22416 Tj +Q +Q +Q +showpage +%%PageTrailer +pdfEndPage +%%Trailer +end +%%DocumentSuppliedResources: +%%+ font FGXNEI+CMEX10 +%%+ font TPVOAW+CMSY8 +%%+ font EIXNXU+CMSY10 +%%+ font OLGOPF+CMR12 +%%+ font DIRGWX+CMR8 +%%+ font JGBJQA+CMMI8 +%%+ font TSAJCV+CMMI12 +%%EOF diff --git a/Master/texmf-doc/doc/english/mathmode/colArray.pdf b/Master/texmf-doc/doc/english/mathmode/colArray.pdf new file mode 100644 index 00000000000..5cfbbb8bb50 Binary files /dev/null and b/Master/texmf-doc/doc/english/mathmode/colArray.pdf differ diff --git a/Master/texmf-doc/doc/english/mathmode/exscale.eps b/Master/texmf-doc/doc/english/mathmode/exscale.eps new file mode 100644 index 00000000000..b56e6f87488 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/exscale.eps @@ -0,0 +1,1279 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: xpdf/pdftops 2.01 +%%LanguageLevel: 2 +%%BoundingBox: 0 0 477 68 +%%HiResBoundingBox: 0 0 476.22 67.27 +%%DocumentSuppliedResources: (atend) +%%EndComments +%%BeginProlog +%%BeginResource: procset xpdf 2.01 0 +/xpdf 75 dict def xpdf begin +% PDF special state +/pdfDictSize 14 def +/pdfSetup { + 3 1 roll 2 array astore + /setpagedevice where { + pop 3 dict begin + /PageSize exch def + /ImagingBBox null def + /Policies 1 dict dup begin /PageSize 3 def end def + { /Duplex true def } if + currentdict end setpagedevice + } { + pop pop + } ifelse +} def +/pdfStartPage { + pdfDictSize dict begin + /pdfFill [0] def + /pdfStroke [0] def + /pdfLastFill false def + /pdfLastStroke false def + /pdfTextMat [1 0 0 1 0 0] def + /pdfFontSize 0 def + /pdfCharSpacing 0 def + /pdfTextRender 0 def + /pdfTextRise 0 def + /pdfWordSpacing 0 def + /pdfHorizScaling 1 def +} def +/pdfEndPage { end } def +% separation convention operators +/findcmykcustomcolor where { + pop +}{ + /findcmykcustomcolor { 5 array astore } def +} ifelse +/setcustomcolor where { + pop +}{ + /setcustomcolor { + exch + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval cvx + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace setcolor + } def +} ifelse +/customcolorimage where { + pop +}{ + /customcolorimage { + gsave + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval cvx + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace + 10 dict begin + /ImageType 1 def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + /Decode [1 0] def + currentdict end + image + grestore + } def +} ifelse +% PDF color state +/sCol { + pdfLastStroke not { + pdfStroke aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastStroke true def /pdfLastFill false def + } if +} def +/fCol { + pdfLastFill not { + pdfFill aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastFill true def /pdfLastStroke false def + } if +} def +% build a font +/pdfMakeFont { + 4 3 roll findfont + 4 2 roll matrix scale makefont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /Encoding exch def + currentdict + end + definefont pop +} def +/pdfMakeFont16 { + exch findfont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /WMode exch def + currentdict + end + definefont pop +} def +/pdfMakeFont16L3 { + 1 index /CIDFont resourcestatus { + pop pop 1 index /CIDFont findresource /CIDFontType known + } { + false + } ifelse + { + 0 eq { /Identity-H } { /Identity-V } ifelse + exch 1 array astore composefont pop + } { + pdfMakeFont16 + } ifelse +} def +% graphics state operators +/q { gsave pdfDictSize dict begin } def +/Q { end grestore } def +/cm { concat } def +/d { setdash } def +/i { setflat } def +/j { setlinejoin } def +/J { setlinecap } def +/M { setmiterlimit } def +/w { setlinewidth } def +% color operators +/g { dup 1 array astore /pdfFill exch def setgray + /pdfLastFill true def /pdfLastStroke false def } def +/G { dup 1 array astore /pdfStroke exch def setgray + /pdfLastStroke true def /pdfLastFill false def } def +/rg { 3 copy 3 array astore /pdfFill exch def setrgbcolor + /pdfLastFill true def /pdfLastStroke false def } def +/RG { 3 copy 3 array astore /pdfStroke exch def setrgbcolor + /pdfLastStroke true def /pdfLastFill false def } def +/k { 4 copy 4 array astore /pdfFill exch def setcmykcolor + /pdfLastFill true def /pdfLastStroke false def } def +/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor + /pdfLastStroke true def /pdfLastFill false def } def +/ck { 6 copy 6 array astore /pdfFill exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastFill true def /pdfLastStroke false def } def +/CK { 6 copy 6 array astore /pdfStroke exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastStroke true def /pdfLastFill false def } def +% path segment operators +/m { moveto } def +/l { lineto } def +/c { curveto } def +/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } def +/h { closepath } def +% path painting operators +/S { sCol stroke } def +/Sf { fCol stroke } def +/f { fCol fill } def +/f* { fCol eofill } def +% clipping operators +/W { clip newpath } def +/W* { eoclip newpath } def +% text state operators +/Tc { /pdfCharSpacing exch def } def +/Tf { dup /pdfFontSize exch def + dup pdfHorizScaling mul exch matrix scale + pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put + exch findfont exch makefont setfont } def +/Tr { /pdfTextRender exch def } def +/Ts { /pdfTextRise exch def } def +/Tw { /pdfWordSpacing exch def } def +/Tz { /pdfHorizScaling exch def } def +% text positioning operators +/Td { pdfTextMat transform moveto } def +/Tm { /pdfTextMat exch def } def +% text string operators +/awcp { % awidthcharpath + exch { + 1 string dup 0 3 index put 2 index charpath + 3 index 3 index rmoveto + 4 index eq { 5 index 5 index rmoveto } if + } forall + 6 {pop} repeat +} def +/Tj { fCol + 0 pdfTextRise pdfTextMat dtransform rmoveto + 1 index stringwidth pdfTextMat idtransform pop + sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse + pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0 + pdfTextMat dtransform + 6 5 roll + currentpoint 8 2 roll + pdfTextRender 1 and 0 eq { + 6 copy awidthshow + } if + pdfTextRender 3 and dup 1 eq exch 2 eq or { + 8 6 roll moveto + currentfont /FontType get 3 eq { fCol } { sCol } ifelse + false awcp currentpoint stroke moveto + } { + 8 {pop} repeat + } ifelse + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/Tj16 { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse + 0 pdfTextRise pdfTextMat dtransform rmoveto + 2 index stringwidth pdfTextMat idtransform pop + sub exch div + pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0 + pdfTextMat dtransform + 6 5 roll awidthshow + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/Tj16V { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse + 0 pdfTextRise pdfTextMat dtransform rmoveto + 2 index stringwidth pdfTextMat idtransform exch pop + sub exch div + 0 pdfWordSpacing pdfTextMat dtransform 32 + 4 3 roll pdfCharSpacing add 0 exch + pdfTextMat dtransform + 6 5 roll awidthshow + 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def +/TJm { pdfFontSize 0.001 mul mul neg 0 + pdfTextMat dtransform rmoveto } def +/TJmV { pdfFontSize 0.001 mul mul neg 0 exch + pdfTextMat dtransform rmoveto } def +% Level 1 image operators +/pdfIm1 { + /pdfImBuf1 4 index string def + { currentfile pdfImBuf1 readhexstring pop } image +} def +/pdfIm1Sep { + /pdfImBuf1 4 index string def + /pdfImBuf2 4 index string def + /pdfImBuf3 4 index string def + /pdfImBuf4 4 index string def + { currentfile pdfImBuf1 readhexstring pop } + { currentfile pdfImBuf2 readhexstring pop } + { currentfile pdfImBuf3 readhexstring pop } + { currentfile pdfImBuf4 readhexstring pop } + true 4 colorimage +} def +/pdfImM1 { + /pdfImBuf1 4 index 7 add 8 idiv string def + { currentfile pdfImBuf1 readhexstring pop } imagemask +} def +% Level 2 image operators +/pdfImBuf 100 string def +/pdfIm { + image + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +/pdfImSep { + findcmykcustomcolor exch + dup /Width get /pdfImBuf1 exch string def + begin Width Height BitsPerComponent ImageMatrix DataSource end + /pdfImData exch def + { pdfImData pdfImBuf1 readstring pop + 0 1 2 index length 1 sub { + 1 index exch 2 copy get 255 exch sub put + } for } + 6 5 roll customcolorimage + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +/pdfImM { + fCol imagemask + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +end +%%EndResource +%%EndProlog +%%BeginSetup +xpdf begin +%%BeginResource: font VWGKMN+CMMI12~1b +%!FontType1-1.0: VWGKMN+CMMI12~1b +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI12) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /VWGKMN+CMMI12~1b def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-30 -250 1026 750] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 110 /n put +dup 105 /i put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B6849C6 +5AB7A317015C551080CF75E94E9F4AD2A41500BAD9F4EAE3C2E015A7EA9C591F +E01C6166DCF0C8C1E49A5B340799A136AD1E3C8AA3EA27312D553F2088704093 +7751C735CE592C288572864EB2718EB665BE90E509BAEE8508951E593D1E179F +0A470525771A782381BE0E9948E3D83B13FFD9774C91FB0C1008C7F16762BED0 +7E44AFCD43E2244A354B59E8A95A95BF8FD7B74DE96F37A1543E59996A8CB698 +A884F9F0B08EAAE5166094B0773D520FCF3A537BE7CFEE2B8C9880CE214B8C9C +0470FD9C04B8E67C2987FAC7A39193D572FDD46517E87D5BA492237CE61244DF +A9BB3C9B5ADFB3B9EA24865ECEC713B6BCD372E81DEBF23FC0F7D04792A9CA4C +8F1DD005C9EE62F8A04D68925046AC7F61D0001391BF09DC66D168B5395F02C7 +1A870375CF38B9011F0A4013E127D47E2B053470D392EDF1375E5140EC25100E +DAA39691AD088BF998FCB198CBA3A280FCA5386AB3D3FF6B75BDE154F280A737 +F61C40F11AD85203DA12048C9946F4F616197AAE8307C91930C5CD8E21F362B9 +2AF5D9740DFC4BD28F8CCB3911785ABACAC51ABDEC842BFD0CA7A1FC285C65E6 +C216C62605E2C2C4DF6A34BB6238CD491FEDFAEA8E24DCB3765F841D5744AD4D +F11999337A1E84F545EE750C887D6E9FB2D349DEFFDDF5EB4A3ECFB77CF3C0F9 +DE7C4040B1FF41582E46CDC7F0A6BF2CE267AC0054809344F3BA55AF06A18D9E +D7A3AE95C732A063B3D6B38DE09F2E538635328BFBCD164D6D717AE541C97351 +5CF12CEBF1648C6519B66A28A6A32D6BCF94CF46878EC9F53E3DE4B2A5723E9F +5B1218BFC88CFBFEA041CD85B31FC93543F693F28302FFB2CBFFB3BAF67C784D +7FDC0080AE67892EC5E11721A1E02A99820614A8D0FCCB30EC1182CD793416AD +D58E0F79924D1F9762C470DC8FCED3F7BC64BC20F0B02F505C6E44A79C309074 +8EF767B6A9677F6BD08BC0E214E1038C29266ACCDBB1F0E489A27F9ED3BA5DBB +DDCC78F28345162325531ABB +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F28_0 /VWGKMN+CMMI12~1b 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/i/.notdef/.notdef/.notdef/.notdef/n/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font VTBQKO+CMSY10~18 +%!FontType1-1.0: VTBQKO+CMSY10~18 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /VTBQKO+CMSY10~18 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-29 -960 1116 775] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 161 /minus put +dup 112 /radical put +dup 188 /approxequal put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD58DEADE9FDD8D1161040A11504872D56EDB3D8A +754DA50DF613433572E45F990F01381BC7E8141871C01DE3E731162DE2206649 +4D782ACD8AA055EAE84DD0DEB16C09CFA1774FA78BCB61839501922FF62F7037 +3E6C1F5DBDD3567A54F189008B0F5225798FB59F3FD46468BD1CF510B02F535E +3EA7FFE2583BAE928445D43359B4A7C4BF027456BA45D781AB71B5A7DB2A069D +16B42DC713A3CCB6051AA434461CB1B788ABDAFC086C086AA2B775151523635A +1B20BADC61BCED288EFD4E6F6CA6A38374934CF2B9EC79B4A49C3651F5716CB7 +383810061D909D91062AA3DCE7FEE134D4401A8A658058ECD16AD20987BB1A7A +B461AB673C3ED13ED6BC70F9A82480BCDA3C25351DE936EC85246796682A66A9 +3CC542C440F8F35956A87DFD812F3705C0D4C212F288C90D06125B9C6B69592C +A913A2325D7C58E1603C566AD9D9D53D9D386E35E697440EF0F3D7B79A0D6756 +54F58C1E8930F1862D643C3C0A6B00FAC163BF8751934E084093C76CB577B99C +00D286B86F797664B8BFFE5B5D53BF76741014E5C4B55E49A7889782F28D9A5E +8350ACC37ADC389D4EA67615A01D7422E32693BCFF6404EF69E29CE4D9D96F09 +3ED1F60BF6D8A145FCCFEC6A6F5D776A7CC1C1EAE66F0A9ADD12786D8504E5DC +41DDAEB84DC3126FAD8C02D6A7CEBC17A423CF3D0620A1756A173715F2186F93 +899BBFEB55125ABC9CB09CBB3216D801A9E4082D88B7242CC8E4803DC014D01D +E52AD71B70176B9B7EF540031985ACF8224C6FB88175A75E1A5EFE4BE700FB22 +0C3FBD57D7A99CB5B6D836530EDFA1AF26FDF70026E6A24ED8B966C513DC21C6 +AF9245BD2AF5F4C2D010D87F0A3E82BD5FD9FE13A4586714A34ACA07C7F0ED95 +D20B892343C4B77BA94675A26C41ECAEA66D6C5E7A5E1155F6E0CB7D068E9BBB +D13286FB8BF5FC71B55132FF41C4B6B5CB9CEB99A052E277A51AC0BF479A6B78 +D0044B8B010E45315B96EAA354FD0533106B0107E35BA1DF3AE0 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F25_0 /VTBQKO+CMSY10~18 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /radical/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/minus/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/approxequal/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font GMDPHN+CMR17~15 +%!FontType1-1.0: GMDPHN+CMR17~15 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR17) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /GMDPHN+CMR17~15 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-33 -250 945 749] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 99 /c put +dup 111 /o put +dup 115 /s put +dup 49 /one put +dup 50 /two put +dup 40 /parenleft put +dup 41 /parenright put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DC92E493E0F02C8730749B6C82051C4FDB560DF800B +3372035B0A49A3D7E42A6D95F9A429FCCC80B1170279BD4DB2682E62B674064E +66A05B6718BF415A81688C966D3AC974300F4F0E5909720B4F372628A04C7166 +8ED43DD0A3118B84EB6B9BB3A0201C51A16F58A501D371009A54963E9355FA89 +08EB383F3FF9B64870EE9055E705B9D1F8DFD5C46F9686AA5176D6B65F0FFA37 +E1850A8C517AD96C75F4AA246D7734069A6E2D0400996D685F13F94B8ADB2EBC +A4F3EF818A4394A41014E6CFB6C2ABF984DCFAA8C1512A6E2AA9CEC4AB751CF1 +2F7D24625D5D9EC359692DF2FDCAD13E24542459644DB61A3CB7DB848C8EBF6B +147A6E9921B11A232EB186DB5DE1736C1009CAA84DC481209DBE49DAE37602F8 +5CC48F26EFFFD7513A082C8C3BC70DB7E4AD67F59385742AB72A1243E010BC7E +88440B407BECAB190B3AE7C839957CED8E696F213DD9D88F98E659ECA455DDE4 +B8D56AA6D776E98A8EC8388573AE2DD9115F9D12B88C215E3B7C7493E99A0B97 +B1C8F494569BEFC3F62FD9F6E2B772C89291425B19294CC62810BE9A0DA0E6F9 +DEA04DBFC403A803642B45848ABBBB4AAD2C4E3578590A140FCFC68784220760 +169066FE6D42EDAA50D7379F956636CAA12EB3355179001AC725724CD11F9DFD +A1734DBE09F618B408ECB844C464E1858DD358960A13671B27753E5B1EB4535D +362964FF7756FD4C885E16888AEAC259A3B59B21BD4D9C7377E1F7137E1C031B +6F0654DDD45ED37084063A4DBD3F87357F1560F94A41B10CA70C128C4FCEF792 +FCA0702618A267A1D7D4C2C82BD79C5619C37E8369285FE9824D9790093D3339 +38464F72B9290DDDA15BC894FBD57969F3B96B87260278A0E7CD55A31EB8E3EA +C3F78926859CC87EA7376A8C02420A9BB0EDE1E72B7B7AEA72EA3606660F22CA +5256E999285FBF40105F8D36B3C34CF3C5705DF07CF612104D5CD94069A14A87 +FCD441BB7CAEA76A2BB5D9155E171FC3D801CACEA228A675CEA444B48573163F +46EB54553C57B42DEC78C3E61AC6BCBA64EA597E8E8F20B0D399BD2F3513CFDC +736A1BBE30A943295761FFB39C250465083707EB63316D0E7644F6FCD9BB91B8 +E56B6B03E6DEBB3951ACAD3B3D8AB237037D2DD3EBDC27D9DCC6BC88468F16BE +388700B9DB0CE45AF62989A0B8F03C823FC58E3BE50195B0ACCC033287844B07 +DC96A6275CAC5C0839384AB8EA4199C2EAEEF49783255F990329A080EAEF84A7 +18068E48B22736D1441C716B2087AF3AFE84C4A564B5A52F38B5D846ECB392F3 +3790597446B05F207CA509F0696864E4E961C75E8EA1DF3E5D4E4867BECDD278 +92DD7141EEDFBC49D0C369B73204C7FF5FF1BF41845EF6069E1FA40E09950075 +9963596457EA5F9CE76E00C27514B24C9A1F30EC551E0E27F07627A411BE7215 +65EC4E43C875BD36A6041A68FD80D1036FD5FF84B875A3AEBBA75D4AAF0D7B55 +D96FE480E7F940926349994D683EAC65ACCFE3CEB26C9ED046D33A55D3559043 +CD3891ED281A6AB9FD97D60A25BE7FED7E7CDB8CD71E102C209C0D9FCB424859 +1C295A908D39D38B7526FD8575DE4075903080E8006CED49B8C307874F3F7596 +5AA97290ED6B47A4F69035A382BE70BBB0886B874513DAB99741B00F843BEEC4 +6CEB7970030C848BAE523594089670770B755A6B71B5AC10383C77D31B9EC16B +320A6C02480190FBFE22087C0B9EBFAEA3D8C57E0C9569E471120B0FC326FBD6 +42F2B3DBF9718DB1B0B764186D6342008523B5256AD9A8E765A44DB34E1C6DFE +5E0FE7722BFD1B4FC592D3FA80D47B82BAE3C81E2AEF0E0B5AA54BA3776C7B3D +AF0785E90C37FD34E2A4A49A25C1BAAE889A05E40CFA6ED1D80B0A842CB5E10F +19E12C5567C8562B6238E0AB5986996C42C4CD594BBE9F8C7B05835AEA7D5CA8 +4D68 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F22_0 /GMDPHN+CMR17~15 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /parenleft/parenright/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/one/two/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/c/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/o + /.notdef/.notdef/.notdef/s/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font HKDPOA+CMMI12 +%!FontType1-1.0: HKDPOA+CMMI12 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI12) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /HKDPOA+CMMI12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-30 -250 1026 750] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 110 /n put +dup 100 /d put +dup 102 /f put +dup 105 /i put +dup 120 /x put +dup 188 /pi put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD65B1394C5DA048A67291055AB5DB47B8B6849C6 +5AB7A317015C551080CF75E94E9F4AD2A41500BAD9F4EAE3C2E015A7EA9C591F +E01C6166DCF0C8C1E49A5B340799A136AD1E3C8AA3EA27312D553F2088704093 +7751C735CE592C288572864EB2718EB665BE90E509BAEE8508951E593D1E179F +0A470525771A782381BE0E9948E3D83B13FFD9774C91FB0C1008C7F16762BED0 +7E44AFCD43E2244A354B59E8AD947BA45650E9630465990C59B1D22AB71C328D +BF073E8D3DC29C7AB59DE1A9E7F64217DBB4E390A8CAE5247C9E22BE72C36CA4 +307A6DCF57A06FCE790E6AD83376573DDD7BA1FD10B11267E2C1C6FAF1AE9F9D +B31AF4E80D4EB4EDAB99E2D0B0BCE5958B9F80DD9FB9927212D1936DB2EDAD98 +8515998AA3049ECCD236B9875E42F57F9571FDFB89A9E5FD7253EDAFCE0EE0F9 +EC2422A4D6E0C992411BFC35DAC2EA8FDD1D2CA95FA1979CA28A86D4471C845E +4E2C9D7AE95985A752918E35FB3FC26B5D0BB0340BC79E4A971F7C59342D176E +2FC2CF069F64E6A5EA6904A37FEE8B0213D2D584C62977658A5C03AB31191A41 +82E04F266FD1F55888E6308A98998A82E44B8519DE9A44FBD5E3CA6ADE489141 +040091A11B20CA210E5BD2242C0B2CE00241ABB36AD883842648ACF9FC576358 +073BD9C3338E1FD07D9B26AF79D4BA4CC833A222A736AEE1DCA28692F2357A12 +91EA41273C4B90515DEEFA7F26C5A45251C0BE651DDF80F10515C3E4CBC87A12 +3072B8B1A9564407B749EEA2405998657B46EBE5FB049119AEE96B6C3BFF49A9 +0DE6FDCB7338864C8BDD75627981D1249797950D7224BE7185F656BF1FD939E7 +DB1FC1BA4D955C1C4CDAED8833EE067F9D37B629BC5C4F530EC0F7E869234A64 +2205F24C1A838CAA882A549593D051DCB6A72AD0163479B32988451286D390AA +6EBE4B19A165325D87DDF1CC99E1C1466B8375E94A79304FCFE662B9125F96AB +F75058261AD939D67A64275154A19A7458A56C03515A7D0EF87BCFF4A45807D1 +1941D3708047DA79F991B4031FFF2F5C6AD5710F4C5ADA6C181A5DDA99A60EEF +13C09C03C362CC7083ACE9CF11A0523E8DDC8373D1485A574A8CF9E21F970E69 +F97592AA87C2F2ED60A799246EE61E1367CBB1538FC69221D200DA3390C0BB48 +A2145E37215CEC03FCBB7B1DC2F7A6097066F738935D577092646C3F6E598604 +A61B9CCFC69087687CC13D6D28BE93569CE284D14299D78679F4454B59F05239 +1E8E5B20981E8DB5E1380A12BEFA16F6A1A7B127A7A908F77BE2CE65734ED576 +D6B62AE0D8F1AE528F5FE566D972D7C77D052B7308616444904FB8EF9FBEC9FE +5EEE0F33524AE34CC4A96A043EF21990583B01BD9F672B8C0AA12D0DD2FF696B +8A6047D90FA5CC27408189B6552CFE421F9F8A4FCD41208AD7DEB636FA41E556 +02CA9B1A248F615FFEC52326C5A976538F33A39EEE88AE6B627418F276B7FF04 +48AC31A8F5147AA1A90BDCAB0ED8B344E9A5CC04227007973D985ECA98575677 +821259DA4986D04385DA7E6BC44AD6F31B8E869FEDDF4481287418A71F8C9A80 +59A1F75DE535B565D93C7D937808330FAA2469E07D2E686DAC7150ADBD41CE9A +E5EB3F948929F63EF4451BA693B18AB5F6212E538D3AC34712B1DAC35BD64FAF +AB56A3EA01A138CD6E5FBB95AE0D6DF986B5F96142DE610101EBA55027A7B63C +9581197FDDC3B49499655E79BFE4438DDF78BBAFE619DF3373B05E9254D4CE3E +2CF7518B7A400C33F18B70DB059B592FCD7D7ECC9765456FA96AEE8AF4ED9FEF +C49E53ECA496D87CB318E67DB72E74F8AD15B107F93F57B886BFD3AFF540DBD8 +B5B99461B96253972F4446ED5FF2D213A1557FB2E253AE65D302EF9C31520020 +FADF115851BF0DC5CCDB6EFB70579220317F4B5BA8577478A0B3C312F192354D +D68EB0F16C999B9D2D990230C05392E89F9CFABCDD735E1126326907CBD1E46D +4169FF09239803A63B467070A586DAAEB94056A9A603D120EC22BD1BC1F64ED6 +3F3683B85B599EECEC5BA2D35149FFFCBEDF0BAADC5A1E37E5FFF495EC53E6E5 +66CB05C7AB05AB5880537EF65342F94B11C5BD907E49E73A17B91CC78E151B50 +28298B2F4C8245469FDA4AFE5C3D16907C9FAD859413E63C476EFF20BD388031 +02738A3ECE2C44029A267063416DE2AA2F925BB98AB5FAFCA8B5FC0A23875DE5 +BD032086EECC4D3C3733DF9524D3743DE35BA57291EC86C6D913F25936A1CD93 +CD747134AA363960F975430F8C8E9E9BB0BF019BD933 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F19_0 /HKDPOA+CMMI12 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/d/.notdef/f/.notdef + /.notdef/i/.notdef/.notdef/.notdef/.notdef/n/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /x/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/pi/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font QPMPZX+CMSY10 +%!FontType1-1.0: QPMPZX+CMSY10 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /QPMPZX+CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-29 -960 1116 775] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 161 /minus put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD58DEADE9FDD8D1161040A11504872D56EDB3D8A +754DA50DF613433572E45F990F01381BC7E8141871C01DE3E731162DE2206649 +4D782ACD8AA055EAE84DD0DEB16C09CFA1774FA78BCB61839501922FF62F7037 +3E6C1F5DBDD3567A54F189008B0F5225798FB59F3FD46468BD1CF510B02F535E +3EA7FFE2583BAE928445D43359B4A7C4BF027456BA45D781AB71B5A7DD87F16D +E8E2A0E5C3E7175363255A9FC1B2C1734066515DA9C0C9C3AB23EBAFC56EF014 +FD1CAE59E9643B8D659ED91F7E5D38225A489707A6406BB8FAB4AC592D8F7849 +6D1EE5D02F37964D389F52A9D6F6088DBA3E88BDA46B006DEB21A55DBFA37D2F +174498304AD593651746AD2A9F1C026F612184F0436B032B1C581A0735F9D473 +890E6E7D72F5B429717EA8E1654A07A9B576258F9DFDE14EAFF935DFECADEAC8 +35035CA459C4BDC9577484FF36EA4BE997A020DD0AD3DCE87894C773CFE10D88 +CD91683874A6FAB9D28597DB2E32D200C3D8 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F16_0 /QPMPZX+CMSY10 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/minus/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font FMXHGQ+CMR17 +%!FontType1-1.0: FMXHGQ+CMR17 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR17) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /FMXHGQ+CMR17 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-33 -250 945 749] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 61 /equal put +dup 50 /two put +dup 43 /plus put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DC92E493E0F02C8730749B6C82051C4FDB560DF800B +3372035B0A49A3D7E42A6D95F9A429FCCC80B1170279BD4DB2682E62B674064E +66A05B6718BF415A81688C966D3AC974300F4F0E5909720B4F372628A04C7166 +8ED43DD0A3118B84EB6B9BB3A0201C51A16F58A501D371009A54963E9355FA89 +08EB383F3FF9B64870EE9055E705B9D1F8DFD5C46F9686AA5176D6B65F0FFA37 +E1850A8C517AD96C75F4AA246D7734069A6E2D0400996D685F13F94B8ADB2EBC +A4F3EF8CA9ADAC82E0E0954A0C130DB58F4DFA2B00096125908D48BA2A3820E8 +6DDB3410F1762CAF11DF653C038D246FA78CAD45798E2AC6B78EDDB1CB10F4D7 +7995A4BA42ACD9BFAB3A49212687EDCDCFE778F45CB79ECB0BC590C13559747A +0C3668D8F36BC1FE933655D192B3628733B3FD371059158F36DE32FD71828623 +28CD6FA21C09F301DB9DB95310B30111F4C4763972508DDFCBC9A82633F91B18 +36EB030057420C9C64757C5E04BC07374F1A294AD4CA4911D5EF23D0824B0992 +CF23BFE8C28491DC6EFAACF9211365E0C4AE8D49CAD65A63BCB5E73F0D82A36D +567C2DADA7723A330825965C0CF5F4DC7F548612315C980864E52AFF9F965E52 +5EBCB630E2ECC800EA94348A92AF68B527A15C058B513335B4B554C342F706E8 +CF055A882F0FC1CEA63DB77B6978C901FAF516B45F3DA50C7BDA40B2773EAD93 +C031D4DC1B7C7287B2D67F62FCC935D557891D8070FB33EBBE625D9D6EE5A822 +3138E151E3DD7D76D4F50F8A6A0B4F8B88E7C68B91782CFB0D351655D1B9BF1F +69082BD079D71FEAF70034A0091FE7DC364A2DA558A249CC98028A792E8F830A +24349E65CEEF9D8F8EDC942ACC37E19443B7708330066A4073DC09366B559F11 +1F7DEE651AA9E25810A21B55AC8A2589FC2AE5C644234975DC5BA11A9F2CADED +C08D4AA17D2A8BE14A1A1AF4016CD8E447E51DA8F8FCF401063B584036EAC168 +99F85D6C169588BB116C629ACC99A4DA205CDCC266AAF002C37467BF90CC9BD3 +13DB4DE913C883E0E4A2DF0C8F747D15C814EE909157A91FD159A296A20BF7FE +EBEF8789C72E5AA57F5F350FC62AAF594FAFBEE1DAE68F09A38D42CF5D28EDF8 +3117F5A4351CE7946B170B6492AB553EA05D3569BED2FD999481CDC0C5BAAB68 +C74E43B84C9262D11AD158634D715B +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F13_0 /FMXHGQ+CMR17 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/plus/.notdef/.notdef/.notdef/.notdef + /.notdef/one/two/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/equal/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%BeginResource: font LKHKAT+CMEX10 +%!FontType1-1.0: LKHKAT+CMEX10 +11 dict begin +/FontInfo 10 dict dup begin +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /LKHKAT+CMEX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [-24 62576 1454 772] readonly def +/StrokeWidth 0 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 67 /parenrightex put +dup 65 /parenrightbt put +dup 48 /parenlefttp put +dup 66 /parenleftex put +dup 64 /parenleftbt put +dup 49 /parenrighttp put +dup 88 /summationdisplay put +dup 90 /integraldisplay put +readonly def +currentdict end +currentfile eexec +5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62 +BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68 +368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79 +BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97 +1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B +1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE02D4556639B7 +6E51CEE5CA47176526577DCAD76AE67CCBE6C569E3C7ED7D84E3C4204A9BD722 +50873EA47333356890CAF4A15A424FD4B234FE7DDA0F0D863C346058F4BEFE04 +3E4F768D805687A004B13452E895B459ED4E7E3D00D71DE3B36DEEF78B66260B +8C0108C27B385AA255B5F9F21F34B4E0E97A6C196B5530B656E80B32735A5236 +139BB8C47D6EB79D61BDF179B4B1F8D49461A22BBDE9291FD2B1CC422A4345C8 +C7E1C14B2A4747FFA7D56617B784AB2F039AF3677735ADC8A7B8FBB02DEA64B0 +A8B0648C161D8A5DAE080C457648BD7779A9914B34261E05772361416DA38509 +AC0CA4D0E6F2F98BE47CCACCF73287155C13CC294029B9439EC6F6EE9BBC17B3 +BB16CE22E953375B7F56B21D52BC08DDE83006C894C202741621B803D06DC55E +BBC434FDA9EC066DDBE85F4F0629DE55D6E1E17B131DB946D916043BC7161390 +37C8CBC62EFF69F32295B0A27F71F7BD67F0BA115D98586B501C770E872AAAA8 +DD5A1008A9EC8D282FBB02DE567D5CAF7386F32887E363DFD2000DB47A235EAE +BA1E784F1F2979B102A6A9E47EF56D26ABCE254F93FF3868AC838C275B7DC71B +4D629407C34ADAEE8DCA5336F904CD0C7979632100EF22E663B8FB94B48E3DF3 +115A44830144DCA2818D6019B5CE1C5DEE7C69DC6623A436FB0E53A493D2AB3F +3AD3777299633D08E12041E59D6194E01C3A8545539DCF4FE206E6CF3F813335 +1392420D6E48769A9A31776367CA81075DC893365E567AB5BD3D93A3B6AB82AA +F83642F1AAF9A6DAEEAF737A421987C60759C112157E100C9618DFC85EF7A7F6 +B8E17E6569D48FC48AB6F43F37AE90D46E64F2BE9A380E2AE66FE4B923ED515A +14A928734AAD4A735504CC8A1E555766275EB3802D4A167E0D3DCA110A0E5EC8 +266D006C0178FC930E18BBBD660D6E397A2B9C95C6F0BFA2051F793E6C5391E4 +64460DF0E3C5CB5575C3B8ED78875879372675829BB0400EC9CEC7B682909D09 +F5CF3F9AC8EEAF8B1A5DB066971C9BF29E4F2AEE7F27A28E7E9E497C15F83311 +42D9D116C1CF06D499E22AA4CE57505A567203432D954CDC3FCE9B4A735839DF +BC8258F7A5EA212E2243E1EFD925959F2B46DF97E71635BE193D414397B0D299 +C87281F1C95F6F65006CD3556A4280E96235DED6CFAA9E9B92F9E81A507DD424 +BF0A1687A5CEC773672CCC56020AA0A83ED2962D723177FE20B5700E3EE993B9 +8D28AC5B777B310C4677627BF7F53C180BE5E67856B8AC3DE43EAA4B03D9A975 +A3010EB7ACDD4DFFEF9CAE755DEA151B8057B46D28E426BD45A9681D93CFDE04 +F5ED385F637A00B595FA81E95D89C77E84728FC8A122D72981651D725D805D3F +D43912EC69C0A897BB9726EE0E14D4333FDBC4A3AFD82F11370A5D77A1C3CB51 +25866F96BA0D123A551DDCFE9C389020129315633F9F83ADFB273436A5235650 +B4F8053FC3929C224F328C368A85B2D2F460B831E364AC95C677A147996D13EE +60BC3AE1BB6F69CC95735374C008EB636D1D96D864661E6464E10DB9E59F376A +4CFEC4A34D36C446ED817FF1BB78FF3E8BD2B4B5794A109DC2341861F9FDDB4D +5E1730C9AB87BB4CB2513117D032BEB2B59F4666ED90EB0374A4E17762D9A502 +B786BB576E3D5A6CE3130137DCEC44EE57CEE44767849BF902F9FB85BB3CDCB4 +338BE4BF25EB8ED6BD4C6236EB71B77255EFC94D35AA568BB159BB2B57D5F47E +758D51E73818A1C665CF8A93C32575C889640153B137497E9F31935A8BB99394 +A8C08A909F73673253D9E825D3EE79E3F955AEADA53914E2443520ADFB632D5A +B146E2DD12385026B1B89138EDCF42A13A4F046D56450E51410D8AB3D6AFA4FB +43D2578D9AB19D104646193314CB8D680A853E8C8EAD9F22E27B5A49AD18479D +A48A9FD79891CADD4CE2D67BA14D569D429ACC48D45307E3F933D106F349A491 +7559FD7D453708EC4A29724D4B79CD363E82659002185897E6D5A6 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F10_0 /LKHKAT+CMEX10 1 1 +[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /parenlefttp/parenrighttp/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /parenleftbt/parenrightbt/parenleftex/parenrightex/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /summationdisplay/.notdef/integraldisplay/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +%%EndSetup +pdfStartPage +[] 0 d +0 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[0.1 0 0 0.1 0 0] cm +q +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 38.43 38.241] Tm +0 0 Td +/F10_0 9.96264 Tf +(Z) 5.52927 Tj +9.96301 -7.029 Td +/F13_0 20.6626 Tf +(+1) 24.3199 Tj +5.53501 -23.391 Td +/F16_0 20.6626 Tf +(\241) 16.0548 Tj +21.5898 -23.391 Td +/F13_0 20.6626 Tf +(1) 9.46347 Tj +60.201 -0.495 Td +/F19_0 24.7871 Tf +(f) 11.9474 Tj +74.7944 -0.495 Td +/F22_0 24.7871 Tf +(\() 8.77463 Tj +83.569 -0.495 Td +/F19_0 24.7871 Tf +(x) 13.7816 Tj +97.3506 -0.495 Td +/F22_0 24.7871 Tf +(\)) 8.77463 Tj +Q +1 i +786 270 860.94 4.0498 re +f +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 78.57 23.796] Tm +0 0 Td +/F25_0 24.7871 Tf +(p) 20.6477 Tj +Q +992 238 654.3 9.98999 re +f +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 99.2176 2.43901] Tm +0 0 Td +/F22_0 24.7871 Tf +(1) 11.3525 Tj +16.8604 0 Td +/F25_0 24.7871 Tf +(\241) 19.2596 Tj +41.6279 0 Td +/F19_0 24.7871 Tf +(x) 13.7816 Tj +55.4563 7.16396 Td +/F13_0 20.6626 Tf +(2) 9.46347 Tj +70.7653 18.54 Td +/F19_0 24.7871 Tf +(dx) 26.3735 Tj +104.033 18.54 Td +/F25_0 24.7871 Tf +(\274) 19.2596 Tj +131.416 35.307 Td +/F19_0 24.7871 Tf +(\274) 13.7568 Tj +Q +2306 270 146.61 4.0498 re +f +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 230.715 3.97798] Tm +0 0 Td +/F19_0 24.7871 Tf +(n) 14.4757 Tj +29.484 33.156 Td +/F28_0 20.6626 Tf +(n) 12.067 Tj +28.332 30.168 Td +/F10_0 9.96264 Tf +(X) 14.3861 Tj +19.899 0.01801 Td +/F28_0 20.6626 Tf +(i) 6.90131 Tj +26.8003 0.01801 Td +/F13_0 20.6626 Tf +(=1) 24.3199 Tj +55.287 17.001 Td +/F19_0 24.7871 Tf +(f) 11.9474 Tj +74.025 49.698 Td +/F10_0 9.96264 Tf +(0) 8.71731 Tj +74.025 32.166 Td +(B) 8.71731 Tj +74.025 26.181 Td +(B) 8.71731 Tj +74.025 20.205 Td +(B) 8.71731 Tj +74.025 13.833 Td +(@) 8.71731 Tj +82.737 17.001 Td +/F22_0 24.7871 Tf +(cos) 30.3146 Tj +117.216 49.698 Td +/F10_0 9.96264 Tf +(0) 8.71731 Tj +117.216 32.166 Td +(B) 8.71731 Tj +117.216 26.181 Td +(B) 8.71731 Tj +117.216 20.205 Td +(B) 8.71731 Tj +117.216 13.833 Td +(@) 8.71731 Tj +127.134 33.768 Td +/F22_0 24.7871 Tf +(2) 11.3525 Tj +138.486 33.768 Td +/F19_0 24.7871 Tf +(i) 8.27889 Tj +152.273 33.768 Td +/F25_0 24.7871 Tf +(\241) 19.2596 Tj +177.041 33.768 Td +/F22_0 24.7871 Tf +(1) 11.3525 Tj +Q +3578 270 613.17 4.0498 re +f +q +[10 0 0 10 0 0] cm +[1 0 0 1 0 0] Tm +0 0 Td +[1 0 0 1 375.579 3.97798] Tm +0 0 Td +/F22_0 24.7871 Tf +(2) 11.3525 Tj +11.3525 0 Td +/F19_0 24.7871 Tf +(n) 14.4757 Tj +44.7751 49.698 Td +/F10_0 9.96264 Tf +(1) 8.71731 Tj +44.7751 32.166 Td +(C) 8.71731 Tj +44.7751 26.181 Td +(C) 8.71731 Tj +44.7751 20.205 Td +(C) 8.71731 Tj +44.7751 13.833 Td +(A) 8.71731 Tj +53.4961 49.698 Td +(1) 8.71731 Tj +53.4961 32.166 Td +(C) 8.71731 Tj +53.4961 26.181 Td +(C) 8.71731 Tj +53.4961 20.205 Td +(C) 8.71731 Tj +53.4961 13.833 Td +(A) 8.71731 Tj +Q +Q +Q +showpage +%%PageTrailer +pdfEndPage +%%Trailer +end +%%DocumentSuppliedResources: +%%+ font VWGKMN+CMMI12~1b +%%+ font VTBQKO+CMSY10~18 +%%+ font GMDPHN+CMR17~15 +%%+ font HKDPOA+CMMI12 +%%+ font QPMPZX+CMSY10 +%%+ font FMXHGQ+CMR17 +%%+ font LKHKAT+CMEX10 +%%EOF diff --git a/Master/texmf-doc/doc/english/mathmode/exscale.pdf b/Master/texmf-doc/doc/english/mathmode/exscale.pdf new file mode 100644 index 00000000000..3c674f79488 Binary files /dev/null and b/Master/texmf-doc/doc/english/mathmode/exscale.pdf differ diff --git a/Master/texmf-doc/doc/english/mathmode/node.eps b/Master/texmf-doc/doc/english/mathmode/node.eps new file mode 100644 index 00000000000..f5e247c0192 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/node.eps @@ -0,0 +1,585 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 102 487 491 710 +%%HiResBoundingBox: 102.3 487.6 490.902 709.3 +%................................. +%%Creator: ESP Ghostscript 815 (epswrite) +%%CreationDate: 2005/07/01 12:42:39 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +% This copyright applies to everything between here and the %%EndProlog: +% Copyright (C) 2004 artofcode LLC, Benicia, CA. All rights reserved. +%%BeginResource: procset GS_epswrite_2_0_1001 +/GS_epswrite_2_0_1001 80 dict dup begin +/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch +4 index eq and{ pop pop pop}{ PageSize dup 1 +5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} +{ pop/setpagedevice where +{ pop 1 dict dup /PageSize PageSize put setpagedevice} +{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat +setpage}if}ifelse}ifelse}ifelse} bind def +/!{bind def}bind def/#{load def}!/N/counttomark # +/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! +/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! +/w/setlinewidth #/J/setlinecap # +/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # +/m/moveto #/l/lineto #/c/rcurveto # +/p{N 2 idiv{N -2 roll rlineto}repeat}! +/P{N 0 gt{N -2 roll moveto p}if}! +/h{p closepath}!/H{P closepath}! +/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! +/re{4 -2 roll m exch dup lx exch ly neg lx h}! +/^{3 index neg 3 index neg}! +/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! +/q/gsave #/Q/grestore #/rf{re fill}! +/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! +/|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}! +/|{exch string readstring |=}! +/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! +/@/currentfile #/${+ @ |}! +/B{{2 copy string{readstring pop}aload pop 4 array astore cvx +3 1 roll}repeat pop pop true}! +/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! +/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! +/Ic{exch Ix false 3 colorimage}! +/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> +/CCITTFaxDecode filter}!/FX{<Ks8W-!rHeMDdf9/N +lg(aW]e +, +1110 7011 35 82 /6E +$C +4rKbRBS-J(gAh3Qs8W-!s8W-!s8W,b=n'a^GW[#X%gS0qnt!W-TA=qgm6_3~> +, +1151 7010 48 56 /3I +$C +22$Q(`F/uW3Y%]AF?k^E":a;okrtT4hOdNmo\];pKhS3oG +, +1225 7011 76 79 /6I +$C +4pq)e9#tD`"qJ^.)mG.6@mJl)iP+2frP&:2hr"J6s8JAbdf2t:f;6=lKX`>L@C$MI//Aa$OS+CF +LV^^^Dng5JJ+ipBs8W,q?iNdt0"im&6 +, +1304 7011 6E , +1338 7011 63 55 /3M +$C +4pDMuO!k&1JqahF>&-o[n,NFfs8W-!s8W-!s8W-!s8W-!s8KY)=DL;In*Dm2_[AX:0jW`)6,QNB +T](S0"r%~> +, +1406 7010 56 83 /6M +$C +.E!Xt5[Fp3E,^G^V[f4;&705m";oPqL,fCfR\fbTlhrL:f3eR0s8W-!s*t(I^]2'_s6[#Wp=APH +Cc/X:_1Y6!@^oicf-SAqs8W-!s8U]eA./b7-4^?ETu#[V~> +, +1458 7010 62 55 /3Q +$C +.Kqj]5iCT+#=62TK;SpG+T1:`TRjUV%JjP55CGcrs8W-!s8W-!s8W-!s8W-!s8W-!qYb05TkAn- +5\Ku~> +, +1518 7011 3M , +1586 6985 53 81 /6Q +$C +3erq(a?\\h#TYr9L_6E'3&a*RLS3LVH@7a,^Y\^'^Mg^<>@=n]!+OV$2!e0m,teSs_.5AJA3jm0 +^$XR`DV^CZ)[?X0+a>t4#3e'<\kUVfdVo!JJ,[4_YQ'*Kql]gmj>IpbXfH3S$H.N#(ardf\<$~> +, +1646 7010 38 56 /3U +$C +22O&UL+s2]P7Id8cu3!_p$'6WpKkV:HAG1tY`pG+&qm5N$C(c\;P:7m/R_Q)0BmtiYH+l'g\TZ/ +$n[2L(u^Q_n6gt~> +, +1693 7010 3I , +1737 7011 3M , +1805 7010 3I , +1850 7011 45 55 /6U +$C +4;j_.#5WrU%;Pb>s8W-!s8W-!s8W,VhT??38(4TB=CF#$6QY1\4,7P\n8Ql:@6a~> +, +1895 6985 6Q , +1947 7011 6E , +1989 7010 3I , +2063 7011 6E , +2096 7011 98 55 /3Y +$C +4rHkC/Dt+=:]qd@3=H1J&7C+tdnOV)]mB_Ys8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,u\nf(: +o[?G97rf3ZlGHZRHjF,s9GgEW0ZOE4WR*&-W&m;D3+t"=i5$-0^]~> +, +2217 7011 76 79 /6Y +$C +.K`Jf&/^$B5rPil?iU0+s8W-!s8W-!s8W-!s8W,pqZ[#Ns8VOpmpGNfdb_G%\HL=gM#[G~> +, +2287 7011 6U , +2336 7074 43 11 /4C +$C +-R,(S0V7^$J,emnBrarn~> +, +2335 7010 53 56 /7C +$C ++Mp`i@LtLb_B>H6&3!195rVBH]dEDpDO9ff>Q$4arH8)=rI=kDqu)#HrRY9*>BSNN7;fp +"^o.p@MC[.'S?\~> +, +2387 6985 61 81 /4G +$C +4;kjAL4QR:Xa=FTs8W-!s7>2/5kmY;*[H4(6&1+4ds?F$X6oqrs*akGrP/C3s8W-!p&FtDs0&T; +?.RSq<'uZ_8pCVL_Y,H"W&mh!T](S7(f50ZTE~> +, +2447 7011 51 82 /7G +$C +4q0\H%?SCn>5#`2s8W-!s8W-!s8W-!s8SLAQi:b,s8VurrVn>DKHEtTD*MlC.h,pEYb8jq6@]~> +, +2494 7010 46 56 /4K +$C +.E$f\^7bc<_@E+tH_LX?cld6mkU,roS'uJO[nkS0])V*rs1eQjjI'::VgiF<[p*'b]!dlYPVCOj +:r7hl%#!+~> +, +2539 7011 63 82 /7K +$C +4;gY>a+FL'-nmp&>&3i4^]4?6s8W-!s8W-!s8W-!s8W-!s8)/mn(QhFm4Q:__1]EBCUM&b0XrgH +s8W-!s8U]eB7PoVi:C(/n9=~> +, +2607 7010 3I , +2652 7011 3M , +2712 7011 3Y , +2813 7010 7C , +2873 7010 6M , +2933 7010 3I , +2978 7011 36 82 /4O +$C +1CVJF%@.D:2=5nns8W-!s8W-!s8W-!s8W-!s8W-!s8VrkoG8P/JAfqQ%j;o6~> +, +3012 7011 4O , +3081 7010 3U , +3128 7010 3I , +3172 7010 38 70 /7O +$C ++pEW0SHhr45r%='mA0N"s8W-!s8W-!s8W-!s8VoabkJb*+'64jmsf]AhXC~> +, +3214 7011 47 54 /4S +$C +-D7F,q]S:CKBtbXhm^@;pM[Oq\8C[-pNq8#^#%W7]6E)CmbGb[qgJG1]>!`NiP$sp^]~> +, +3259 7010 7O , +3329 7010 3U , +3368 7011 6E , +3410 7010 4K , +3454 7011 7K , +3550 7010 50 56 /0D +$C +-lGcV5f*alV[98VFRFcV62ATK_?MDL6)VGh^;'^Bs*oIoIJ\H,h[D[cHnb>(n6th&nAbch]ZkDH +o_O(;s'NOlol[`E_H%'k$re'?A1;H~> +, +3595 7010 3Q , +3663 7010 3U , +3730 7011 7G , +3778 7010 7C , +3830 7011 4O , +3872 6985 6Q , +3932 7010 3I , +3976 7011 3M , +4044 7010 6M , +4104 7010 3I , +4149 7011 3M , +4238 7011 6Y , +4311 7010 3I , +4356 7011 6E , +4389 7011 4O , +4431 7010 3I , +4476 7011 3M , +4572 7011 4S , +4617 7010 3Q , +4685 7010 3U , +4732 7010 0D , +4777 7011 3Y , +4878 7034 31 8 /4W +$C +/fDG(J,~> +, +1023 6867 3Y , +1125 6866 3I , +1170 6867 3M , +1238 6866 20 56 /0H +$C +-oatSY5de;W+nQss8S<'-UH@6okMu6~> +, +1208 6630 49 46 /5A +$C +-,MqMKH),n#>UgNFT"F"e,H!>rn$kWYA;k"C=T7k6OFZ,@%[~> +, +1324 6622 6M , +1384 6622 3I , +1429 6623 3Y , +1561 6621 79 83 /0L +$C +,!_:o%H)fR",&tc*\,'1`ot>e>J,f2l^]4?6s8W,n +Xfqd%fCl\Wrn:_mD/WW_e[2OI.qr3[g/cY1PW",t_GJ,U.gBZ(L*8j7K* +, +1639 6622 61 83 /5E +$C +.0@REd0(F3i=Ns1TKq<9(j^*ppA=aSqu:U6qu>RRs*t(KqZ$T[J$8]Ug?gJpd_cB%+Q8%E?*;dp +L:[hJ(Bt8.s8W-!s8@<\E!X)t6O=!M_;G~> +, +1707 6622 3I , +1752 6623 6U , +1799 6623 59 82 /0P +$C +,DK@Z1$8Wu0MoRi'qj0\4obQ^s8W-!s8W-!s8W-!s8W-!s8W-!s8W,u7g2-TcliZ.p](9ns8VQf +p\46MmL]6L>HRk+[>#UPOI:h7GVURI~> +, +1865 6686 4C , +1865 6622 0D , +1918 6622 4K , +1963 6623 7K , +2031 6622 3I , +2076 6623 3M , +2144 6622 0D , +2189 6623 3M , +2249 6622 7O , +2290 6622 3I , +2335 6623 6E , +2369 6623 4O , +2410 6606 20 29 /5I +$C +5,mMqL@*a)DVqr%][ +, +1208 6386 5A , +1324 6378 6M , +1384 6378 3I , +1429 6379 3Y , +1553 6378 88 80 /0T +$C +.U@7(qX1u!Vs44We+>p2p?@%up%7'idVncIr@bX_Xo=[AV=s/'drkP0^X@&mS,U".qG$sUgSOW. +J*k\_dXTj4ICfA +, +1631 6378 7C , +1683 6379 4O , +1717 6378 3Q , +1777 6379 3Y , +1879 6378 3I , +1923 6379 3M , +1991 6378 0D , +2036 6379 3M , +2096 6378 7O , +2138 6378 3I , +2183 6379 6E , +2216 6379 4O , +2255 6362 5I , +1486 5930 86 81 /5M +$C +/dMDs5]Qu8gkc);*oZm4^>$9omI.Z8rU'(Is0hCis1[mkU]%\$gU6SGqg\SECO^q\rUM.V_=mVP +hgP7rJ)>Gp5C]kHGQ7X9s8CdRs*`MtG+5WK-:!1d(`jWsJ,~> +, +1612 5946 81 27 /0X +$C +2@##8[3,GJC_%%PC&~> +, +255 230 0 rG +1732.9 5960.84 0 121.69 258.05 0 0 -243.37 ^ f +K +1767 5929 54 54 /5T +$C +,RfV[5f+!BBK@C#&KU'X_kuZ&dVc2UVU`8_qKD0(J*ke$s*+G9me;Loqu>Ke^\upaqmZRn]>+5m +DVop#[-uc:UCXfBDOq\RC;WS"$rFhK$n)~> +, +1822 5911 42 36 /1E +$C +,6n>]';@[4K6hIF8\Y/7Ga*XZS;+J,~> +, +1877 5930 80 85 /5X +$C +-D7$-#)i4<%Rl!]_?Q^6]ALAA^U:gpol&`:htqlRrP-mtIJe<'=cL2id_ENqqgJG;pY/p'qtodT +pYXkN[p/=i^Mi"ZIFiU[^V9^Ep-4%Arr2ZcTE~> +, +2021 5921 81 78 /1I +$C +-!`b8s8W-!s8W-!s8W,sfH(@p.=_Bts8W-!s8W-!s8Vsm~> +, +191 G +2136.1 5960.84 0 121.69 541.55 0 0 -243.37 ^ f +K +2196 5957 79 5 /6D +$C +4pR+?[/~> +, +2315 5929 5T , +2370 5896 48 72 /1O +$C +-R_:0U3QCgmqptL_d%WIn)&WlJ,ep9rP/BAs7ZKl7KSJ(;A]',rnmaIG2: +, +2432 5930 5X , +2512 5973 41 53 /6H +$C +4q1lUp?uSu\(g7.[r(O"K5TMW%c+aD[pe%bmI'lGRQF;@s8(t1$i\S`gIl6b#t"n0YmM=E@%[~> +, +2555 5953 40 80 /1T +$C +1[4f*g]$*>rP*dXJ(s_T\*q(MqgSG9rV,^ZDr6$$pAMbnqsW;=hm`R!II09~> +, +2596 5971 42 55 /6M +$C +,6CW5`$"9(D@dr.TMg>?Li*?C%QgV$%L`$034jDA[QkIG](#ds?MYqU]G#Wo%YD +%4_Vo:rFb9:]~> +, +2707 5921 1I , +255 0 r5 +2821.31 5960.84 0 121.69 633.01 0 0 -243.37 ^ f +K +2882 5957 6D , +3002 5929 5T , +3057 5911 39 36 /1Z +$C +2$jCOF+bPGbW6"KU^TCF:u7hQX`=C>qu,Drk,3&$Dte1Yp)&$klki>3W+l_T~> +, +3111 5987 62 54 /6S +$C +4q5-;OdGDUfJd[7]sd=A\$pP;hefuR\$pSK]tW.R\%?hNgUD(V]6"HZ-CJ[bgJ^D8!Ee +lo+@f_7*nO~> +, +3181 5967 23 80 /2E +$C +$DAqKWD_8\;Y7XPldGIXYLfuXP+#g\1TXGMTlSmDEf~> +, +3207 5987 6S , +3277 6005 54 4 /6X +$C +0FCeQTE~> +, +3343 5987 31 53 /2I +$C +0H$HQ#n/Kes8W-!s8W-!s8W-!s7q<<,Os"[_;XAA~> +, +3385 5967 20 80 /7B +$C +-GJm"G4"/CmG%@5^MiQ;pYWaCrql`qs8K)!f< +, +q[301.2 0 0 -4.8 3112.68 5957.68]concat +1 1 false[1 0 0 -1 0 0]@X +imagemask +!!~> +Q +3171 5886 63 57 /2P +$C +4:@8PU8bbgLeIr+R_.Bog[3V[s0p`igT,cbq_4#;rOTK;hg^'^rOTK;hf&J$rOTK;hf&IRqS0`B +m +, +3242 5910 24 40 /7I +$C +/e.D +, +3272 5895 33 60 /2U +$C +4al5BqnDOnIG]8G^@1Ifhfnt3n*U)2GPf,C]D^W2pAWq~> +, +3309 5909 35 41 /7N +$C +3f*u*IgDS#";l4oFKV,$qsNeDZ0K&hWBpr7%tu=P(j><7qjK^ +, +3484 5921 1I , +0 255 r3 +3598.91 5960.84 0 121.69 677.42 0 0 -243.37 ^ f +K +3659 5957 6D , +3778 5929 5T , +3833 5911 37 36 /3A +$C +3XGpTF+bPHUS'm/S#5$]qqKupG.=Y_A/KSe$c5lA//8aSKrl@JT==9*4)Vq=XAh%c'E~> +, +3897 5967 2E , +3922 5987 2P , +3993 6005 6X , +4051 5987 6H , +4094 5987 6S , +4164 5967 7B , +4190 6014 34 40 /0E +$C +4pF0^hT]*Ug[3a5_qPX4Fre2[d0Q*dVHPVELR'E~> +, +q[343.2 0 0 -4.8 3891.48 5957.68]concat +1 1 false[1 0 0 -1 0 0]@X +imagemask +!!~> +Q +4029 5889 2P , +4305 5921 1I , +0 255 r6 +4419.71 5960.84 0 121.69 194.04 0 0 -243.37 ^ f +K +4454 5930 5M , +4534 5897 43 50 /3K +$C +-D8ENK>7ECrnlmoC`rQbU3Ic5)mN-2o\XQ\hqrd)hqn8/^V0TjhqmhZpK,+Q^?XLCL6gAE[OI*@ +(f8'X-i~> +, +4778 5909 33 102 /0O +$C +#sr>m<2icl8sLl*[9?S\BiiaT]mVP@WrMDa^T[\;s8W,fs51TjqtKj@rP*d;hm[M#[sN;cgU@XH +Yi3&$~> +, +4825 5930 36 81 /3O +$C +0F`<#CkDn+f>%@cs8W-!s8W-!s8W-!s8W-!s8W-!bHD@kQ/R`E*Zc@D*Zc@D~> +, +4877 5909 31 101 /0S +$C +,Q#B5mFZULgUD(V^"^9gmea`mIJ`L%hgbV%s1eU6s8)`0lhsoNqHm7RX/bHNX/].,9!kQqTV3i7 +(8(~> +, +1208 5396 5A , +1324 5388 56 83 /6M +$C +.E!Xt5[Fp3E,^G^V[f4;&705m";oPqL,fCfR\fbTlhrL:f3eR0s8W-!s*t(I^]2'_s6[#Wp=APH +Cc/X:_1Y6!@^oicf-SAqs8W-!s8U]eA./b7-4^?ETu#[V~> +, +1384 5388 3I , +1429 5389 3Y , +1561 5387 73 83 /0U +$C +,!b^,$c)ps%M1Tf1_Al'!X")]0^'WsPB7@RPB;G!S#"jel)M-^I4n7i?g>E+9E5%ls8Drs^Y^NK +rV'[RqV1l$qV,5&[C3Nl[MITLCCDo*(b@EN,7JP4C1\;1K-4MpM1T[~> +, +1640 5388 7C , +1692 5388 3Q , +1752 5389 4O , +1793 5388 7C , +1845 5389 3Y , +1939 5388 5E , +2007 5412 4W , +2039 5389 89 81 /3U +$C +4phQ,1jCb`Mh6Zp@9RF=Y4_[7f(HcAIbf.U?#T*`hR9nqXcHf?Z=t-BYH@OlIFA,C^V8rN\mO/m +pY@LW9D_?\qka7fIq`9/?g@L%^%He\?M]0~> +, +2125 5389 3M , +2185 5388 7O , +2227 5388 3I , +2271 5389 6E , +2305 5389 4O , +2344 5372 5I , +1208 5152 5A , +1324 5144 6M , +1384 5144 3I , +1429 5145 6U , +1507 5143 56 83 /0Y +$C +4W;3.(h_cZV?f:TV[inL_@>H.o\Qa7H@9,6hR[(*rkG:9Qc1H*Q"a83V$fm.KV9k&&qm25:kG@> +:fJ2F.LT4[[7Gl&qWlbbQiIZ;0'!)~> +, +1565 5119 62 80 /3Y +$C +3Xu^?KAA]ZIs+05L'ckqmJDA0pAOa[J%G+#FnGVnj='k+hd(.r>LusN9CGLQ8\aSlHKtLoIC`eM +2u6m!Qg_U@h/8hj0S>$D^7k<~> +, +1625 5145 98 55 /3Y +$C +4rHkC/Dt+=:]qd@3=H1J&7C+tdnOV)]mB_Ys8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,u\nf(: +o[?G97rf3ZlGHZRHjF,s9GgEW0ZOE4WR*&-W&m;D3+t"=i5$-0^]~> +, +1718 5145 3Y , +1820 5144 3I , +1865 5144 7O , +1898 5145 6U , +1938 5145 6E , +1979 5144 3I , +2032 5144 3I , +2077 5145 3M , +2145 5144 3I , +2190 5145 6U , +2235 5119 6Q , +2287 5145 6E , +2329 5144 3I , +2381 5128 5I , +1208 4909 5A , +1324 4901 38 56 /6S +$C +22O&UL+s2]P7Id8cu3!_p$'6WpKkV:HAG1tY`pG+&qm5N$C(c\;P:7m/R_Q)0BmtiYH+l'g\TZ/ +$n[2L(u^Q_n6gt~> +, +1371 4901 7C , +1429 4900 80 56 /1C +$C +.a\;t>'JPgp"e6Rf(QiBrFt.oKHDBJl!O0dV0.:F[^So5[]fP=:%.bd:"T&ehfQGZXjt#Un(@&n +5C9TuVu>-nf6,tBJ%G*EY.rSlI9sL54+nG9_)_c+(f0W~> +, +1507 4902 6E , +1549 4901 3I , +1630 4901 3I , +1675 4902 6E , +1709 4902 3M , +1777 4901 3I , +1821 4902 3Y , +1944 4902 70 79 /4C +$C +4q2s;"lR4#[I&JDs8W-!s8W-!bC]MNfU`Ta%jAh$R_aF^p@rR8g])3j^]2'`s8W,t0E7mJQX6"O +V,3K]'f(:`KI@t@_,DM[TE~> +, +2017 4901 0D , +2069 4901 0D , +2114 4902 6U , +2154 4901 5E , +2214 4902 6E , +2247 4902 4O , +2289 4901 6M , +2341 4901 3Q , +2401 4902 3M , +2469 4876 6Q , +2529 4901 6S , +2568 4901 5E , +2636 4901 3I , +2681 4902 6E , +2714 4901 7O , +2748 4902 6U , +2795 4901 0D , +2848 4876 6Q , +2907 4901 19 13 /1G +$C +1al.ArB@FP>)!^~> +, +63 G +1849.37 6147.28 12.45 -34.87 12.45 34.87 -12.45 -13.95 f +4.98132 w +1905.19 6347.74 m +0 -80.16 -43.37 -155.16 -43.37 -214.4 c +S +2452.51 6145.88 -15.85 -33.46 33.46 15.85 -18.66 -1.05 f +2437.37 6662.53 m +184.29 0 129.6 -419.8 14.09 -535.32 c +S +3150.16 5774.4 -12.45 34.87 -12.45 -34.87 12.45 13.95 f +2371.25 5428.93 m +286.64 0 766.45 93.7 766.45 359.41 c +S +3949.95 5774.4 -12.45 34.87 -12.45 -34.87 12.45 13.95 f +2407.88 5173.23 m +554.96 0 1529.63 81.08 1529.63 615.12 c +S +4529.07 5774.4 -12.45 34.87 -12.45 -34.87 12.45 13.95 f +2933.17 4929.63 m +606.81 0 1583.45 272.84 1583.45 858.72 c +S +cleartomark end end pagesave restore showpage +%%PageTrailer +%%Trailer +%%Pages: 1 diff --git a/Master/texmf-doc/doc/english/mathmode/node.pdf b/Master/texmf-doc/doc/english/mathmode/node.pdf new file mode 100644 index 00000000000..d3d448e9735 Binary files /dev/null and b/Master/texmf-doc/doc/english/mathmode/node.pdf differ diff --git a/Master/texmf-doc/doc/english/mathmode/runLaTeX b/Master/texmf-doc/doc/english/mathmode/runLaTeX new file mode 100644 index 00000000000..3253d306df4 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/runLaTeX @@ -0,0 +1,8 @@ +#!/bin/sh +latex Mathmode.ltx +latex Mathmode.ltx +bibtex Mathmode +makeindex -s Mathmode.ist Mathmode.idx +latex Mathmode.ltx +dvips Mathmode.dvi +ps2pdf Mathmode.ps diff --git a/Master/texmf-doc/doc/english/mathmode/runVTeX b/Master/texmf-doc/doc/english/mathmode/runVTeX new file mode 100644 index 00000000000..a104575bcc5 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/runVTeX @@ -0,0 +1,6 @@ +#!/bin/sh +vlatex Mathmode.ltx +vlatex Mathmode.ltx +bibtex Mathmode +makeindex -s Mathmode.ist Mathmode.idx +vlatex Mathmode.ltx diff --git a/Master/texmf-doc/doc/english/mathmode/showexpl.cfg b/Master/texmf-doc/doc/english/mathmode/showexpl.cfg new file mode 100644 index 00000000000..bead32fe961 --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/showexpl.cfg @@ -0,0 +1,67 @@ +% config file for showexpl.sty +% +% Copyright Herbert Voss, 2005 +% Licence: LPPL. + +\ProvidesFile{showexpl.cfg} + [2005/06/30 v0.02 Definitions for the showexpl package (hv)] +% +\definecolor{hellgelb}{rgb}{1,1,0.85} +\definecolor{colKeys}{rgb}{0,0,1} +\definecolor{colIdentifier}{rgb}{0,0,0} +\definecolor{colComments}{rgb}{1,0,0} +\definecolor{colString}{rgb}{0,0.5,0} + +\lstset{% + preset=\centering,% + rframe={},% + language=[AlLaTeX]TeX,% + float=hbp,% + basicstyle=\footnotesize\ttfamily,% + identifierstyle=\color{colIdentifier},% + keywordstyle=\color{colKeys},% + stringstyle=\color{colString},% + commentstyle=\itshape\color{colComments},% +% columns=flexible,% +% columns=fullflexible,% + columns=fixed, + tabsize=4,% + frame=single,% + extendedchars=true,% + showspaces=false,% + showstringspaces=false,% + numbers=left,% + numberstyle=\tiny\ttfamily,% + breaklines=true,% + breakindent=10pt,% + backgroundcolor=\color{hellgelb},% + breakautoindent=true,% + captionpos=t,% + xleftmargin=1em,% + xrightmargin=\fboxsep,% + numbersep=1em,% +% xrightmargin=-1cm,% +% relwidth=0.5,% +% columnsep=10pt% +} +\lstnewenvironment{showexample}[1][] +{% + \@temptokena{#1}% + \begingroup + \advance\c@ltxexample\@ne \advance\c@lstlisting\@ne + \expandafter\lstset\expandafter{\SX@explpreset,#1}% + \edef\x{\endgroup + \def\noexpand\SX@codefile{\SX@codefile}% + \def\noexpand\SX@graphicname{\SX@graphicname}% + \def\noexpand\SX@graphicparam{\SX@graphicparam}}% + \x + \xdef\SX@@explpreset{\the\@temptokena,codefile=\SX@codefile, + graphic={[\SX@graphicparam]{\SX@graphicname}}}% + \setbox\@tempboxa=\hbox\bgroup% Warum noetig? + \lst@BeginWriteFile{\SX@codefile}% +} +{% + \lst@EndWriteFile\egroup + \SX@put@code@result +} +\renewcommand*\SX@Info{}% diff --git a/Master/texmf-doc/doc/english/mathmode/styles.eps b/Master/texmf-doc/doc/english/mathmode/styles.eps new file mode 100644 index 00000000000..c0aba03da6e --- /dev/null +++ b/Master/texmf-doc/doc/english/mathmode/styles.eps @@ -0,0 +1,7360 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 344 254 +%%HiResBoundingBox: 0.787891 0.800000 343.700000 253.127734 +%......................................... +%%Creator: ESP Ghostscript 815 (epswrite) +%%CreationDate: 2005/07/01 10:36:53 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +% This copyright applies to everything between here and the %%EndProlog: +% Copyright (C) 2004 artofcode LLC, Benicia, CA. All rights reserved. +%%BeginResource: procset GS_epswrite_2_0_1001 +/GS_epswrite_2_0_1001 80 dict dup begin +/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch +4 index eq and{ pop pop pop}{ PageSize dup 1 +5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} +{ pop/setpagedevice where +{ pop 1 dict dup /PageSize PageSize put setpagedevice} +{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat +setpage}if}ifelse}ifelse}ifelse} bind def +/!{bind def}bind def/#{load def}!/N/counttomark # +/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! +/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! +/w/setlinewidth #/J/setlinecap # +/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # +/m/moveto #/l/lineto #/c/rcurveto # +/p{N 2 idiv{N -2 roll rlineto}repeat}! +/P{N 0 gt{N -2 roll moveto p}if}! +/h{p closepath}!/H{P closepath}! +/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! +/re{4 -2 roll m exch dup lx exch ly neg lx h}! +/^{3 index neg 3 index neg}! +/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! +/q/gsave #/Q/grestore #/rf{re fill}! +/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! +/|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}! +/|{exch string readstring |=}! +/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! +/@/currentfile #/${+ @ |}! +/B{{2 copy string{readstring pop}aload pop 4 array astore cvx +3 1 roll}repeat pop pop true}! +/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! +/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! +/Ic{exch Ix false 3 colorimage}! +/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> +/CCITTFaxDecode filter}!/FX{<z!!3-"rVuou!!!!0s8W,7z!.Y%Ks6p!g!!!'"s8W,sz#QOf(&,uV0!!",@n,NLhJ,fQL5QAM! +!'e7!!!%NK!!!!0huE`Xs82is!!hun!!E8r!!!!"p](:!s53kW!!)os!"]+FzIK0?Ys1eU7!!%HJ +!$D5kz56([Jrr<$!!!")@!'gG_z++O?@rVuou!!!O[!<;rsz%tFZ[qu?]s!!!8>!WW&tz#J^B?p](9o +!!!8>!WVopz#J^HAp](9o!!!,:"98,rz"2G$=n,NFg!!!,:#QO8nz!!!9(n,NFgz#QO8nz!!!9( +n,NFgz#QO8nz!!!9(n,NFgz&-),!z!!!Q0n,NFgz&-),!z!!!Q0n,NFgz&-),!z!!!Q0n,NFgz&-),! +z!!!9(n,NFgz#QO8nz!!!9(n,NFgz#QO8nz!!!9(n,NFgz#QO8nz#J^HAn,NFg!!!8>"98,rz#J^HA +p](9o!!!PF!WVopz&&85Gp](9o!!!PF!WW&tz&&82Fqu?]s!!"+V!<;rsz+2@l+rVuou!!#7!!'gG_z +5JR7`rr<$!!!%Ma!$D5kzs1eUFs*t(L!!*&7!!iP>!!!!"s1eU:s53kW!!E8:!!3,p!!!!(s1eU7 +s82is!"]+F!!%NK!!!!`s1eU75QAM!!.Y$a!!!Q0n,NLhs1eU7"98B$+8e@=!!!$!s8W,o+2@jV +!'gM`s54F'!!!!(s8W+L#J^<>!!%NKqu?i7z"96.:!Pe~> +Q +q[1 0 0 1 0 0]concat +52 45 true[1 0 0 1 -152 -2447]@X +imagemask +!!!Q0z!<<)g!!!!$s8W&u!!!Q0s8RTL!'gGbs53kWJ+*Gfn,NIghuFko!!3+M!"]&/"93lO#Q=]. +rr<$(rr!!3,X5PtK]!WV(Bqu?]t +s6tO9!!!'"n:1?9!!3,hJ,B9H!WVY=qu?]ts6tO9!!!'"n:1?9!!3,hJ,B9H!WVY=qu?]ts6r8N +!!!'"n3?gN!!3,h5PtK]!WV(Bqu?]ts55!s!!!'"i#hjs!!3,8&,ZD-!WTqGrVup!s*t@R!!!-$ +J-Z&R!!E6$"9/?$#Q=](s*t(Squ?`sJ,g,T!!%N,!$C\1!'frQJ%u$a&,l\2J,fQOs8W&u!!!"K +s6p!g!!!-$!!!!~> +Q +q[1 0 0 1 0 0]concat +91 45 true[1 0 0 1 -209 -2447]@X +imagemask +5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA +!.XbD!.XJ5QC4;s8RU6s8RTL5QC3ps8N'@s8Duu5QC3Xs82j%s7cQo!<;NgJ%u$as1eU7~> +Q +q[1 0 0 1 0 0]concat +91 45 true[1 0 0 1 -305 -2447]@X +imagemask +5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA +!.XbD!.XJ5QC4;s8RU6s8RTL5QC3ps8N'@s8Duu5QC3Xs82j%s7cQo!<;NgJ%u$as1eU7~> +Q +q[1 0 0 1 0 0]concat +54 45 true[1 0 0 1 -401 -2447]@X +imagemask +!!E7Oz5QC3Rs7cWps83-%r!39%rt#/-&-(QPO8ntsrr!<;Ng +#QK;Ss53k^s*t.MhuF#^J-5he!!E6$#QK;S"9/?Crr<$"s8W,s!!!"Ks8Vio!!",@s1eU7!!E7O +!!!!~> +Q +q[1 0 0 1 0 0]concat +59 45 true[1 0 0 1 -456 -2447]@X +imagemask +5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA!.XbD!.XJ +Q +q[1 0 0 1 0 0]concat +58 69 true[1 0 0 1 -520 -2447]@X +imagemask +!!!Q/!<<)7!!%NK_#OGM!!E9$nGiO(!"],0r;Zf4!$D1Bs8W,7!.XbDJ,f9D!<:sW+91g1!WTq8 +&-(Pf"96.:#QN]^"93lO"979Z#QFc(!WV'X&,uV0!<:sW&,uV0!<:sW+8u6?!<:sW+8u6?!<:sW ++8u6?!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_ +!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW+8u6?!<:sW+8u6?!<:sW ++8u6?!<:sW&,lP/!<:sW&,uV0!<:sW#QFc(!<:sW#QK;S!<:sW"93lO!WV'X!WTq8"979Z!<:sW +#QN]^!.XJ<&-(Pf!'g5Y5QBXA!$D4@s8V!W!!iQ(rr:mV!!3-"q#B7P!!%NKi;_^8!!!9(!<:sWz +!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz +!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz"979ZzJ,eF,zJ,eF,zJ,eF,zJ,eF,z+917!~> +Q +q[4.8 0 0 -120 640.28 2531.28]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +73 67 true[1 0 0 1 -707 -2447]@X +imagemask +!!*'!s8W,gzs8W-!s6p!g!!*'!s8W,gzs8W-!s6p!g!!*'!s8W,gz!!3,pz!!!!"s7cQoz!!3,pz +!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz +!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!" +s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,p +z!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQo!!#1_!!3,p!!!7S +4obQ`s7cQo#Cnu +Q +q[1 0 0 1 0 0]concat +47 45 true[1 0 0 1 -776 -2447]@X +imagemask +!!!9(J,fQLJ,f9D!!E9$rVup/s8W+L!$D4@J%u&6p](i_!<;Ng"7Q?k^]4E1"93lO!;m*%J,fRs +#QFc(!'Uqn!!!!_+8u6?!$36]!!!!-+8u6?!!#7]z5PtK]!!#7]z5PtK]!!%NHzJ,B9H!!%NHzJ,fQK +s8INJs8W,uJ,fQKs8ING!!!-#5PtK]"9(O_!!!-#5PtK]"9(O_!!!9'+8c*=#Q>hE!!!9%+8u6? +#Q,,3!!!Q-&,uV0&,6D0!!",9"93lO+7K=2^]6UW!<:sWJ)C +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -829 -2447]@X +imagemask +3!'';!'UqnquArGs8RU6s8W,75Q?6ui'7,>#OjtI!!E!\huEfU5JR7!r',]3!<,1_!!*!_!!!#u +4obQ_r]U;^!<,.^!!3']!!!-#!!!!(rVuou+8u6?!WW-!!'gM]!!iQ(quAt]s7cTos8VQjs8W,W +#QOi(^^pJFs*u3ks8E!?s8Vio5QCb6!'gMA!!#7]!!!!`n,NFg5JR7!n3;F'!:W4'!!)LQJ,fW> +++O=ln/m/\!UpW8!!D^$^]4W/#Oh^8n,rXiJ+*I +Q +q[1 0 0 1 0 0]concat +36 64 true[1 0 0 1 -875 -2446]@X +imagemask +!!",!!!!'"qu?^%s8Duu&-)Y0!$D1NJ,hh3#J^=(p]J;3J+*Qu!.XJ=huJ8r!Up*hn,`"Ys6p'Y +!<;Nhn,WLX!Up*hn,`"Ys6p'Y!<;Nhn,WLX!Up*hn,`"Ys6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g +!<;Ng!!*&g!!!$!n,NFgs6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g +!<;Ng!!*&g!!!$!n,NFgs6p!gs8W-!_#OH7s1n[7s8Tn7s8W,7&-)\0^]XVp!!!$!huE`WJ)C;, +!'fBA!!#7A!!!!@huE`W&)[Ef!"[uf!!!8^!!!!(huE`W#N,R^!!D-Z!!!,Z!!!!$huE`W"5j.Z +!!2!X!!!&X!!!!"huE`W!T3qX~> +Q +q[3093.6 0 0 -4.8 7.88 2412.48]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +52 71 true[1 0 0 1 -68 -2323]@X +imagemask +!!",1#N,R^!<;s%s6p!jp`Bb@n,O!7"3:H2!$?^lkPbG]56(\-p](;C!!#7Q!!)os!$C\1!W2ot ++7K74p](:)n,NRc!!!Q!!!hun!!hun#Oh]n#Oh^(n,NFnn,O!W!!!8n!$C,!!!hun+5d,!#Oh^8 +huE`^n,OQg!!!8n!'fBA!!hun5MuMA#Oh^XhuE`^n,P]2!!!8n!'fBA!!hun5MuMA#Oh^8huE`^ +n,OQg!!!8n!$C,!!!hun+5d,!#Oh^8huE`^n,O!W!!!8n!"\Q!!!hun#Oh]n#Oh]un,NFnn,NRc +!!!8n!!Dur!"\Q!!W2ot&+BQ!rVup?n,NH;!!",1!!#4`!'frQ!$AuVp[A._#N,XGn,NFjr""SP +!!!"KrWhom!!!Q!#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!( +n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!8nz!!hunz&+BQ! +!!!!@n,NFg!!iPnz#QO8n!!!!(s6p!g!!!-$n,NFg!!!!1!!~> +Q +q[1 0 0 1 0 0]concat +40 46 true[1 0 0 1 -123 -2323]@X +imagemask +!!",1!!!$!rVup#p^_lT&)[Q*!$?^khuGtA!,qpe!!"tYqu?^:!VcWp%KlJ+!"K8'!!!6/n,NFn +&)[Ef!tX;i!!=>$!!!!@huE`W+5d,!!'e7!!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?7 +5QCc`s$-P`s8P=!!!#5J^]4@a5JR7!IimSK!.Q*K!!%KjhuEb,&)[EfIh1H;!.G1B!!*!'n,NIf +"8Dirquc]o!Vc]n!!2ipqu?ig!.FnMhuGtA#J^ +Q +q[1 0 0 1 0 0]concat +35 70 true[1 0 0 1 -167 -2324]@X +imagemask +5QCc!!'gM`^]6V!s1eU7s53kW!.TM!!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6 +!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6 +!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6 +!'bu6!!#66!!!!`J,fQL5C`_65QCcQ!'gM`n,P]Qs6p!g56(Z`!'^G`!!#4`!!!!`z56(Z`!'^G` +!!#4`!!!!`z56(Z`!'^G`!!#4`!!!!`z56(Z`!'^G`!!#66!!!!@J,fQL++OlP!$?_5^]4n\5JR70 +^d$`W#N.i)!!D.D^]4E)5JR7!p`G"d!.GH/!!",?!!!!$p](~> +Q +q[1 0 0 1 0 0]concat +48 46 true[1 0 0 1 -197 -2323]@X +imagemask +!!E3#!!!!`s1f07!<7W.+8>m9!-ga+"8Dj9Igu_Y!"OG^&+BQ'IKpDA!!iK.+5d,$r!+>%!!E-$ ++5d,"qu\&!!!3!"+5d,"qu\&!!!3!"&+BQ"qu[K!!!3!"#P\9"qu?us!!2ut"8i-"qu?cs!!2ut +!<3$"qu?_H^]F?5!$C\2qu?^%quQ]q!!3,Yqu?]s+926=!!!$!qu?]s!!2ut!!!!"qu?]s!!2ut +!-eJEqu?cq!!2ut"9&9$qu?iu!!2ut"9&9$qu?iu!!2ut"9&9&p](Eo!!Dur!VcX"n,NL)!!hun +!8mhfhuEar!$AuV!'C6G!!!!@JGoNK!!iQ!zJ%u$a~> +Q +q[1 0 0 1 0 0]concat +52 45 true[1 0 0 1 -248 -2323]@X +imagemask +!!!Q)"7Q9j!.XtMs6p!hp]lHOn,NR[!Q4s,!!hE^j8K#Y&&80dqu?^=^]6Ik!!"*k!#t\5!$?^k ++7K715C`_En,NGQJ,g,L!!#66!!hun!'bu6#Oh]n5C`_=n,NGQJ,fiD!!#66!!hun!'bu6#Oh]n +5C`_=n,NGQJ,fiD!!#66!!hun!'bu6#Oh]n5C`_=n,NGQJ,fiD!!#66!!hun!'bu6#Oh]n5C`_= +n,NGQJ,fiD!!#66!!hun!'bu6#Oh]n5C`_=n,NGQJ,fiD!!#66!!hun!'bu6#Oh]n5C`_=n,NGQ +J,fiD!!#66!!hun!'bu6#Oh]n5C`_=n,NGQJ,fiD!!%M!!"\Q!!<7QL+7K7ps*t4On,P]QJ-5i@ +!'gL6"97ij!!%NL!!!!~> +Q +q[1 0 0 1 0 0]concat +25 70 true[1 0 0 1 -303 -2324]@X +imagemask +5QCb65QCb65QCb6!<:sW!.TM!!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6 +!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6 +!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6 +!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6!'bu6 +!'bu6!'bu6!'bu6!.TM!!<7QL5Q?665Q?665Q?66+9-ik!!%NL~> +Q +q[1 0 0 1 0 0]concat +32 62 true[1 0 0 1 -330 -2323]@X +imagemask +!!#66!!*&W!!E"8!!hF!!"ZjR!$Aub!$?^q!'bu +Q +q[4.8 0 0 -240 640.28 2407.68]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +68 71 true[1 0 0 1 -709 -2324]@X +imagemask +s8Vio!.Y%Ki;`iP!!%NKs7$'gp](;Ds8VQns*t(L!<;Ng!WN-"!!#7A!!%HJ!!!!`huEa@z5MuMA +*WQ0?!'fBA!"Ju/!!#7A!!!6(!!!!`huE`^z5MuMA"+U@O!'fBA!!0k8!!#7!!!!&8!!!!`^]4?7 +huE`W5JR7!!8mhW!'e7!!!$srVuou!!!!?!WE'!z%Kl\1z!!`W*z!!!6+rVuou!!!!$KDkiNz"2k* +Q +q[1 0 0 1 0 0]concat +71 68 true[1 0 0 1 -783 -2324]@X +imagemask +s8W-!s6p!g!<<*!s8W*!!!%NKs8W-!huE`WJ)C;,J+s!D!$C,!!"]&/!!",!!!!-$!!!!0n,NFg +s*t(L&+BQ!!.Wo,!"\Q!!!#7Q!!!Q!!!!!@p](:!p](9o&,6,)#P\9!!!iE%!!i9!!!!-#!!!9! +!!!!$rr<$$qu?]s!WN-""8i-!!!3+M!!E-!!!!$!J,f]Lzs*t(MrVuou!<9h7!WE'!!!*&7!!3'! +!!!"K^]4E7zJ%u$arr<$!!.Vca!<3$!!!%Ma!!*$!!!!"K^]4B7zs*t(LIt.M!!<7QL!.TM!!!*$! +!!%M!!!!'"!!!"KJ,fQMrVuou5JR7!"8i-!!'e7!!!i9!!!#7!!!!Q!!!!!`^]4@a^]4?7+92B@ +rVuou!$D7@s53kW!!",!!!E-!!!!!@huEaAJ,fQL&+BQ!&)[Ef!"\Q!!!i9!!!!Q!!!!'!!!!!0 +n,NFgrr<$!#P\9!!.TM!!!i9!!!#7!!!!9!!!!!@huE`^p](9o+7K71"8i-!!"\i)!!E-!!!!9! +!!!-!!!!!(qu?^!qu?]s#Q+Q%!WE'!!!E3#!!3'!!!!-#!!!'!!!!!$rVup!rVuou"9&9#!<3$! +!!E3#!!*$!!!!-#!!!$!!!!!$rVuourr<$!"9&9#!.TM!!!E3#!!%M!!!!9%!!!"KJ,fQSqu?]s +It.M!&,6,)!'e7!!$C\1!!#7!!!#7A!!!"KhuEfX^]4@as8W-!rr<$!s8W-!s82is!.Y%Ks8Tk7~> +Q +q[1 0 0 1 0 0]concat +72 72 true[1 0 0 1 -864 -2322]@X +imagemask +!!!-$J,fQL!!!!@s7cQozs8W*!z"93m9^]4?7!"\i)"7Q9j!!",!!!)co!!!!`^]4?uzIfKHK%fcS0 +!<)ru!!@`O!!2ut!!!&X!!!-!zn,NFnp](9o!-eJD#Oh]n!!"tY!"\Q!!!!!=!!!Q!z%KHJNhuE`W +!!`K(+5d,!!!!*$!'fBA!!!!$J,hgLz!Pe\"^]4?7!!0k85JR7!!!!#W!.VcazhuJ8Bz!+5eV^]4?7 +!!$sg9z!"\i)z!!!Q-z!!!!(qu?]sz +#Q=]'!!!!$J-5cNz"+ULQz!!C";rr<$!!!!,:!WN-"!!!!$^]=Cbz"2Fnd^]4?7!!D-ZJ%u$a!!!,Z +!'fBA!!!!$huFkWz"5j.in,NFg!!D]j&,6,)!!!,j!!iE%!!!!$n,NRiz#Oh]orVuou!!i9!!<3$! +!!!9!!!%Ma!!!!0p](:9huE`W&,6,)&+BQ!!$D+=!!iE%!!#7]!!!'!!!!!Zqu?]ss*t(LGl.OA +!'fBA!UtO +Q +q[1 0 0 1 0 0]concat +76 68 true[1 0 0 1 -942 -2324]@X +imagemask +s8W-!s*t(L!!*'!s8W,ozs8W-!s8N'!!!!"KhuEfXhuE`W!$C,!!$C\1!!!!@huE`Zqu?]s!"\Q! +!!*$!!!!!0n,NFgIt.M!!"\Q!!!",!!!!!0p](9o&+BQ!!!i9!!!!9!!!!!(p](9o"8i-!!!i9! +!!!'!!!!!(p](9o!<3$!!!E-!!!!"KJ,fQOqu?]s!'e7!!!E-!!!!!@^]4?:qu?]s!$C,!!!3'! +!!!!0n,NFhrVuou!"\i)!!3'!!!!!(p](9prVuou!!iE%!!*$!!!!!$rVuourr<$!!!E3#!!*$! +!!!!"rr<$!rr<$!!!3*"!!%M!!!!!"s*t(LIt.M!!!*%L!!%M!zs*t(LIt.M!!!*&7!!#7!zJ%u$a +5JR7!!!%Ma!!#7!zJ)C;,5JR7!!!#7A!!",!z5MuMA+5d,!!!#7A!!",!z5O\XQ+5d,!!!#7Q!!!Q!z ++7K71&+BQ!!!",1!!!Q!z+7K71&+BQ!!!",1!!!9!z+7K71#P\9!!!",1!!!9!z+7K71#P\9!!!",1 +!!!-!z+7K71"8i-!!!",1!!!-!z+7K71"8i-!!!",!!!!-#z+5d,!!WE'!!!",!!!!'!z+5d,!!WE'! +!!#7!!!!'"z5JR7!!<3$!!!#66!!!$!zIt.M!!<3$!!!%KK!!!$!J,fQLrr<$!!.TM!!!3'!!!!"K +J,fQOqu?]s!.TM!!!i9!!!!"K^]4?Fn,NFg!'e7!!'fBA!!!"KhuElZ^]4?7s8W-!s8N'!!!*'! +s8W,ozJ,fQKs1eU7~> +Q +q[1 0 0 1 0 0]concat +72 68 true[1 0 0 1 -1027 -2324]@X +imagemask +s8W-!s8W+L!<<*!s8W-!J,oWLs8W-!s1eU7J)C;,&-'EF!'fBA!!%N,!!",1!!!!@huEa!n,NFg +#N,R^&+BQ!!!D]j!"\Q!!!!&h!!!Q)zp](:)p](9o!-eJD#P\9!!!#+]!!i9!!!!!]!!!9%z)uosD +qu?]s!"Ju/"8i-!!!!K/!!E-!!!!!(!!!-#z#64`+rVuou!!@`O!WE'!!!!+O!!3'!!!!!"J,fWMz +!Pe[9rr<$-!!'e7!<3$!%KHLe!!*$!!"Ju/?iU3,!!!K/!+5d,s*t(Rz!.TM!#64`(!!%M!!!`K( +!!!"KJ,ffSzJ%u$hz!'e7!#CldS!!#7!!"XS[!!!!`^]6TLz5QCc`J,fQL!$D7@s1eU7!!",@s8Tk7 +!!!!@n,P\gz+7K78^]4?7!"\Q!"2Fm:!!!Q!!!2!X!!!!0n,NIHz&,6,)huE`W!!i9!!+5d,!!!9! +!!$s +Q +q[1 0 0 1 0 0]concat +71 68 true[1 0 0 1 -1106 -2324]@X +imagemask +s8W,uz!<<*!rVuou!!*'!s8DuuzJ+s!Dz!'frQz!!",1z!!!!@n,NFgz&+BQ!z!"\Q!z!!!Q)z!!!!0 +p](9oz#P\9!z!!i9!z!!!9%z!!!!(qu?]sz"8i-!z!!E-!z!!!-#z!!!!$rVuouz!WE'!z!!3'!z +!!!'"!!!i9!!!!"rr<$=z!<3$!$ig8-!!*$!!"8i-!!!$!J,fuXzs*t(Zz!.TM!%KHJ/!!%M!!"Ju/ +!!!"K^]4lFzJ%u%+z!'e7!IfKHK!!#7`s8N'!!!!!`s8W+Lz5QCc`J,fQL!$C,!5C`_6!!",!!"XS[ +!!!!@n,N^/z+7K74^]4?7!"\Q!!Pe[8!!!Q!!!0k8!!!!0p]( +Q +q[1 0 0 1 0 0]concat +72 72 true[1 0 0 1 -1184 -2322]@X +imagemask +!!!-$^]4?7!!!!@s82iszs8W+L"98E%"93lni!o_e!"\u-!Vd]9!!",1!!%Bf!!!!`^]4?U56(Z` +It.M!%mL$o!<3$!!!E6$!!3'!!!!'"!!!-!!!!!"s*t(Sp](9o!<7QL#P\9!!!*%L!"\Q!!!!"K +J,g,LzJ%u%+huE`W!.Vca+5d,!!!#7!!'fBA!!!!`^]6UWz5MuN+^]4?7!'fBA5JR7!!!",!!.Vca +!!!!@huJ8Bz+7K8[^]4?7!$C\1J%u$a!!",1!.Vca!!!!`quD5^!!!$!s8V#,^]4?7s8W,gJ%u$a +!<<*!n:0?rz!!%N,z!!!"KhuE`WzJ)C;,z!'fBAz!!#7Az!!!!`n,NFgz5O\XQz!'frQz!!",1z +!!!!@p](9oz+8>g9z!"\i)z!!!Q-z!!!!(qu?]sz#Q=]'!!!!$J-5cNz"+ULQz!!C";rr<$!!!!,: +!WN-"!!!!$^]=Cbz"2Fnd^]4?7!!D-ZJ%u$a!!!,Z!'fBA!!!!$huFkWz"5j.in,NFg!!D]j&,6,) +!!!,j!!iE%!!!!$n,NRiz#Oh]orr<$!!!i9!!<7QL!!!9!!!%Ma!!!!0p](:9huE`W&,6,)&+BQ! +!$D+=!!iE%!!#7]!!!'!!!!!Zqu?]ss*t(LGl.OA!'fBA!UtO +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1262 -2324]@X +imagemask +s8W,g!WW3"huEcWs8Vips8W,W!!*'!s7cWps8V!W!!%N +Q +q[1 0 0 1 0 0]concat +53 68 true[1 0 0 1 -1345 -2324]@X +imagemask +!<<*!p](9ps8W,o!!!$!s8Vio!!!"Kn,NFg!!#7Qz!$C\1z+7K71!!!!0n,NFg!!!Q!z!"\Q!z&,6,) +!!!!(p](9o!!!9!z!!i9!z#Q+Q%!!!!$qu?]s!!!-!z!!E-!z"9&9#!!!!"rVuou!!!'!z!!3'!z +!WN-"zrr<$!!!!$!z!!*%Lz!<7QLzIt.M!!!!"KJ,fQL!!%Maz!.Vcaz5JR7!!!!!`^]4?7!!#7Az +!'fBAz+5d,!!!!!@huE`W!!",1z!$C\1z&+BQ!!!!!0n,NFg!!!Q)z!"\i)z#P\9!!!!!(p](9o +!!!9%z!!iE%z"8i-!!!!!$qu?]s!!!-#z!!E3#z!WE'!!!!!"rVuou!!!'"z!!3*"z!<3$!zrr<$! +!!!$!J,fQL!!*%Lz!.TM!zIt.M!!!!"K^]4?7!!%Maz!.Wo,zs6p!g!!*'!s7cQo!<<*!p](9os8W,o +~> +Q +q[1 0 0 1 0 0]concat +59 70 true[1 0 0 1 -1404 -2322]@X +imagemask +!"\i)z!.Y"Kz!;IYOz"2G02z#CljQz#64c'z%KHKYz%KHJnJ,fQL+2@k@^]4?7+5d,@huE`W+7K7@ +n,NFg+8>gHn,NFg+8c*Dp](9o+8c*Dp](9o&,ZD0qu?]s&,ZD0qu?]s#Q+Q(qu?]s"8DiurVuou +!Up'irVuou!!!!"rVuou!!!!"rVuou!!!!"rr<$!zrr<$!zrr<$!zrr<$!zs*t(LzIt.M!zIt.M!z +It.M!zJ%u$az5JR7!z5JR7!z5JR7!z5MuMAz+5d,!z+5d,!z+5d,!z+7K71z&+BQ!z&+BQ!z&+BQ!z +&,6,)z#P\9!z#P\9!z#P\9!z#Q+Q%z"8i-!z"8i-!z"8i-!z"9&9#z!WE'!z!WE'!z!WE'!z!WN-"z +!<3$!z!<3$!z!<3$!z!<7QLz!.TM!z!.TM!z!.TM!z!.Vcaz!'e7!z!'e7!z!'e7!z!'fBAz!.XJ< +!!!!$s8W,W!!!!$s8W,W!!!!$s8W,W~> +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1469 -2324]@X +imagemask +s8W,g!!iQ(p]( +Q +q[1 0 0 1 0 0]concat +60 68 true[1 0 0 1 -1562 -2324]@X +imagemask +s8W-!s8V!Ws8W-!s8VQgs8W-!s8VQg!.Wo,"97ij!'fBA!'g5Y!$C\1!"\i)!$C\1!!E-!!"\Q! +!!2ut!"\Q!!!)os!"\i)!!#1_!"\i)!!#1_!!i9!!!"&?!!i9!!!!N0!!iE%!!!6(!!iE%!!!6( +!!E-!!!!+O!!E-!!!!+O!!E3#!!!&8!!E3#!!!&8!!3'!!!!#7!!3'!!!!#W!!3*"!!!#W!!3*" +!!!",!!*$!!!!" +Q +q[1 0 0 1 0 0]concat +100 68 true[1 0 0 1 -1630 -2324]@X +imagemask +s8W&u!rr?$s8V!W!<<*!!!@`Os8W,g!!%NKrW!&9!<<*!n,NFjs1eU>^]4@ahuE`W!.OtK#N,R^ +5MuMA!!#1_!!hun!$C,!!!!!?!!!8n!!",!z%KHJ6p](:9huE`W!"Ju/#Q+Q%&)[Ef!!!K/!!iE% +!"\Q!!!!!(!!!Q'!!!Q!z#64`7p&G('n,NFg!!`K(&*!Wi#Oh]n!!!6(!"\%=!!i9!!!!!$J,g,= +J,fiLz"+U@^i4orVuou!!(pW+2@sY!<)ru +!!!#W!'e7$!!*$!zDu`,F95!!'k7z!9 +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1738 -2324]@X +imagemask +s8W&u!!!%M!!!$!s8Duu!!@`O!!*'!rVuou"+U@O!!E8:!!!!(^]4?7!<3$!!!!8>z4obQ_!"ZjF +!!!!?z&&8/F!!"&?!!!!0huE`W!"Ju/!!",!z%KHJ/!$C,!!!!!/z5MuMA!!!3'!!!!`n,NFg!!`K( +!!%Nr!WQ*!!!#7!!!9%%KHJ/!!(pW!"\i7z +!8mhW&,6V7zhuEa!n-/jm!!!",!!",1#64`(!!$s +rr<)8z)up*?!!(pW!!!!-!!E3#!8mhW!!!K/"8i-!huE`W!"Ju6qu?`Tz%KHb3!!$saK8!"Ju/ +!!!#Xrr<$!%KHJ/!!)'Y!!!!/z!9=%Y!!!6(zA,H<,!!`K(!!!"Cqu?]s#64`(!!%6z5PP3Y!"[uf!!!"Kn,NFg5PtK]!<<)g!!!9(s53kWs8V!W!!iQ(n,NH +Q +q[1 0 0 1 0 0]concat +70 72 true[1 0 0 1 -1829 -2322]@X +imagemask +!!!9(z!!!"Ks6p!g!!!!"s8W&uz#Q=c(^]4?7!$C\1+7K71!!#7!!!i9!!!!"KJ,fWLzrr<$!s*t(L +!WE'!!'e7!!!E-!!!",!!!!9%!!!!0n,NFnp](9o#Q+Q%&+BQ!!!E3#!"\Q!!!!'"!!",1zs*t(k +huE`W!.Vca5MuMA!!#7!!'fBA!!!!`huH""z+7K7p^]4?7!"\i)J%u$a!!!Q-!.Vca!!!!(quD5^z +#Q=^Q^]4?7!!E3#J%u$a!!!-$!.Vca!!!!"s+#U7z!WR\"^]4?7!!*&7J%u$a!!!$!^jk8BzJ&$Qlz +!.WpVhuE`W!!%N,J)C;,!!!!`n3>h2z5O^nqz!'fs;n,NFg!!",15O\XQ!!!!@p`Ju*z+8?rIz!$CtX +p](9o!!!Q)+8>g9!!!!0p^d-"z&,Zt5z!"\u4qu?]s!!!Q-#Q+Q%!!!!0qucouz#Q+]'z!!iE&rVuou +!!!9%!WN-"!!!!(quH`sz#P\:KJ,fQL!!i9!It.M!!!!9!!'e7!!!!!(p])Doz#P\90huE`W!"\Q! +&+BQ!!!!Q!!!i9!!!!!0n,NRcz&)[Egqu?]s!"[uf!<)ru!!"+V!!%KK!!!!@^]4@!J,fQL5C`_6 +&&8/F!'^G`!!hE^!!%KK!!!,r!!!#uzqu?]tqu?]s!.OtK"8Dir!!"+V!!hE^!!!!(n,OQGz!<)uuz +!!",@p](9o!!!!"s1eU7~> +Q +q[1 0 0 1 0 0]concat +71 68 true[1 0 0 1 -1907 -2324]@X +imagemask +s8W,gz!<<*!p](9o!!*'!s7cQozJ+s!Dz!$C\1z!!",1z!!!!0n,NFgz&+BQ!z!"\i)z!!!Q)z!!!!( +p](9oz#P\9!z!!iE%z!!!9%z!!!!$qu?]sz"8i-!z!!E3#z!!!-#z!!!!"rVuouz!WE'!z!!3*"z +!!!'"zzrr<$!z!<3$!z!!*%Lz!!!$!J,fQLzIt.M!z!.TM!z!!%Maz!!!"K^]4?7z5JR7!z!'gM` +s*t(L!!#7`s8Vio!!!!`s8W,uz+5d,$s*t(L!$C,!!'fBA!!",!!!!Q)!!!!@huE`Zqu?]s&+BQ! +!WE'!!"\Q!!!*%L!!!Q!!!!"K^]4?Fn,NFg5JR7!#P\9!!'fBA!!i9!!!",1!!!9!!!!!@p](:! +p](9o&,6,)"8i-!!"\u-!!E-!!!!Q-!!!-!!!!!(qu?^!qu?]s#Q=]'"9&9#!!iK'!!3'!!!!9' +!!!'!!!!!$rVup!rVuou"9&9#!WN-"!!E3#!!*$!!!!-#!!!$!!!!!$rVuourr<$!"8i-!!<7QL +!!iE%!!%M!!!!9!!!!"KJ,fQ[p](9oIt.M!&+BQ!!.Vca!$C,!!!#7!!!%Ma!!!"KhuElZJ,fTL +s8W-!rVuous8W-!s7cQo!.Y%Ks8RTL~> +Q +q[1 0 0 1 0 0]concat +70 89 true[1 0 0 1 -1985 -2305]@X +imagemask +z!.FnJz!!3,8z!!!-$huE`W!!!!(s6p!gz#QOQ!z!"],-z!!!Q0rVuou!!!!0s8N'!z&-)Y0z!"],0 +J,fQL!!!Q!5JR7!!!!!0^^n3\z&&8;*z!"XS\huE`W!!!O[!8mhW!!!!0!!$s5^]6U7z+5d,`^]4?7!"\Q!5JR7!!!!9!!.Vca!!!!(p],fZz"8i.K +^]4?7!!E3#J%u$a!!!'!!.Vca!!!!"rr@Paz!<3%K^]4?7!!*%LJ%u$a!!!$!J:G?7zJ&$QLz!.Ve6 +^]4?7!!#7AJ%u$a!!!!`i.'Ybz5N"caz!$C\phuE`W!!",15MuMA!!!!@n3?CBz+8?rIz!"\iHn,NFg +!!!Q)+7K71!!!!0p`K82z&,6\1z!"\u +Q +q[1 0 0 1 0 0]concat +71 70 true[1 0 0 1 -2064 -2322]@X +imagemask +z!!!&tz!!!!0s+(.Ls6p!g5D-cOs8Vio!.P",s8W,o!!*$!DubCW!!!'"!&ss#huE`Xrrn,NFjrr<6'&+BQ!"9/?*!!i9!!!E6$!!!9!!!!-$!!!!( +p](9prr<$!#P\9!!WN-"!!E-!!!3*"!!!-!!!!'"!!!!$qu?]ts*t(L"8i-!!<7QL!!3'!!!*%L +!!!'!!!!$!J,fQMrVuous*t(L!WE'!!.TM!!!*$!!!%M!!!!$!!!!"KJ,fQLrr<$!It.M!!<3$! +!.TM!!!%M!!!%KK!!!"KJ,fTLzIt.M!rVuou!.TM!!W2ot!!#7!!!Dur!!!!`^]4W/z5JR7`huE`W +!'gM`s*t(L!!",@s8Tk7!!!!@huF;_z+5d,!rr<$!!$C,!!'e7!!!!Q!!!!Q!!!!!0n,NFnp](9o +&+BQ!!W2ot!"\Q!!!3*"!!!9!!!!$!J,fQSp](9oJ%u$a#P\9!!'e7!!!i9!!!#7A!!!9%!!!!` +n,NFjqu?]s+7K71"8i-!!$Ct9!!E-!!!",9!!!-#!!!!0p](9prVuou&,ZD-!WE'!!"\u-!!3'! +!!!Q-!!!'"!!!!0qu?]srr<$!&,6,)!<3$!!"\i)!!*$!!!!Q)!!!$!J,fQ[n,NFgIt.M!+7K71 +!.TM!!$C,!!!%M!!!#7!!!!"K^]4@aJ,fQL5JR7"rr<$!!.Wo,+8c*=!<<*!s8VQg!!*'!s8W,7 +!!!"Ks8W,s!!!~> +Q +q[1 0 0 1 0 0]concat +60 72 true[1 0 0 1 -2141 -2322]@X +imagemask +?iU`8zDufq<^]4?73!93\n,NFg49tW`qu?]s4s.Q?IK0?J5<]&I++O=k5PtK]&&8/F+8>g9#N,R^ ++7K71!Up'h+5d,!!VcWp+5d,!!;lfs&&8/F!.4bH&&8/F!'UA_%tFW[!'^G`#CldS!$;1@#CldS +!$?^k#CldS!$?^k#CldS!"ZjF"+U@O!"ZjF"+U@O!"ZjF"+U@O!"ZjF"+U@O!"[uf!It.M!"[uf +!It.M!"[uf!.Y%L!"[ufz!$C,!z!$C,!z!'fBAz!'fBAz!<:sWz!WTq8z&-'EFzs8Tk7!!!!0s8RTL +!!!$!s8N'!!!!-$s8N'!!!!Q0s8Duu!!",@s82is!!#7`s6p!g!!%NKs1eU7!!*'!rVuou!!*'! +huE`W!!3-!z!!3,Xz!!3+Mz!!E6$z!!E3#z!!E-!!!!-%!!E-!!!!K/!!Dur!!!K/!!Dur!!!K/ +!!Dur!!!K/!!2ip!!!6(!!2ip!!!6(!!2ip!!!6(!!2ip!!!6(!!)co!!!O[!!)os!!!O[!!%BH +!!!O[!!%HJ!!!O[!!#1_!!!PF!!")@!!"+V!!"*k!!"+V!!!PF!!#7!!!!8^!!%N,!!!,j!!%6$ +!!!#o!!2]L!!!"J!!D3 +Q +q[1 0 0 1 0 0]concat +74 67 true[1 0 0 1 -2200 -2324]@X +imagemask +!.Y%Ks82is!!!"Ks8W,sz!.Y%Ks82isz#QN]^z!!!'"J,fQLz!<7QLz!!!"KJ,fQLz!.TM!z!!!"K +^]4?7z!.Vcaz!!!!`^]4?7z!'e7!z!!!!`huE`Wz!'fBAz!!!!@huE`Wz!$C,!z!!!!@n,NFgz!$C\1 +z!!!!0n,NFgz!"\Q!z!!!!0p](9oz!"\i)z!!!!(p](9oz!!i9!z!!!!(qu?]sz!!iE%z!!!!$qu?]s +z!!E-!z!!!!$rVuouz!!E3#z!!!!"rVuouz!!3'!z!!!!"rr<$!z!!3*"zzrr<$!z!!*$!zzs*t(Lz +!!*%LzzIt.M!z!!%M!zzJ%u$az!!%Mazz5JR7!z!!#7!zz5MuMA!!!%M!!#7A!!!3'"+U@O+5d,! +"on[S!!",!!!!3'!Pe[8+7K71"onY=!!",1!!!6(!8mhW&+BQ!#64b^!!!Q!!!!6(!+5d,&,6,) +#64aC!!!Q)!!!6(!,qo<#P\9!!rr<\!!!9!!!!+O!&srY#Q+Q%"+UA6!!!9%!!!+O!#tt="8i-! +#Cldq!!!-!!!!7S!$;1@"9&9##Cldb^]4K9!!!O[!"[uf!WE'!+2@jerW!!!!!*&7!!iQ(s8W-! +s1eU>s8W-!s8W,7!!iQ(s8W-!s1e~> +Q +q[1 0 0 1 0 0]concat +72 70 true[1 0 0 1 -2281 -2322]@X +imagemask +!!%N,z!!!-$qu?]s!!!!0s8RTLz5N!XAz!.OtNn,NFg!!)uu!;lfs!!!&t!!#1_!!!!$p](:)z"7Q9j +#CldS!!hun!!C":!!!Pf!!!&X!!!!0huE`Wn,NFg&)[Ef!-eJD!$C,!!!"tY!!"+V!!!!=!!!!@ +^]4?7*WQ0?+2@jV!"Ju/!$C,!!!!N0!!",!!!!!(!!!!@huE`W#CldS+5d,!!!@`O!$C,!!!!,: +!!",!!!!!"^]4?VhuE`W!Pe[8+7K71!!0k8!"\Q!!!!#W!!!Q!zhuE`fn,NFg!8mhW&+BQ!!!(pW +!"\i)!!!"rVuou!#tt=!WN-"!!!u=!!*$!!!!!/!!!$!z%KHJ/rr<$!!"Ju/ +!<7QL!!!K/!!*%L!!!!(!!!"KJ,fQL#64`(It.M!!!`K(!.Vca!!!6(!!%Ma!!!!$J,fR6^]4?7 +"+U@O5JR7!!!@`O!'fBA!!!+O!!#7A!!!!"^]4?VhuE`W!Pe[8+5d,!!!0k8!$C\1!!!&8!!",1z +huE`fn,NFg!8mhW&+BQ!!!(pW!"\i)!!!#W!!!9!zDu]kCp](9o!,qo<#P\9!!!%6D!!iE%!!!#s +!!!9%!!!!"rVup/rr<$!"96.Is8W+L!<<)u&-)\0J,oWLrs/T(s*t*!s8N~> +Q +q[1 0 0 1 0 0]concat +73 70 true[1 0 0 1 -2360 -2322]@X +imagemask +!!#+]zz4obQ_z!!#1_zz56(Z`z!!#4`zz5C`_6z!!%MazzJ%u$az!!%N,zzJ+*F.]z!!3*")uos=!!!!"rW!E.z!!3'!%fcS0!!!!$ +rW!0'z!!E3#"+U@O!!!!$rW!%Nz!!E3#!Pe[8!!!!$rVuuWz!!E3#!8mhW!!!!$qu?_9z!!E-!!-eJD +!!!!(qu?^Vz!!iE%!#tt=!!!!(qu?^:z!!iE%!"Ju/!!!!(qu?^-z!!i9!!!`K(!!!!(p](9rJ,fQL +!"\i)!!C":!!!!0p](9p^]4?7!"\i)!!(pW!!!!0p](9ohuE`W!"\i)!!$s +Q +q[1 0 0 1 0 0]concat +100 70 true[1 0 0 1 -2437 -2322]@X +imagemask +!!@`O!!!u=z!!!+O!!!!=z!!!!$^]4?7*WQ0?z"5j.Z!$;1@z!!D-Z!!")@z!!!,j!!!!`J,fQL +!!!!(n,NFg5C`_6z#P\9!!'e7!z!!i9!!!#7!z!!!9%!!!!`huE`W!!!!(rVuou5O\XQz#Q=]'!'frQ +z!!iN(!!#7Yz!!!9$!!!!`fDkmO!!!!(qg\YH5MQ5=z#Pl.8!'ea/z!!i;7!!#7'z!!!9!huEaA +`rH)>!!!!(pg=(%5JmI$z&,:)D!.Vn:z!"\iY!!%MbJ,fQL!!!Q)2uir._8$$N!!!!0p`'86J&'tBz +&,6P5!.Vdlz!"\i7!!%MaDu]k`g!!!!0n-8pnIt0KYz&+BZ$!.TM9z!"\Q$J,k(L +)uos=!!!Q!!Pe\bJ.;PZ!!!!0n,U6(It._'z&+BSW!.TM(z!"\Q!?i^4W!rr<$!!",1!,qrrVuou2uipY5JR7!"9&9#!#tt=!'e7!!!3'!!!!u=!!#7!!!!'!!!!!/!!!!` +^]4?8rVuou"onW'5JR7!"9&9#!!`K(!.Vca!!E3#!!!+O!!%Ma!!!-#!!!!$J,fS!^]4?:rVuou +!Pe[8J%u$a"9&9#!!2!X!.Vca!!E3#!!!,j!!%N,!!!-$!!!!$p]( +Q +q[1 0 0 1 0 0]concat +89 68 true[1 0 0 1 -2537 -2324]@X +imagemask +!WW2t!!#7`s6p!g!WW2t!!#7`s7cQo!WW2t!!#7`s7cQo!!iP^!!!-$p](9o!!*&7!!!$!n,NFg +!!#66!!!"KhuE`W!!"*k!!!"KhuE`W!!!7S!!!"K^]4?7!!!,:!!!$!^]4?7!!!&X!!!$!J,fQL +!!!#g!!!$!J,fQL!!!"D!!!'"J,fQL!!!!]!!!'"z!!!!?!!!-$z!!!!/!!!-#z!!!!(!!!-#z!!!!$ +J,fiRz!!!!"^]4W;zzhuF;czzn,O!ozzGQ8i\zz49-Jmzz*WR;Ozz%fei`zz#Co%szz"2KEEzz!T8IC +zz!:^$(zz!-nNozz!'("/zz!$2)izz!"])0zz!"])0zz!!iK'zz!!E3#zz!!iK'zz!!iE%zz!"\u-zz +!"\u-zz!$D1?zz!$D4@zz!$Crczz!'g(jzz!'fGXzz!.Wqbzz!.Ve'zz!.Ve/zz!<9hszz!<7Qjzz +!WRZ\zz!WN-)J,fQLz"9/?'^]4?7z"9&9$huE`Wz"9&9#n,NFgz#Q=]'GQ7^Dz#Q+Q%49,?]z&,ZD- +*WQ0?z&,6,)%KHJ/z+8>g9#64`(z+7K71#CldSz+7K71"5j.Zz5O\XQ"7Q9jz5O\XQ"8i-!zJ+s!D +"9/?$zs8Duu#QN]^!!!$!s8V!WJ,fNK!!!$!s8V!WJ,fP!!!!"Ks8V!W5QCb6~> +Q +q[1 0 0 1 0 0]concat +72 68 true[1 0 0 1 -2636 -2324]@X +imagemask +#QOi(J,fQL!!iQ(s1eU7!!!-$s8Tk7z"93lOz!!*%Lz!!!$!J,fQLzIt.M!z!.TM!z!!%M!z!!!"K +J,fQLz5JR7!z!'e7!z!!#7!z!!!!`^]4?7z+5d,!z!$C,!z!!",!z!!!!@huE`Wz&+BQ!z!"\Q!z +!!!Q!z!!!!0n,NFgz#P\9!z!!i9!z!!!9!z!!!!(p](9oz"8i-!z!!E-!z!!!9'z!!!!(rr<$!z +#QK;Sz!"]+Fz!!!Q*^]4?7!!!!0ptu,Pz+8BdTz!$C\iz!!#7Q49,?]!!!!`n/_Q0z5N!%Pz!.Wo3 +J,fQL!!%Ma"+U@O!!!"K^]D4Nzs1eWmz!<7QLn,NFg!!3+M!-eJD!!!'"J,h\3!!!!"rr<$?z"9/?$ +%KHJ/!!E3#!!`K(!!!-#!!!+O!!!!(rVup!^]4?7#Q+Q%!T3qX!"\u-!!)Kg!!!Q-!!!"D!!!!0 +p](9o49,?]+8>g9!#tt=!$Ct9!!!K/!!",1!!!!(!!!!`n,NFg#CldS5MuMA!!C":!.Wo,!!!&X +!!%N,!!!!"p](;D^]4?7!;lfss53kW!!3*"!WVWh!!!-$i;`iW^]4?Vs8N&us53kW+92B@s8Tk7 +!$D7@~> +Q +q[1 0 0 1 0 0]concat +68 68 true[1 0 0 1 -2715 -2324]@X +imagemask +5QCc`s8Tk7!'gM`s8W,W!!#7`s8W-!huEa!n,NG!s53kW&,6,)!<:sW!!iE%!!",1!!!-#!!!!0 +n,NFjrr<$!"7Q9j!WRZM!!2ip!!*&7!!!#o!!!"KhuE`WGQ7^D5O\XQ!'C5]!$C\1!!#+]!!!Q) +!!!!=!!!!(qu?]s*WQ0?"9&9#!"Ju/!!3*"!!!K/!!!'"J,fQSzs1eU7#64`(!.Wo,!!<3$!!#7Q +!!!+O!!!!@n,NFjJ,fQL&,6,)!It.M!!iE%!!0k8!!!-#!!!&8!!!!"rr<$!^]4?7!WRZM!.Y%L +!!*&7z!!!"KhuE`Wz5O\XQz!$Ct9z!!!Q)z!!!!(qu?]sz"9&9#z!!3*"z!!!'"J,fQLzs1eU7z +!.Wo,z!!#7Qz!!!!@p](9oz&,6,)z!!iE%z!!!-#z!!!!"rr<$!z!<7QLz!!*&7!!!!"J,fS!huE`W +!It.M5O\XQ!!0k8!$Ct9!!!&8!!!Q)z^]4?>qu?]s!8mhW"9&9#!!(pW!!3*"!!!" +Q +q[1 0 0 1 0 0]concat +46 45 true[1 0 0 1 -709 -2203]@X +imagemask +!'bu6qu?cthuiuZ"5rqZa++E14:d!n%tG-3J\W?-#9SKS56(f#!8p'A!WN.-IK0BJJ8fr;!.TMQ +IK0@4J2$s&!'bunrVup?J/J7c!$AunrVup?^_m%N!$Aurrr<$0^]=B7!"[ufrr<$0huNcW!"[uf +rr<$(huJ7W!!hunIt.M(n,Rrg!!hunIt.M$n,P\g!!Dur5JR7$p]*Oo!!Dur+5d,"p])Do!!2ut +&)[Egqu?uk!!2ut#Oh]nqu?io!!)uu!VcWprVuus!!)uu!;lftrVuqI!!3*"!'^Garr<$@J-5fO +!"ZjM56(Zci!qsO!!3!;%KHJ/J+s!D!!!Pf!!!~> +Q +q[1 0 0 1 0 0]concat +37 70 true[1 0 0 1 -762 -2203]@X +imagemask +!'bu6!!3,h!!!,Zqu?^%J3O#6%tGaP!$;1O^]5GV#N,SG!!D]j4obWY!'UA_quD0G!<)tI!!%HJ +IK0@t!.FnJ5Ce1_!'c!_!!#7!IK0?i^jZ7`+5hSJ!$C-K!!!Q!IfKHZn:(E<&+Dd`!"\ihJ,fiL +5C`_=pcj9/#P^N6!!i9@J,fiL+2@jYp`I9O"8EtR!!E!,^]4K3&)[Eip^c9_"8EDr!!E!$n,NR[ +#P\9$n-Ajk"7QQp!!hEarr<;>"8dTZ^]XDj%tF]UGWu0/r'1)Z!W32l!!2ut!!!#szrVuou!<)ru +!!)uu!!!"JzIfKHK!.OtK!!%KK!!!!`z56(Z`!'bu6!!#66!!!!@J,fQL++O=k!$AuV!!"+V!!!!0 +^]4?7&&8/F!"[uf!!",!!!!9(huE`^s53kW#QO8n!!!Q!!!!~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -805 -2203]@X +imagemask +!"\u-!!%NKJ,fWF#Oh]qhuJ-)#J^<]!"XS[#CmnH!!0l"!!!#W56(Z`G^f\n!'#H.!!"!g!!!!/ +IK0?J"TAB$!!*$!!!!$!zrr<$!!<3$!!!*$!!!!$!zrr<$!!.TM!!!%M!!!!"KJ,fQLIt.M!!'e7! +!!#7!!!!!@^]4?7+5d,!!"[uf!!!Q!!!2!_n,NRc#P\9(p]L9k#Q+W#!!iE%qu?is!.FnMrW#._ +!W2p>J,oKI&&8/b!!hE^2uj!S!,qo +Q +q[1 0 0 1 0 0]concat +47 70 true[1 0 0 1 -848 -2203]@X +imagemask +!'bu6qu?cthuiuZ"5rqZa++E14:d!n%tG-3J\W?-#9SKS56(f#!8p'A!WN.-IK0BJJ8fr;!.TMQ +IK0@4J2$s&!'bunrVup?J/J7c!$AunrVup?^_m%N!$Aurrr<$0^]=B7!"[ufrr<$0huNcW!"[uf +rr<$(huJ7W!!hunIt.M(n,Rrg!!hunIt.M$n,P\g!!Dur5JR7$p]*Oo!!Dur+5d,"p])Do!!2ut +&)[Egqu?uk!!2ut#Oh]nqu?io!!)uu!VcWprVuus!!)uu!;lftrVuqI!!3*"!'^Garr<$@J-5fO +!"ZjM56(Zci!qu%!!3!;5C`_6J+u6Y!!!Pf++O=k!!"+Vz+2@jV!!"+Vz&&8/F!!!Pfz&)[Ef!!!Pfz +#N,R^!!!8nz#Oh]n!!!8nz"7Q9j!!!,rz"8Dir!!!,rz!VcWp!!!&tz!W2ot!!!&tz!W2ot!!!'!z +s8Duu!!*&uzs8Duu!!!'!~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -900 -2203]@X +imagemask +!"\u-!!%NKJ,fTE#Oh]qn,Rh9#N,S(!"ZjF#Cm>8!!0kWJ,fT-*rl9@GWu0.!'!1C!!"!g!!!!/ +IfKHK"FgCO!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIt.M!!.TM!!!%M!!!!"KJ,fQLJ,fKJ!'gM` +n,P\g"9&9b^]6TL+5d,(^`VJ7"5j^J!!(pfn,NIX#Oh]nGR+!D!&t)U!!"tZqu?^V!<)ru2unF. +!&ssCJ,hP/+2@l$!!hE^Du^"8!8mhWrWBq9!$D5k!!!-#!!~> +Q +q[1 0 0 1 0 0]concat +51 90 true[1 0 0 1 -946 -2184]@X +imagemask +!Up'h!!!!0qu?]s!!"&Nz!&t46z4p/S#!!!"KKAZ_0!!%MbhuE`W!.ViSzJ&(OR!!!!`_"[m0!!#7! +p](9o!$B#Sz#Cq1%z!.FnJzIK0?J!!!"Jz!!#4`z!'^G`z56(Z`!!!!`J,fQL!!#66z!$?^kz++O=k +!!!!@^]4?7!!"+Vz!$AuVz&&8/F!!!!0^]4?7!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!8^z!!hunz +#Oh]n!!!!(n,NFg!!!8nz!!D]jz"7Q9j!!!!$p](9o!!!,rz!!Durz!VcWp!!!!"p](9o!!!&tz +!!2utz!W2otzqu?]s!!!#sz!!)uuz!<)ruzrVuou!!!#uz!!%HJz!.OtKzIfKHK!!!"Kz!!%KKz +!'^G`z56(Z`!!%NKs6p!g!.Y%Kn,NFgJ,fQ!!#1`^]4?7!$;Grz#QFc(!!!!" +qu?~> +Q +q[1 0 0 1 0 0]concat +51 64 true[1 0 0 1 -998 -2184]@X +imagemask +!"])0zs8VQg!!!&h"8i-!!!D]jIfKHK"8Dj +Q +q[1 0 0 1 0 0]concat +50 70 true[1 0 0 1 -1058 -2203]@X +imagemask +)uos=56([I!!!$!^]6S!!!2TY!'^G`!T5p;5C`_9i"uGYJ,f]0$iiMB!!hEl!$?^k#N,dd+2@j] +n-8q8^]4W/!rsFY!!huqJ.KEq"8DnI&)[Eip]8/@huElS!Pf6(!!2ut^^&ct!W2r5#N,R^qu?^% +n,NIf!!!8n!!)uu!!D]j!.OtK"7Q9jIfKHNp](;D!!!,r!!#4`!!2ip!'bu6!W2ot5C`_7qu?^= +J,fWJ!!"+V!!)os!$AuV!<)ru+2@jVrVup/^]4B6!!!Pf!!%HJ!"[uf!.OtK&)[EfIt.M0huEb, +J,fi4!!#7!!!hE^!'fBA#N,R^5O\XXhuEaA\,[&T!!"+2!"ZjF!$BJd%tFW[+3/mRJ,fQk_=0Yh +!!!PFs82is!"\!0n,NFg&)[Ef!!!!0huE`W!!!8^z!!hunz#Oh]n!!!!(n,NFg!!!,jz!!Durz"8Dir +!!!!$p](9o!!!&pz!!2utz!W2ot!!!!"qu?]s!!!#sz!!)uuz!<)ruzrVuou!!!#uz!!%KKz!<3$! +!!!"Krr<$!!!%NKz!'gJ`z!<3$!!!!~> +Q +q[1 0 0 1 0 0]concat +33 67 true[1 0 0 1 -1107 -2203]@X +imagemask +!!%HJ!!!'"J,fQOiP5En#Jf6t!!g:n!!!PF2uiph^`3=S&&8SR!"ZjT!!!Pf"onW6i!05^#N,[a +!!huq!!!8n"+U@Rp]5mF"8DnI!!Dur!!!&t!!!!"qu?]s!;lfs!!)uu!!!#uzIfKHK!.OtK!!%KK +!!!!`J,fQL5C`_6!$?^k!!"+V!!.Tl^]4DN&)[Eg^^o?'!5K-'!!(p^n,NIH#Oh]n?jH0$!,r&0 +!!"\Tn,NGJ"7Q9j*!>[1!"K+h!!!6+huE`ZLVNli!WRZM!!%HJzzzzzzzzzzzzzzzzz!-eJD!!)os +!!!'!!!!!"rr<$!!WN-"!!*$!!!!$!zIfKHK!$2+~> +Q +q[1 0 0 1 0 0]concat +44 86 true[1 0 0 1 -1142 -2184]@X +imagemask +!<)ru!!!9(^]4?7%g2;$!!"*kqu?]s+2E=*!!",!++O=k+5e6V!!",1&&8/F+7KNn!!!Q!#Oh]n +&)[QZ!!!,:"8Dir!!!&pz!W2ot!!!&tz!;lfs!!!#uz!<)ru!!!#uz!.FnJ!!!"Kz!.OtK!!!"Kz +!'^G`!!!!`J,fQL!'bu6!!!!`J,fQL!$?^k!!!!@^]4?7!$AuV!!!!@^]4?7!"ZjF!!!!0huE`W +!"[uf!!!!0huE`W!!hE^!!!!(n,NFg!!hun!!!!(n,NFg!!D]j!!!!$p](9o!!Dur!!!!$p](9o +!!2ip!!!!"qu?]s!!2ut!!!!"qu?]s!!)os!!.TMrVup!^]=?6!!0k8rVuouhuJ3+!!(pWIfKHK +Dub@f!!"\QIfKHK2unF.!!!u=56(Z`$iiKl!!!K/4obQ_#692Q!!!,:HiO-H!:]a`!!!"Kn,NFg +!"ZjFzzzzzzzzzzzzzzzzzzzz!!!N0z+2@jV!!",!z5MuMA!!",!z+7K71!!",!z&)[Ef!!!,:~> +Q +q[1 0 0 1 0 0]concat +47 70 true[1 0 0 1 -1197 -2203]@X +imagemask +)uos@n,PWP!"\u-56([*%KJ]n!'UVf56(\4"+WUd!.4ft5C``]!Pfe-!;li4++O@h!8ns7!<)t+ ++2@mU!+6>Q!<)t;&&82E!&+rA!.Fo%&)[G;!&t5A!.Otc#N,T2!!!8n!<)ru#Oh`m!!!,j!WE'! +"7QEj!!!,r#P\9!"8Eu-!!!&qs1eU7!WW0"!!!'"n,NFg!WTq8!!!#thuE`W!<-p;!!!#u2uipY +!<*H.!!!"J#64`(!.P*$!!!"K!Pe`o!.P!a"8Dj\!+6'0!'buf#Q+QdJ2df3!'buR"9&9BJ.Db] +!$AuYJc#Ki^]EA@!$AuVpc&6a^]6Ug!"[uf&)[EuhuE`W!"[uf!!!!(huE`W!!hun!!!!(n,NFg +!!hun!!!!$n,NFg!!Dur!!!!$p](9o!!Dur!!!!"p](9o!!2ut!!!!"qu?]s!!2utzqu?]s!!)uuz +rVuou!!)uuzrVuou!!%HJzrr<$!!.Y"K!!!"Krr<$!!'gJ`zrr<$!~> +Q +q[1 0 0 1 0 0]concat +22 70 true[1 0 0 1 -1252 -2203]@X +imagemask +"7Q:$qu@fK!'UVf4p(e6"+Yh$J:7O7rW'b5!5SR6i-kZ6IfNl+!-!DfE'F=V5C`_uJ,hfa!$?^k ++2@ju^]5Il!"ZjF&)[EuhuF;G!!hE^#Oh]un,N^_!!D]j"8Diup](Ek!!2ip!W2ouqu?cq!!)os +!<)rurVurt!!%HJ!.OtKIfKIu!!#4`!'bu65C`_uJ,g[A!$AuV+2@ju^]4n\!"[uf&)[EuhuF#? +!!hun#Oh]un,NR[!!Dur#P\E$p]LQk!WW&t#P\~> +Q +q[1 0 0 1 0 0]concat +88 45 true[1 0 0 1 -1276 -2203]@X +imagemask +!!e#S!,qoHn,NHi!!2tI!$?^kE"C_(!VsM2++O>F +&'b.Uptu,o!!"th`rH/0Du`*&!#Q6!^]X'c!'UA_*"RSX"5k4#IK0?X*rp[!^^%[Q!!!9%!$D5k +!WVWh!!2Qh"8i-!J%u$~> +Q +q[1 0 0 1 0 0]concat +61 45 true[1 0 0 1 -1364 -2203]@X +imagemask +!!e#S!!hE^!"ZjF!$Ct9!"ZjF!'WLF!"[uf!.57V!"[uf!;m'%!"[uf!;lqL!!hE^!;lkJ!!hun +!;ll5!!hun!;li4!!hun!;liT!!D]j!<)t+!!Dur!<)t;!!Dur!.Fo%!!Dur!.Ou&!!2ip!.Ou. +!!2ut!'buN!!2ut!'bu6!!2ut!'bu6!!)os!$AuV!!)uu!$AuV!!)uu!$AuV!!)uu!"[uf!!%HJ +!"[uf!!%KK!"[uf!!%KK!!hun!!%KK!!hun!!#4`!!hun!!#66!!D]j!!#66!!Dur!J!Cb!!Dur +!Pfe-!!Dur!Pfem!!2ip!5K\l!!2ip!5K]7!!2ip!8nCW!!2ut!8nCW!!2ip!+6>i!!2ip!,rJ( +!!2ip!&+r/!!2ip!&tM0!!2Qh!#Q6!^]X'+!#uN"huhm;!"L(NHk4!m!!iE%+9-ik!!2Qh"8i-!~> +Q +q[1 0 0 1 0 0]concat +43 45 true[1 0 0 1 -1432 -2203]@X +imagemask +!"\Q!!!!"Krr<$!!VdbP!!!,Z"7Q9j#J^B8!!!O[!.FnJ++O>U!!#4`!$?^k56(Zo^]8ia!!hE^ +IfKHRn,RqU!!")@!$?^k56(Zo^]8f` +!!hunHiO-Ip]1'h!!%KNn,NFg+90+V!!!-#!!!~> +Q +q[1 0 0 1 0 0]concat +53 63 true[1 0 0 1 -1472 -2185]@X +imagemask +J,fEH!!!"Ks82is!!%NKqu?]s!!3'!z!<)ruzrVuou!!!#uz!!%HJz!.OtKzIfKHK!!!"Kz!!#4`z +!'bu6z5C`_6!!!!`J,fQL!!"*kz!$AuVz+2@jV!!!!@^d!>L!!!PFs53kW!"\,+p](9o&*EqA!!!!0 +jo?J'!!!8l!"ZjF!!iE%#N,R^#Q+Q(n,NFnp](Ek!!!,r!!2ip!!Dur!;lfs"8DirrVup#p](;D +!!!&p!!%KK!!2ut!.TM!!W2ot5C`_7qu?^]^]4B4!!#7!!!)uu!$C,!!<)ru+5d,!rVup?huEb+ +!!!Q!!!%KK!"\Q!!.OtK&+BQ!IfKHZn,NGQ!!!9!!!#66!!i9!!'bu6#P\9!5C`_=p]5meJ,fiL +!Pfem!!i9"^`U>l"8Dl3+2@jYp]04_huElK!8nCG!!D]j?k;`,"7Q;0&,6,0huI^,p](QW!&+r= +!!g:>3"O=8#J^ +Q +q[1 0 0 1 0 0]concat +41 63 true[1 0 0 1 -1530 -2185]@X +imagemask +!$D7@^]4?Vs8Tk7!$D7@^]4?75MuMA!!!Pfz&)[Ef!!!Pfz#N,R^!!!8nz#Oh]n!!!,jz"7Q9j!!!,r +z"8Dir!!!&pz!VcWp!!!&tz!W2ot!'c#3!!!'"i;4T5<\%tG.=!!")@#CZXQ56(fc +!!#4`!WN-"IK0BJ!!%HJ!.OtKIK0@4J,oQK!'bu6rVup_J,oQK!$?^krVup?^]=?6!$AuVrr<$0 +^]=B7!"ZjFrr<$0huNcW!"[ufrr<$(huJ7W!!hE^It.M(n,Rrg!!hunIt.M$n,P\g!!D]j5JR7$ +p]*Oo!!Dur+5d,"p])Do!!2ip&)[Egqu?uk!!2ut#Oh]nqu?io!!)os!VcWprVuus!!)uu!;lft +rVuqI!!3'!!'^Ga^An6UJ-3Od!"ZjM*rl9Ci!p7t!!2j7#CldSJ+s+r!!!Pf!It~> +Q +q[1 0 0 1 0 0]concat +47 45 true[1 0 0 1 -1570 -2203]@X +imagemask +!!e#S!!!!0^]4?7!"ZjF!!!!0huE`W!"[uf!!!!0huE`W!!hE^!!!!(n,NFg!!hun!!!!(n,NFg +!!D]j!!!!$p](9o!!Dur!!!!$p](9o!!2ip!!!!"qu?]s!!2ut!!!!"qu?]s!!)oszrVuou!!)uuz +rVuou!!%HJzIfKHK!!%KKzIfKHK!!#4`z5C`_6!!#66!!!%M5C`_6!Pfe-!!!&8+2@jV!5K\l!!!#7 ++5d.g!8nCG!W2rU&+B]!!+6?,"9&:>&(h!`!&+r=!WE'Y&'b4T!#Q6%!<)s<%thY]!"L(On2p[U +quD6A!!2Qh&)[~> +Q +q[1 0 0 1 0 0]concat +38 45 true[1 0 0 1 -1625 -2203]@X +imagemask +!'g5Y!!3-"!!!8^&&8/U!!2Qh)uot`!&srY49.&8!$2,h!!!N0IfKHZJ:E(L#Cq<>!!g;h^]4JP +5JR7$i'5!W"5k9:!!D-aJ,fi4!!!!(huE`W&)[Ef!'fBA!!*&W!!!Q0huEcWs1eU:s8RTL&-)Z[ +!$D7@!!#7`qu?^]s6p!gJ,b$!!.XJ +Q +q[1 0 0 1 0 0]concat +37 63 true[1 0 0 1 -1664 -2203]@X +imagemask +!!)uu!!!-$J,fQS_r(Lp%tO-L!$?_N!!"*k)uos\J.;PZ5C`q +Q +q[1 0 0 1 0 0]concat +58 45 true[1 0 0 1 -1700 -2203]@X +imagemask +!!!'!!!g:>!!!Q0J047\!!"*ni-[Ka!!#1_E;1CQ!!%BH3; +Q +q[1 0 0 1 0 0]concat +51 45 true[1 0 0 1 -1757 -2203]@X +imagemask +!!!$!z!!iP>z+2I@G!!!!`!&srY!!%HJ)uos=!.4bVzqu?s%!!!#s!!@`O!!2ip!It.M!VcWq^]4?8 +p]( +Q +q[1 0 0 1 0 0]concat +73 45 true[1 0 0 1 -1809 -2203]@X +imagemask +!!!$!!!3'!z#QMRMs1eU7!!!PFn/m5>z56*Z,!,qo +Q +q[1 0 0 1 0 0]concat +56 45 true[1 0 0 1 -1882 -2203]@X +imagemask +!"[uf5C`_65PP6YhuEb%*Wt?q!!)d!#J_;Z!W3%\J.;P[rW/(1#64f)!T*kZJ-#ZMrr<)8!WN0" +!!(pWrr@NK!8mj+!.OtKDu`!#56([;!!!!`J,hP/!!#66!&srY!'bu6(]XO9++O>.!!!!@^]4?7 +!!"+Vz!$AuVz&&8/F!!!!0huE`W!!!Pfz!"[ufz#N,R^!!!!(n,NFg!!!8nz!!hunz"7Q9j!!!!$ +p](9o0E;4M!!!!Y!!Dur!!"tY!VcWp!#P\:qu?]s)up$;!-eJP!!2utrW!E.!WE-"!!`K)rW3$! +!rrB$!WN-%J-#BErr<)8!V:jA!!(pZiP9pC!-eU]i#_q!4qE0_*WQ0Nrr>:Y!!!&t!"[u~> +Q +q[1 0 0 1 0 0]concat +53 64 true[1 0 0 1 -1938 -2184]@X +imagemask +!!*$!z#QN]^!!!!0!VcWp!!!u=IK0?J!&ss#z0E;X!!!!"J!!hE^!!%KK"7Q9j!.TM"p](9oJ%u*[ +!!!"K^]=94!!%Ma!.FnJ!'e7!IfKHK++O>U!!!!0!!#66z!$?^kz+2@jV!!!!@^]4?7!!!PF!!!!" +rX[oe!!!Q0O5L!5^]4?V^]5Il!Iu9-!$AuW^^o?'&&84]&)[EuhuLP'huF;G!8n+O!"[ufi!8`O +#N,Si#Oh]un,RD0n,N^_!&+NE!!hun3!8XM"7Q:1"7Q9mp](d+huElS!!`Va!!Dur",FYl!VcWq +s*t(Ln,NH;z~> +Q +q[1 0 0 1 0 0]concat +42 45 true[1 0 0 1 -1999 -2203]@X +imagemask +huF#?!!(pW+8>g9Du`-%!!"tYJ,]KK495E]J,gVks8Tk7%tjo^huF;fp^cio#QFc)p](DH!!)co +!Pe[849,B>!!!u=!,qo<*WQ1"!!!K/!#tt="onW5!!!3'!!`K(!!!!$^]4?7!!2!Xzn,NFg!!%6Dz +49,?]!!"&?z%fcS0!!!+Oz!T3qX!!!#gz!-eJD!!!!]z!$2+?!!!!0z!!e#S!!!!$^]4Am!!2!X +!+5d,n,NH-!!%6D!.4bWp](:Y!WW&t!$D7=*WQ0^s7d*)!"],!#CldZs54!0!!E8:!Pe[9s*t*b +!!#1_!5J~> +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -2077]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -118 -2085]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -2085]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -2085]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -2085]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +45 62 true[1 0 0 1 -329 -2085]@X +imagemask +"98E$rW!'#s8W*!#QOi(rr<<(s8W*!"98E$rr<*"s8W&u!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+V!!!'"s8W+L"98E$ +s1em>s8W,7#QOi(s1ea:s8W,7!WW3"s*t(L+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz ++5d18!!!Pf#N,R^&+Bhn!!!9!&+BQ!#Q>8/!!!-$s7cQo!WW2h!!!$!s6p!g!.Y%,!!!!@s1eU7 +!!3'!~> +Q +q[1 0 0 1 0 0]concat +49 44 true[1 0 0 1 -382 -2085]@X +imagemask +#QOi(p](:!s8W,s!!!Q0s8Vus!"],0s82is&-)\0qu?^%s8W,ozrVuou!!!#uz!!)uuz!<)ruzrVuou +!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrr<$!!!!$!z +!!*$!z!<3$!zs*t(L!!!$!J,fQL!!*%Lz!<9h7zs53kW!!!$!huE`W!!*&gz!<;fozs82j +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -435 -2085]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -487 -2085]@X +imagemask +&-)Z[J,d;+s8Tn7s55"!s1n[7n/q]1_#OH(+92AVs8V!fs8RV!s1eUF^]4W/!!!PF!"[uf!"ZjF ++2@jV&&8/e^]4?F^]6TL!!!PF!.OtK!"ZjFrr<$!&&82E!!!!0^]F?5!!!Pf"8Dir!"\Q(n,NFg +&,6D!!!!!0r"%]c!!!Q/+2@jV!"])oJ,fQL&-)Z[!!!!0s8N'!!!!PerVuou!"[ERz&'+SJ!!!!0 +_u9W9!!!PFrr<$!!"ZkpJ,fQL&&:EF!!!!0^`VJ7!!!PF&+BQ!!"ZjMp](9o&&8;F!!!!0^]FE7 +!!!PF!<3$!!"ZjFIt.M!&&9:err<$0^d%l!J,g+q5QCb6!"Zk0s8RTL&&:F0s*t([^`WUV!!!PFz +!"ZjFz&&8/F!!!!0^]4?7!!!PFz!"ZjFz&&8/F!!!!0^]4?7!!!PFz!"ZjFz&&8/F!!!!0^]4?7 +!"]+Fz+90+V!!!!@s1eU7!!",@J,fQL!$D5kz&,uV0!!!!~> +Q +q[4.8 0 0 -240 640.28 2168.88]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +74 72 true[1 0 0 1 -701 -2082]@X +imagemask +zJ,fQ\z!!(pW!#P\9!!!!"n,NGNz!!2ip!'^G`!!!!$rVuqJJ,fQL!!iN(!.Vca!!!!0s*t*!huEe. +!$D7!!<;fo!T3rBs6p$gqu?`l!<<#m!WW-!!'^Scq#1j8XW0!!3-"J-#EEzs8N'!J,]KK!!#7_!!#7_z+8>g9&,lP/!!!PF!!!9%z"5j.Z#Q+Q%!!!&h +!!!9%z!;HNo#P\9!!!!"H!!!9!z!'^G`#P\9!!!!!0J,fiLz!!g:>#P\9!!!!!$huF#Wz!!2Qh#P\9! +zp](Qo!!!#W!!%BH#P\9!!-eJD4obi_!!!!=!!#4`#P\9!!"Ju/++OUk!!!!(J,g+q#P\9!!!g:> +#N,j^!!!!$^]4Vt#P\9!!!D-Z"7QQj!!!!$n,NR[#P\9!!!D]j"8E,r!!!!(n,NLa#P\9!!!i9! +!Vcop!!!!0p](?m#P\9!!$Ct9!W32t!!!!`n,NLe#P\9!!.XJ +Q +q[1 0 0 1 0 0]concat +77 72 true[1 0 0 1 -781 -2082]@X +imagemask +z!$Ct9z!!!$!rr<$!!WW3##QOh>!!!6(!!#7`s53kW#J^<>s8W,o!!!,j!!iQ(s82is!W2p^s8VRP +!!!"Ks8W-!!"XS[!$D7@s7cQr^]4?Fs8W,W!!2!X!!E9$rr<$"p](9os8Vus!!)os!!%NKhuE`W +rVuou+8u6?!!%KK!!!PFzIfKHK"5j.Z!!#66!!!&hz5C`_6!;lfs!!#66!!!"Jz5JR7!!'^G`!!#7! +!!!!@J,fQL5JR7!!"[uf!!#7!!!!!(n,NFg5JR7!!!Dur!!#7A!!!!$p](9o5MuMA!!E-!!!%N, +!!!!"qu?]sJ)C;,!!3'!!!%Ma&-)\2rVuous1gSo!!3'!!!3,8%KHJ0rVup!s1eki!!3*"!!E7O +"2Fm;rr<$(s*t..!!*$!!"])0!Up'hrr<$`rr<&o!!*%L!<<#u!;lfss6p9nqu?`r!!*'!s8Vio +!<)rus8W-!huEfW!!*%ks8RTL!WN-"s+C@L!!!-$!!*%LJ%u$a#QFc(s*u3L!!!Q/!!3+M#P\9! ++8u6@s*t.L!!",=!!3+M!.OtK5PtK^s*t(k^]8lZ!!3+M!!hE^J+*F=s*t(Op],g5!!3+M!!iE% +s53kZs*t([s+(-b!!E6$!"]+fs*t(Orr<$0s7lTo!!E6$!$D,Xrr<$(rr<$@p]19n!!iN(!$C\1 +rVup/rr<$@n,Rn;!"]*[!$C,!IK0?is*t)6huJ3+!'gM!!'fBA56(\5s1eV!huFi!!<<)W!'e7! +%tF]\q="B6^]4VT#QO;g!.Vca"7RE4n2p^N^]4E8s8V"!KE&^e!<<*!^^pJFJ,fS!s8RTOs8RTL +!$D7@!!*'!J,fQ[s82is5Q:]`!!3,h!!!Q-z5C`_6z~> +Q +q[1 0 0 1 0 0]concat +55 70 true[1 0 0 1 -869 -2083]@X +imagemask +!!!$!s*t(L!"],0^]4?75QCcQ!!!$!s8Vio!!E9$s8Duu#QOi(rr<$@s8W-!^]6V!rW!2]!.Y%, +!!2ips8RTL!.4hIrVuou*Wc<9!!!!'"97ij!!!!(s53kW!!!9(J,fQL!"])0z&,uV0!!!!@rVuou +!!",=z!$Ct9z+8>g9!!!!`n,NFg!!#7Qz!'fBAz5MuMA!!!"KhuE`W!!%MaGQ7^D!.Ve6zJ%uTQ +!!!"K^^'?/!!%M!!W2ot!.TM!rVuouIt.P!!!!"KJ,k(L!!%M!!.TM!!.TM!J%u$aIt.NK^]4@a +J,k)7!!%M!!.Wo,!.TM!J)C;,It.NKhuEaAJ,k)W!!#66!.Wo,!'bu6J)C;,5C`b6huEa!^]=DM +!!"+V!<9h7!$AuVs1eU7&)[Kg^]4?FhuWk.!!!8^!WRZM!!huos*t(L"8DuuJ,fQLp]LNr!!!"H +"9/?0!!"&Brr=.V!"X_^!'frQ"7uNmJ,TEJs8N*!rVuqJrrN/:!!"**!WRZM!!FBrrr<$!!!gFAz +"6][azs8Duu!!!!`rVuou!!!9'z!!2utz!.4bHz$ig~> +Q +q[1 0 0 1 0 0]concat +77 71 true[1 0 0 1 -922 -2082]@X +imagemask +z!!2Qhz!!!!0rVuou!It.M!.Y"K!!!+O!!!-$s1eU7!Pe[8+92B!!!!#W!!*'!s6p!g!:Tsns8W,s +!!!"H!.Y%Ki-kY+!'^Scs8N'@!!!!`s8W,o!"XS[!$D7@s53k^^]4?Fs8W*!!!D-Z!!iQ(p](9p +n,NFjs8Tk7!!)co!!3-!zHiO-Hs7cQo!!%HJ!!!-#z56(Z`!'^G`!!")@!!!!0^]4?7*rl9@!!hE^ +!!"*k!!!!$n,NFg%tFW[!!2ip!!!PFzqu?]s&&8/F!!)uu!!!8>zIfKHK#N,R^!!%KK!!!8^zIt.M! +#N,R^!!%M!!!!8^zs1eU7#Oh]n!!*&7!!!,j!!!!"s1eU7"7Q9j!!3+M!!!,j!!!!$s*t(L"7Q9j +!!iOS!!!,r!!!!0rr<$!"8Dir!"]&/!!!,r!!!!@rVuou"8Dir!'gA]!!!,r!!!"Kqu?]s"8Dir +!<;fo!!!,r!rr?$n,NFg#P\B$!<:sW!!!9!!rr?$huE`W#P\B$!<9h7!!!9!"+UCO^]4?7#P\CO +!.TM!!!!Q)"+UB$J,fQL&,67B!'bu6!!!Q)!Pe[WJ,fQL+8>lP!$AuV!!",9!T3qg^]4?75O\^3 +!!hE^!!#7Q!:Tsjn,NFgJ+*I5!!)co!!*&g!-eJDHiO-Is53m)!!#1_!!E8Z!'UA_%fcS7s1eV! +!!!7S!"]+F!$AuV!<<*As*t(khuE`W!.Y"K!"\i)!!!'"rVup'rVuou#QO]%!!E8:!!#7`p](9p +s8E!'s8VQg!!*'!s8W-!huE`W5QCc`s8RTL!!",@s8W,uz"98E$s7cQo!!!$!s8W,7z!$D7@rVuouz +J,b$!!!!~> +Q +q[1 0 0 1 0 0]concat +58 70 true[1 0 0 1 -1013 -2083]@X +imagemask +!!!!`s53kW!!!'"s7cQo!!!Q0s82is!!#7`s8N'!!!%NKs8RTL!!3-"s8V!W!!E9$s8VQg!!iQ( +^]F?5!"],-!!%HJ!$D71!!"*k!'gM!!!!,:!.Y"K!!!#7!.XtJz!<;foz!<;Ngz!WV'Xz!WTq8z +"93lOz"93lOz"9/?$z#Q=]'z#Q=]'z#Q+Q%z#Q+Q%z&,[LLz&,8BIz&,68)z&,6/(z&+BQ`J,fQL +&+BQ@^]4?7&+BQ@huE`W&+BQ0huE`W&+BQ0n,NFg&+BQ0p]/)0&+BQ0p]L!c&)[Eup]pQo&)[Eu +r#bq=&)[Eus8W&u&)[Eus8Vus&)[Euq>^3i&+BQ0pj_3%&+BQ@pclOo#Oh^8p^b.?#Oh^8p]lz!WRZMz!'bu6z!"XS[z +!!*'"~> +Q +q[1 0 0 1 0 0]concat +64 83 true[1 0 0 1 -1071 -2070]@X +imagemask +!!!9!z!!",@J,fQL!!%NKn,NFg!!*'!qu?]s!!3,XIfKHK!!3,8%tFW[!!E6$#J^<>!!E3#"7Q9j +!!iK'!VcWp!!iE%!;lfs!!iE%!.FnJ!!i9!!'UA_!!i9!!'^G`!!i9!!'bu6!!i9!!$?^k!!i9! +!$AuV!!i9!!$AuV!!i9!!$AuV!!i9!!$C,!!!i9!!$C,!!!i9!!$C,!!!i9!!$C,!!!iE%!$C,! +!!iE%!'fBA!!iE%!'fBA!!iE%!.Wo,!!iE%!.Vca!!iE%!<9h7!!iE%!<7QL#RC8-!WRZM%M/I; +"9/?$&-)P-"9/?$"989!#Q=]'!WVop&,lP/!.XbD&,ZD-!$C\1+8>g9!!2!X5PP3Yz5O\XQzJ)C;,z +s1eU7!!!!"s1eU7!!!!"s*t(L!!!!$s*t@T!!!!$s1f$C!!!!(rnngt!!!!0rcgU,!!!!0r'12] +!!!!@p`KNd!!!!@p^dCT!!!!@n-Asn!!!!`huiuZ!!!!`huWfW!!!!`^]=?6!!!!@^]8`^!!!!@ +^]6=o!!!!@^]4oG!!!!0J,fQL!!!!(^]4?7!!!!(^]4?7!!!!$^]4?7!!!!"huE`W!$D7AhuE`W +!+5d,Du]k +Q +q[1 0 0 1 0 0]concat +66 72 true[1 0 0 1 -1140 -2082]@X +imagemask +!!!!`p](9o!!!!$s8RTLz+92AVz!.Y%Kn,NFg!!3-"s7cQo!!!-$s8Vus!!!!(s8W-!z+92?@5C`_6 +!'gMY!!hE^!!#7`^]4E)!!!"Krr<$!HiO-Hs8Duu!'UA_!WVop!!"*k!!3,h!!!!0^]4K:huE`W +#N,Res1eU7!!hE^#QK;S!!!,j!!iN(!!!!"p](j(z!W2p.rVuou!!2ut+8c*=!!!#u!$Ct9zrW"&8z +!<3$@n,NFg!!%KK5O^W4!!!"K!'ft&zIt0cA+5d,!!.TM`i!9#W!!%M!5MuYA!!!"KJ3UgMrVuou +J&":a!<3$!!.Ve6^]=Cb!!%MaJ%u&6^]4@a^jj-"J%u$as1j-"!.Vca!<9ia^]6UW!!3,8It.M` +huEfXJ:E(L5MuMDs+#TL!'fBA#QK<=J,k)W!$D4@5C```huH"A!'bu6J)C>,rW#05!.XJKs82j] +^]8las8Vio5JR8Ks8W,g!$AuVs53kVhuFk7!<:+>s1eUV^]=DNs8Duu&)[Hf_"[m0!"[ugs+#Is +!!!Pf!WRZk!!!!(n,`Q>%fcS0"7Q?kJ-Wji!!Duss*t40!!!#s!WRZNn,NFg4otZ`!-eJD!$;7A +!!#+]!!!7Trr<&u!!!!"nc&Rkrr<$!!<2uu#QK;S!!#7`!"]+f!!!!0It/X@n,NFg"s8@[s7cQo +!!!PFJ,f9D!!!!$^jl7fz!T="Iz!!$tfhuE`W!!!!Y5JR7!z#TnQsz!!!N0z!!!!(zz!WW3#~> +Q +q[1 0 0 1 0 0]concat +67 79 true[1 0 0 1 -1210 -2072]@X +imagemask +z!$?^kz!!%Maz!!!$!n,NFgzs7cQoz!.XtJz!!#1nz!!!!=#CldSz(^%PRz!!i\bz!!!!"n,NFg +&-)\1!;HO"!&+BQ!!)uu(]\d\!!!#u!"K#,zIfKu[rVuou!.OtRL]7>S!!%KK"98CO!!!"KJ-#]M +J,fQLIt.P!s1eU7!.TM!J,J4)!!%M!!'g6t!!!!`^]5JGDu]k<5JR7(^c2;o!'e7!!!#+]!!#7! +!!!!?!!!!`^]4?7*WQ0?5JR7!!$;1@!'e7!!!")@!!#7A!!!!@!!!!`huE`W5C`_65MuMA!'bu6 +!'fBA!!%KK!!#7A!!!"K!!!!`huE`Wrr<$!5MuMA!<3$!!'fBA!!3*"!!#7A!!!'"!!!!`huE`Z +rVuou5MuMA"9&9#!'fBA!!iK'!!#7A!!!9%!!!"KhuE`fqu?]sJ)C;,&,ZD-!.Wo,!$D1?!!%N, +!!",?!!!"K^]4@!rr<$!s1eU75PK[.!<9h7!.X$Z!!*&7!!%N-^]4E8^]4B7^u,1ps1eU7s1iRR +"93lO!<7R3!!iOS!!3+M*WR;^J,fWMJ.I21s*t(Mrr<0$s8N'!!WN-#s8W&u!!3*"!.Y%D!!!'! +!!#7`huE`XrVup/s*t(L!<)ru#Oh]n!!)uuz!!!#uzzIK0?Jz!'^G`z!!#4`z!!!!@J,fQLz%tFZTz +!!g:ErVuou!!!,:5Q:]`!!!!"i;`h-z!;$6jhuE`W!!%NKs6p!g!!!!`s8Vioz+91hXz!"]*[*WQ0? +!!!9'!"T&0!!!!"qu?hLz!;HNpJ,fQL!!$s +Q +q[1 0 0 1 0 0]concat +56 71 true[1 0 0 1 -1282 -2082]@X +imagemask +!!",!!!!!"!<;rs!!!&9s8RTL!!2ios53kW!<<)7n,NFgJ,]L2!!!"KrW!u>!!#7]!"XS[!$D+= +#J^<>&,6,,huE`^p](Ec!!!,j!!2ip!!2Qh!VcWp!:Tshqu?]s?iU3+!!!!A!!)uuz!<)ruzrr<$! +!!!$!z!!%KKz!.TM!zIt.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!*%Lz!<7QLzs*t(L +!!!$!J,fQL!!*%Lz!<7QLzs*t(L!!!$!J,fQL!!*%Lz!<3$!!!!!"rr<$!!!!'"z!!3*"z!WN-" +!!!!"rr<$!!!!'"z!!3'!z!WE'!!!!!"rVuou!!!'!z!!3'!z!WE'"zrW!$#!!!"J!!@`O!!%KK +!It.M!'^Ga^]4?7*rl;V!!!!0J,nL-!!!,:!8mhW!!0k8Du]ks6p"!!!*'!^]4H: +!'gG_z&+BQ!!!~> +Q +q[1 0 0 1 0 0]concat +55 82 true[1 0 0 1 -1337 -2071]@X +imagemask +!!!-#z!$D6Vz5QC3Q!!!"Ks82is!!*&W4obQ_!WRZ\!!!!"rr<:S!!!-#!!C":!!E3#!T3qX"8i-! +n,NFjqu?`l!!!-!!!%6D!!E-!!.4bH#P\9!HiO-Op](;C!!!9!!!%HJ!!i9!!.OtK#P\9!IfKHR +p](;D!!!Q)!!%KK!"\i)!.TMY5PP3YIt/X@p](;DJ.M\T!!%M!"98,r!.OtLs6p!gIfKIuhuEcW +!!!PF!!*$!z!<3$!zrr<$!!!!'!z!!3'!z!WE'!!!!!"rVuou!!!-#z!!E-!z"8i-!!!!!$qu?]s +!!!-!z!!iE%z#P\9!!!!!(p](9o!!!9!z!!i9!z&,6,)!!!!0p](9o!!!Q!z!"\Q!z&+BQ!!!!!0 +n,NFg!!!Q!z!"\Q!z&+BQ!!!!!(n,NFg!!!,jz!!D]jz!VcWpzp](9o!!!"Hz!!#1_z!$2+?z%fcS0 +!!!!(z!!!+O!8mhW!!0k8?iU0,!8mir!!!7S?iW.d!$C,!!&srYJ+s!D)up!=rr<$?!!3-"^]4lF +#QOhn!!g:]s588)#Om6CJ.;P]s8W&u!WW9$s82is!!*'!n,NFg!.Y%,z5QAM!!!!!@rr<$!!!!Q-z +!!D]j!!!~> +Q +q[1 0 0 1 0 0]concat +71 71 true[1 0 0 1 -1392 -2082]@X +imagemask +!$2+?!!!#o!!%M!!!!!"rVuruhuE`W"9/?%s6p!g!!iP>"98,r!!!9(i!9;]!!!!0s6p9n%fcS0 +&-)D,rW@ZN!"],-!W2u6!!",=%KQ8(huEa!p]:Hb!8mhW+7K71DufA-!$C,!!$D8d!!",!!!",A +HiO.2huE`W!.4bH5JR7!!!%HJ!'e7!!!!"J!!#7!zIK0@4^]4?7!.OtKIt.M!!!%KK!.TM!!!!"K +!!%M!zrr<'!J,fQL!<3$!rr<$!!!*$!!WN-"!!!$!^]XT:zs7d-(z!<<*!rVuou!!3*As82is!!!'! +#QO]%!!!!"rW3&gz!WE'`^]4?7!!E3#&,6,)!!!-#!!3'!!!!!$qu?_HJ,fQL#Q+Q%&)[Ef!!iE% +!"\i)!!!9%!!!Q/!!!!0rVup?s*t(L&,lP/+9-ik!"])0!'frQ!!!Q,J,hgl!!!!0n\>,h^]4?7 ++7S1gJ%u$a!$C]L!.Vca!!",12uru/!!!!@n/_W1J,fQL+5dZ^s*t(L!$C,$s8N'!!!!Pf!WW0" +!!!!0huNfVz&)[FPrVuou!!hE^&,ZD-!!!8^!!D]n!!!!$n,NFg"onW'!Up'h!!WE'!!2Qh!!!6( +!!!#g!!!!(zGQ7^D%fcS0!&srY!"T&0!!#+]!!")@!!!!?!!!!@J,fQL%fcS05C`_6!!e#S!.TM! +!!!,:!!3+M!!!!"n,N^nJ,fQL!.Fo4rr<$!!!#7`s8Duu!!!!0s8Vusz"98Djz!!*'!^]4?7!!!!0 +rVuo~> +Q +q[1 0 0 1 0 0]concat +67 71 true[1 0 0 1 -1458 -2082]@X +imagemask +z!!iN(!!*'"!!*'!huEk0!!!9(s6p!h^]4@!s8Vio!Pe[9s8W,s!!2!X&-)\0qu?`d!'gM`s8Duu +p]:Eps8W&u!.5%Os8W-!!!%Its8VQhrr<$`s8W&u!'bu6+92B!!!"*k!$D7@!!!!(J,g,[qu?]s +"+U@Vs53kW!!C":#QK;S!!!&8!!%Ma!!!!"^]4?F^]4?7!5JR7!T3qX!!(pW!!)Kg!!!",!!!!Yz +?iU0,)uos=!+5d,!$2+?!!#7a!!!K/z!!!!0zz%tFW[z!"ZjFz!!!Pfz!!!!@huE`Wz+5d,!z!$C,!z +!!#7Az!!!!`huE`WzJ%u$az!.Vcaz!!*&7z!!!$!J,fQL!!!!"s*t(Lz!WRZMz!!E6$z!!!-$z!!!!( +rVuouz#Q=]'z!"\u-z!!!Q-!!!+O!!!!0p](:)qu?]s+8>g9+9-ik!$Ct9!$D5k!!",1!!#7Y!!!!@ +n,NGQhuE`W+7K715MuMA!$C,!!'fBA!!",!!!",!!!!!0huEa!huE`W&)[Ef+7K71!!hE^!$C\1 +!!!8^!!",1!!!!$huEa!n,NFg!T3qX+7K71!!)Kg!$C\1!!!#g!!",1zGQ7^cn,NFg!'C5]5O\XQ +!!"&?!'frQ!!!!(!!%N,z"2Fp:huE`W!!2j"s53kW!!!"Ks8Tk7z+92@kz!!E9$z!!!!`p](9~> +Q +q[1 0 0 1 0 0]concat +108 72 true[1 0 0 1 -1524 -2082]@X +imagemask +!!!'#z!!!!1!!!'##64`H!rr<$!&srY!rrj^!&+Y.!!!!]!!!+O+2@k9+2@jV!.OtK!Pj3C!'WX* +!!!"KJ,fW.s6p"1s53kW!<9h7!<<)s!"],!!!!$!n,NH"8i-!It.e!!!!!$huElW!!%M! +#P\9!!!D]j"8i-!It.Xr!!!!"n,NRg!!%M!"8Dir!!2ip"8i-!It.Xr!!!!"qu?is!!%M!"8Dir +!!E-!"8i-!J%u0a!!!!$qu?is!!%Ma"8i-!!!iE%"9&9#J%u0a!!!!0qu?iu!!%Ma!W2ot!"\u- +"9&9#J%u*_!!!!@p](Eq!!%Ma!W2ot!'g5Y"9&9#J%u'`!!!"Kn,NRi!!%Ma!.FnJ!<;Ng"9&9# +J%u%J!!!$!huElY!!%Ma!$2+?!WTq8#Q=]'J%u%+!!!'"J,fiR!!*&7!"T&0"93lO#Q=]'s1eU> +J,f]O!!!9'!!*&7!!0k8"9&9#&,lP/s*t(OhuElW!!!Q-!!*%L!!hun"8i-!&,ZD-s*t([qu?io +!!",=!!3+M!"]&/"8Dir+8u6@s*t([s*t.F!!#7_!!3,8!$D6V!VcWp5Q:]cs1eUVs6p$`!!%NK +J-5i0!$C\A!-eJDs80S:s6p"Qn,NGN!!3,ii",g3!'fBA!'UAbs7#f5r]C0FhuEa!!"]+fJ,fEf +!.Vca!"Zkps1gl!r"">X^]4?:s8W+L&-)D0oDcT+!!3-"rr<0$n,`RhJ,fQLs8W&u!<9h7s8RTL +!!#7`qu?]s!!#7`z&-),!z+9)<@!!!$!J,fQL!!!9'zzz!;HNo~> +Q +q[1 0 0 1 0 0]concat +86 70 true[1 0 0 1 -1628 -2083]@X +imagemask +!!!8^z!.Y%L!$Ct9!!!!"^]4?75PtK]!!!,Z!!!"Krr<$!!!Dur!!*'!J,fQL#Q+Q%!<<)7!!!!( +rr<$!J)Tks!!!Q0J,fR6J9V%o!$D6V!!")@)uos=+91g1!"Ju=!!!!`r&=ZV%KH_6!!#7Y#QOi- +!!g:>!.XJ@z"2Fm:5O\XQ!!!!$huEaAhuE`W!!!&h!!#7Az!!2Qh!'e7!z!Up'hJ%u$a!!!!"p](;D +^]4?7!!!&p!!%Maz!!)os!.TM!z!;lfsIt.M!zqu?_HJ,fQL!!!#s!!%M!z!!)uu!.TM!z!<)ru +It.M!zrVuqJJ,fQL!!!#u!!%M!!!$C,!!)uu!.TM!!;HNo!<)ruIt.M!49,?]rVuqJJ,fQk!!!#u +!!%M!!!!O[!!*$!!.TM!!!g:>!<3$!It.M!"5j.Zrr<%KJ,fQOn,NIg!!%M!!!!,r!!*$!!.TM! +!!Dur!<3$!It.M!"8i-!rr<%KJ,fQSqu?`s!!%M!!!!Q-!!3*"!.TM!!"\u-!WN-"5C`_6+8c*> +rVup_J,fR6p](?o!!#66!!%ND!!3'!!$?^k!.XJ<"9&9#&&8/Fs53kZrVup'^]4E8^]4K9!!!8> +!!3,8!!E3#!!C":"93lO#Q=]'!T3q[rr<$(rVuouhuElY!!!9'!!!"D!!E-!!"])0!!E-!"8i-! +&,uV0"9&9&p](:9s*t(Srr +Q +q[1 0 0 1 0 0]concat +77 76 true[1 0 0 1 -1711 -2082]@X +imagemask +z&,ZD-!!!-%!!3-"^]4?7"onW6s8VQg!!!N0!.Y%Kqu?]s#J^HAs8W*!!!!,j+92B@s*t(L!WW3" +s1f0'!!!$!s8Vio!Up'h!<<*!^]4@^!!!"Ks8Duu!$2+?!'gMY!!!!0!!!!@s1eU7!!g:>!"])0 +!!!!$huE`^n,NFg!!2Qh!!2Qhzp](9oHiO-H!!)os!!#1_zIK0?J*WQ0?!!%HJ!!!N0z56(Z`#CldS +!!#66!!!8>z++O=k#J^<>!!"+V!!!,Zz+2@jV"7Q9j!!"+V!!!,jz+5d,!#Oh]n!!!Pf!!!9!z&)[Ef +#P\9!!!!Q!!!!9!z&+BQ!&,6,)!!!Q!!!!Q)z&+BQ!+7K71!!!Q!!!#7Qz&,6,)J+*FgHn,NFg!!",9!"\Q!z+8>gHn,NFg +!!#7Y!!hE^z5PP3`huE`W!!#7Q!!D]jzJ+*F=n,NFg!!%N +Q +q[1 0 0 1 0 0]concat +83 91 true[1 0 0 1 -1794 -2063]@X +imagemask +z0E;(Qz!!!"Dzz!!%HJzz!'^G`zz5C`_6z!!!!`huE`Wz!!#7Qzz!'g5Yzz+8>g9z!!!!@n,NFgz +!!",1zz!$C\1zz+7K71z!!!!@n,NFgz!!",1zz!$C\1zz&+BQ!z!!!!0n,NFgz!!!Q!zz!"\Q!zz +&+BQ!z!It.\n,W@d!!!!"J,g,L#QFc(!!!&8!"\Q`s1eU7!!(pW&+T]"n,NFg!:Tt!s8W,ozGQ89S +s8Vus!!!!]!"],0s8Duu!!#1_+92B1*rl9@!$?dls8RTSJ,fQL&-)\0qu?i7!!!!0s8W,W!!0k8 +!!!9(s8N'!!8mhW!!E9$p](9ohuE`W!<<)g!!!#gzJ,f!g949,?ln,NGQn,NG1 +!!!Q!!!%N&+BQ!s53kW#N,Rmn,NIg^]4?:huF;W!!3+M!!!,j!"\Q! +!WRZM!!Dur&+BQ"rr<$!"8Dj,n,NLg!!!!(p](io!!3'!!!!Q-!"\Q!!<)ru!"\u-&+BQ!qu?]s ++8>gHn,NH9!!!!`p](io!!#+]!!%Ng9+9) +Q +q[1 0 0 1 0 0]concat +81 80 true[1 0 0 1 -1877 -2078]@X +imagemask +zz$ig8-z!!!"Kzz!!3,8zz#QO8nz+8c*\s82j"!!!'"s+#V!rr<6'!$D7@i;`g!J.DV[J,fQEs82tL +#ClpVs8W-!n,Rt@n/q]1s8W,W!!!'"s8W,7&-'EF!!*'!s7cQps*t(L!<<*!^]4@azJ,fKJ!!"&? +!!!!`s7cQo!"T&0!!",@^]4?7#CldS!"])0!!!!$^]4?7#Oh]n!!!&h!!!!"n,NFg!!)Kg!!!"Hz +!;HNo!!#1_zHiO-H!$2+?!!!"Hz%fcS0!!#1_!!!!(J,fQL!'UA_!!!8>z56(Z`!!g:>!!!!@z"5j.Z +!!"*k!!!!$n,NFg!$?^k!!!,jz+2@jV!!hun!!!!0^]4?7#P\9!!!!PF!!!!(p](9o!"[uf!!!Q)z +&)[Ef!"\i)!!!!0huE`W+8>g9!!!Q!!!!!`n,NFg!"\Q!!!#7Qz&+BQ!!.XJg9!!!!@p](:9p](9o!!",9!!!Q!z +!$Ct9!"\Q!z+8>g9&+BQ!!!!!`p](:!huE`W!!#7Y!!!8^z!'frQ!!D]jzJ+*F!!!!(J,fQL+9-ik +!!!,:!!!"Ks*t(L!!%NL!!E9$z!!%NKs8W&uz!WW3"s82is!!!!$s8W-!p](9o!!!-$s8W,Wz!!E9$ +s8RTLz"98E$rVuou!!!!$s8W,Wz!!!'"s53kWz!!*%Lzz!.4bHzzGQ7^Dz!!!!Yzz!!!i9zz!"8i-z +~> +Q +q[1 0 0 1 0 0]concat +85 71 true[1 0 0 1 -1959 -2082]@X +imagemask +!!!'#z!.Y%M!!`K(!!!!"^]4H:%tFW[!!!&X!!@`n^]4?7!!Dur!PgqXz"8i-!nGi7`!!!!(rVuru +s82is!!!9(J,k*!rVuou!"]+F!'gM0z+917!+9.+H!!!!@rqHI(rr^%:!!#7](]Xg?!Up'h!'g5Y +!!2utp](9o5O\XQ!-eKk!!!!`n,NFg!!#1_!!#7Az!'^G`!'fBAz*rl9@5MuMA!!!!@J,fR6^]4?7 +!!!O[!!#7!z!"ZjF!'e7!z&&8/F5JR7!!!!!(^]4@!J,fQL!!!8^!!#66z!!hE^!'bu6z#N,R^5C`_6 +!!!!(n,NGQJ,fQL!!!8n!!#66!!",A!!D]j!'bu6!,qo<"7Q9j5C`_6HiO-Kp](;DJ,fQj!!!,r +!!%M!!!!N0!!Dur!.TM!!!e#S"8DirIt.M!#J^ +Q +q[1 0 0 1 0 0]concat +70 72 true[1 0 0 1 -2050 -2082]@X +imagemask +!!!!`rr<$!!!!!(s8Vioz+92B@z!<<*!s53kW!!3-"s8Vio!!!9(s54"Y!!!!0s8Duu5C`_6+91g1 +!!g:>!'gM!!!!&X!!%NKzn,NIgrVuou!.4bHs7cQo!!#1_!WVWh!!!!?!!E8Zz%fc_3^]4?7!"XSb +s*t(L!!!8>#QK;S!!!!(^^'l>z#N--lz!!D-iqu?]s!!!,j+8c*=!!!!$n/qE*z"7RE-z!!E!!T3qX!!!!$huN6Hz!T3r?z!!2Qh#QOi)!!!#gz +#CldSp](9o!$C,!!-eJD!!%ND!!#+]!!!'"rVup>!!!!(s8N'!%fcS0&-)Z[!!e#S!'gM`^]4JP +!!*'!s53kXhuElZs+0Y>!;HO)s82k9!!#+]5QC3Q(]XOXJcGbc!#P\9#QOi(!!!E-!!3-"qu?^* +!!!"Ks6p!g"98E%&-'EFz!!3*"z!!!!=z~> +Q +q[1 0 0 1 0 0]concat +71 73 true[1 0 0 1 -2125 -2082]@X +imagemask +z!!e#Sz!!#7!!!!!#!!!$!n,NFg#64`+s7cQo!!C":&-)V/!!!&X!$D7@zp],gDs*t(L!.P+Ns8Tk7 +!!#7`s8W,W!!!!@s8Virn,NFg&-)[F!;HNo!!E9$!!#+]!!!'"qu?^ +Q +q[1 0 0 1 0 0]concat +70 72 true[1 0 0 1 -2192 -2082]@X +imagemask +!!!!@^]4B8!!!!"s6p!jJ,hh7&-)D)"2FnE!'gM]!!hunDup"=rW!2u!&tMhs8N'(qu@i=s8W+L +&,uV?s8W*(^^pHq#QOi!!T5("^^'o>^] +!!!$!J,fQOhuE`Ws*t(L!T3qX!.Vca!!)Kg!!"+V!!!"D!!!!0^]4?749,?]"5j.Z!$2+?!!2Qh +!!!N0!!!#o!!!!(J,fQL2uipY"2Fm:!#P\9!!%NLz~> +Q +q[1 0 0 1 0 0]concat +86 71 true[1 0 0 1 -2257 -2082]@X +imagemask +z!!",!zz!<;Ngz!!!!(s82isz!!",@rVuouz!.Y%Kzzs8W,7!!!!9!!!-$rr_0Z!!!u=!"],)!;HNo +!"Ju/5QBXA49,?]#64c(s*t)5!!!!$^]XW9!!")@!!!&p+92*9!$?^k!!*'!s6p!g&&8/F!'gM` +^]4?FhuE`W+92?@!!!Pf!!!!0s82is!"\Q!!!!9(n,NFg&+BQ!!!3,8!!!!(p](9o!$?^k!!!9!z +"2Fm:!!i9!!!!!"huE`W#P\9!!!!#g!!!!(qu?]s!!%6D!!!9%z!'UA_!!iE%z*rl9@#Q+Q%!!!!0 +J,fQSqu?]s!!!O[!!!9%z!"ZjF!!iE%!+5d,#J^<>#P\9!p](:!huE`fp](:V!!!8^!!!Q)!!")@ +!!hE^!"\i)!"XS[#Oh]n&,6,)#J^p](:9s1eU7%KHM(!!#7` +huEcW!!)co!.Xh6!!E7O!-eJDJ,&d=#QMR>49,E^n2p[ms53l@!!E8j*WSG)n,OO1&-(Pu!<<)o +!"Zkps54.^s8N3%#QOi(^]XW:qu?]ts8W+L!WW2h!!!$!s8N'!s8Tk7!!#7`rVup_s*t(L!"],) +!!!Q/z!<9h7!!Dur!!~> +Q +q[1 0 0 1 0 0]concat +108 71 true[1 0 0 1 -2340 -2082]@X +imagemask +z++O=k!&srY!!!$"!!*&W!!!9(^]4?7!It.Ts7cQo5QC3Q!!!,:!$D7?!!*'!p](9o!T3rBs8RTS +s8W&u!!!#o!<<*!i'78Arr<$!!.4nKs8W-!s8EPE!!!!`+926>s8W,g"5j.Z!$D7@huH"As*t.> +!!!!0s8RTL&-)V/!;HNo!!iQ'!!!9(p](;A!!!!$s82is!WTq8!'UA_!!3,h!!!#u!!!!`zJ)C;, +!,qo!!!!@huE`W!!D-Z!!e#S!$C,!!!!!"n,NFn^]4?VhuE`W!!)os!!D-Z!$C,!z +HiO-Kn,NG1n,NFg!!#1_!!D]j!$C\1z56(Zcn,NG1n,NFg!!")@!!D]j!$C\1z++O=lp](:9huE`W +!!"*k!!2ip!$C,!!&+BQ%tFW\p](:9huEcT!!!PF!!2ip!$C,!!'UA_&&8/Gp](:9huE`f!!!PF +!!2ut!$C,!!!e#S#N,R_qu?^=huE`Z^]4Vt!!2ut!'fBA!!D-Z#N,R_qu?^]huE`Xn,N^_!!2ut +!'fBA!!2ip#Oh]oqu?^]huE`Xp](Qg!!2ut!'fBA!!E-!#Oh]oqu?^]huE`Zqu?uk!!2ut!'e7! +!!E-!#Oh]oqu?^]^]4?>qu?us!!2ut!'e7!!"\u-#P\9"qu?^]^]4?Vqu?us!!3'!!'e7!!'g5Y +#P\9"rVup_^]4@an,N^g!!3'!!'e7!!.XJ<#P\9"qu?^]^]4B7huF#W!!2ut!'e7!!WTq8#P\9$ +qu?^=^]4E8J,fiL!!E-!!$AuV"9/?$#P\9$qu?^-^]4K9!!!9!!!E-!!"[uf"9&9##P\9(qu?^% +huElW!!!Q)!!iE%!!D-Z"8i-!&,ZD!!!~> +Q +q[1 0 0 1 0 0]concat +74 72 true[1 0 0 1 -2444 -2082]@X +imagemask +z!!!N0!!!!@J,fQLJ)C;,!.Wo,!!3,p!!!$!p](9rs82is!WW-!!!iQ'!!!-$rr<$0s8N'!"98D: +!$D7@J,fWMs53l!s8V!W!<7W>!'gM(n,NH;!-eK.rW%0C!-eK-!.XbD)uosu!"T'ZhuEl[!"],8 +JH*Cb!WW3#!!C%:^]4?7!!!!$i;\<-z!!2Wizzq>UEpz!!)uszzJ,TEJz!!%NHzz5PtK]z!!#7Yzz +5PP3Yz!!",9zz+8>g9z!!",1zz&+BQ!z!!!Q!zz&+BQ!z!!!Q!zz&+BQ!z!!!Pfzz&)[Efz!!!Pfzz +&)[Efz!!!Pfz!!"+V&)][fz&-)\0s53kW!!!9(s8W,gz"98E$s6p!gz&)[Efz!!!Pfzz&)[Efz!!!Q! +zz&+BQ!z!!!Q!zz&+BQ!z!!!Q!zz&+BQ!z!!!Q)zz&,6,)z!!!Q)zz&,ZD-z!!",=z!!iQ)+8u6? +!!!!=!!",?z!"Ju/5L0<3J,fQS!!%Mh!"[uf!!@`OJ&d']p](9p^]=CeJ3Wr3!!)Kjs+.t8rr<$! +r"&gXi;_`N!!%NKrr@'=^d%l"5QC``49'g2!!",@rW"&?J,fQL&-)P-&,uV0!!!9(p](R!z"97ij +!WE'!!!!'"huEcVz!<7QL!'UA_!!!"D!!!!=zz!!E9%~> +Q +q[1 0 0 1 0 0]concat +77 90 true[1 0 0 1 -2516 -2063]@X +imagemask +z+7K71z!!*&uz!!!!$s8RTLz!"],0huE`W!!!!@s+'kEz!$D1?*WQ0?!!!!`qu@6-z!'g5Y"2Fm: +!!!!@n,NLIz!"[uf!-eJD!!!!(huEa>z!!C":!$2+?!!!!"^]4?Fz!!'e7!"XS[zJ,fQS^]4?7z +!!D-Zz!!!!$n,NFgz!!2Qhz!!!!"p](9oz!!)osz#J^<>rVus!!!#7A!!%HJ!It.Ms7cQoIK0Da +!!iQ%!!#4`!8mi!s8Duu56(\&!.Y%K!!#66!'CA`s8N'!5C`_Us8W-!J,g[A!$D7@rr^%:+2@je +s8ViohuFk7!!iQ(huI]r+2@jYs8RTL0E<31!!3-!z&)[EfJ+*F!!!9! +!$2+?#N,R^#P\90J,fi4!!!9!!!g:>#Oh]n#P\9$huF#O!!!9!!!2!X"7Q9j#P\9"n,NR[!!!9! +!!2ip"8Dir#P\9"p](Ek!!!9!!!E-!"8Dir#P\9(qu?io!!!9!!!iE%"8Dir#P\90qu?io!!!9! +!$Ct9"8i-!&,6,hp](Eo!!!Q)!.XJ<"8i-!&,6/)huElW!!!Q)!<9h7"8i-!&,62*^]4K7!!!Q) +"93lO#Q+Q%&,68,!!!9%!!",9"9&9##Q+Q%+8>s9!!!9'!!",1"8i-!&,lP/+7KC-!!!Q0!!#7Q +"8Dir&,uV05O\^K!!",@J,k)g!VcWp+8`hRs6p$`!!#7ZhuWlI!-eJDJ,&L8s6p#5!!*&gGR+9< +!'C5^s6r2_s53ku!!E8j%mU*P!"T&?s54.^s*t(Si'77W"98B$!!E9$s1eX7qu?]ts8W+L!.XbD +!!%NKrr<$`n,NFg5QC]_!"[uf!!!9(p](9r^]4?7!<:sW!!%NL~> +Q +q[1 0 0 1 0 0]concat +56 87 true[1 0 0 1 -2599 -2071]@X +imagemask +!!%NHz"98D:!!!!$s8Vio!!!-$JGoNK!!E6$++O=k"9&9*huE`ZrW!&q!!!-#!!2ut!!E3#!<)ru +"9&9#IfKTVrVup_J-QVa!!"+V"98?#!$AuVs82is&)[G;qu?^-huFks!!!8n!!Dur!!hunz#P\9! +!!!!$p](9o!!!,rz!!E-!z"8i-!!!!!$qu?]s!!!'!z!!3'!z!WE'!!!!!"rVuou!!!'"z!!3*"z +!WN-"!!!!"rr<$!!!!'"z!!3*"z!WN-"!!!!"rr<$!!!!'"z!!E6$z"9/?$!!!!$rr<$!!!!9(z +!"])0z+8u6?!!!!`rVuou!!%NJ!!!6(!WW-!!!hEms82is"98E$p](9ps8W,g!!!'"s8V!W!!*'! +s1eU7!.Y%Kz&-),!!!!!$^]4?7!!!#gz!!"tYz!#tt=z%fcS0!!!!(J,fQL!!!,:z!!2!Xz!Up'hz +p](9o!!!#sz!!)osz!.FnJzIK0?J!!!"Kz!!%KKz!.TM!zIt.M!!!!"KJ,fQL!!*&7z!WTq8"9/?+ +s1eU>s8W-!^]4oFs8W,7!"],0s8RTL&-)\0s*t(Ss8W-!!!!-$s8W&u!!E9$s7cQo!W2otzp](9o +!!!#gz!!$s +Q +q[1 0 0 1 0 0]concat +44 51 true[1 0 0 1 -710 -1961]@X +imagemask +!$D7A!!!" +Q +q[1 0 0 1 0 0]concat +39 71 true[1 0 0 1 -761 -1962]@X +imagemask +!!<3$!!!8>!!!!0n,NFg+8c*=!'gJ`!!*'!J,fWMs53kZs87*A#QO9U!"]+f*rliOJ.KF+rr<;^ +&,lP6p^d9&#P\i)!!E-0p](Eo&,6,,r!2us"8iE!!!3!&p](?m#P\9"r!2us!WE?!!!3'(p](?o +#P\9"rWi2u!WE?!!!3'(p](?o#P\9"rWi2u!WE?!!!3'(p](?o#P\9"rWi2u!WE?!!!3'(p](?o +#P\9"rWi?$!WE?(!!E3*qg]4V#Pm:BrWi5os8E8uJ,fKQpcnfX#P\i0r!3!%s6p9g"96.Ap]1 +Q +q[1 0 0 1 0 0]concat +31 49 true[1 0 0 1 -812 -1962]@X +imagemask +!!E9%!"T&0!$?^k!'fBA!.XJ&-(hN+901H+9-k=+9)<^+8u6C5PP3Y +5O\XQ5MuMA5MuMA5MuMA5MuMA5JR7!5JR7!5JR7!5JR7!5JR7!5JR7!5JR7!5JR7!5JR7!5JR7! +5JR7!5MuMA5MuMA+5d,!+5d,!+5d,!+5d,!+5d.7+7KBJ&+C+f"7Ug0!<<)g!.Y%D!$D7=!!iQ% +!!E8r!!*&g!!%Ma!!"&?~> +Q +q[1 0 0 1 0 0]concat +46 64 true[1 0 0 1 -842 -1962]@X +imagemask +!!!"Lz"2Fm:!!!8nz+8>g9!!#7]zJ,]KK!!3-"J,fQOs8Tk7!!iQ%huE`fs6t75!$D6V49,@'rr>4_ +!'gG_++O>Uqu@hS!'g5Y+5d,`n,O!W!'fBA&)[FPhuF;W!'fBA#Oh^XhuF#O!'e7!#Oh^X^]4W/ +!'e7!#P\9`^]4W7!'e7!"8Dj\^]4K3!'e7!"8Dj\^]4K3!'e7!"8Dj<^]4K3!$AuV"8Dj<^]4K3 +!$AuV"8i-@^]4K7!$C,!"8i-@huElW!$C,!#Q+Q4huF#[!!hun#Q+Q(n,N^k!!2ip#Q+Q%p](Qs +!!%BH#Q+Q%*WQ`K!!!N0+8c*=#67!d!!!%MJ,B9H!!*&s!!!!"s82is!!E8j!!!!(s53kW!$D6V +!!!!`rr<$!!.XtJ!!!'"p](9o#QO8n"oobF^]4Uis8RTL!WW3!!!!"Ks7cQo!'gMA!!!!0s*t(L +!!E-!zhuE`W~> +Q +q[1 0 0 1 0 0]concat +31 50 true[1 0 0 1 -899 -1962]@X +imagemask +!!WE'!"T&0!$AuV!'fBA!.XbD!<;rs!WW0""98CO#QOh>&-(\Z+90-$+9)<\5Q1Wc5PtK]5O\XQ +5MuMA5JR7!5JR7!5JR7!5JR7!5MuMA5O\XQ5PtK]5Q1W_5MlG@5L4i[5Jt8:5Jc7X5JV4<5JT5Y +5JS6=5JRa/5JRL(5JRB:5JR +Q +q[1 0 0 1 0 0]concat +35 90 true[1 0 0 1 -931 -1943]@X +imagemask +!"8i-!!!K/!!!!/z#64`(!!`K(!!!7S!!!!(J,fQL"2Fm:!!C":!!!,Z!!!!$huE`W!Up'h!!2Qh +!!!&p!!!!"p](9o!;lfs!!)os!!!#szrVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou +!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uz +rVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!<)ru!!)uu +!!E9$s*t+Ls8Tk7J,fQ,!!*&7!!!$!!!!!"rr<$!!WN-"!!3'!!!!'!!!!!$rVuou"9&9#!!E-! +!!!-!!!!!(qu?]s#P\9!!!i9!!!!8n!!!!(n,NFg&)[Ef!"[uf!!!Pf!!!!(^]4?7"2Fm:!!C": +!!!'"n,NFgs7cQo!.XnH!!%NJ!!!!`rr<$!+9-ik!"\#'!!!7S!!!!#!!!~> +Q +q[1 0 0 1 0 0]concat +48 67 true[1 0 0 1 -963 -1945]@X +imagemask +!!!#uz#QK;S!!#7`^]4?7s8V!W!!3-"n,NFns8Vio":tP4qu?sds7dW8"98D:#64f)rr<-$!<<#u +!It0"p](?1!'frQ!T3r"huEfI!!g:>!VcWshuEfU!!2Qh!W2otp](?o!!%BH!WN-"IfKNL!!*%L +!WN-#s1ea:!!E8j"9/?'s7c]q!!iQ%"9&92s8N3#!$D4OL].8qrWgLA!$D+>p\Y"5p],gA!$Ct9 +5PtL'n,O!o!'fBA#P\9`huF#W!'fBA#P\9`huF#W!'fBA#P\9`huF#W!'fBA#P\9`huF#W!'fBA +#P\9`^]4W7!$AuV#P\9@^]4W7!$AuV#P\9@^]4W7!$AuV#P\9@^]4W7!$AuV#P\9@huF#W!$C,! +#P\9@huF#W!$C,!"8Dj +Q +q[1 0 0 1 0 0]concat +38 90 true[1 0 0 1 -1022 -1944]@X +imagemask +!!!i9!!!!Yz49,?]!$2+?!!!N0!!!!$J,fQL!Pe[8!!(pW!!!" +Q +q[1 0 0 1 0 0]concat +30 69 true[1 0 0 1 -1065 -1963]@X +imagemask +!!#7a!!(pW!!)co!!2ut!!E3#!!E6$!!iOS!"]+f!"],!!"],)!"]&k!"\u5!!i9!!!i9!!!i9! +!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun!!hun +!!hun!!hun!"\Q!!"\Q!!"\Q!!"\Q!!"\Q!!"\Q!!"\Q!"s<=7#J]a."98,r!WVop!.XbD!'frQ +!$AuV!"XS[!!`K(!!3-#zzzzzzzz!!*'"!!@`O!!g:>!"[uf!"\Q!!$Ct9!$Ct9!"\Q!!!hE^!!C": +!!.TM!!%NL~> +Q +q[1 0 0 1 0 0]concat +23 88 true[1 0 0 1 -1093 -1944]@X +imagemask +#QOiE!!#1_!"T&0#CldV^]4Dn!!)Kg!-eJD49,@$!!!K/!"T&0#CldZ^]4Vt!!D]j"8Diup](Ek +!!E-!"8i-$qu?is!!E-!!W2ouqu?cq!!2ut!W2ouqu?cq!!2ut!W2ouqu?cq!!2ut!W2ouqu?cs +!!3'!!WE'"rVuuu!!3'!!WE'"rVuuu!!3'!!WE'"rW!'"!!E3#"9&9&rW!'"!!iK'#Q=f9rWD'W +!WW-!J,TF4rW"&8!"\Q!#N,Ra^]4Cczzzzzz!!*'""+U@V^]4o'!$C\1+8>h#p])E*!"[uf"2Fm; +J,fS"~> +Q +q[1 0 0 1 0 0]concat +39 72 true[1 0 0 1 -1120 -1962]@X +imagemask +!!!'#!!!!(J,fQL&&8/F!$C,!!!%ND!!!$!qu?]ts8N'!"98CO!!iQ(^]4oFp[A.ns2"I1&-%0- +!"])0%KI%=!!E94qu?]s&,6,)!"\i)!!!Q)!!!!0p](9o&,6,)!"\i)!!!Q)!!!!0p](9o&,6,) +!"\i)!!!Q)!!!!0p](9o&,6,)!"\i)!!!Q)!!!!0p](9o&,6,)!"\i)!!!Q)!!!-$s8V!Xs8W,g +!<<*!p](ipp](:)n2p[N&+CV?!"\Q(!!!Q!#Cldbn,pH+&+BVX!"\Q"n,O!g!:Tt!p]1'h&,6/& +!"\i*qu@9*!WE'0qucou&,l\1!"])7rW!K'chmbRoDe^g&+KVo!"\Q`p](io+7K7@p]o^W&,61@ +!"\i)J,g,X!!!!0qu?]s%fQG.!"OGX!!!Kn!!!!-%tFW[$jXQJ!"8tf!!!9)n,NFg!-eJD!!!i9~> +Q +q[1 0 0 1 0 0]concat +22 70 true[1 0 0 1 -1167 -1963]@X +imagemask +!'gMaDu]n5!!2ut!WE'$rr<<(^^'nt#QO8us0r=5*!cBE#P\9(p](Qo!!i9!#P\9(p](Qo!!i9! +#P\9(p](Qo!!i9!#P\9(p](Qo!!i9!#P\9$p](Ec!!D]j"7Q9mn,NR[!!D]j"7Q9mn,NR[!!D]j +"7Q9mn,NR[!!D]j"7Q9mn,NR[!!D]j"7Q9mn,NR[!!hun#P\9(p](Qo!!i9!#P\9(qu@!"!!iK' +#Q=].rr<9g!!a$b#7&$K"5j@`n-/l;"99DA!!E~> +Q +q[1 0 0 1 0 0]concat +78 49 true[1 0 0 1 -1186 -1963]@X +imagemask +!!%NL!5JR75QCcb^]4Am!!$sJcGKF#QOPus7c!^p](Ernc/XZs8Vio +!WVZhs7$'gp]( +Q +q[1 0 0 1 0 0]concat +54 49 true[1 0 0 1 -1263 -1963]@X +imagemask +!!%NL!$D7A!5JR7Du]k=huEb%!!!,r!!)os!!E-!!WE'!#Q=](rr<$0rr<0$J,g,[J-5i0!"])0 +#QO8n&,uV7s7cR)rW!3']DrK?!!iN4!"\i)#Q=i+&,6,,qu?^-p](Eo!!!9!!!E-!!!i9!"8i-! +#P\9$qu?^%p](Eo!!!9!!!E-!!!i9!"8i-!#P\9$qu?^%p](Eo!!!9!!!E-!!!i9!"8i-!#P\9$ +qu?^%p](Eo!!!9!!!E-!!!i9!"8i-!#P\9$qu?^%p](Eo!!!9!!!E-!!!i9!#Q+Q%#P\9(qu?^% +p](Qs!!!Q)!!iE%!"\u-#Q+Q%&,uV7qu?^-s*u3h!!XPBiW&fU#J^*7s82j!s7lWoqu?`spcnfV +!!%ND+926=!'fr`s6p!g+5d8$^]4?F^]FH8!!!7S!;lfs!!*'"0E;(~> +Q +q[1 0 0 1 0 0]concat +36 51 true[1 0 0 1 -1324 -1962]@X +imagemask +!#P\9!!#1_!!!"KJ,fQMs53kW"98,r!!iQ'!!!Q0s*t(ks7>.K+901H!'gJ`quAt\!.Ou5p],eo +5O\Y;^d%;g5JTMA!$B!@^]5J75JR7@i'5!W+5fB!!"\!P^]4o'5JR70i'2_l&+Df6!"\Q`J,g,L +5C`_En3;F'&+Df6!"\Q`J,g,L5C`_En3;F'&+Df6!"\Q`J,g,L+2@jen/oFG&+C[V!"\Q@^]4o7 ++2@jen/pQg&+C\!!"\Q0huNfH#Oi9(n,`$.s6p#6s8VQg5QCcQ!"],0huF#^rr<$"s7cQo!<:sW +!!%M!!!!!?z$ig8~> +Q +q[1 0 0 1 0 0]concat +46 75 true[1 0 0 1 -1365 -1944]@X +imagemask +!!iQ)!!!!?z!$?^k!!!!@huE`W!$C\1!!!!@n,NFg!$C\1!!!!@n,NFg!$C\1!!!!@n,NFg!$C\1 +!!!!@n,NFg!$C\1!!!!@n,NFg!$C\1!!!!@n,NFg!$C,!!!!!@huE`W!"[uf!!!!0huWlY!"[um +!!!!0i#dIL!"\!P^]4?Fi;`9H"qTnsp](QFs8Vus"98E$rW!!!s8O/@!<<)s&&80ps6pQW!'gM! +&+BQ@qu?uk!"\Q!#Oh^(n,N^g!"\Q!#P\90n,N^g!"\Q!#P\90n,NRc!"\Q!"8Dj,n,NRc!"\Q! +"8i-0n,NRg!"\Q!"8i-0n,NRg!"\Q!"8i-0n,NRg!"\Q!"8i-0n,NRg!"\Q!"8i-0n,NRg!"\Q! +"8i-0n,NRg!"\Q!#Q+Q4n,N^k!"\Q!#Q+Q4n,N^k!"\i)#Q+QDrW"& +Q +q[1 0 0 1 0 0]concat +37 70 true[1 0 0 1 -1423 -1943]@X +imagemask +!!!!9z4obQ_!'bu6!!#7A!!!!`huE`W5MuMA!'fBA!!#7A!!!!`huE`W+5d,!!$C,!!!",!!!!!@ +huE`W+5d,!!$C,!!!",!!!!!@huE`W+5d,!!$C,!5QDna!:Tt1huWTQ+5d8#!$C,$rr=/!#QMR] +i",kG+5e7@p`JEYs83tsJ,Xm=i.(YhTAY4o&)Z;pn,r^KJ+*L=i.'YbJ)Ggl!$C-KJ,g\LIt.M@ +i.$7W+5hX!!$C-KJ,g\LIt.M@i.$7W+5hX!!$C-KJ,g\LIt.M@i.$7W+5hX!!$C-KJ,g\LIt.M@ +i'2_l+5fA6!$C,`J,g\L5JR7@i'5!W+5fB!!$C,`^]5J7+2@jui#gkW+5e7!!$C,0huj#K"7SPT +n,W([s6p"Qs8VQg+92B1!!iQ(n,NLhj7!$KrrMTh!.4e9!!!i92uipY!"]~> +Q +q[1 0 0 1 0 0]concat +42 49 true[1 0 0 1 -1464 -1963]@X +imagemask +!!!*$z#CldS!!!PFz+7K71!!#7YzJ,TEJ!!*'!!!!!"s8Tk7!!E8qhuE`^s5^K1 +!WVrppcniZpj_c5!.WoKhuEaA^^n3\!$?^rJ,fQS!!@`O!!3-$!!!~> +Q +q[1 0 0 1 0 0]concat +43 51 true[1 0 0 1 -1503 -1962]@X +imagemask +!!!*$z#CldS!!!Pfz+8>g9+94Y*!!$s +Q +q[1 0 0 1 0 0]concat +38 66 true[1 0 0 1 -1547 -1963]@X +imagemask +!!!"L!!!!$^]4?7#Oh]n!"\i)!!",=!!!"Krr<$!s8RTL!WW2X!!E9$n,NRjnFutcs56!>"96.F +!!E7O!!!-#!!!!$rVuou"9&9#!!E3#!!!-#!!!!$rVuou"8i-!!!E-!!!!-!!!!!$qu?]s"8i-! +!!E-!!!!-!!!!!$qu?]s"8i-!!!E-!!!!-!!!!!$qu?]s"8i-!!!E-!!!!-!!!!!$qu?]s"8i-! +!!E-!!!E9$qu?cts8Duus8W*!!.Y%KJ,fWL!!!!"rVuou!WE'!!!3'!!!!'!!!!!"rVuou!WE'! +!!3'!!!!'!!!!!"rVuou!WE'!!!3'!!!!'!!!!!"rVuou!WE'!!!3'!!!!'!zrVuou!.OtK!!#4` +!!!!0z#CldS!!C":!!!#Wz5QC~> +Q +q[1 0 0 1 0 0]concat +54 49 true[1 0 0 1 -1581 -1963]@X +imagemask +!!!E-z!$2+??iU0,IfKK +Q +q[1 0 0 1 0 0]concat +38 56 true[1 0 0 1 -1640 -1962]@X +imagemask +!!3-#!!!7S!!!!0huE`W+8>g9!'gA]!!%NK!!!'"s1eU:s8VQg#QORH!"]+f56)5o^`U?&s*tXL +&,uV?n.5Ku#Oi9%!!i9(p](Ek#P\9$p]p9g"8E,j!!E!$n,NRg#Oh]qr!2]k"8iDn!!3!&n,NLe +#Oh]or!2]k!W32l!!3!&n,NLe#Oh]or!2]k!W32l!!3!.n,NLe&+BQ"r"&8s!W3Jt!!E-0n,NRg +&+BQ$r"&8s"8i])!!E-0rW!&u+85aGr'0eg5Q!b9nGiE9n:1K9J)EQkr-uL(s7h(o#QMShJ-5fO +56(``!'^G`GQ8cb!$D7Oz%KHJ/!!`K(!!!*$!!!!"J,fQL~> +Q +q[1 0 0 1 0 0]concat +72 56 true[1 0 0 1 -1682 -1962]@X +imagemask +!!%NL!!#7a!!!#7!!!&h!!!!"huE`^qu?]s"7Q9j+9)<@!!Dur!.Y$a!!!9%!!*'!n,NG!rW!'# +s7cQo+9)gHrr +Q +q[1 0 0 1 0 0]concat +39 66 true[1 0 0 1 -1759 -1946]@X +imagemask +!!`K(!!"+V!!!"KhuE`Xs7cQo"98,r!!iOS!!!9%!!!!0p](9o&+BQ!!"[uf!!!PF!!!!0^]4?7 +#J^<>!!e#S!!!,:!!!!"^]4?7!Pe[8!!(pXJ,fRW"2Fm:E!Pk4!&+rY!!!iXrVup,J,]KK#64_= +!!E9$huElZq="@ds588)!WTqV!!3+M"on](!!!!"rVuou!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot +!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot +!!2ut!!!-!!!!!$qu?]s"8i-!!!E-!!!!-#!5JR:rrM$X#QKGG%hJ]\r!39#s8E-#r."VEs85+V +!.Xbcn,P]B&)[F0huhm;&&84]!!`K(J,fWN!!!~> +Q +q[1 0 0 1 0 0]concat +46 75 true[1 0 0 1 -1797 -1943]@X +imagemask +!!!"Lz#J^<>!!!&Xz!:Tsg!!!!Yz!"Ju/!!!!(z!!@`O!!!!"^]4?7!!(pWzDu]k +Q +q[1 0 0 1 0 0]concat +34 68 true[1 0 0 1 -1847 -1944]@X +imagemask +!!D-Z!!",1!!!$!p](9ps82is#QOf(!"],0J,g,[_8$$mrW(jV+8c+X!'g5YHiP8X!'UB)huGtA +&&800!"ZjF56(r(!'bu9^]5I,!T3r"J-"R.++O@L!$?^kDu^uq!&ss#^]6=o+2@jr!$AuV%KITd +!!`KG^]4H:+2@jWJ02Q,!5K\l!!(q!^]4@R5JR7!3'Y1Y!$4A?!!!No^]4?>^VBgL"96.:!!3,8 +!!!'"^]4?Fs1eU7J,b$!#QOgS!!iQ(J,f]Orr<$"s82is!<;Ng!!%M!!!!!_z*WQ0?!"T&0!!!7S +!!!!$^]4?7!Pe[8!!2!X!!!&h!!!!"p]( +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -1837]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -118 -1845]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -1845]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -1845]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -1845]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +39 44 true[1 0 0 1 -337 -1845]@X +imagemask +!!%N,!!!-$rVup/s8RTL5QCc!!.Y%KhuNfWs6p'hi#h^rrr<<%#Q=]*rX\c(!WEW!!!*!?huEcV +5JR7!IQtUJ!'EJr!!!"KJ,fQLIfKHK!.OtK!!%KK!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!.OtK +!!%KK!!!"KzIt.M!!'bu6!!#7!!!!!`^]4?7+5d,!n/q-"!Vd3#!!E-(qu@!""9/?+quQiU#Q+T% +s8VusJ,fQD!'gM`p](j)s6p!js8Tk7!'gG_~> +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -382 -1845]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +47 61 true[1 0 0 1 -435 -1845]@X +imagemask +!<<*!s82ots8W,u!WW3"s8E'!s8W,u!WW3"s8E#us8W,s!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#u!!!$!s8Duu!WW3!!!!'"s8Duu!WW2t!!!'"s82is!<<)o!!!~> +Q +q[1 0 0 1 0 0]concat +35 31 true[1 0 0 1 -497 -1881]@X +imagemask +!;lil!!E6%rW!Ia_oDa!!U%@N*WUD:J3ErtJ\XAJ++_4T!$?d-HiO\mi-YM8^u0S?#Jf8H!!g;I +IK0W2!.FnMhuJ3+"5j/C!!D-Z56(fT!'^Gan,OO1!Up(2J-#->++OCe!"XS[p](Q7!;HO!^]=-0 +"5j1W!!2!Xqu?`d!W2otGQ[jD!'UY#!!!Oi)uos>p](9~> +Q +q[4.8 0 0 -120 640.28 1930.08]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +82 77 true[1 0 0 1 -702 -1840]@X +imagemask +!"XS[zz5MuMAz!!!"Kn,NFg!!!O[!!*&oz!'frQ!WW&tz5PtK`s8Duu!!!"Krr<0$rr<$!!!%NK +J-5iOJ,fQL!.Y$a"98D:zJ)S0FrXZdE!!!$!^]4K3#N,R^!!*&7!!D]mn,NFg!<7QL!T4"Rzs*t(M +huNNP!!!'"J,fSb!.4bH!!3+M!!#7a4obQ_!WN-"!!!!?!!!!"rr<$!!!!N0!!!'"z!!e#S!!3*"z +#CldS!WN-"!!!!$^]4?:rr<$!!!!&X!!!-#z!!3-"s8W&uz!<<*!s8DuuzJ,fQKrVuou!!!!`s8W,uz +!!#4_s8W&uz!$2+?"9&9#z%fcS3qu?]s!!!!0!!!-!z!!!7S!!iE%z!!g:>#Q+Q%z"2FmAqu?]s +!!!!"huF#[z!!!&h!!iE%z!!)Kg#Q+Q%z!-eJKqu?]szGQ8!Hz!!!!]!!iE%z!!"&?#Q+Q%z!$2+F +qu?]sz%fck0z!!!!0!!i9!z!!!7S#P\9!z!!C"Ap](9oz"2G0:z!!!!"i!9#Wz!!!&X&,6,)z!!)L! +p](9oz!:UNozzGRsQLz!!!!Y&,6,)z!!#+lp](9oz!$2[Gzz*Y8#Gz!!!!0&,6,)z!!!N?p](9oz +!!eS[zz#ESW[z!!!!$chIJ?z!!!,Ip](9oz!!2Q`zz!Uod`zzs7cQoz!!!$!p](9oz!!%NDzz!.XbDz +z5PP3Yz!!!!`p](9oz!!",9zz!$Ct9zz&,6,)z!!!!(p](9oz!!!9!zz!!Durzz!;HNozz2uip~> +Q +q[1 0 0 1 0 0]concat +69 72 true[1 0 0 1 -781 -1843]@X +imagemask +"+UA9p](9o!!D-]s8RTL!!!&p&-)\!!!!!"r#bt=rVuou!;o(]s8RTL!!*"Js*u3L!!!"Js82j! +p](9oJ,f!+2IpW!!D-Z!$AuV!!!,j!!!PF +!!!!"p](:)huE`W!W2ot&)[Ef!!)os!!hun!!!#u!!!8nzrVup'n,NFg!.OtK#P\9!!!%KK!!Dur +!!!"KJ,f]HzIt.M$qu?]s!.TM!"8i-!!!%M!!!2ut!!!"KJ,fWJzs*t(MrVuou!<7QL!WE'!!!*%L +!!)uu!!!'"J,fTK!!!!"s*t(Lrr<$!"93lO!<3$!!!iN(!!%KK!!!Q0!!!"KJ,fQkrVuouIt.M! +J,TEJ!.TM!!WW&t!!%Ma!"],)!!!!`^jlCan,NFg5JVdKs53kW!'fC+s8RTL!!#7A&-)V/!!!!` +huj#Sz+7K8[^]4?7!$C\1&+BQ!!!",1!!E-!!!!!@p](;Dz+8>g9+2@jV!"\u-!!hE^!!!Q-!!!&p +!!!!0rVuouqu?]s&,lP/!.FnJ!"])0!!#4`!!!Q0!!!!@J,fQSs*t(L&&8/F#QK;S!"[uf!!iP> +!!!Pf!!!9(huE`^n,NFnqqqGS#Oh]n#Pmih!!i9!!!E&l!!!9!!!!,rqu?^-p](9rr-eVG&,6,) +"8j5@!"\i)!9 +Q +q[1 0 0 1 0 0]concat +56 72 true[1 0 0 1 -851 -1843]@X +imagemask +!!#7Qz!WW0"!!!!(s8V!W!!!Q0s7cQo!$D7@rVuou5QAM`!!!"KrW!JE!!*&o!!D-Z!WVWh!;HNp +s1eU7HiO9K^]4?u!!E7O!!")@"9/?$!$?^rrVuou&&8GL!!!!(i!95]!!!,Z#Q+Q%!!2R"qu?]s +!,rJHz!"\i)z&,6,)!!!!0p](9o!!!Q)z!"\i)z&,6,)!!!!0p](9o!!!Q)z!!i9!z#P\9!!!!!( +p](9o!!!9!z!!i9!z#P\9!!!!!$p](9o!!!,rz!!E-!z"8i-!!!!!"qu?]s!!!&tz!!3'!z!<)ruz +rVuou!!!#uz!!%KKz!.OtKz5C`_6!!!!`J,fQL!!"*k!!#+]!$AuV!$;1@&&8/F++O>%huE`f^]4Vt +!!!Pf!!D]j!!hE^"7Q9j#Oh]op](:!n,NId!!!,r!!%BH!!Dur!'UA_!W2ot*rl9Aqu?^-J,fWL +!!!8>!!)uu!!D-Z!<)ru!Up'hrr<$!p]( +Q +q[1 0 0 1 0 0]concat +79 68 true[1 0 0 1 -910 -1845]@X +imagemask +!$D7?z!!!!@s8VQgz!"],0rr<$!!!!!(s8W,Wz!!3-"s82iszIfK`Rz!!%KK!'e7!z5C`_=n,NFg +!!#66!!)osz5JR7!56(Z`!!"+V!!!O[z+2@jV"5j.Z!!!Pf!!!&hz&)[Ef!.4bH!!!Pf!!!!_z#Oh]n +!$;1@!!!8n!!!!0J,fQL#Oh]n!!g:>!!!,r!!!!$huE`W"8Dir!!2Qh!!!-!zp](9o"8i-!!!%BH +!!!&tzIK0?J!W2ot!!#4`!!!'!z++O=k!<)ru!!"*k!!!#uz&&8/F!<3$!!!!Pf!!!"Kz&)[Ef!.OtK +!!!8n!!!"KJ,fQL#Oh]n!.TM!!!!,r!!!!`J,fQL"8Dir!'bu6!!!,r!!!!`^]4?7"8i-!!'e7! +!!!-!!!!!`^]4?7!W2ot!$AuV!!!&t!!!!@huE`W!WE'!!$C,!!!!'!!!!!@huE`W!WE'!!"[uf +!!!'!!!!!0huE`W!WE'!!"\Q!!!!'!!!!!0n,NFg!WE'!!"\Q!!!!-#!!!!0n,NFg"9&9#!!hun +!!!-#!!!!(p](9o"9&OU!!i9!!!!9'#N,Rep](9o#Q=hp!!i9!!!!Q-"8Dj$p](9o+8c07!!i9! +!!",=!W2p"qu?]s5PP6V!!E-!!!%ND!.FnMqu?]ss6p"P!!E-!!!E8j!$;1Cqu?^%s53kfJ-5]L +!$D6V!!hEaqu?_Hs*t(Mp]LEo#QOf(!!*%OrW)uuqu?]s5QCc`s8VQg!!!Q0s8W-!huE`W!WW3" +s8N'!!!!!`s8W,oz!!3-"rr<$!~> +Q +q[1 0 0 1 0 0]concat +59 72 true[1 0 0 1 -989 -1843]@X +imagemask +!!%N +Q +q[1 0 0 1 0 0]concat +86 71 true[1 0 0 1 -1050 -1842]@X +imagemask +!!hunzz5PtK]z!!!"Krr<$!z!!3-"^]4?7z"98DZz!!!!$s7u-az!!!9(_"[m0z!!iN(qu?]sz#Q=^P +z!!!!(rW%EJz!!!&t!'^G`z!!)os5C`_6z!&ss#J,fQLz!!"+Vzz!"ZjFzz&)[Efz!!!!(huE`Wz +!!!8nzz!!D]jzz"8Dirz!!!!$p](9oz!!!&tzz!!2utzz!<)ruzzrVuouz!!!$!zz!!%KKzz!.OtKzz +5C`_6z!!!!`J,fQLz!!#7!zz!$AuVzz+2@jYz!!!!0s8W,Wz!!!Q0s8VQgz!"],0s82isz#QOi( +qu?]s!!!!(s8W,sz!!!9!zz!!Durzz"8Dirz!!!!$qu?]sz!!!&tzz!!2utzz!WE'!zzrVuouz!!!#u +zz!!*$!zz!.OtKzzIfKHKz!!!"KJ,fQLz!!%M!z!!"&?!'bu6z!"XS[5C`_6z&&800^]4?7!!!!0 +huH!Wz!!!8n!$AuVz!!D]j+2@jVz"7Q:4huE`W!!!!"p])Doz!!!#o!"[ufz!!%BH&)[Efz!'UAn +n,NFnJ,fQL%tG2[!!!8^!!!!(i",;W!!hun!!!'"#Oh]n+8>g9!!%NKs8W-!p](9o!$D7@s8W,sz +#QOi(s8ViozJ,fQKs7cQo!!!!(s8W-!^]~> +Q +q[1 0 0 1 0 0]concat +63 82 true[1 0 0 1 -1131 -1833]@X +imagemask +!!",9z!!3-"z!"],0huE`W!'gM`p](9o!.Y%Kqu?]s!<<)756(Z`!.XnH%tFW[!'frQ#J^<>!"ZjF +"5j.Z!!@`O!Up'hz!VcWpz!;lfsz!;lfsz!.FnJz!.OtKz!'^G`z!'bu6z!$?^kz!$AuV!!!Q-!"ZjF +!!%NKJ.LQ +!!!,r!!!,Z!!!,r!!!&h!!!-!!!!#o!!!-!!!!"H!!!-#!!!!@!!!9'!!!!0^]4oE!!!!$quD6Gz +s8W,sz5QCc]z&-)\)z!<<)Wz!"])0~> +Q +q[1 0 0 1 0 0]concat +84 73 true[1 0 0 1 -1196 -1840]@X +imagemask +z!!!!$p](9oz!!!Q0zz!"]+F!!!,:z+91g1!!2Qh!!!!@s7cQo!VcWp!!",94obQ`qu?]s!'fs; +!!!#uz5O]bF!!)uu!!!!`i#f`7!.OtK!!#7A&&8/FIfKHK!'fBDhuEb,z5MuS#!!#66!!!!`huE`W +!'bu6!!#7Az5JR7!!'fBA!!!!@^]4?75MuMA!!"+V!!!!@huE`W!$C,!!!",!z&)[Ef!$C,!!!!!0 +huE`W+5d,!!!!Q!!!!!@huE`W!!hun!!",!z#Oh]n!$C,!!!!!(p](9o&)[Ef!!!,r!!!!0n,NFg +!!Dur!!!Q!z"8i-!!"\Q!!!!!"qu?]s&+BQ!!!!&t!!!!(n,NFg!!3'!!!!9!z!<)ru!!i9!zrVuou +#P\9!!!!#u!!!!$p](9o!!*$!!!!,rz!.OtK!!E-!zIfKHK!W2ot!!!"KJ,fQMqu?]s!!#66!!!'!z +!'bu6!!3'!z5JR7!!<)ru!!!!`s8W-!rVuou!!",@s8W-!z!$D7@s8W*!z+92B@s8N'!!!!!@n,NFf +s*t(L!!!Pf!!!!`J,fQL!"[uf!!#66z&+BQ!!$AuV!!!!0n,NFg+2@jV!!!Q!!!!!@^]4?7!!hun +!!!Pfz#P\9!!"[uf!!!!(p](9o#Oh]n!!!9!!!!!(n,N]D!!i9!!!!,j!!hE^#P\9!!!Dur"7Q9m +p](9o"8Diup](Eo!!!!"qu?io!!E-!!!!&t!!2ut"8i-!!!)os!;lg!qu?]s!<)ruqu?iszIK0@s +!!E-!!!!"K!!#1_"8i-!!!#4`!$;1CrVuou!'bu6%tFc]z++O=ri!95]!!!!@^]4E1&,lP/!!!PF +!!*'!rVuou!"[uf!'gM]z#N,R^&-)P-!!!!$n,NFhs7cQo!!!&h!!!!@huE`W!!$s~> +Q +q[1 0 0 1 0 0]concat +66 68 true[1 0 0 1 -1281 -1845]@X +imagemask +J,fQKrVuou!.Y%Ks8Tk7!!#7`s8W,o!!!!0s8W-!rVuou"98E$s8N'!!!!!@!!!O[z%tFWbhuE`W +!!g:>"7Q9j!!!8^!!Dur!!!!$n,NLaz"8Dirqu?]s!!2ip!.4bH!!!&t!!!u=zqu?]sz!<)ruz!!)uu +z!!!"KzzIfKHKz!.OtKz!!#66z!!!!`J,fQLz5JR7!z!$AuVz!!"+Vz!!!!@^]4?7z+5d,!z!"[ufz +!!!Pfz!!!!0n,NFgz&+BQ!z!!hunz!!!8nz!!!!(p](9oz#P\9!z!!Durz!!!,rz!!!!$qu?]sz +"8i-!z!!2utz!!!&tz!!!!"rVuouz!WE'!z!!)uuz!!!#uzzrr<$!z!<3$!z!!%KKz!!!"KzzIt.M!z +!'bu6z!!#66z!!!!@^]4?7"2Fm:+2@jV!!D-Z!$AuV!!!,r!!!Pf!!!!"qu?^-huE`W!W2ot#Oh]n +!!)uu!!hun!!!"J!!!,jz4obQ`p](9o!$;1@!VcWp!!!PF!!)os!!!!$rr<%Jz!WW3"s8Vio!!#7` +s8W,u!!!!0s8W-!s*t(L!<<*!s8Tk7!!!9(s8W,7~> +Q +q[1 0 0 1 0 0]concat +79 80 true[1 0 0 1 -1350 -1833]@X +imagemask +!"\i)z!!!"Ks*t(Lz!WW2hz!!!9(s82isz&-)\/z!!",@i#dILz5Q:]ghuE`W!!#7]!!2QhzJ+s!D +p](9o!!%Nzs*t(L#N,R^!!*%L!!!,jz +rr<$!!VcWp!!*$!!!!&pzrr<$!!W2ot!!*$!!!!#szIfKHK!<)ru!!#4`!!!"Jz*rl9@!.OtK!!!7S +!!!"Kzz!'bu6z!!!!`J,fQLz!'bu6z!!!!`^]4?7z!$AuVz!!!!@^]4?7z!$AuVz!!!!@huE`Wz +!"[ufz!!!!0huE`Wz!"[ufz!!!!0n,NFgz!!hunz!!!!(n,NFgz!!hunz!!!!(p](9oz!!Durz!!!!$ +p](9oz!!Durz!!!!"qu?]sz!!2utz!!!!"qu?]sz!!3'!zzrVuouz!!)uuzzrr<$!z!!%KKzzIfKHKz +!!%KKzz5C`_6z!!#66z"+U@O+2@jV!!!,Z!!"+Vz"7Q9j+2@jV!!!,r!!!Pfz!W2ot&)[Ef!!!&t +!!!8^z!<)ru#Oh]n!!!#u!!!,jz!.FnJ"8Dir!!!!`!!!&pz!$;1@!W2ot!!!!@J,fTIz!"ZjF!.FnJ +!!!!(huEb,z!!D-Z!'^G`zp](:9J,fQL!!%BH!"ZjFz4obQf^]4?7!!!PF!!D-Zz#P\9"p](9o!!!'" +s8W+Lz!.Y%Ks6p!g!!!!0s8W,oz!!E9$s82isz+92B?~> +Q +q[1 0 0 1 0 0]concat +76 72 true[1 0 0 1 -1428 -1843]@X +imagemask +"+U@O!!#7!!!!,Zzs82is!Up'h!!3-"!!!&t!!!!(s8Tk7!W2ot!"\u4n,NIf!!!!@p]:-i!<)ru +!$C,!HiO0G!!!!`^]6Ou!.OtK!.TM!*rl:j!!!$!J,g+1!'bu6!<3$!#J^=(J,fWL!!!8>!'bu6 +"8i-!"5j/$^]4K7!!!,Z!$AuV#P\9!!T3r"^]4W/!!!!A!"[uf&+BQ!!!!!0huFkWz!"[uf+2@jV +!!!!(n,P\gz!!hun5C`_6!!!!(n,Rrgz!!DurIfKHK!!!!$p],dDz!!DurrVuou!!!!"quH]rz!!2uu +qu?]s!!!!"quQ]qz!!3'$qu?]szrWDoqz!!*!#p](9ozrs/#nz!!%KRn,NFgzIg>HCz!!%KZhuE`Wz +IuiLfz!!#6EhuE`Wz5EES[z!!#7@^]4?7z5Ms6Vz!!"+uJ,fQLz+5_SKz!!",@J,fQLz+9-ikz!!!Pu +J,fQLz&+>#Kz!!!Q(^]4?7z&,3j>z!!!Q$huE`Wz#P%9`z!!!9!p](9oz#P`ZHz!!!9!4obQ_z#P]A@ +z!!!9!%tFW[z"8i8Zz!!!-!!Up'hz"8i/sz!!!-!!'UA_z"8i-@J,fQL!!!-!!!g:>z"8i-$n,NQ@ +!!!-#!!)co"5j.Zj8K#YIK0K.!!)oq!!"*k"7Q9jJ,TEJ#N,^R!!#7_!!!&p#Oh]n&,lP/!.POK +!!!-#!!!!@s6p!g!<)ru!!iP^!!!!_zs1eU7!"Ju/!!"*k~> +Q +q[1 0 0 1 0 0]concat +68 72 true[1 0 0 1 -1504 -1843]@X +imagemask +"+U@O!.Vca!!D-Z!"],)!!!&p!!*'!rr<$!qu@!%s8Tk7!.Fots8W,W!!#4os8W-!p](:9s8W-! +JG]BI&-)\0p],aC!"],0s*t)6!!!9(s7cQo5C`_=s8RTL!'e7!"8hQf!!"+V!!2ut!!!!0huEfUz +#N,R_rVuou!!D]j!<)ru!!!#g!!*$!z!!!"KJ,fQLzIt.M!z!.TM!z!!#7!z!!!!`^]4?7z5MuMAz +!$C,!z!!",!z!!!!@n,NFgz&+BQ!z!"\Q!z!!!Q)z!!!!0p](9oz#P\9!z!!i9!z!!!9%z!!!!( +qu?]sz"8i-!z!!E-!z!!!-#z!!!!"rVuouz!WE'!z!!3'!z!!!$!zzrr<$!z!<3$!z!!%M!z!!!"K +J,fQLzIt.M!z!'e7!z!!#7!z!!!!@^]4?7z+5d,!z!$C,!z!!!Q!z!!!!0n,NFgz#Oh]oz!!Dur +!T3qX!!!,r!!2ip!!!!"qu?cqz!W2ourVuou!!)uu!WN-"!!!"J!!3*"z56(`aJ,fQL!$?^ns*t(L +!!!PF"93lO!!!!(^^'miz"5j^iJ,fQL!!2j:rr<$!!!!"Ks8N'!z5QC``z!"],/z!!!-$qu?]sz +s7cQoz!"[uf~> +Q +q[1 0 0 1 0 0]concat +114 75 true[1 0 0 1 -1573 -1840]@X +imagemask +!$;1@zzzJ%u$azz!!!'"huE`Wz!!!O[!!E8jzz!$C\1"98,rzz5PtK`s7cQoz!!!!`rr<0$qu?]sz +!!#7`J-5iNzz!'gM!"98?#!!!!AzJ)S0DrZ;+?!!%6D!!!"K^]4E)%fcS0!;lfs!!%Ma!!(p^J,fQL +rVuou!.Vca!!!+O!!!'"zJ%u$a!!C":!!3+M!!!"K^]4?7!Pe[8"96.:!!%Ma!!!!"huE`Zs53kW +!.Vca!!!#W!!!9(n,NFgJ%u$a!!)Kg!!iQ!!!!"K^]4?7!,qo<#QO]%!!%MazDu]kKq>:3m!'e7! +!!!!Y!!!Q)rVuou5JR7!!!"tY!$C][!!!!`^]4?7!'C5]+7MLF!!#7!z)uos\i#f`7!'e7!!!!!= +!!#7A&)[Ef5JR7!!!!K/!'fBHn,NGQ^]4?7!"Ju/5JRBr!!#7!z%fcTZ^]F?5!'e7!!!!!(!!%Ma +!<)ru5JR7!!!!6(!.TM!IK0@4huE`W!!@`OIt.M`!!",!z"+UCOJ,g[A!$C,!!!!!$J,oTL!"ZjF ++5d,!!!!&8!<3$!#N,S(huE`W!!0k9rr<$$n,OQgz!Pea8!!!&p!$C,!zhuWfW!!2ip+5d,!!!!#W +!WE'!!;lg=huE`W!!(pZrVuouIK0oJz!,r&n,NFg!"Xk[z!"L+/ +z&'+GFz%NjU/!!!!(j88lW!!!!0+5d,!!!!,mqu?]s!!!6GhuE`W!!2upz!!baHz!;lZoz#=$!(z +J,B9H!!!!(^VBgL!!!"Kqu?]s!!!,9^]4?7!!#7]z!!C!Oz!$D1?z"93lOz&,lP/!!!!$s*t(L!!!!( +rVuou!!!-$J,fQL!!!-#z!!E7Oz!!E3#z!WRZMz!WN-"!!!!"s*t(Lzrr<$!!!!'"z!!!"Kz!!3*"z +!!#4`z!WN-"z!$;1@!!!!"rr<$!z++O=k!!!$!z!!!!0J,fQL!!)uuz!!!7Sz!.FnJz!!@`Oz4obQ_z +!It.M!!!!/zzJ,~> +Q +q[1 0 0 1 0 0]concat +100 82 true[1 0 0 1 -1693 -1840]@X +imagemask +"5j.Zzz!$Ct9zz!!#7]zz!!!"KrVuou!!#1_zs8Duu!!!"Kz!<<'!zIt.M!!!*'!J,fQL!<9h7!!!"K +s*t(L!!3,8zJ,d:a!!!'"^]4?7!.TX:!!!!$s1eU7!!#1`huE`W"979Z!!!!Y!8mhW!!iM]z!!)Kg +!!!Q-huE`W!!!"!!(pWz!#u%=!!!#gz!!"&B +rVuouDu]k +Q +q[1 0 0 1 0 0]concat +72 72 true[1 0 0 1 -1797 -1843]@X +imagemask +!!",=z!!!'"s1eU7!!!!(s8Vusz+92B@z!'gM`s1eU7!!%NK^^oo7!!!$!rVurr!!!!"s7cQo56(Z` +"979Z!"XS[!!iP>!!!,Z!!!9(J,fQMn,NG!rr<$!!;HNo&,lP/!!#1_!$D+=!!!!@!!",9z%tFXE +p](9o!!g:>5O\XQ!!!8^!'frQ!!!!$n,P]2z!VcYEhuE`W!!)coJ)C;,!!!#s!.VcazIK4l5z!'^I5 +^]4?7!!#4`J%u$a!!!!@J:E(Lz+2EAVz!"ZkpJ,fQL!!!PfIt.M!!!!!(i.$7Wz#Om4nz!!i"CJ,fQL +!!!,rIt.M!!!!!$pj[eoz"8I@rz!!E-`J,fQL!!!&t5JR7!!!!!"r'.ssz!WG=!z!!3'@^]4?7!!!'! ++2@jVzrZC%uz!<3Sfz!!*$0huE`W!!!$!#Oh]nzrs/#nz!<3;n!:Tsg!!*$$p]13l!!!$!!VcYDz +rrN#tIfKHK!<3&s!'^G`!!*$!rW#05!!!'"!.FniJ,fQMrr>7`+2@jV!WN-AJ.KEq!!3*"++OUS +!!!'"!"ZjMhuE`Zrr<;^"7Q9j"9/?'n,`:a!!iK'!VcZi!!!9'!!)osqu?^-rVuqI!.FnJ+8c*= +56*kI!$D+=!$?_5!!#7Y!!!PF%tFZ[p](9rn,qSLs6p!g!Vc]j&-(Pf!!%HJJ,fQ,!!!!`!'gM` +J,fQL%tG2jrr<$!!!C";s82is!!!#W!'fBA~> +Q +q[1 0 0 1 0 0]concat +76 73 true[1 0 0 1 -1870 -1840]@X +imagemask +!!@`Oz!!!!$huE`Wz!!D]jz!!!!"p](9oz!!2utzzrVuouz!!)uuzzrVuouz!!%KKzzIfKHKz!!%KKz +z5C`_6z!!#66zz+2@jVz!!"+Vzz+2@jVz!!!Pfzz&)[Efz!!!Pfzz#Oh]nz!!!8nzz#Oh]nz!!!9!zz +"8Dirz!!!,rzz"8i-!z!!!&tIfKHKz!W7HBz!!!'!5Q:]`z!<+)?huE`W!!!#u"98,rz!<)s#rVuou +!!!$!!!#66z!.OtK#N,R^!!!"K!!!&hz!.TM!!.4bH!!!"KJ,fR5z!'bu6!$?^k!!!!`J,fQS^]4?7 +!'e7!!!D-Z!!!!`^]4?:n,NFg!$AuV!!2ip!!!!@^]4?7qu?]s!$AuV!!%HJ!!!!@huE`WIK0?J +!$C,!!!#4`!!!!0huE`W5C`_6!"[uf!!#66!!!!0n,NFg+2@jV!"\Q!!!"+V!!!!0n,NFg+5d,! +!"\Q!!!",!!!!!(n,NFg&)[Ef!!i9!!!!Q!#CldZp](9o+7KNn!!i9!!!",1"7Q9qp](9o+7KC- +!!i9!!!",1!VcX"p](9o5O\^O!!Dur!!#7Q!;lg!qu?]sJ+*Ge!!E-!!!*&W!'UAbqu?]ts53l! +!!E-!!!E8:!"XS^qu?^-s1eU>huilW!'gL6!!2isqu?ctrr<$!s+C:N5QC]_!!#7`s8W-!p](9o +#QOi(s8VQg!!!'"s8W-!J,fQL!'gM`s82is!!!!"s8W,7!!!~> +Q +q[1 0 0 1 0 0]concat +73 82 true[1 0 0 1 -1956 -1833]@X +imagemask +z!!E7Oz!!!"Ks6p!gz#QOi%z!!#7`s8N'!!!!!"s8W-!^]4?7!!iQ(p]KFS!!!!`s8RTMn,NFg"98Dr +!!)co!!",@s1eU7qu?^-s8W&u!!%HJ!.Y%Kn,NFgIfKIus8RTL!!#66!'gM`n,NFg++O>5s8W&u +!!!7S!!E9$s*t(L!It.M!!iP^zz+8>g9z!!!'!zz!.TM!z!!!!@^]4?7z!!hE^z!!!!"p](9o!!",9 +!!)oszs8RTLIK0?J!!E9$huGtA!!!!(s8Vus++O=k!"],0rr +!$D+=!!!,Z!!!!`p](9o!Up'h!.XbD!!!"H!!!$!n,NFg!'UA_!WVWh!!!!0J,fiShuE`W!!hE^ ++90+V!!!!"rW)uuJ,fQL!!%NKs8N'!z+92B?z!!!9(s7cQoz!<<)Wz!!!!(rVuou~> +Q +q[1 0 0 1 0 0]concat +86 70 true[1 0 0 1 -2030 -1843]@X +imagemask +!!0k8!!!!0huE`W!Up'h!!#7_!!!!"p](9o!.Y$!!!!#szs8V!W!!)uu!!!'"s7cQo!<)ru!!E8Z +HiO-HIfKHK"96/#!!!"K!!!!(s*tW1!!%KK!!!9(!!g:>!'bu6!"]&/#N,R^5C`_6&,ZD0n,NG1 +^]4?Vqu?cm!!"+V!!",9!!)os!$AuV!'g5Y!.4bH&)[Ef5O\XQ)uosLhuEaAn,NFg!!!Pf!!%N,z +!!hun!.Wo,z#Oh]ns53kW!!!!(p]( +Q +q[1 0 0 1 0 0]concat +67 72 true[1 0 0 1 -2114 -1843]@X +imagemask +!!!Q/z!!!$!s6p!g!!!!$s8W&uz&-)\0^]4?7!'gM`s6p!g!!%NKhuilW!!!$!rVuqI!!!!"s7cQo +%tFW[!WVWh!!g:>!!E8:!!!&h!!!-$J,fQLp](:!rr<$!!.4bH#Q=]'!!%HJ!!iK'!!!!`!!!9%z +56(Zgqu?]s!$?^k#P\9!!!"+V!!i9!!!!!@^]4W7z&)[Eip](9o!"[uf"8Dir!!!Pf!!2ut!!!!0 +n,NLez+7K71qu?]s!$C\1!.OtK!!",1!!#66!!!!`n,NG!^]4?75O\XQ"5j.Z!.XJ!!*&W!!!!$huEfXhuE`W!VcX"s1eU7!!%KKJ,d:a!!!!@s8W+Lz#QOi(z!!3-"qu?]s +!!!!`s6p!gz"93lO~> +Q +q[1 0 0 1 0 0]concat +82 71 true[1 0 0 1 -2181 -1845]@X +imagemask +!!3-"rVuouz!WW3"^]4?7zs8W,Wz!!!"Ks8Vioz!!",@s82isz!!E9$qu?]sz!'UA_zz56(Z`z!!!!@ +J,fQLz!!!PFzz!"[ufzz#Oh]nz!!!!$n,NFgz!!!,rzz!!E-!zz!W2otz!!!!"rVuouz!!!#uzz +!!*$!zz!<3$!zzIt.M!z!!!"KJ,fQLz!!%Mazz!'e7!zz5JR7!z!!!!`huE`Wz!!",!zz!$C,!zz ++7K71z!!!!@n,NFgz!!!Q!zz!"\Q!zz&,6,)z!!!!0p](9oz!!!9!zz!!i9!zz#Q+Q%z!!!!(qu?]sz +!!!-!zz!!E-!zz"9&9#z!!!!$rVuouz!!!'!zz!!3*"zz!WN-"zzrr<$!!!!,:!!!$!z!!D]j!!*%Lz +"8Dir!<7QL!!!!"qu?]sIt.M!!!!'!!!!"KJ,fQL!!*$!!!%Maz!<3$!!'e7!zIfKHK5JR7!!!!!` +J,fR6^]4?7!!#66!!",!z!$AuV!$C,!z&&8/F+5d,!!!!!(huE`fn,NFg!!!,j!!!Q!z!!2Qh!!hunz +!;HNo#P\9!zJ,fQKs8Vio!!!!@s8W-!s8RTL!!!Q0s8W-!s6p!g!!E9$s8W-!qu?]s!.Y%Ks8W,uz +&-)\0s8W*!zz!$?^kzz#J^<>z!!!!"^]~> +Q +q[1 0 0 1 0 0]concat +71 71 true[1 0 0 1 -2262 -1842]@X +imagemask +z!!%6D!!)uu!!!'!!!!-$^]4?8s*t([s7cQo"979Z&-)V/!!E8j!$D7@J,f]Op]*PX&&8/Ir]C0F +p]9ja!WE'!5O\[J!!3'!!'fBA4obW_!!%N,!$;1ArVuqJhuF: +Q +q[1 0 0 1 0 0]concat +69 72 true[1 0 0 1 -2334 -1841]@X +imagemask +!!!3'z!!!!(zz#J^<>z!!D-Zz!!!,jz!!!!$qu?]sz"9&9#z!!E6$z!!!-$J,fQL!!!!$s1eU7z +!WV'Xz!!3,pz!!!'"qu?]s!!!!"rVccsz!W;rtz!!3"IJ,fQL!!!&t+2@jV!!!!"r"%]cz!W32lz +!!3'$p](9o!!!#u!W2otzrW)otz!<)tJz!!)uu5C`_6!!!#u!$AuVzrW!Jez!<)s'n,NFg!!)uu +"7Q9j!!!#u!!2ipzrVurrz!<)ruIK0?J!!)uu!'^G`!!!#u!!")@zrVup/J,fQL!<)ru#J^<>!!)uu +!!D-Z!!!#u!!!,ZzrVup!n,NFg!<)ru!;HNo!!)uu!!%6D!!!#u!!!"HzrVuou49,?]!<)ru!$2+? +!!3'!!!!N0!!!'!!!!!0!!!!"rVuou#CldS!WE'!!!e#S!!3'!!!!+O!!!'!!!!!"^]4?8qu?]s +!Pe[8"8i-!!!2!X!!E-!!!!#W!!!-!zhuE`Zqu?]s!:Tsg#Q+Q%!!)Kg!!i9!!!!#g!!!9!zn,NG! +p](9o!;HNo&+BQ!!!2ip!$C\1!!!&p!!#7Q!!!!$p](:YhuE`W&,6,)J)C;,!'g5Y!<9h7!!3,h +!!3,8!!!'"n,N^nJ,fQMs6p"Qrr<$!!WVWis8Duu!!3,X!WW&t!!!$!^]FK1zs*t*!n,NFg!.OtK +++O=k!!#+]~> +Q +q[1 0 0 1 0 0]concat +106 72 true[1 0 0 1 -2404 -1841]@X +imagemask +!!$C,z!WW3#zDu]k#K!!!9!p](9o!!!PuJ,fQL +#Om*@z&*L_.!!!8n4obQ_!!!8qhuE`W#Oic7z#P$^P!!!Q!*rl9@!!!8nn,NFg&+C*[z#OqKg!!!Q! +#CldS!!!8nHiO-H&+B\:z#OjhU!!!Q!"5j.Z!!!8n*WQ0?&+BVhz#Oif8!!!Q!!:Tsg!!!9!%fcS0 +&)[H_z"8E+O!!",!!-eJD!!!,r#J^<>+5d,]z"8Du6!!",!!'UA_!!!,r!T3qX+5d,?z"8Dod!!",! +!"T&0!!!,r!:Tsg+5d,0z"8Dk@!!"+V!!e#S!!!,r!.4bH5JR7$^]4?7"8DjY!!#7!!!C":!!!,r +!$2+?5JR7"huE`W"8Dj!!!,:!!",!!!!&_p](9o#J^<>5MuMA!U'4X +!!!8>!!#7A!!!#np](9o&&8/FJ%u$a!<;fo!!"+V!!%Ma!!!"Kn,NFgJ%u$as1eU7!.XJrr<$!!'fBA!!3,8!$D4@!!!!@huE`Xs1e[8rVuou!'fBA!!3+M!WW&t +!!!!`^]4?7s*t.Mp](9o!$AuV!!*$!!.Wo,!!!!0^]4?7IK0?iJ,fQL!!@`O!!"tY~> +Q +q[1 0 0 1 0 0]concat +75 68 true[1 0 0 1 -2519 -1845]@X +imagemask +4obQ_!$C,!!!%M!!!!!`qu?]ss53kW!.Y"K!!*&g!!!$!s1eU7s6p!g!<<)W!!*&7!!!'"j7!$K +s*t(L!WR`G!!*%L!!!'"JG]BIIfKHK"9/@K!!%KK!!!-$!$2+?56(Z`"9&9#!!"*k!!!-#z++O=k +"9&9#!!!PF!!!-#z"5j.Z"9&9#!!!&h!!!-#z!;HNo"8i-!!!!"J!!!9%z!$;1@#Q+Q%!!!!0J,fiPz +!!hE^#Q+Q%!!!!"n,N^kz!!)os#Q+Q%z56(rdz!!"*k#Q+Q%z#N,jbz!!!&h#P\9!z!;mB&z!!!!` +&,6,)z!$@9sz!!!!(n+Zk_z!!3,pzzs7cQoz!!#7Yzz&,6,)z!!!Q)zz&,6,)z!!",?zz+9)<@z +!!",@^]4?7z+8=[nz!!",2p](9oz+7O^Zz!!",156(Z`z+7KfVz!!",1#N,R^z+7K=+z!!",!!.4bHz +5MuN+z!!#7A!"XS[z5MuMH^]4?7!!#7A!!D]jz5MuMBp](9o!!#7A!!%BHz5MuMA4obQ_!!#7A!!#4` +zJ)C;,++O=k!!%Ma!!"+V!!#+]J%u$a+2@jV4okVu!!",!!!"*ks1eU7+5d,!++aI-!!#7A!!!PI +s*t(LJ)C;,#QOgS!!3,X!!!'"s*t(Ls53kW!<<'!!!%N,!!!!`rVuou5JR7!!!Dur!!!O[~> +Q +q[1 0 0 1 0 0]concat +74 81 true[1 0 0 1 -2596 -1832]@X +imagemask +!!2ipz!!!!0rr<$!z!$D6Vz!!!!`s53kWz!.Y%Dz!!!$!s82isz!WW3"z!!!'"s8RTLz"93rP^]4?7 +!!!-#!'fBAz"8Dj!!!!0qu?]s&&8/F!$Ct9!!"+V!!!!`p](9o5JR7] +!.XJs*t(Ss8RTL!!E6$!!3-!!!!!$rVuou +s7cQo!!2ut!!",!zn,N~> +Q +q[1 0 0 1 0 0]concat +79 68 true[1 0 0 1 -2670 -1845]@X +imagemask +!Pe[8!.XnH!!!&h!!%NKs*t(L!;llts8W,W!!!"Ks8W-!s7cQo!'gM`s8W,s!!!!@s8W-!s8N'! +!!iQ(s8RTkJ,fQOs8W+L!"ZjF!!3-"!!!!(huE`Wqu?]s!!hun!!%HJ!!!!$p](9o56(Z`!!E-! +!!"*k!!!!"qu?]s#J^<>!!3'!!!!,ZzrVuou!Up'h!!*$!!!!#szIfKHK!.FnJ!!#66!!!!`z++O=k +!$?^k!!!7S!!!!0^]4?7!It.M!!D-Zz!!!!"n,NFgz!!)cozzHiO-Hz!!#1_zz*rl9@z!!!O[zz +#N,R^z!!!,jzz!VcWpz!!!#szz!.FoUz!!!!`!;HNoz!$?diz!!*'!s82iszs8W,sz!!%NKs82isz ++92B1zzIK0?Jz!!#4`zz++O=kz!!!PFzz&)[Efz!!!8^zz"7Q9jz!!!&pzz!;lfsz!!!"Jzz!'^G` +!!!*$!!!!@J,fQL"5j.Z!"ZjF!!!,r!!!!(huE`W!W2ot!!D]j!!!'!!!!!"p](9o!<)ru!!2ut +!!!"KzrVuou!'^G`!!%HJ!!!!@J,fQL56(Z`!"XS[!$D5k!!!!(^]4W>s1eU7!!Duss8W,Wzs8W-! +s6p!g!!#7`s8W,oz+92B@s7cQo!!!-$s8V#)z!<<)o!'UA_!!!!0rVup&~> +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -1718]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -119 -1726]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -1726]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -1726]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -1726]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -337 -1725]@X +imagemask +GQ7^D!.4nK^]=9ss7cTns8W*!s8W-!_#OH7s5 +Q +q[1 0 0 1 0 0]concat +45 62 true[1 0 0 1 -382 -1726]@X +imagemask +"98E$rW!'#s8W*!#QOi(rr<<(s8W*!"98E$rr<*"s8W&u!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+V!!!'"s8W+L"98E$ +s1em>s8W,7#QOi(s1ea:s8W,7!WW3"s*t(L+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz ++5d18!!!Pf#N,R^&+Bhn!!!9!&+BQ!#Q>8/!!!-$s7cQo!WW2h!!!$!s6p!g!.Y%,!!!!@s1eU7 +!!3'!~> +Q +q[4.8 0 0 -240 640.28 1810.08]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +62 69 true[1 0 0 1 -706 -1726]@X +imagemask +5C`_6!!!9%5JR7!!!!9%+2@jV!!!Q-+2@jV!!!Q)+5d,!!!!Q)&)[Ef!!",1&+BQ!!!",1#Oh]n +!!",1#Oh]n!!#7A#P\9!!!#7A"8Dir!!%N,"8i-!!!%Ma"8i-!!!%Ma!W2ot!!*%L!WE'!!!*%L +!<)ru!!*%L!<)ru!!3*"!<3$!!!3*"!.OtK!!E6$!.TM!!!E3#!'gM`s8W&u!'gM`s8Vus!'gM` +s8Vus!$D7@s8Vus!$D7@s8Vio!$D7@s8Vio!"[uf!$Ct9!"[uf!$C\1!!hun!$C\1!!hun!'fBA +!!i9!!'fBA!!Dur!'fBA!!Dur!.Vca!!E-!!.Vca!!2ut!.Vca!!2ut!<7QL!!)uu!<7QL!!)uu +!<3$!!!)uu!WN-"!!%KK!WN-"!!%KK"9&9#!!%M!"9&9#!!#66"9&9#!!#66#Q+Q%!!"+V#Q+Q% +!!"+V#P\9!!!"+V&,6,)!!!Pf&,6,)!!!Pf&+BQ!!!!Pf+7K71!!!8n+7K71!!!8n+5d,!!!!,j +5MuMA!!!,r5JR7!!!!,r5JR7!!!!&pJ%u$a!!!&tIt.M!!!!&tIt.M!!!!#ss*t(L!!!#urr<$! +!!!"Jrr<$!!!!"KrVuou!!!"KrVuou!!!!`rVuou!!!!`qu?]s!!!!`qu?]s!!!!@p](9o!!!!@ +p](9o!!!!0p](9o~> +Q +q[1 0 0 1 0 0]concat +52 69 true[1 0 0 1 -779 -1726]@X +imagemask +J,fQKJ,fS!s8W,o!!%NKs8W&u!.Y%Ks8RTLJ,fQKs53m,s8W-!n,Rrg!!E9!!.TM!!.XtJIt.M! +&,uWZJ,fQOs+#TL!!!'"J:E(L!!*&7It.M!!.Ve6J,fQL5N%$A!!!!`i.$7W!!",!It.M!!$C][ +J,fQL&+G(!!!!!0n:,rg!!!Q!It.M!!"\RKJ,fQL+5hX!!!!!@i.$7W!!",!It.M!!'e8KJ,fQL +J&$Pa!!!$!J:E(L!!3+MIt.M!"9/@NJ,fQSrW%Fu!!",=!.TM!!<;NgIt.M(s53m,s8W-!J,k*! +s8Vus!.Y%Ks53kWJ,fQK^]4@as8W,o!!%NKs8W&u!.TM!+9-ikIt.M"s1eVaJ,fS!n,Rrg!!",9 +!.TM!!!iE%It.M!"9&:MJ,fQMrW%Fu!!!$!!.TM!!!*$!It.M!!.TNKJ,fQLIt3$!!!!"KJ:E(L +!!%M!It.M!!.TNKJ,fQLIt3$!!!!"KJ:E(L!!*$!It.M!!WN.LJ,fQOrr@P!!!!9'!.TM!!"\u- +It.M!5PtM2J,fWMp],eo!$D71!.Y%Ks8Tk7J,fQKs*t*!s8W,u!!%NKs8Vio!.Y%Ks1eU7J,fQH +!!!!~> +Q +q[1 0 0 1 0 0]concat +58 73 true[1 0 0 1 -837 -1724]@X +imagemask +zJ,B9H!!!!(s8RTL!!!!`s8VQg!!!$!s8Vus!!!-$s8W*!!!!9(s8W,7!!",@^^'mi!!#7_!!%M! +!!%ND!!"*k!!*&W!!!7S!!3,8!!!+O!!E6$!!!"L!!E3#z!!iE%z!"\u-z!"\i)z!$C\1z!'frQz +!'fBAz!.Vcaz!.Vcaz!.Vcaz!<7QLz!<7QLz!WN-"z!WN-"z!WN-"z!WN-"z"9&9#z"9&9#z"9&9#z +"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z +"9&9#z!WN-"z!WN-"z!WN-"z!WN-"z!<7QLz!<7QLz!<9h7z!.Vcaz!.Vcaz!'fBAz!'frQz!$C\1z +!$Ct9z!"\u-z!!iE%z!!E3#z!!E6$z!!3,8!!!'#!!*&W!!!K/!!%ND!!#4`!!#7_!!*$!!!",@ +^^pGF!!!9(s8W*!!!!-$s8W*!!!!$!s8W*!!!!!`s8Vus!!!!(s8V!WzJ,B9H~> +Q +q[1 0 0 1 0 0]concat +57 69 true[1 0 0 1 -909 -1726]@X +imagemask +J,fQKzJ,fQKn,NFgJ,fQKqu?]sJ,fQKrr<$!J,fQKs1eU7J,fQKs53kWIt.M(s7cQoIt.M!J,B9H +It.M!+8u6?It.M!#QFc(It.M!"93lOIt.M!!<9h7It.M!!.VcaIt.M!!'fBAIt.M!!'frQIt.M! +!$C\1It.M!!"\i)It.M!!!i9!It.M!!!iE%It.M!!!E-!It.M!!!E3#It.M!!!E3#It.M!!!3'! +It.M!!!3*"It.M!!!3*"It.M!!!*$!It.M!!!*%LIt.M!!!*%LIt.M!!!*%LIt.M!!!*%LIt.M! +!!%M!It.M!!!%M!It.M!!!%M!It.M!!!%M!It.M!!!%M!It.M!!!%M!It.M!!!%M!It.M!!!%M! +It.M!!!*%LIt.M!!!*%LIt.M!!!*%LIt.M!!!*%LIt.M!!!*$!It.M!!!*$!It.M!!!3*"It.M! +!!3*"It.M!!!3'!It.M!!!E3#It.M!!!E-!It.M!!!iE%It.M!!!iE%It.M!!"\i)It.M!!"\i) +It.M!!$C\1It.M!!'fBAIt.M!!.Wo,It.M!!<9h7It.M!!WRZMIt.M!"93lOIt.M!#QFc(It.M! ++8u6?It.M!J,B9HIt.M(s6p!gJ,fQKs53kWJ,fQKs1eU7J,fQKrr<$!J,fQKqu?]sJ,fQKn,NFg +J,fQKz~> +Q +q[1 0 0 1 0 0]concat +46 69 true[1 0 0 1 -981 -1726]@X +imagemask +s8W-!s8;oss8W,ss8W-!s8;oss8W,ss8W-!s8;oss8W,ss8W-!s8;nIzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*'!s8W,7s8W-!s1n[7s8W,7s8W-!s1n[7s8W,7 +s8W-!s1nYbzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs8W-!s7lWos8W,os8W-! +s7lWos8W,os8W-!s7lWos8W,os8W-!s7c~> +Q +q[1 0 0 1 0 0]concat +43 69 true[1 0 0 1 -1041 -1726]@X +imagemask +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*'!s8W&us8W-!rW)uus8W&us8W-!rW)uus8W&us8W-!rW)tKzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs8W-!s5 +Q +q[1 0 0 1 0 0]concat +59 73 true[1 0 0 1 -1087 -1724]@X +imagemask +zJ+s!D!!!!(s8RTL!!!!`s8Vio!!!$!s8W*!!!!-$s8W,7!!!9(s8W,W!!",@^^pJ'!!#7_!!%N, +!!%ND!!",!!!*&W!!",!!!3,8!!",!!!E6$!!",!!!E3#!!",!!!iE%!!",!!"\u-!!",!!$Ct9 +!!",!!$C\1!!",!!'frQ!!",!!'fBA!!",!!.Vca!!",!!.Vca!!",!!<7QL!!",!!<7QL!!",! +!<7QL!!",!!WN-"!!",!!WN-"!!",!!WN-""98DZ!WN-""98DZ"9&9#"98DZ"9&9#"98DZ"9&9# +"98DZ"9&9#"98DZ"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z"9&9#z +"9&9#z"9&9#z"9&9#z!WN-"z!WN-"z!WN-"z!WN-"z!<7QLz!<7QLz!<9h7z!.Vcaz!.Vcaz!'fBAz +!'frQz!$C\1z!$Ct9z!"\u-z!!iE%z!!E3#!!!"L!!E6$!!!%M!!3,8!!!+O!!*&W!!!O[!!%ND +!!#66!!#7_!!*%L!!",@^^pI\!!!9(s8W,7!!!-$s8W+L!!!$!s8W&u!!!!`s8Vio!!!!(s8Tk7z +J+s!D~> +Q +q[1 0 0 1 0 0]concat +52 69 true[1 0 0 1 -1161 -1726]@X +imagemask +s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L +!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1 +J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL ++7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1s8W-!s7$'g +s8W-!nGiOgs8W,gs8W-!s8VTgs8W-!s7$'gs8W-!nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@ +nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"= +!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1 +s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L!$C_1J,fQL+7T;\!!!!@nGe"=!!",1s*t(L +!$C\~> +Q +q[1 0 0 1 0 0]concat +9 69 true[1 0 0 1 -1232 -1726]@X +imagemask +s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-" +s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-"s+(-" +s+(-"s+(-"s+(-"s+(-"s*t~> +Q +q[1 0 0 1 0 0]concat +38 71 true[1 0 0 1 -1251 -1724]@X +imagemask +!!E7O!!#7`n,NLhs82j-s8W*!+92B@J04gks1f0?"979i^]=Dm%fcSon.#Eu+7K[=!$Ct9!!!Q) +!!!!0p](9o#P\9!!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9% +!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9% +!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9% +!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9% +!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE%!!!9%!!!!(qu?]s#Q+Q%!!iE~> +Q +q[1 0 0 1 0 0]concat +56 69 true[1 0 0 1 -1306 -1726]@X +imagemask +It.M!!!E7NJ,fQL"9*e#!!!!(r-s4s!!!Q)It.M!!"\jSJ,fQL+7Oc1!!!!`i.$7W!!#7AIt.M! +!.Ve6J,fQLs+#TL!!!$!J:E(L!!3*"It.M!"9&:MJ,fQOrW%Fu!!!9%!.TM!!"\i)It.M!&,6-S +J,fQkn,Rrg!!#7A!.TM!!'fBAIt.M!J%u&6J,fTLJ,k(L!!*%L!.Vca!WN-"J)C;/rVuqJn,NRi +!!%ND!!iE%!.XnH&,6,)J,TEYp](;Drr=/1!!%NKJ3Vrl!.Y$aJ)C;,J,eGV^]4@a^[V8R!!%M@ +q>YsF!.U(.rr<$!Iu"('!!!"KKE(oN!!%M"s82is!.TP!p](9oIt3%D!!!"KJ3WN'!!%M!+7K71 +!.TM0p](9oIt.e%!!!"KJ-5cN!!%M!!WN-"!.TM!s*t(LIt.NK^]4@aJ,hgl!!%M!!$C\1!.TM! +&,6,)It.M(qu?_HJ,f]N!!%M!!!3*"!.TM!!<7QLIt.M!J%u&6J,fR6huJ7W!!",1!.TM!!"\i) +It.M!#Q+ROJ,fQOrW%Fu!!!'"!.TM!!!*%LIt.M!!.Ve6J,fQL5N%$A!!!!@n:,rg!!!Q)It.M! +!!iE~> +Q +q[1 0 0 1 0 0]concat +41 69 true[1 0 0 1 -1375 -1726]@X +imagemask +s8W-!s+(.Ls8W+Ls8W-!s+(.Ls8W+Ls8W-!s+(.Ls8W+Ls*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lzs*t(L!!*%Lz +s*t(L!!!~> +Q +q[1 0 0 1 0 0]concat +68 69 true[1 0 0 1 -1429 -1726]@X +imagemask +It.M!!!!!0n:,rgz&+G(!!!2ut!"\RKJ,f]N!!!Q!It.M$rVup/n:,rg#Q=]'&+G(!!!iN(!"\RK +J,fiS!!!Q!It.M0rr<$0n:,rg&)Vm;&+G(!!"[t;!"\RKJ,g\K^]4o7It.M@hnT4&n:,rg5EES[ +&+G(!!'cP&!"\RKJ,hfphuF;WIt.NK#Oh^(n:,rgIg>HC&+G(!!<*5m!"\RKJ,oQNp](ioIt.Ou +"8Dj,n:,rhquQQm&+G(!!W2ur!"\RKJ-#QKqu@8sIt.Xr!<)s/n:,rjp]19n&+G(!#Oh`m!"\RK +J-YQDIfL#KIt.dn!.OtZn:,s!huGtA&+G(!&)[FPJ.M.!J.LQ<5Ca:6It/WV!$Auen:,s1^]5Il +&+G(!5C`_U^^opaJ3SPa&)[ufIt0b6!"[uun:,t +Q +q[1 0 0 1 0 0]concat +52 69 true[1 0 0 1 -1517 -1726]@X +imagemask +IfKHK!WVY=!!!!"s6tL`K!"\RK#P\9!&+G&Zn,NG!n:(u +Q +q[1 0 0 1 0 0]concat +67 73 true[1 0 0 1 -1580 -1724]@X +imagemask +!!!!$s*t(Lz+91g1z!<<)uz!!E9$s*t(L!!!9(s8V!W!!!!@s8W,gz5Q:``p](9o!.XbD5Q1W_!!*&W +!"])0!!!'"J,f]OJ,fQOrr<$"s*t(L#Q=]'!<9h7!"\u-!!%N,!!",9!!!!`n,NG1n,NFg+7K71 +5O\XQ!"\i)!'fBA!!!Q-!!%Ma!!!!(qu?_H^]4?7#Q=]'s*t(L!!E3#!<7QL!!!-$!!3*"!!!!" +rr<*"z!WN-#rr<$!!!*%L"9&9#!!!$!J-5cNzs*t4Nz!<9h>rVuou!!%Ma#Q+Q%!!!"K^^'c;zJ%u +Q +q[1 0 0 1 0 0]concat +49 69 true[1 0 0 1 -1661 -1726]@X +imagemask +It.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!%M!z +!.TM!zIt.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"KJ,fQL +!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!%M!z!.TM!zIt.M!!!!"Ks8W&u!!%NKs8V!W!.Y%Ks7cQoJ,fQK +rVuqJs8W-!!!%NKs8W,7!.TM!&-(PfIt.M!s6p# +Q +q[1 0 0 1 0 0]concat +67 83 true[1 0 0 1 -1716 -1714]@X +imagemask +z!!!9(z!!!!(rVuouz&,ZD-z!$Ct9z!!#7Yz!!!!`n,NFgzJ)C;,z!<9h7z!!3+Mz!!!'"J,fQL +!!E7Rrr<$!!!",@s8Duu!!!$!s8Vus!!!!$s8W,sz#QOi(p](9o!$D7@s6p!g!!#7_!<;fo!!!"K +n,Rt9zs1eX7rVuou!WRZNs8N'!!!E6$!WW1M!!!9%!!E4M^]4?Fp](Qu5MuMA+8>g@r#bD.!$C\1 +&,779!!#7A!$C\@p](:Y^]6Ug#Q+Q%J%u%Ki!9/[!.TM!J%u0c!!*%L!<7QMrVuru!!*%L!WN-# +rr<$!!!3*"!WE'!!!!$!!!3'!zs*t4Nz!<7QOqu?]s!!%M!"8i-!!!!"KJ-YuPzJ%u +Q +q[1 0 0 1 0 0]concat +52 69 true[1 0 0 1 -1798 -1726]@X +imagemask +It.M!!$C][J,fQL+7Oc1!!!!`i.$7W!!#7!It.M!!.Ve6J,fQLs+#TL!!!$!J:E(L!!3*"It.M! +!WE(KJ,fQOrW%Fu!!!9%!.TM!!!i9!It.M!&,6-SJ,fQ[n,Rrg!!",1!.TM!!$C,!It.M!5JR8K +J,fS!^]8k7!!%M!!.TM!!<7QLIt.M!rr<%KJ,fWL!!%M!!!E3#!.TM!"8i-!It.M(qu?_HJ,fiL +!!%M!!"\Q!!.TM!&+BQ!It.M@huEb,J,hgl!!%M!!'e7!!.TM!It.M!J,fQKJ,fS!s8W,g!!%NK +s8Vus!.Y%Ks8N'!J,fQKs1eVas8W-!huJ7W!!iPn!.TM!!.XbDIt.M!+8c+gJ,fQSrW%Fu!!!-# +!.TM!!!3*"It.M!!<3%KJ,fQLs+#TL!!!"KJ:E(L!!%M!It.M!!.Ve6J,fQL5JVc!!!!!`^jgk7 +!!#7!It.M!!.Ve6J,fQLIt3$!!!!"KJ:E(L!!*%LIt.M!!<3%KJ,fQMrr@P!!!!-#!.TM!!!iE% +It.M!+8c+gJ,fS!p],eo!!iPn!.Y%Ks8Tk7J,fQKs*t*!s8W,u!!%NKs8Vio!.Y%Ks1eU7J,fQH +!!!!~> +Q +q[1 0 0 1 0 0]concat +49 73 true[1 0 0 1 -1854 -1724]@X +imagemask +!!!Q/z!WW2X!!!!0s8Vio!!#7`s8Duu!<<*!rr<$$s8W-!^]4oFs8W,W!$D79"97ij&-%.[J+*FK +qu?^=p](io!!!Q-!"ZjF!!iE%%fcS0"9&9)!!!!"rW!'$!!!'"z!!*$!z!<3$!zIfKHK!!!"KJ,fQL +!!%M!z!.TM!zIt.M!!!!"KJ,fQL!!*%Lz!<3$!zrr<$!!!!'"z!!E6$z#Q=]'!!!!0rVuou!!",=z +!.XnH!!!!$s7cQo!!",@n,NFg"98Dj!!!!@s8V!W!!*'!s1eU7"98E$!!!!(s8W&u!!!Q0s7cQo +!'gM`huE`W5QC``!!!"Ks6p!g!!*'!z!WVWh!!!!"s1eU7!!!-$J,fQL!!E6$z#Q=]'!!!!(qu?]s +!!!9%z!!i9!z#P\9!!!!!(p](9o!!!8nz!!hunz#P\9!!!!!(p](9o!!!9!z!!Durz"8i-!!"],2 +rVuou0E;.Q!!!" +Q +q[1 0 0 1 0 0]concat +63 68 true[1 0 0 1 -1909 -1726]@X +imagemask +!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0 +p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o +!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0 +p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o +!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0 +p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o +!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0 +p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o!!!!0p](9o +!!!!0p](9o!!!!0p](9o+92B@s8W,u+92B@s8W,u+92B@s8W,u+92B@s8W,u+92B@s8W,u+92B@ +s8W,u~> +Q +q[1 0 0 1 0 0]concat +50 71 true[1 0 0 1 -1986 -1724]@X +imagemask +!!!Q-z!.Y$a!!!!"s8VQg!!!9(s82is!$D7@rr<$!5QCc`J,fS!qucu7!!*&W!<:sW!WRZM5O\XT +rr<$0p](Qu!!!9!!"\u-!!E-!&,6,)"9&9Bn,NFhrW"&0!!!$!!'fBA!!*$!5MuMA!.TM`^]4?7 +It3$a!!!"KJ:G?7!!#66J%u$a!'e8KJ,fQL5JVc!!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L +!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!` +_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job +!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7! +s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L +!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:!J,fQL5J[;L!!!!`_#Job!!#7!s*t(L!'e:! +J,fQL5J[;L!!!!`^]~> +Q +q[1 0 0 1 0 0]concat +64 69 true[1 0 0 1 -2046 -1726]@X +imagemask +!!!!@p](9o!!!!@p](9o!!!!@qu?]s!!!!`qu?]s!!!!`rVuou!!!"KrVuou!!!"KrVuou!!!"K +rr<$!!!!$!rr<$!!!!$!56(Z`!!!'"5C`_6!!!'"5C`_6!!!'!+2@jV!!!-#+2@jV!!!-#+2@jV +!!!9%&)[Ef!!!9%&)[Ef!!!9%&+BQ!!!!Q)#Oh]n!!!Q)#Oh]n!!!Q!#P\9!!!",1"8Dir!!",1 +"8i-!!!#7A!W2ot!!#7A!W2ot!!#7!!WE'!!!%Ma!<)ru!!%Ma!<3$!!!*%L!<3$!!!*%L!.OtK +!!*%L!.TM!!!3*"!'bu6!!3*"!'e7!!!E3#!'e7!!!E3#!$AuV!!E3#!$C,!!!iE%!"[uf!!iE% +!"\Q!!"\i)!"\Q!!"\i)!!hun!"\i)!!i9!!$C\1!!i9!!$C\1!!E-!!'frQ!!E-!!'fBA!!2ut +!'fBA!!3'!!.Vca!!3'!!.Vca!!)uu!<9h7!!*$!!<7QL!!%KK!<7QL!!%M!!WN-"!!%M!!WN-" +!!#66"9/?$!!#7!"9&9#!!"+V"9&9#!!",!#Q+Q%!!",!#Q+Q%!!!Pf#Q+Q%!!!Q!&,6,)!!!Q! +&,6,)!!!9!+8>g9!!!9!+7K71!!!,r+7K71!!!-!5MuMA!!!-!5MuMA!!!'!J)C;,!!!'!J%u$a +!!!#uJ%u$a!!!$!~> +Q +q[1 0 0 1 0 0]concat +91 69 true[1 0 0 1 -2112 -1726]@X +imagemask +!!!Q)!!!!"rVuou!!!Q)!!!!$rr<$!!!!Q)!!!!$rr<$!!!!Q-!!!!$rr<$!!!",=!!!!(s*t(L +!!",=!!!!(s*t(L!!",?!!!!(s*t(L!!#7_!!!!(s1eU7!!#6t!!!!0n%\o'!!#6t!!!!0n%\o' +!!#6u!!!!0n%\o'!!%M`!!!!@cend'!!%M@!!!!@cend'!!%KjJ,fQka5?pt!!*$@J,fR6a7''/ +!!*$@J,fR6a7''/!!*$0J,fR6L[Y9D!!3'0^]4@!KCAj@!!3'0^]4@aKD5EH!!3'0^]4@aKD5EH +!!3'(huEb,"8Dir!!E-(huEcW!W2ot!!E-(huEcW!W2ot!!E-(huEcV!W2ot!!iE(n,NIf!<)ru +!!i9$n,NLg!<)ru!!i9$n,NLg!<)ru!!i9$p](?m!<)ru!"\i*p](Eo!.OtK!"\Q"p](Eo!.OtK +!"\Q"p](Ek!.OtK!$C\1qu?io!.TM!!$C,!qu?us!'bu6!$C,!qu?us!'bu6!$C,!rW!2m!'bu6 +!'fBAIK0oJ!$AuV!'e7!IK0oJ!$AuV!'e7!IK0o:!$AuV!.Vca56)5P!"[uf!.TM!56)e`!"[uf +!.TM!56)e`!"[uf!<7QL5Caik!"[uf!<7QL++QSk!!hun!<3$!++QSk!!hun!<3$!++QS+!!hun +!WN-"&&:D[!!Dur!WE'!&&<[F!!Dur!WE'!&&<[F!!Dur"9&9#&)_p;!!E-!"9&9##N1(3!!2ut +"8i-!#N5U^!!2ut"8i-!#N5R]!!2ut#Q+Q%"7Z9i!!)uu#P\9!"7Z9i!!)uu#P\9!"7c?j!!)uu +&,6,)"7c9h!!*$!&,6,)!VuWn!!%KK&+BQ!!VuWn!!%KK+7K71!W2Wl!!%KK+7K71!;lNk!!#66 ++5d,!!;lNk!!#66+5d,!!<;fo!!#665MuMA!<;Ng!!#7!5MuMA!.XJ +Q +q[1 0 0 1 0 0]concat +64 69 true[1 0 0 1 -2206 -1726]@X +imagemask +J%u$a!!!9(J)C;,!!!9'5O\XQ!!!Q-+7K71!!",9&,6,)!!#7Q&,ZD-!!#7Q#Q=]'!!%N,"9&9# +!!*&7!WN-"!!3+M!WRZM!!3+M!<7QL!!E6$!.Vca!!iK'!'fBA!!iE%!'fBA!"\i)!$C\1!$Ct9 +!"\i)!'frQ!!iE%!'fBA!!iE%!.Vca!!E3#!<9h7!!3*"!WRZM!!3*"!WN-"!!*%L"9&9#!!%Ma +#Q=]'!!#7A#Q+Q%!!#7A&,6,)!!",1+7K71!!!Q)5MuMA!!!9!5MuMA!!!9%J%u$a!!!-#s*t(L +!!!'"rr<$!!!!$!rr<$!!!!$!rVuou!!!"Kqu?]s!!!!`p](9o!!!!@n,NFg!!!!@n,NFg!!!!` +p](9o!!!!`p](9o!!!"Kqu?]s!!!$!rVuou!!!'"rr<$!!!!-$rr<$!!!!-#s*t(L!!!9%s1eU7 +!!!Q-J%u$a!!",95MuMA!!",1+7K71!!#7A+8>g9!!%N,&,6,)!!*&7#Q+Q%!!3+M"9&9#!!3*" +"9/?$!!E6$!WN-"!!iK'!<7QL!"\u-!<9h7!"\i)!.Wo,!$Ct9!'fBA!'frQ!$C\1!.Wo,!$Ct9 +!<9h7!"\u-!<9h7!!iE%!WRZM!!iK'"9/?$!!E6$#QFc(!!3*"#Q=]'!!*%L&,ZD-!!*&7+8>g9 +!!%N,5PP3Y!!#7A~> +Q +q[1 0 0 1 0 0]concat +65 69 true[1 0 0 1 -2272 -1726]@X +imagemask +!!!!0n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!0n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!0n,NFgz&+BQ!z +!"\Q!z!!!Q!z!!!!0n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!0n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!0 +n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!0n,NFgz&+BQ!z!"\Q!z!!!Q!z!!!!@p](9oz+8c*=z!'gA]z +!!%NJz!!!"Krr<$!zs8RTLz!WW1Mz!!E6c^]4?7!!!-$5MuMA!!!!(rZC%uz&,m+/z!"\u +Q +q[1 0 0 1 0 0]concat +55 69 true[1 0 0 1 -2338 -1726]@X +imagemask +#QOi(s8W''s8W-!s8E9's8W-!rWiK's8W,u#QOi(s8W''s8W-!s8E-#z!!3+Mz!WRZMzs1eU7!!!"K +huE`W!!%N,z!'frQz+8>g9!!!!@p](9o!!!Q-z!!iE%z#Q=]'!!!!$rr<$!!!!'"z!!3+Mz!<9h7z +s1eU7!!!"KhuE`W!!#7Qz!'frQz+8>g9!!!!0qu?]s!!!Q-z!!iK'z"9/?$!!!!$rr<$!!!!'"J,fQL +!!*&7z!<9h7zJ)C;,!!!!`n,NFg!!#7Qz!$Ct9z&,ZD-!!!!0qu?]s!!!9'z!!E6$z"9/?$!!!!" +s*t(L!!!$!J,fQL!!*&7z!.Wo,zJ)C;,!!!!`n,NFg!!",9z!$Ct9z&,ZD-!!!!(rVuou!!!9'z +!!E6$z!WRZM!!!!"s*t(L!!!$!^]4?7!!%N,z!.Wo,z5O\XQ!!!!@p]LQrs8W,o"98E$s8W!!s8W-! +s83!!s8W-!qud!!s8W,s"98E$s8Vu~> +Q +q[1 0 0 1 0 0]concat +39 47 true[1 0 0 1 -706 -1605]@X +imagemask +!$C\1!!%NKJc5ZLs7-'hs8W&s"98E$rWiK's8E9'!<<$/qu@i<&+BQ(rX[oe"9&hh!!E3BhuEfW ++5d,"rZC%u!WEVf!!3'0n,NLg#P\9"rWiE&!WE3$huWfXs8N-!!.Y%KrW#1_s8E!'s8W&u!<<)u +!!!Q0rVuou!WE'!!!3'!!!!'!!!!!"rVuou!WE'!!!3'!!!!'!!!!!"rVuou!W2ot!!E-!!!!-! +!<<*)quMX!"\i*qu@i.!WR\"huWlXs53qXs8Tk7s8W+L!'gM_!!!9(p](9os1eU~> +Q +q[1 0 0 1 0 0]concat +47 70 true[1 0 0 1 -754 -1605]@X +imagemask +!!!$!!!!'!#QN]^!WF2@p](?o5QCW]!WN-!rW!!!s8W*!!WVp*s*t.MhuWkn!WTq8J)CA-J,hgl +!WN-"+7K=1!!!Q!!WE'!&,62)!!!9!!WE'!#Q+W%!!!-!!WE'!"8i3!!!!-!!WE'!!W2ut!!!'! +!WE'!!WE-!!!!'!!WE'!!WE-!!!!'!!WE'!!WE-!!!!'!!WE'!!WE-!!!!'!!WE'!!W2ut!!!-! +!WE'!"8i3!!!!-!!WE'!#P\?!!!!9!!WE'!&,62*!!",1!WRZM5O\^R^]8lB!WVWhs53qXr!38; +!WW3"s*t.Ls8W*!!WG=`rVuuu&-)P-!WE3$p](?o!'e7!!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z +!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z +!WE'!!!!'!z!WE'!!!!'!z~> +Q +q[1 0 0 1 0 0]concat +40 47 true[1 0 0 1 -808 -1605]@X +imagemask +!!!Q-!!!$!s*t(Os8VQg#QOi%!$D7@rr>:`s8N(Kp]pg!s1eVa!WRZM*s)?@!!`W*!!!*+qu?]s +#P\9!!!i9!!!!Q!!!!!0n,NFg+5d,!!$C,!!!",!!!!!@huE`W+5d,!!$AuV!!"+V!!!!@^]4?7 ++2@jV!$AuV!!",!!!!!@huE`W+5d,!!$C,!!!!Pf!!!!0n,NFg&+BQ!!!i9!!!!9!!!!!$qu?]s +"9&9#!Wi9#!!WH'J,gVjs1eV`!.XbGrW#1_s8N'@s8W*!#QOi%!!E9$n,NH +Q +q[1 0 0 1 0 0]concat +42 70 true[1 0 0 1 -852 -1605]@X +imagemask +!!*$!!!!!$s56,W!"],)5JR7@s8G6u!.Y%K5JR8Ks8W,7!<;O1s1e[8^^'nT"9/?%s1ea9!!*&7 +#Q+Q%J%u +Q +q[1 0 0 1 0 0]concat +40 47 true[1 0 0 1 -904 -1605]@X +imagemask +!!!Q)!!!$!s*t(Os8V!W#QOi!!$D7@rW#1_s8N(Kn-Asns1eX7!WN-"*s)?@!"K,/!!!'*p](9o +#P\9!!!hun!!!Pf!!!!0huE`W+5d,!!$AuV!!"+V!!!!@^]4?7+2@jV!$AuV!!"*k!!!!`s8W-! +5QCc`ru_:@s8O2@s8W*@s8W-!+2@jV59IZ@!'_R`!!#4ohuEa@&)[EfILkoJ!.G1B!!%HQp]( +Q +q[1 0 0 1 0 0]concat +34 70 true[1 0 0 1 -948 -1606]@X +imagemask +!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M! +!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M! +!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M!!.TM!!!%M!!!!"KJ,fQLIt.M! +!.TM!!!%M!!!#7`s53lAs8V!W5QCcA!'gM`huH"As53lAs8V!W!.OtK!!%KK!!!"KzIfKHK!.OtK +!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!#4`!!!!`J,fQL5C`_6!$?^k!!"+V!!!!0 +n,P]R&,ZOF!!iQ(^]4K:s1eU8s8Tk7!.Y$a!!",@^]4?>rVu~> +Q +q[1 0 0 1 0 0]concat +47 66 true[1 0 0 1 -978 -1585]@X +imagemask +!!#7]!!!!$s8Tk7!$D7@p](;Ds8W&u!WW3"rr<0$s8W,7#QMREs54Fe!!%N<+8>g9+7LB1!!!Q) +5JR7!"8G*2!!!-!5C`_6!W504!!!&t5C`_6!W504!!!&t5C`_6"8j7V!!!,r+2@jV#P\hf!!",9 +&,6,*s6p9ns8W,g"98E$s53nWs8W,7!<<*!s*t.Ms8W&u!WW3"n,NRjs8N'!"8i-!!!!,jz"5j.Z +!!!,Zz"5j.Z!!!,Zz"5nZZ!!!,]s6p!g!WW2t!!!'"s8Duu!<<*!!!!$!s8RTL!<9k7^]4E8!'fBA +!WE'@huElW!"\Q!"8Dj$n,NRc!!hun#P\9$p](Qg!!Dur#Oh]qp](Qg!!Dur#Oh]qp](Qg!!Dur +#Oh]qp](Ek!!Dur"8Dj$n,NRc!!hun!W2p.n,NLg!$C,!!<3$`^]4B7_#M1M!.Y%Ks8E!_s8W,u +!$D7@s8E!'s8;or!!E8j+8c*=It.Os~> +Q +q[1 0 0 1 0 0]concat +42 69 true[1 0 0 1 -1028 -1606]@X +imagemask +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WN-"+2@pW!!#7!!WN-"5JR="J,hgL!WRZM5JR="^]8l"!WV'Xs*t.Mn,`Q>!WW'&s*t.Ls8W*! +!WITKrVuuu5QC]_!WEW0qu?cs#QO8n!WE*!J,fWLz!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'! +!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'! +!!!'!z!WE'!!!!~> +Q +q[1 0 0 1 0 0]concat +15 68 true[1 0 0 1 -1080 -1606]@X +imagemask +!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur +!W2ur!W2ur!W2ur!W2ur!W2ur!W2ur!W2urzzzzzzz!!!-#"9&E%"9&E%"9&E%"9&E%~> +Q +q[1 0 0 1 0 0]concat +25 88 true[1 0 0 1 -1096 -1586]@X +imagemask +!<3$!#QN]^5QC3QJ,f9DJ,fEHJ,fKJ4pV&e3!'$Z+9;EA!!%M!!!%M!!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66zzzzzzzzzzzzzzz!!*%L!!*%L!!*%L!!*%L!!*%L!!*%L!!*%L!!*%L +!!*%L~> +Q +q[1 0 0 1 0 0]concat +46 69 true[1 0 0 1 -1130 -1606]@X +imagemask +!W2ot#Q+W#!!!9!!W2ot&+BVt!!",!!W2ot+5d1t!!#7!!W2otIt.Rt!!%M!!W2otrr<)t!!3'! +!W2p"rVuus!!E-!!W2p&p](?m!"\Q!!WE'0n,NLh!$C,!!WR[7^]4E8^d#U7!WV)-J,fWMi;WcW +!WV]i!!!'"q>L?o!WW2t!!!'"s7cQo!WN,o!!!'!J+*F +Q +q[1 0 0 1 0 0]concat +15 69 true[1 0 0 1 -1179 -1606]@X +imagemask +!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-! +!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-!!WE-! +!WE-!!WE-!!WE-!!WE-!!WE~> +Q +q[1 0 0 1 0 0]concat +70 45 true[1 0 0 1 -1203 -1606]@X +imagemask +!WE'!+2@jYquQcs!$AuV"8i3!!!"+V!!E-"rVup?^]4K7!WE'!+2@jYquQcs!$AuV"8i3!!!"+V +!!E-"rVup?^]4K7!WE'!+2@jYquQcs!$AuV"8i3!!!"+V!!E-"rVup?^]4K7!WE'!+2@jYquQcs +!$AuV"8i3!!!"+V!!E-"rVup?^]4K7!WE'!+2@jYquQcs!$AuV"8i3!!!"+V!!E-"rVup?^]4K7 +!WE'!+2@jYquQcs!$AuV"8i3!!!"+V!!E-"rVup?^]4K7!WE'!+2@jYquQcs!$AuV"8i3!!!",! +!!E-"rVup?huElW!WE'!+5d,$quQcs!$C,!"8i3"!!",!!!E-"rr<$@n,NRg!WN-"5O\XTquQhJ +!'frQ"8i3"J,hh/!!iE&s1eVaqu?us!WV'Xs82j-p]:Ea!WTn7+8>m8r!37o_#Nm)r;Zfs+92B1 +!W7HIrs/T(huWa?s8E-#s1e[5&-)P.s8RTMqucug!.Y"K!W2qIJ,g,T!!~> +Q +q[1 0 0 1 0 0]concat +42 45 true[1 0 0 1 -1282 -1606]@X +imagemask +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WN-"+2@pW!!#7!!WN-"5JR="J,hgL!WRZM5JR="^]8l"!WV'Xs*t.Mn,`Q>!WDp$s*t.Js8W*! +!W7HIrVuus5QC]_!W3K.qu?cq"97ij!W2qIJ,f~> +Q +q[1 0 0 1 0 0]concat +46 47 true[1 0 0 1 -1334 -1605]@X +imagemask +!!",1zs8N'!!!E9$^]4?Fs8V!W!$D7@p](:Ys8Vus!.XJ[rVuru^]XT:!WN-#s*t4N!!%Ma#Q+Q% +5JRO!!!#7A&,6,)+5d\!!!!Q!&+BQ!&+C\!!!!9!+5d,!#P]D!!!!9!5JR7!#P^O!!!!,r5JR7! +"8kC!!!!-!5JR7!"8kC!!!!-!5JR7!"8kC!!!!-!5JR7!"8G*r!!!,r+2@jV"8EtR!!!9!+5d,! +#P]D!!!!8n&)[Ef&+C,!!!!Q!#Oh]n+5dD!!!",!"8i-!5JRC#!!%M!!WN-"s*t+L^]XT:!.XJ[ +rVup_s8Vus!$D7@p](:!s8V!W!!E9$^]4?7s8Duu!!",1!!!~> +Q +q[1 0 0 1 0 0]concat +47 64 true[1 0 0 1 -1384 -1587]@X +imagemask +!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'!!!!'!z +!WE'!!!!'!z!WE'!!!!'!z!WE*!!!!'!#QN]^!WF2@p](?o5QCW]!WN-!rW!!!s8W*!!WVp*s*t.M +huj"p!WTq8s53qXJ,k)W!WN-"5O\^Q!!",1!WE'!&,62)!!!9!!WE'!#Q+W%!!!-!!WE'!"8i3! +!!!-!!WE'!!W2ut!!!'!!WE'!!WE-!!!!'!!WE'!!WE-!!!!'!!WE'!!WE-!!!!'!!WE'!!WE-! +!!!'!!WE'!"8i3!!!!-!!WE'!"8i3!!!!9%!WE'!#P\?!!!!Q)!WE'!&,62*!!",1!WRZM5O\^R +^]8lB!WVWis53qXr!38;!WW3"s*t.Ls8W*!!WG=`rVuuu&-)P-!WE3$p](9o!'e7!~> +Q +q[1 0 0 1 0 0]concat +42 64 true[1 0 0 1 -1438 -1587]@X +imagemask +z5JR7!!!#7!z5JR7!!!#7!z5JR7!!!#7!z5JR7!!!#7!z5JR7!!!#7!z5JR7!!!#7!z5JR7!!!#7!z +5JR7!!!#7!z5JR7!!!#7!!!*$!5JR7(s56,W!"],)5JR7`s8G6u!.Y%K^VBjLs8W,7!<;g9s1e[8 +^^'nT"93lPs1ea:!!*&7#Q=]'J%u +Q +q[1 0 0 1 0 0]concat +32 45 true[1 0 0 1 -1490 -1606]@X +imagemask +!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'! +!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WE'!!WN-"!WN-"!WRZM +!WRZM!WTq8!WV'X!WVWh!WVop!WW&t!WE#u!W;u5!W7HI!W51^!W4&>!W3K.!W3'"!W2rt!W2p>~> +Q +q[1 0 0 1 0 0]concat +35 47 true[1 0 0 1 -1523 -1605]@X +imagemask +!!iN(!!%NKhuElZs7cR)s8Vus5QCc`!'gM`rr>:Y!WR[7^]8k7*WQ1)^_d%O+2AEf!$C,!!!!Pf +!!!!0huE`W&)[Ef!"[uf!!",!!!!!@huE`W5JR7!!<9h7!!iOS!!%NKJ,g,[rr<$`s8Duus8Vus +!WW2p!!E9$huF#^s*t([s7cQo&-%.[!$Ct9!!",!!!!!@^]4?75JR7!!'bu6!!#66!!!!`J,fQL +5JR7!!$AuV!<=5"!!<3Cn,OO1&,ZJ.J-Z,Ss*t@Ss8RTOs8W+L!<<*!!!#7`p](:!s*t(~> +Q +q[1 0 0 1 0 0]concat +32 58 true[1 0 0 1 -1562 -1605]@X +imagemask +!!3'!!!iP^!"],)!$D7@!$D7@!'gM`!'fCj!'e7?!'bu +Q +q[1 0 0 1 0 0]concat +42 45 true[1 0 0 1 -1597 -1605]@X +imagemask +!!E3#!!!!@s55!7!'gM]+2@l+s8O1V!<<*!T>1I,^`VIL!<3$(s1e[8!!3,8!WE'!s1e[7!!%Ma +!WE'!J%u*a!!#7!!WE'!5JR=!!!#7!!WE'!5JR=!!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V +!WE'!+2@pV!!"+V!WE'!+2@pV!!"+V!WE'!+2@~> +Q +q[1 0 0 1 0 0]concat +43 44 true[1 0 0 1 -1649 -1606]@X +imagemask +!!%MazJ)C;,!!%N,zs6p!g!!*&g!!!!"s6p!g!!3,p!!!!"rV-?m!!E&p!!!!$q>:3m!!i>t!!!!( +nGWCf!!i#m!!!!0nG`Ig!"\";!!!!@i-t_,!$C-KJ,fQk^d!>L!'e7`J,fR6J02Q,!'buU^]4@a +J03\L!.OtZhuEcW!"[uf!<3$(n,NIf!!hun!WE'(p](?m!!Dur"8i-$p](Eo!!E-!"8Disqu?us +!!3'!#Oh]nrW!Ju!!)uu&+BQ!rr +Q +q[1 0 0 1 0 0]concat +65 44 true[1 0 0 1 -1695 -1606]@X +imagemask +!!E-!!$C\1!!!-!!!",1!!!!(rVup_p](9o#Q=]'5PP3Y!!iK'!'g5Y!!!Q0!!#7]!!!!0hZ*Y+ +qu?]s&)R?eIf'0G!$C*K!.OnI!!"+uJ,oNH!!!!@hgb_)rVuou5EC!!3'$n-@knhuEfU!VcoX&)[EgquQR'^^o?'"8i2p&&8_6!!E-!r"$RJn,NRc!;mqS +#Oh]qp]146J-YQD#P\;s++OIg!!hunINO(Bp](Qg!.I-4"8Dj,n,Ro%!!E-!&)[FO56(`^!"[uf +5<]&Jqu@hs!'bo4!WE'@huFjJ!!)uu+2@juHiO0G!'e7!+++%grr>:!!"\u-!.Ou5J,g,X!!%KK +It.M0p](;D!.TM!&,6,)5Ce4`!!i9!!'c!`!!!8n!!#66~> +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -1755 -1606]@X +imagemask +!WN-"!"\i)rr<$!+7K8[J,fQkhuH!W!!#7!!$C,!!.TM!&)[Efrr<$(n,NLg!!!9!!!2ut!!E-! +"8i-!!WE'(p](9orW!Ju!!!"K!$C,!!!#66+2@jV!$B!@J,fQL+2E@+!!!!0i;N]V!!!8oqu?]s +!!E&pz!WVopzs6p!g!!!"KhuE`W!!%Maz!'bu6z5JR7!!!!"KhuE`W!!*&Wz!WVWh!!!!$s7cQo +!!!9$qu?]s!"\W!z&)dHf!!!!@i.$7W!!#7!5C`_6!.TM`^]4?7rr=/!!!!'!!"\Q!!!E-!#P\9! +#P\9$qu?^-p](?o!!!Q!!!3'!!$C,!!<3$!5JR7!It.NKJ,fR6^]=B7!!",!~> +Q +q[1 0 0 1 0 0]concat +43 64 true[1 0 0 1 -1808 -1586]@X +imagemask +#Q+Q%!!",?z+9-ik!!",@J,fQL+90+V!!",@huE`W(^Jt!!!!!$n,NFg!!Dur!!!!"p](9o!!)coz +qu?]s!!)oszIK0?J!!%HJz4obQ_!!#4`z*rl9@!!"*kz++O=k!!!PFz+2@jV!!"+Vz5MuMA!!#7Az +J+*Fl!'buUhuEb,J.LQ +Q +q[1 0 0 1 0 0]concat +39 44 true[1 0 0 1 -1854 -1606]@X +imagemask +5QCc`r]gG_s8G7_s8W'_s8W,u5QCc`rZD1?s8EQ(!!!!0qu?]s#Q+Q%!!E3#!!!'"zs*t(L!<7QL +!!%Ma!!!!`huE`W+7K71!"\i)!!!Q)!!!!(qu?]s"9&9#!!3*"!!!'"zs*t(L!.Vca!!#7A!!!!@ +huE`W+7K71!"\i)!!!9%!!!!$rVuou!WE'!!!3*"!!!$!J,fQLJ%u$a!'e7!!!#7A!!!!@n,NFg +&,77Hs8W!=s8W,s+92B@rZD1?s8F,?s8W'?s8W,u~> +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -1479]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -119 -1487]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -1487]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -1487]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -1487]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -329 -1487]@X +imagemask +!!!"K^]4?7++sUg!!!!@L]@>R!!"+5s8N'!!$D7@s*t(L+92B@huEa!s1n[(!!",@!$C\1!$D+= +&,6,)+8>g@qu?^=p](Eo!!",1!!3'!!$C,!!<3$!+5d,!rr<$@^]4@a!!"+V!!%M!!$AuV!'bu6 ++2@jV5C`_UJ,fR6J,g[A!!#66!$?^k!$AuV++O=k+2@ju^]4?V^]5Il!!"+V!$?^k!'bu6++O=k +5C`_UJ,fR6J,g[A!!#66!$AuV!.TM!+2@jVIfKHj^]4@a!!",!!!*$!!$C,!!WE'!+7K72rVup? +p](Eo!!",=!!i9!!$D4@+8>g9+90-+n,NG1s8W,W!!",@s8Tk7!$BPes*t(L+34E\!!!!@_>j91 +!!"+V5JR7!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -382 -1487]@X +imagemask +!!!"K^]4?7++sUg!!!!@L]@>R!!"+5s8N'!!$D7@s*t(L+92B@huEa!s1n[(!!",@!$C\1!$D+= +&,6,)+8>g@qu?^=p](Eo!!",1!!3'!!$C,!!<3$!+5d,!rr<$@^]4@a!!"+V!!%M!!$AuV!'bu6 ++2@jV5C`_UJ,fR6J,g[A!!#66!$?^k!$AuV++O=k+2@ju^]4?V^]5Il!!"+V!$?^k!'bu6++O=k +5C`_UJ,fR6J,g[A!!#66!$AuV!.TM!+2@jVIfKHj^]4@a!!",!!!*$!!$C,!!WE'!+7K72rVup? +p](Eo!!",=!!i9!!$D4@+8>g9+90-+n,NG1s8W,W!!",@s8Tk7!$BPes*t(L+34E\!!!!@_>j91 +!!"+V5JR7!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +36 32 true[1 0 0 1 -440 -1522]@X +imagemask +!;lhE!!iN)rr!!D]jIK0E +Q +q[4.8 0 0 -120 640.28 1571.28]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +70 70 true[1 0 0 1 -705 -1487]@X +imagemask +5QC``"98E$r'15]!!iQ(s85+]rr<0$s8W!!i:$^H56(r(!V#"I!"XSbJ,o,t!!!7S%fcTThuE`^ +J.DV[3PYUp#Cmiq!'.gp!!e#o!!#0t!!!6(49,@%^]4?>!'C5]+2@jV%fghS!$AuV!"T'S!!!Pf +!!!K/n,NG!huE`u!:Tsg#N,R^*WY*u!!hE^!#u$t!!!8^!!#+^huE`ZhuEa>"2Fm:"7Q9j3!6qr +!!E9$s7chL!!!'"s8Vj!J,fQMs8W,g#64`(!;HNon.,L!!!)co!8n=e!!!#o!!2"!zHiO3**WQ0? +!.4bK^cVSs!!#+]"2I#!!!!!_!!@a2z4obh +Q +q[1 0 0 1 0 0]concat +62 68 true[1 0 0 1 -777 -1487]@X +imagemask +J,fQKs*t(LJ,fQKs82isJ,fQKs8RTL!-eM=&-(Pf!'C;?!WVop!'C;?!;ZTo!'C:t!-g^.!'C:t +!'D?R!'C:t!#u6Z!'C:t!$27#!'C:t!"K&!!'C:t!"T)!!'C:t!"T'S!'C:t!"T'S!'C:t!!`K` +!'C:t!!`Kd!'C:t!!`Kd!'C:t!!`Kd!'C:t!!`Kd!'C:t!!`Kd!'C:t!!`Kd!'C:t!!`Kd!'C:t +!"T&h!'C:t!"T&h!'C:t!"T'S!'C:t!"T'S!'C:t!"K"u!'C:t!$211!'C:t!$27#!'C:t!'CM% +!'C:t!.5<-!'C:t!;JbY!'C:t"7Z9i!'C:ts6':[!'C;^s8VQg!'C;^s8Tk7!'C;^s8Duu!'C:t +s8RTL!'C:t+90+V!'C:t#KQ<6!'C:t"6'"T!'C:t!UtI:!'C:t!:W/P!'C:t!:V'1!'C:t!-f"S +!'C:t!-ea!!'C:t!-ea!!'C:t!-eU]!'C:t!&t(r!'C:t!&t(r!'C:t!&t"p!'C:t!&t"p!'C:t +!&t"p!'C:t!&t(r!'C:t!-eU]!'C:t!-eU]!'C:t!-eTr!'C:t!-ea!!'C:t!:U5D!'C:t!:UL! +!'C:t!Uq-1!'C:t!T6-A!'C:t"2Og7!'C;?#KQT>!-eM=+917!J,fQKs8RTLJ,fQKs8DuuJ,fQK +s1eU7~> +Q +q[1 0 0 1 0 0]concat +68 72 true[1 0 0 1 -843 -1485]@X +imagemask +zJ+s!Dz&-)Z[z!.Y%Kn,NFg!!3-"s8Duu!!!9(s8W+L!!!!@n*gGZhuE`WJ"M5k5O\XQ!<,.^!!i9! +!!2kB!!!'!!!!,Zp](9oIfKHR_=.F)!'bu6%tWX=!!!PF!$;T +"+U@O!'bu6*s9:Y!!%@r!"XXr!!!#jJ,fhjhuE`Xo7-fCi:$^H"64n3!V#RY!!gDl!!)qA!!",< +J,fS!49,@Gs*t(L+9)<@s8RTL!!iOS"94F4!!!'"n/qE1J,fQLJ,fPa"+U@O!"],0!!@`O!!!$! +n,NK>~> +Q +q[1 0 0 1 0 0]concat +69 68 true[1 0 0 1 -915 -1487]@X +imagemask +5QCc`rr<$!!'gM`s8Vio!!#7`s8W-!zp]1("s1eU7!-eP&!WVWh!!"tZhuJ9)!!!!Y!Pe\!rVuou +3!$ep%mPRE!&t"p!"Y.+!!"tZ^]4UphuEa:!Pe[;_=.F)3!$ep!PnI1!&t"p!!2#*!!"tZ^]4Am +49,@@!Pe[8n/_Q03!$ep!:UL!!&t"p!!$sK!!"tZ^]4@Z#Cle6!Pe[8GR&a!3!$ep!&t(r!&t"p +!!"t\^]6=p^]4?s!T3r;!Pe[849=@?3!$ep!'C8>!&t"p!!!u=n,PEK^]4?S!:TtJ!Pe[8*!#I. +3!$ep!#tuX!&t"p!!"&?Du_iu^]4?U!,qot!Pe[8*WUEb3!$ep!$2,b!&t"p!!"&?GQ9](^]4?U +!-eK'!Pe[8*WUEb3!$ep!$2,b!&t"p!!"&?GQ9](^]4?U!-eK'!Pe[8*WUEb3!$ep!$2,b!&t"p +!!"&?Du_iu^]4?U!,qot!Pe[8)uspX3!$ep!#u".!&t"p!!!u=n,PEK^]4?s!8mi:!Pe[8494:> +3!$ep!'C;?!&t"p!!"tZ^]6=p^]4@Z"2Fmr!Pe[8GQY_]3!$ep!,r0n!&t"p!!)Kn!!"tZ^]4B( +%fcSh!Pe[8i#Vju3!$ep!T6'?!&t"p!!C#a!!"tZ^]4JPp](:R!Pe[?Ja`X>3!$ep%gV"m!&t"p +!$<;5!!"tZ^]6QJ!!!!Y!T3s+qu?]sGQH_'s7cQo!;HQh&-(Pf!'gM`s8W*!!!#7`s8W,o!!!!` +s8W-!z~> +Q +q[1 0 0 1 0 0]concat +64 68 true[1 0 0 1 -987 -1487]@X +imagemask +5QCc`s8W,oJ,fQKs8W,o5QCc`s8W,o!-eP&!.XJt!&t#;!!i9Y!&t"p!!3']!'CA!!!%L2!'CA! +!!"+R!'CA!!!!8Z!'CA!!!!-!!'CA!!!!&t!'CA!!!!#u!'CA!!!!"J!'CA!!!!!_!'CA!!!!!? +!'CA!!!!!?!'CA!!!!!?!'CA!!!!!0!'CA!!!!!0!'CA!!!!!/!'CA!!&srY!'CA!!&srY!'CA! +!&srY!'CA!!&srY!'CA!!-eJD!'CA!!-eJD!'CA!!-eJD!'CA!!;HNo!'CA!!;HNo!'CA!!VcWp +!'CA!"8Dir!'CA!#P\9!!'CA!+1M:N!'CA!s#9uY!'CA`r&=ZV!'CA`n2LCJ!'CA`r&=ZV!'CA" +r\slX!'CA!5<&WC!'CA!&%DT>!'CA!"8Dir!'CA!!VcWp!'CA!!VcWp!'CA!!;HNo!'CA!!;HNo +!'CA!!-eJD!'CA!!-eJD!'CA!!-eJD!'CA!!&srY!'CA!!&su:!'CA!!&su:!'CA!!&su:!'CA! +!&t#;!'CA!!!!&X!'CA!!!!&X!'CA!!!!,Z!'CA!!!!,Z!'CA!!!!8^!'CA!!!!Pf!'CA!!!",! +!'CA!!!#4@!'CA!!!%E)!&t"p!!2lQ!&t#;!!i#O!;HTQ!.Wqb5QCc`s8W,WJ,fQKs8W,W5QCc` +s8W,W~> +Q +q[1 0 0 1 0 0]concat +58 68 true[1 0 0 1 -1053 -1487]@X +imagemask +5QCc`n,NFgJ,fQKp](9o5QCc`n,NFg!-eP6z!&t#;z!&t"pz!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z +!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z!'CA!z!'CA!!,qo!'CA!!!!8>!'CA!!!!PF!'CA!!!"+V!'CA!!!"+V +!'CA!!!%G_!'CA!!!)i1!&t"p!!Dc,!&t#;!"\&(!;HTQ!<9mN5QCc`s8W,7J,fQKs8W,75QCc` +s8W,7~> +Q +q[1 0 0 1 0 0]concat +75 72 true[1 0 0 1 -1114 -1485]@X +imagemask +zJ,TEJz!"],0n,NFg!!!"Ks8W*!z!WV'[s1eU7!!!9(!!%NDz+8u6?5Q1W_!!%ND!!"#=J,fQLrpTmf +*$;rr!!2la!!!uD^]4?:iSX\9*!*hT!!g?U!!!u>^]4?FK>7He*!*hT!$;;n!!!u>^]4?u#CldS +*!*hT!'CJd!!!u>^]4@Z%fcS0*!*hT!;I')!!!u>^]4B(%KHJ/*!*hT!T4Ff!!!u>^]4Dn*WQ0? +*!*hT"2GrX!!!u>^]4JP)uos=*!*hT"+V?k!!#+^huF"4)uos=49=@?#Cno:!!#+]huEu^49,?] +GQ@45#66jd!!)cop](g)49,?dn,Rn;%feQh!.Y%Ks1f-F2uir.s8W,W%feQh!.Y%Ks1f*E2uipYz +%KJHgz!!!K/2uipYz%KJHgz!!!K/2uipYz%KJHgz!!!K/2uipYz%KJHgz!!!K/2uipYz%KJHgz!!!K/ +2uipYz%fe]lz!!!N049,?]z%fe]lz!!!6(49,?]z#66jdz!!!7S)uos=z#Cmcoz!!!+O*WQ0?!!.TM +"2GrX!!!!$J,f\e*WQ0?!!@`O!T4Ff!!!!$J,fW.%fcS0!!e#S!:UL!!!!!(J,fT=#64`(!"XS[ +!-ea!!!!!0J,fR3#CldS!$?^k!'UL8!!!!`J,fQk"2Fm:!.04r!"XY=!!!#jJ,fQS_;G:n!V:gA +!!D0K!!!,]J,fQMnFut`#K)&l!!)qA!!", +Q +q[1 0 0 1 0 0]concat +76 68 true[1 0 0 1 -1192 -1487]@X +imagemask +5QCc`i'78As56-As8V"As8W,g5QCc`i'78As53m%!:TsgHiWpA!'C8>!!#+]n,NGN!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!WW3"quGXT!'C;^s8VushuEa>!WW3"quGXT +!'C;^s8VushuEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!T3qX*!"ms +!'C;?!!!u=huEa>!T3qX*!"ms!'C;?!!!u=huEa>!8mhW494jN!-eM5!!%BHp]*PYs8V"!s8W,W +5QCc`i'78As6r8Qs8V"As8W,W~> +Q +q[1 0 0 1 0 0]concat +37 68 true[1 0 0 1 -1270 -1487]@X +imagemask +5QCc`n3?sQs7ehYs8VQg490U+!#u".!!"&?n,NG0!:Tsg*WY[0!$2-u!!"&?huE`u!8mhW*WY*u +!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u +!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u +!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u +!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u!$2-u!!"&?huE`u!8mhW*WY*u +!$2.0!!"&?n,NG0!:Tsg*!#I.!.4ck!'gM`s6r8Qs8VjYs8W,g~> +Q +q[1 0 0 1 0 0]concat +47 75 true[1 0 0 1 -1308 -1480]@X +imagemask +!$D1?!!!$!s53kW"98Dr!!!Q)+8u6?+7KfUJ,hcX#D^(p4F@7KhuJ!a"2WmqE#o+sn,RDK"2K-] +E#o+sGQ;\("2HkrGTHt&490ak"2GlV5PP>r)uq)M"2GlV#J^GW*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX!!!,:*WQ0?"2GrX +!!!,:*WQ0?%tG/j!!iQ(s8E!/s8W,u!!iQ(s8D~> +Q +q[1 0 0 1 0 0]concat +77 68 true[1 0 0 1 -1359 -1487]@X +imagemask ++92B@n,WLgs6r8Qs8VQgs8W,o+92B@n,WLgs6p#9!-eJD%KI#i!#u".!!!K/*rl9\!:Tsg*WSA( +!$2-u!!#1_HiO-f!8mhWHiSBk!$2-u!!%6Dn,NG0!8mhWn,_GI!$2-u!!2QkhuE`u!8mhZi!7$t +!$2-u!!g:EJ,fQj!8mh^J.DV[!$2-u!"T&N!!!!?!8mhu!'UA_!$2-u!'UC1!!!!?!8mj)!;HNo +!$2-u!;HQ`!!!!?!8mkH!T3qX!$2-u!T4'q!!!!?!8msp#J^<>!$2-u#J^k#!!!!?!8nB<%fcS0 +!$2-u%fdXN!!!!?!8nmu49,?]!$2-u490U+!!!!?!8r5)p](9o!$2.0p]9ja!!!!?!;Z*bhuE`W +!$2.=hugap!!!!?!<9h>J,fQL!$2.?J.DV[!!!!?!<7Qkz!$2.?^ch_u!!!!?!;GD6z!$2.3n9=p5 +!!!!?!:fjRz!$2.0rU9de!!!!?!:YKrz!$2.05JR7!!!!!?!:V(\z!$2.0&&8/F!!!!?!:U6Oz!$2.0 +"7Q9j!!!!?!:U$az!$2.0!;lfs!!!!?!:TtPz!$2.0!$;1@!!!!?!:Tt!J,fQL!$2.0!!g:>!!!!? +!:TsjhuE`W!$2.0!!2Qh!!!!?!:Tsgp](9o!$2.0!!%HJ!!!!?!:Tsg56(Z`!$2.0!!#66!!!!? +!:Tsg+2@jV!$2.0!!",!!!!!?!:Tsg+7K71!$2.0!!")8!!!!?!:Tsg*.@kf!#u".!!"!'!!!!= +!:Tsg4:f4-!.4ck!!%BOn,OR1s8VQjs8W*!5QCc`n-B!ns*u3ks8VQjs8W*!~> +Q +q[1 0 0 1 0 0]concat +64 68 true[1 0 0 1 -1436 -1487]@X +imagemask +5QCc`s8W,gJ,fQKs8W,o5QCc`s8W,o!-eP6!.Wod!&t#;!"\QY!&t"p!!2jS!'C:t!!*!\!'C:t +!!#5G!'C:t!!!PB!'C:t!!!9%!'C:t!!!-!!'C:t!!!&t!'C:t!!!#s!'C:t!!!"J!'C:t!!!!_ +!'C:t!!!!_!'C:t!!!!?!'C:t!!!!?!'C:t!!!!/!'C:t!!!!0!'C:t!!!!0!'C:t!!!!/!'C:tz +!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz +!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz +!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz!'C:tz +!&t"pz!&t"pz!;HTaz5QCc`^]4?7J,fQK^]4?75QCc`^]4?7~> +Q +q[1 0 0 1 0 0]concat +92 68 true[1 0 0 1 -1502 -1487]@X +imagemask +5QC]_!5JRVs8W,g5QC``!T3r"s8W,g5QC]_!T3r"s8W,g"8C^R"7Q9kp],dD!<7QL"7Q9jHiSBk +!.OtK"8Dir494jN!'UA_#P\9!*WY[0!'UA_#<2\`*WY*u!'UA_%m0gl*Wb1!!'UA_%m0gl%KYJf +!'UA_*Zb:]%KYJf!'UA_*Zb:]%KYJf!'UA_*"DrK%KYJf!'UA_4:_Dl%KYJf!'UA_4:_Dl%KYJf +!'UA_GR&a!%KYJf!'UA_GR&a!%KYJf!'UA_E"B_a%KYJf!'UA_n.3;7%KYJf!'UA_i#f`7%KYJf +!'UA`i#gkW%KYJf!'UA`i'#uu%KYJf!'UAb^ch/e%KYJf!'UAb^c:f`%KYJf!'UAbJ9^P`%KYJf +!'UAfJ8k8`%KYJf!'UAfJFId`%KYJf!'UAn!:Y@9%KYJf!'UAn!8os>%KYJf!'UB(!T6-A%KYJf +!'UB(!Pgl!%KYJf!'UB&"2GrX%KYJf!'UBF"2GuY%KYJf!'UBF#Cm8%KYJf +!'UC-#65!Z%KYJf!'UC%%fcib%KYJf!'UDP%KHaL%KYJf!'UDP*WQ;X%KYJf!'UGA*WQ<#%KYJf +!'UGA49,E?%KYJf!'UM#49,EO%KYJf!'UM#2uj!K%KYJf!'UL8GQ7a5%KYJf!'UX%KYJf!'UknhuEa@%KYJf!'VG)^]4?u%KYJf +!'VG+^]4?U%KYJf!'WLI^]4?V%KYJf!'WLMJ,fQ[%KYJf!'YW4J,fQ[NWJ& +Q +q[1 0 0 1 0 0]concat +70 70 true[1 0 0 1 -1596 -1485]@X +imagemask +z!!!!=zz49-K'rr<$!!'C6Gs8RTL!!%BH+92?@!!!#s!!%Ma!!!!"qu?^]J,fQL!W2ot*rl9@!!D!V +!$;1@!!!8Z!!"&?!!!!0S,`O1z%ibQL*WQ0?!$3*[!$2+?!!#2&!!"&?!!!"H)uos[zGT6\`*WQ0? +!:Us.!$2+?!!2R/!!"&?!!!,Z)uos[!!!!$^`3=S*WQ0?#Cmco!$2+?!"XT"!!"&?!!")@)uos[ +!!!!?!'C5]*WQ0?490a/!$2+?!.4eE!!"&?!!)coqu?^ +Q +q[1 0 0 1 0 0]concat +74 72 true[1 0 0 1 -1668 -1485]@X +imagemask +zs7cQoz!"],0^]4?7!!!"Ks8Vioz"97:$rVuou!!!Q0!!iOSz5PtK^s53kW!!%Ln!!*&gzr9s[d +H2IXB!!DcL!!#-1!!!!(iSX\9*Zk@^!"Zu_!!!K>J,fQk"+U@O%gTlM!$2Aq!!!6+huEa>#64`( +#D)@E!.5:W!!!+On,NH5%fcS0"+YUr!:UHu!!!,:HiO3:*WQ0?!Pget!T5"!!!!&8*WQ;X)uos= +!T5"!"2GlV!!!&X%KHT])uos=!T4Ig#Cno:!!!#W%fcib49,?]!8n(^#66jd!!!#W#Cm7He +%M+'i!!hK@!!"&^!!!!"n_aBI4FR81!!)rd!!%EEzIs:qnqsXRc!!",=!!3,Xz&,uV7s*t(L!!!-$ +i#hpuz!.Y%Kp](9o!!!!0s8Tk7z!!*&oz~> +Q +q[1 0 0 1 0 0]concat +60 68 true[1 0 0 1 -1746 -1487]@X +imagemask +5QCc`huE`W5QCc`huE`W5QCc`^]4?7!;HTaz!-eP&z!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz +!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz +!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t"pz!&t#Zrr<$!!&t#Zs7cQo!&t#Zs8N'!!&t"p +&-'EF!&t"p"7P^Z!&t"p!TEeR!&t"p!:Y@9!&t"p!,t+%!&t"p!-f"S!&t"p!-ea!!&t"p!&t(r +!&t"p!&t(r!&t"p!'C;?!&t"p!'C;?!&t"p!'C8>!&t"p!'C8>!&t"p!'C8N!&t"p!#u".!&t"p +!#u".!&t"p!#u".!&t"p!#u".!&t"p!'C8>!&t"p!'C8>!&t"p!'C;?!&t"p!'C;?!&t"p!'C:t +!&t"p!&t(r!&t"p!&t46!&t"p!-f$)!&t"p!-fRc!&t"p!:YF;!&t#;!:fse!-eP&"7P^Z!;HQh +&-(Pf5QCc`s8RTL5QCc`s82is5QCc`s*t(L~> +Q +q[1 0 0 1 0 0]concat +74 88 true[1 0 0 1 -1807 -1469]@X +imagemask +z!!%NDz!!!!(s8Tk7z!'gM`p](9o!!!$!J:IOuz!W2uus*t(L!!!8n#QOgSz&&8_N#64`(!!")@ +5JR7!z4og$3z!!%BHqu?]szp]1'hz!!2QihuE`W!!!!"huhm;z!!C"=^]4?7!!!!(J-UT)z!!e#Zz +!!!!0J,]KKz!"],0^]4?7!!!$!s8Vioz"97:$rVuou!!!Q0!!iOSz5PtK^s53kW!!%Ln!!*&ozr9s[d +H2IXB!!DcL!!#-1!!!!(iSX\9*Zk@^!"Zu_!!!K>J,fQk"+U@O%gTlM!$2Aq!!!6+huEa>#64`( +#D)@E!.5:W!!!+On,NH5%fcS0"+YUr!:UHu!!!,:HiO3:*WQ0?!Pget!T5"!!!!&8*WQ;X)uos= +!T5"!"2GlV!!!&X%KHT])uos=!T4Ig#Cno:!!!#W%fcib49,?]!8n*4#66jd!!!#W#Cm7He +%M+'i!!hK@!!"&^!!!!"n_aBI4FR81!!)rd!!%EEzIs:qnqsXRc!!",=!!3,Xz&,uV7s*t(L!!!-$ +i#hpuz!.Y%Kp](9o!!!!0s8Tk7z!!*&oz~> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -1885 -1487]@X +imagemask +5QCc`huH"Ar'15]s6p"Qs85+]s8V!WJ,f9DGQ@45!:U6O!'C8>!!(p^^]6IthuEf9%tFXB!T3q[ +^`NOV49=@?"2I)#!'C;?!!e%%!!#+^huF8fp](:V!T3qg!:Tsg49=@?*Wba1!'C;?!#u+!!!#+^ +huGkE^]4?s!T3s&#CldS49=@?GRo<)!'C;?!:V'1!!#+^huVaW!!!!]!T4":49,?]49=@B^jH+^ +!'C;?"+YUr!!#+^i!4f%!!!!]!T4Ihn,NFg49=@N!T3qX!'C;?*Ws1X!!#+^i&h6p!!!!]!T6'F +J,fQL49=Ab%fcS0!'C;?p^R9(!!#+^i:%cf!!!!]!TDs!z49=F!49,?]!'C;^s8N'!!!#+^s8W,W +!!!!]!WW3"qu?]s49=@Ns8Duu!'C;?!;ukI!!#+^huGq_^]4?s!T3r!#N,R^49=@?%fu/"!'C;? +!"T))!!#+^huEu^GQ7_+!T3q_!-eJD49=@?#Cno:!'C;?!!e$:!!#+^huF"4)uot$!T3q_J/eOh +49=@?#Cmiq!'C;?!!@`m!!#+^huEk0*WQ1&!T3q[J0"[j49=@?#Cmiq!'C;?!!e#o!!#+^huF"4 +)uot$!T3q_J33f349=@?#Cno:!'C;?!!`LK!!#+^huEu^p](:V!T3qg!:Tsg49=@?%g1_i!'C;? +!$2B\!!#+^huFf?J,fR3!T3r?IfKHK494jNqtpEo!-eM="98,r!'gM`s8W,7!!#7`s8W,u!!!!` +s8W-!huE`W~> +Q +q[1 0 0 1 0 0]concat +53 71 true[1 0 0 1 -1957 -1486]@X +imagemask +%KHb6J,fQ[!'gMY!!!PIs8W*!!"],/!<9h7&-),!5O\X_s1eUFp](dGJ,fiP!"M0m!!E6$%Qj^k +"4$rWGQ7^Ea++Zh!!!&;^^o?'!!2':&)[Ef!TDrI^]4?8i:%8-!!!&Xn.1$L!!2"s%fcS0!T7o- +!!!!"^j$@i!!!,:GRjcS!!C#]%KHJ/#Cq%/!!!!(J9VP(!!!N0GRa]R!$;2c$ig8-IK4!'fBA +!!e#Ss*t(L%fc_2!!!!0!"\Q!!!"&?5JR7!!$2,iz*WZ* +Q +q[1 0 0 1 0 0]concat +63 68 true[1 0 0 1 -2012 -1487]@X +imagemask +!!*'!s8V!W!!3-"s8V!W!!*'!s8V!W!!!&h!T3qX!!!#g"2Fm:!!!"<"2Fm:!!!"D"+U@O!!!"D +"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O +!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D +"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O +!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D +"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O +!!!"D"+U@O!!!"D"+U@O!!!"D"+U@O$ig9P"+U@]*WQ1b"+U@]*WQ1b"+U@]*WQ1b"+U@]*WQ1b +"+U@m*WQ1b"+U@m*rl:c"+U@m*rl:c"+UA8++O?9"+UA8++O?9"+UB#+2@l$"+UCN+5d-D"+UFO +*q0/S"+ULA*rH"_"+UX%*e"*6"+VJR*Zr1B"+Yk2*Y8$j",Hda+92B@s8W,u+92B@s8W,u&-)\0 +s8W,u~> +Q +q[1 0 0 1 0 0]concat +71 70 true[1 0 0 1 -2078 -1485]@X +imagemask +!!!!(s1eU7zJ,fEHz"98E$J,fQL!"],0s53kW!!",@^^oo7!!!!`T)\oizr&t)\IK0?J!VebW!'^G` +!!2#&!!!N0!!!,:Du]kCJ,fQS_!h=(#J^<>#Ct_4!!C":!"T(f!!!&X!!!N1huE`XhuE`u!T3qX +!:Tsg*Wa%V!!)Kg!#u$T!!!#g!!!u>^]4?7GQ7_+"2Fm:!-eJD49NA!!!%6D!'CA!!!!"D!!"t\ +^]4?7GQ7_'"2Fm:!-eJD3!6qr!!%BH!&t(r!!!!]!!"t\^]4?749,@@"2Fm:!'C5]3!6qr!!#+] +!&t(r!!!!]!!"t\^]4?749,@@"2Fm:!'C5]3!6qr!!#+]!&t(r!!!!]!!"t\^]4?749,@@"2Fm: +!'C5]3!6qr!!#+]!&t(r!!!!]!!"t\^]4?749,@@"2Fm:!'C5]3!6qr!!#+]!&t(r!!!!]!!"t\ +^]4?749,@@"2Fm:!'C5]3!6qr!!#+]!&t(r!!!!]!!"t\^]4?749,@@"2Fm:!'C5]3!6qr!!#+] +!&t(r!!!!]!!"t\^]4?749,@@"2Fm:!'C5]3!6qr!!#+]!&t(r!!!!]!!"t\^]4?749,@@"2Fm: +!'C5]3!6qr!!#+]!&t(r!!!"H!!"t\^]4?7HiO.+"2Fm:!.4bH3!6qr!!%BH!&t(r!!!"J!!"t\ +^]4?7rVupX"2Fm:!<)ru3!6qr!!)Hf!&t(r!!!&g!!%6E^]4?:kC +Q +q[1 0 0 1 0 0]concat +72 70 true[1 0 0 1 -2150 -1485]@X +imagemask +z$ig8-z!#tt=z!!#1_z!!!!_zzIfKHKz!.OtKz!!%KKz!!!#nJ,fQLzo7-f@z!TUrqz!!2,qz!!!,; +huE`W!!!!$_;G:nz#Ct_4z!!e&Dz!!!6(n,NFg!!!!0!;HNoz%fuG*z!$219z!!"&Bqu?]s!!!!] +"8i-!z49s^Cz!-ea?z!!%6KT)\ik!!!#g%hAX?zn.-$0z!8nn'J,fQL!!2"!#CldS!!!&X49rY% +!!!!$^cV_7z"2K-`^]4?7!!e%!"5j.Z!!!7SGQH_&!!!!0!:U$Yz%fl)!n,NFg!$21!!;HNo!!"&@ +huNNP!!!!="2Fn]z49NA!HiO-H!'CM%!'C5]!!%6KJ,hb5!!!"D#Cle!!!7SGQ7^K^]4?>J9V%o +#N,R^%fghS!!hE^!"T)!!!!,j!!"&?n,NFjn,NG0!Up'h"7Q9j49=@?!!Dur!'C;?!!!&p!!"t\ +huE`Xqu?_A"2Fm:!W2otGQY_]!!1jT!:U*+!!!&V!!)KnJ,fQMc2[n'#CldS!RC`Hi!4c4!!1CG +"2G.l!!!&?J-UT0^]4?:a1r49"8Dir#D;Mqs8W*!!'gM_s8W-!J,k*!s*t(Krr<$`s8D~> +Q +q[1 0 0 1 0 0]concat +99 70 true[1 0 0 1 -2222 -1485]@X +imagemask +!!!!'z"onW'z%fcS0!"Ju/z!"T&0!!!N0z!!"*k!!!!@z!!!!@J,fQL++O=kz++O=k!'bu6z!'e7! +!!#66z!!#7!!!!!`^]4?7!!!!ZhuE`WHb]U]zH/JZ&!-u?[z!-mu5!!%#sz!!%!-!!!#hhuE`W!!!#g +Du]khuEcH#64`)^`EIU&+BQ!i"#ef"2GrX!"\Q!!T4Ig!!C"X!!!OK!!2!f!!!7S)uosL +GQ7c[%KHJ6J/eOh%sS'V^^^>E%fe]l!"V0l"+Uj]!"T&l!!!Kk!!e#b!!"&?*WQ0]*WQ_$%tFXD +!$?^k4s'cSs8VQhs8W,g!WW28J,fQD"98E$p]LQri.(e,n,`Rhs6p'hs1e~> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -2321 -1487]@X +imagemask +5QCb6#QOi(r'15]^^'o>s85+]s*t@Ss8W!%n9b39%tFc?!Vgm>!!@`V^]8Uu!!!+O%tFXBn,NFn +!"T&0*q0.0#65eF!"\Q!!"T&n!!!8n!!!K/49,?`n,NG0!-eJD!VcWp*!#I.!!)co!&suJ!!!#s +!!%6EhuE`WIK0@e"2Fm:!'^G`n-?`/!!"*k!8n*4!!!!0J-"R=z#J^GW*rl9@!!D-]J0"[j!!!&h +#Cno:!!!!"p^[@Pz!;m<,GQ7^D!!%Hh!:Tsg!!!!`*!,O/z+#j;Zz!"\i,^]4?7!!!8n#J^<>!!!!( +n-=IDz"5j[iz!!C"Yz!!!,:*WQ0?!!!!(J33f3z%fgtWz!"T'Sz!!"&?n,NFg!!!!]!Up'hz49=@?z +!-eU]z!!)Kj^]4?7!!!#g#CldS!!!!"i"(> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -2393 -1487]@X +imagemask +!!",@s8Vio!!!!@s8W,oz+92B@p](9o!!#+]49,?]!!!!?!-eJDz*WUEbz!"K!Jz!!!K/Du]k#CldS +"2GEI!!e#S!!e#a!!!,:!!!7S*WQ0B^]4?F!#tt=!T3qX*rnD'!!)Kg!$2,"!!!#g!!#+]GQ7^D +p](:V!:Tsg!;lfsGQ?Y%!!)os!-eP&!!!#u!!)Kh^]4?8mf3@W!Pe[8!UkO>hugap!!C9W"5j93 +!!!PIi'78Aqu?_Hs85+]s8Duus8W!]s8Vus!.Y%H~> +Q +q[1 0 0 1 0 0]concat +63 68 true[1 0 0 1 -2465 -1487]@X +imagemask ++92B@s8W,g+92B@s8W,o+92B@s8W,o%fe]l!.WpO#Cmiq!!i:D#Cmiq!!3!W"2GEI!!%I-"2G.l +!!"*'!T435!!!PB!:U*+!!!9%!:U*+!!!-!!-eP&!!!&t!-eM5!!!#s!'C8N!!!#s!$2,b!!!"H +!$2,b!!!!_!"T&l!!!!_!"T&N!!!!?!!e#q!!!!?!!C"I!!!!?!!C"I!!!!/!!2!_J,fQZ!!2![ +^]4?E!!)Kj^]4?E!!%6EhuE`W!!%6En,NFg!!#+]n,NFg!!#1_GQ7^D!!"&?GQ7^D!!!N049,?] +!!!N04obQ_!!!7S*WQ0?!!!,:%fcS0!!!,:%fcS0!!!&X#CldS!!!&X"2Fm:!!!#g"2Fm:!!!"D +!T3qX!!!"D!T3qX!!!!]!:Tsg!!!!]!-eJD!!!!?!-eJD!!!!0!'C5]!!!!0!'C5]!!!!(J0"[j +!!!!(J.DV[!!!!$^^gDF!!!!"i!4c4!!!!"i!4c4!It.Mn,pH+"2Fm:n,_GI"2Fm:GQH_&"2Fm: +494jN!Pe[8494jN!T3qX*WUEb!T3qX*WS;&!Up'h%fe]l!VcWp#Cmiq!W2ot#Cmiq!WE'!"2GEI +!WN-""5jE7!Umf(!T435!9`hO!:U*+!9 +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -1359]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -118 -1367]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -1367]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -1367]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -1367]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -329 -1367]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -382 -1367]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[4.8 0 0 -240 640.28 1451.28]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +50 62 true[1 0 0 1 -704 -1367]@X +imagemask +#QOQ!J,b$0s82lss1f0FquHcs^^pJC!<<)7&-)P-s8Tk>s7cSDs*t)6J,fiD!!#66!!hun!'bu6 +#Oh]n5JR7(n,NG1^]4o'!!"+V!"[uf!$AuV&)[Ef+2@jehuE`fhuF;G!!!Pf!$AuV!"],0s1eU7 +&-)\0^]4?>s8W,7!!!9(s8RTL!!iQ(s*t(L#QOi(J,fQSp]*O/!!!,r!.OtK!!DurIfKHK"8DkG +!!!!$p],dD!!!&t!.OtK!!2utrVuou!W2rs!!!!"quH]r!!!#s!<)ru!!)uuqu?]s!<*#szrW2os +!!!#u!W2ot!!%KLp](9o!.P+GzIfoHG!!!"K"8Dir!!#4cp](9o!'c,*z5DS_.!!!!`L[Y9D!!"*r +n,NFg!$@!Sz+33:>!!!!@cend'!!"+ehuE`W!"[Dkz&'r#k!!!!0n%\o'!!!Q0^]4?7!!iP>z#QK;S +!!!!(s*t(L!!!9(J,fQL!!E7Oz"9/?$!!!!$rr<$!!!!'"z!!)uu!!!~> +Q +q[1 0 0 1 0 0]concat +49 61 true[1 0 0 1 -756 -1367]@X +imagemask +#QOi(n,NG!s8W,u!!",@s8W+L!$D7@s8V!W&-)\0s6p!ns8W-!p](:YJ,hh3!!#66!"\u-!'bu6 +"9&9#5C`_7rVup_J,fTL!!#66!!%KK!'bu6!.OtK5C`_65C`_uJ,fR6J,hfa!!#66!'bu6!'bu6 +5C`_65C`_uJ,fR6J,hfa!!#66!'bu6!'bu65C`_6IfKI5J,fS!!!#66!!)uu!'bu6!<)ru5C`_7 +qu?^]J,f]H!!#66!!hun!'bu65MuMA5QCc`^]4@!s8W*!!!#7`s82is!'gM`qu?]s5QCc`!!!!` +s8W+L!!#66!WTq8!'bu65MuMA5C`_En,NGQJ,fiL!!#66!!Dur!'bu6!W2ot5C`_7qu?^]J,fWL +!!#66!!)uu!'bu6!<)ru5C`_6rVup_J,fTK!!#66!!)uu!'bu6!<)ru5C`_7qu?^]J,fWJ!!#66 +!!E-!!'bu6#P\9!5C`_En,NGQJ,k)g!!iQ(s8V!W&-)\0s1eUVs8W-!J,g\ks8W&u!"],0s7cQo +#QOi(^]4?~> +Q +q[1 0 0 1 0 0]concat +49 63 true[1 0 0 1 -809 -1366]@X +imagemask +!!!"K^]4?7!!E8rz&-)V/!!!!`s8RTL!!%NKs1eU7!WW3"huE`Zs1j-R!!!9(!"\i)!!iE%#Q+Q% +&,6,*rVup?n,NLg!!#7A!!*$!!'e7!!.OtKIt.M!It.NK!!!!`J,oTL!!#66!<)ru!'bu7rVuou +5C`e4!!!!`J-#QJ!!"*k"8i-!!"T&3p](9o!!!,rz!!Durz"8Dir!!!!(n,NFg!!!8nz!!hunz#Oh]n +!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!,rz!!Durz +"8Dir!!!!$p](9o*rlE@!!!!@J-#QJ!!#66!W2ot!'bu7rVuou5C`b5!!!!`J,oTL!!%M!!.OtK +!.TM!It.M!It.M`^]4B7J,hgl!!3+M!$C\1!WRZM&,6,,s*t(Squ@!%J,fiS!$D5k!!E8:J,b$! +!WW3"s*t(LJ,fQKJ,fR6s8O0k!!!Q0rZ?Xj!!E8j%tFW[!.TM0!!~> +Q +q[1 0 0 1 0 0]concat +49 61 true[1 0 0 1 -862 -1367]@X +imagemask +&-)\0!!!!@s8W,W!!",@s8Vio!$D7@s82is+92B@rVup/s8W-!!!!"K!!iOS!!%KK!<9h7!.OtK +J)C;,IfKHjn,NH +Q +q[1 0 0 1 0 0]concat +51 61 true[1 0 0 1 -914 -1367]@X +imagemask +#QOi(s8TkFs8W-!s54Ffs8W-!i",kfs8W,W&-)\0s8V!^s8W-!s53l!^]4?FhuFk7!!!Pf!$AuV +!"[uf+2@jV&)[F0^]4?FhuFk7!!!Pf!$AuV!"[uf+2@jV&)[F0^]4?FhuFk7!!!Pf!$AuV!!g:> ++2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+V!:Tsg!$AuWp](9o+2@pP!!!!@^]F31 +!!"+V!VcWp!$AuWp](9o+92B9!!!!@s8Vio!!",@s7cQo!$D7@p](9o+92B9!!!!@s8Vio!!"+V +!VcWp!$AuWp](9o+2@pP!!!!@^]F31!!"+V!VcWp!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +$ig8L^]4?V!!"+V!!#66!$AuV!'bu6+2@jV5C`_U^]4@!J,g\,!!#66!$AuV!'bu6+2@jV5C`_U +^]4@!J-Z,Ss8W+L&-)\0s8RT[s8W-!s*tX[s8W-!J.M\[s8W*!#QOi(s8N'~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -967 -1367]@X +imagemask +#QOh>!!!!0s8V!W!!!Q0s53kW!"],0huE`W&-)[f!!!!(s8Tk7!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz ++2@jV!!!!@^]=94!!"+V!;lfs!$AuVqu?]s+2@mS!!!!@^]=94!!",@s82is!$D7@qu?]s+92B= +!!!!@s8Vus!!",@s82is!$D7@qu?]s+2@mS!!!!@^]=94!!"+V!;lfs!$AuVqu?]s+2@mS!!!!@ +^]8TZ!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV"onWF^]4?FJ,g\,!!"+V!$AuV!$AuV ++2@jV+2@ju^]4?V^]5Il!!"+V!$AuV!$AuV+2@jV+2@ju^]4?V^^'o>s8W,7&-)\0s8TkFs8W-! +s1f0Fs8W-!^^pJFs8W+L#QOi(s8RT~> +Q +q[1 0 0 1 0 0]concat +50 63 true[1 0 0 1 -1020 -1366]@X +imagemask +!!!'!z!"]+Fn,NFg5QC9K!!!"Ks7uQm!!3-"rVQWq"98E$qu?^%rr`n,NLhs1em/ +!!3-"^^'?/!<<(L#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!(n,NFg!!!8nz!!hunz#Oh]n!!!!( +n,NFg!!!8nz!!hunz"8Dir!!!!$p](9op](Ek!!!&p!!E-!!!2ut!W2ot!W2ouqu?]tqu?cs!!!-! +!!)uu!!E-!!<3$!"8i-!IfKHRqu?_HJ,fiP!!#7!!"\u-!'fBA&,ZD-+7K7Pqu?^-p]*PV!!!9% +!<;rs!!iN+s82is"98E$qu?]ss8W,s!!!"Ks7uQm!!#7`nGE7d!"]+Fp](9o!WE(D!!~> +Q +q[1 0 0 1 0 0]concat +51 61 true[1 0 0 1 -1072 -1367]@X +imagemask +&-)P-s8TkVs8E'!s55"!rW3'!i#i!u!WW2X&-)V0s8V!fs82lss1eV!J,f]H!!#66!!Dur!'bu6 +"8Dir5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir +5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5C`_9 +p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5QCc`p](:Ys8W,o!!#7`s8Vio!'gM`s7cQo5QCc`p](:Y +s8W,o!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H +!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!!#66!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!!#66 +!!Dur!'bu6"8Dir5C`_9p](:YJ,f]H!"],-!<<)7+92<@s8V"!s8E'!s55"!rW3'!i",ke!WW2X +&-)P-s8Tk~> +Q +q[1 0 0 1 0 0]concat +37 61 true[1 0 0 1 -1133 -1367]@X +imagemask +5QCc`n:1KD +s7h*Ds8VkDs8W,o5QCc`n,~> +Q +q[1 0 0 1 0 0]concat +41 62 true[1 0 0 1 -1186 -1366]@X +imagemask +!$Ct9!!!$!rr<$!"98D:!!!Q0s6p!g+92B9!!#7`s82isJ++!J!!%Ma!WN-"rr<'!!!*%L!.TM! +s*t)6J,oV"!'bu6s*t)6J,k'!!$AuV4obR)^]4W?!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV +!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV +!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV +!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV +!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!!!@^]4?7!$AuV!!*'!rVup!s8W*!!!E9$s*t(Os8W+L +!!3-"rr<$!s8W&u~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -1231 -1367]@X +imagemask +#QO8n&-%.js7cR9s1f0Fqu@i=^^pJC!$D6V&-)D)+90+]s6p"!s*t)5!!!,r!!#1_!!D]j!'UA_ +#Oh]n4obQfhuEa@!!!Pf!!#1_!"ZjF!'UA_++O=k4obRIJ,fR5!!#4`!!#1_!.OtK!'UA_IK0?J +4obT^!!!!_!!)os!!#4`!W2ot!'^Gap](9o5C`k*!!!!`^^'?/!!#7A#N,R^!'fr`huE`W5O]3! +!!!!`p`I9O!!#7]++O=k!'^BHJ,fQL56!hI!!!!_Isq@t!!#2IrVuou!'VM&z4qIPk!!!!_&,6,) +!!#1fp](9o!'UM[z4otQ]!!!!_!WE'!!!#1_rVuou!'UC4z4odft!!!!_!$AuV!!#1_+5d,!!'UAn +huE`W4obiW!!!!_!!Dur!!#1_!W2ot!'UA`rVuou4obT^!!!!_!!%KK!!#1_!'bu6!'UA_5JR7! +4obR)^]4?u!!!Pf!!iPn!'gJ`&-)D)J,b$0s82lss*tX[quHcsJ.M\T!.Y$!#QO8n5Q:]~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -1283 -1367]@X +imagemask +#QOi(s8N'0s8W-!s*tX[s8W-!^^pJFs8W,7#QOi(s8Tk>s8W-!s1eUFhuEa!^]4o'!!"+V!"[uf +!$AuV&)[Ef+2@jehuEa!^]4o'!!"+V!"[uf!$AuV&)[Ef+2@jehuEa!^]4o'!!"*k!"[uf!"T&0 +&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!Pfz +!"[ufz&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W +!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!!Pfz!"[ufz&)[Ef!!!!0 +huE`W!!!Pfz!"[ufz&)[Ef!!!!0huE`W!!iQ(huE`W&-)\!!!!!0s8VQg!!!Q0s6p!g!"],0n,NFg +#QOh^!!!!~> +Q +q[1 0 0 1 0 0]concat +51 61 true[1 0 0 1 -1336 -1367]@X +imagemask +&-'EF#QMR]s53kfs55"!huFl!i#i!W!$D7!+917!&-(Pus1eU>s1eX4!!!"H!!)os!!%BH!;lfs +!.4bHqu?]sHiO0E!!!"H!!)os!!%BH!;lfs!.4bHqu?]sHiO0E!!!"H!!)os!!%BH!;lfs!.4bH +qu?]sHiO0E!!!"H!!)os!!%BH!;lhA!.4bHquHWpHiO0E!<)tG!!)otrW%HiO0Ep],bj!!)um!.K:q!<)Zm5(!>1rU9eNHiO0Hn,P\#!!*&g +!$?Rg!<:sW+++%gs53l!qu?`shuF;c!"]+F!"]+F+90+V&-(Q0s1eU>s55"!J,fiSi#huL!!E8Z +&,lP/!WTq~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -1389 -1367]@X +imagemask +#QOQ!&)[Eus82j=n,O"!qu@i.!"],-!'frQ&-)P-5O\XXs7cRYn,NGQ!!%N!'^I4"7Q9j56-'5n,NGQ!;lrg!!#4`p]L!c!'^JY"7Q9j56:N]n,NGQ +!Up3\!!#4an,r.[!'^ST"7Q9j56KgGn,NGQ#N,^R!!#4g^]X'+!'^_("7Q9j57bO3n,NGQ%tFcO +!!#4oJ-59@!'_QU"7Q9j59Bk-n,NGQ56(fT!!#5J!!D]j!'`XI"7Q9j5CNS7n,NGQHiO9J,b$~> +Q +q[1 0 0 1 0 0]concat +48 63 true[1 0 0 1 -1441 -1366]@X +imagemask +!!#7`n,NFjs8W*!!"],0s1eUVs8W,W!'gM`s6p"Qs8W,o!.XbDJ+s"n^]4oC!<7QL#Q+T%!!!-! +!<3$!!W2rs!!!'!!WE'!!WE-!!!!#u!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u +!W2ot!<*#s!!!"J!W2ot!.P%I!!!"K!W2ot!.P%I!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K +!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%I!!!"K +!W2ot!.P%I!!!"J!W2ot!.FtH!!!"J!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u +!WE'!!<)ut!!!'!!<)ru!W2rt!!!-!!<7QL"8i.K^]4oC!.XbD5PP4Cs8W,o!'gM`s6p"1s8W,W +!"],0s1eU:s8W*!!!#7`n,N~> +Q +q[1 0 0 1 0 0]concat +49 61 true[1 0 0 1 -1493 -1367]@X +imagemask +#QOc'!!!!0s8N'!!!!Q0s*t(L!"],0J,fQL&-)Y0!!!!(s8Duu!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz ++2@jV!!!!@^]4?7!!"+Vz!$D7@huE`W+92B=!!!!@s8W*!!!",@s8RTL!$D7@s1eU7+92B@n,NG1 +^]=E(!!"+V!$Ct9!$AuV#Q+Q%+2@jYqu?^=^]4E7!!"+V!!)uu!$AuV!<3$!+2@jVIfKHj^]4@a +!!"+V!!#66!$AuV!'bu6+2@jV5C`_U^]4@!J,g\,!!#66!$AuV!'bu6+2@jV5C`_U^]4@a!!"+V +!!%KK!$AuV!<3$!+2@jVrVup?^]4E7!!"+V!!E-!!$AuV#Q+Q%+2@jup](:9^]=E(!!iQ(s8V!W +&-)\0s1eUFs8W-!J,g,[s8W*!!"],0s82is#QOi(^]4?~> +Q +q[1 0 0 1 0 0]concat +48 76 true[1 0 0 1 -1546 -1353]@X +imagemask +z!;lfs!!!&tz"8i-!!!!-!z#P\9!!!!9!z&+BQ!!!",1z+5d,!!!#7Az5JR7!!!%M!zIt.M!5QC`` +!!E9$rr<$0s8W,7!$D7@s53lAs8W,g!'gM`s7cSDp]pio!.Vchs82lsJ.MDP!<3$0oDAUf!$C1t +!<)s?iVilW!'e=!!W2p^JGoTI!.TOu!W2qI!<*#s!.P"J!W2qH!<*#s!!!#u!W2ot!<*#s!!!#u +!W2ot!.FtH!!!"K!W2ot!.P%I!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K +!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%E!!!"K!VcWp!.P%I!!!"K!W2ot!.P%I!!!"K +!W2ot!.FtH!!!"J!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u!W2ot!<*#s!!!#u!W2ot!<*#u!!!'! +!<)ru!WE)u!!!&t!<3$!"8i0!J,fiP!.Vca&,ZEWp],g=!'gM`s7cRYs8W,g!$D7@s53kfs8W,7 +!!E9$rr<$!5QC3Q~> +Q +q[1 0 0 1 0 0]concat +53 62 true[1 0 0 1 -1597 -1366]@X +imagemask +z!.FnYs82its*u3kqu?j!^`WUU!!iP^+92 +Q +q[1 0 0 1 0 0]concat +48 63 true[1 0 0 1 -1650 -1366]@X +imagemask +!T4"Y^]4E)+92*9"7Z?jrW!&ts8W+L"98E$s1ea:s8W,W"98B$J+*R?p](j""979Z#P\E$J,f]L +"9/?$!W3'!!!!#u"8i-!!<*)u!!!"J"8i-!!.P+G!!!"K"8Dir!'^S\!!!!`"8Dir!.P+G!!!"K +!Up'h!.OtK!!!"Kz!<)ru!!!'!z!WE'!!!!9%z&,6,)!!%ND!!!!$s6p!g!.Y%,!!!9(s1eU75QCb6 +!!3-"rVup#s8Vio!"],0huEa!s8Duu!'gM!!!!"Kqu?]s!.Wo,!!!$!J,fQL!<3$!!!!'!z!W2ot +!Vc]j!!!&p"8Dir"8Dun!!!,r"8Dir"8Dun!!!,r"8Dir#P\Dr!!!9!!VcWp#P\>t!!!Q)!WE'! ++8>j8!!#7Y!<7QLJ+s"n^]=E0!'g5`s7cR9s8W,o!"],0rV-?ts8Voi!!3-"iV3BQJ,b&o!!!Q- +!,q~> +Q +q[1 0 0 1 0 0]concat +51 61 true[1 0 0 1 -1702 -1367]@X +imagemask +!!*'!rVuou!WW3!!!!!"s8W*!!!!'"s8N'!!!3-"rVuou!<<)uz!<)ruzrVuou!!!#uz!!)uuz!<)ru +zrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou +!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz +!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#u!!!!$!!)uu!rrkI!<)s/^^n3\rW!JE +&&82E!"[uu^]=?6&)[u6!<)s/i"*U'rW!Je&&82E!"[uu^]=?6&)[u6!<)s/i",kfs8W,W&-)\0 +s8V!fs8W-!s54Ffs8W-!i",kfs8W,7#QOi(s8RT~> +Q +q[1 0 0 1 0 0]concat +53 62 true[1 0 0 1 -1754 -1366]@X +imagemask +!!!'!z!"]+Fz5QC3Q!!!"Ks7cQo!!*'!rVuou!WW3"!!!!$rr`9$!!!9%!<7QL!"\i)J%u$a&+BQ@ +huEa!huFkW!!"+V!"\Q!!'bu6#Oh]n5C`_=n,NHA!<<)o5QCW]s8VR1 +s7cSDs6p~> +Q +q[1 0 0 1 0 0]concat +51 62 true[1 0 0 1 -1807 -1366]@X +imagemask +!!!#uz!!3*"z"9/?$!!!!$s*t(L!!!9(J,fQL!!iOSz#QK;S!!!!(s1eU7!!!Q0^]4?7!"]+Fz&+@:6 +!!!!0cend'!!"+ehuE`W!$BPFz+4&jF!!!!@a7''/!!#6=n,NFg!'c8.z5DS_.!!!!`KD5EH!!%KN +p](9o!.P+GzIfoHG!!!"K!W2ot!!*!!qu?]s!<*#szrW2os!!!#u!<)ru!!2utrVuou!W2rs!!!!" +quH]r!!!&t!.OtK!!DurIfKHK"8DkG!!!!$p],dD!!!,r!'bu6!!hun5C`_6#Oh^XJ,fQSn,P\' +!!!8n!$AuV!"[uf+2@jV&)[F0^]4?FhuFk7!!!Pf!"[uf!$AuV&)[Ef+2@jehuEa!^]4o'!!"+V +!!hun!'bu6#Oh]n5C`_=n,NGQJ,fiD!!#66!!Dur!.OtK"8DirIfKHNp](;D!!!,r!!%KK!!2ut +&-),!5QAM@s7cSDs55"!p],gDi#i!o!.Y%,+92*9J,eF;s6p"Qs1e~> +Q +q[1 0 0 1 0 0]concat +52 62 true[1 0 0 1 -1858 -1366]@X +imagemask +!!2Qh*WQ0?"8Dj\!!!!(p],eo!!!9!!.TM!!!iE%It.M!#Q+T%J,fQSquHc4!!!9%!<9h7!"]&/ +s1eU7&&&)=^]4?F^&duD!!!PD!VaA0!"ZdEpV6b/&&//>huE`f^B=5g!!"+5"6\SB!$@g8kMQ=? ++.n2GhuEa!+,An7!!")_LZ@:m!$;`,_r(Lp*tO.En,NGQ&')TW!!#4ocbo5P!'_"?_sdX+56oMc +n,NGP#L@tj!!#1fmt's.!'UYfJbT3FIKTV$p](;C"9/Ds!!%HMrrMlp!.G%M!;HNoHia6Ip](;A +!WE)o!!%BIrW)ir!.4eG!;lfsquD*Equ?`p!!!#s!!)os!!)os!;lfs!.4bHp](9oHiO0A!!!"H +!!)co!!%HJ!VcWp!.FnKp](9oIK0ED!!!"J!!2ip!!#1_!VcWp!'UA`n,NFg4obWQ!!!!`!!D]j +!!#4`"7Q9j!'^Gcn,NFg56(fT!!!!`!!D]j!!")@+9-ik#QN^Hs1eUFs6r8Q^]4oFn3?rg!"],! +5QAM!&-),@s*t(Ss53~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -1911 -1367]@X +imagemask +#QOQ!J,b$0s82lss1f0FquHcs^^pJC!<<)7&-)P-s8Tk>s7cSDs*t)6^]4o7!!"+V!"[uf!$C,! ++5d,!&)[F0^]4?Fn,P\g!!!8n!'bu6!!i9!It.M!"8DkG!!!!$p]1 +Q +q[1 0 0 1 0 0]concat +51 61 true[1 0 0 1 -1964 -1367]@X +imagemask +!!#7`n,NFg!'gMYzJ,f9D!!!"Ks7cQo!!#7`p](9o!'gMQz!<)ruzrVuou!!!#uz!!)uuz!<)ruz +rVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#u +z!!3'!z!WN-"!!!!$rr<$!!!!-$J,fQL!!iOSz#QMR>!!!!0s1eU7!!!Pu^]4?7!$BPFz+33:>!!!!` +a7''/!!#6=n,NFg!.TXrzIfoHG!!!$!!W2ot!!*!!qu?]s!WE)u!!!!"rW)ot!!!-!!<3$!!!E-! +IfKHK"8DkGJ,fQSp]*O/!!!8n!'e7!!"\Q!+2@jV&)[F0huEa!huF;G!!"+V!"\Q!!'e7!&+BQ! +5C`_=p](;DJ,fiL!"],!!'gM!+92*9J,eFKs7cSDs55"!p],gDi#i!o!.Y%,&-),!5QAM~> +Q +q[1 0 0 1 0 0]concat +49 61 true[1 0 0 1 -2015 -1367]@X +imagemask +!WW3"s8N'$s8W-!s*t4Os8W-!J-5iOs8W+L"98E$s8RTOs8W-!s*t.L!!!!`J-#ZM!!#66!<3$! +!'bu6It.M!5C```^]4@!J,hgL!!#66!$C,!!'bu6&+BQ!5C`_En,NGQJ,fiL!!#66!!E-!!$;1@ +"8i-!!!!!"rVuou!!!$!z!!*$!z!.TM!z5JR7!!!!!`^]4?7!!",!z!"\Q!z&+BQ!!!!!(p](9o +!!!-!z!!E3#z!WE'!zrr<$!!!!$!J,fQL!!%M!z!'e7!z5MuMA!!!!@huE`W!!!Q!z!"\i)z#P\9! +!!!!$qu?]s!!!-#z!!3'!z!<3$!zs*t(L?iU1VJ,fTE!!#7!!!2ut!'fBA!W2ot+5d,"qu?^-n,NLe +!!!9!!!2ut!!i9!!W2ot"8i-"qu?]trVuus!!!'!!!3-"s8W*!!WW3"s8N'"s8W-!rr<*"s8W-! +!!3-"s8W*!!<<*!s8Du~> +Q +q[1 0 0 1 0 0]concat +53 45 true[1 0 0 1 -704 -1246]@X +imagemask +!!#7Qz!WW0"5O\XXs8Tq8p](j)s7?9c!$D7@s8Vio5QCc`s7cSDn-B!nn,WK=!<;Ng!<3$!5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf!VcWp&)[Eip](:)huEfQ!!!Pf!!2ut!"[uf!W2ot&)[EgrVup/ +huEcW!!!Pf!!*&7!"[uf!.XbD&)[Ef5Q:]ohuEa!s83Dc!!!9(s8V!W!!3-"s53kW!.Y%KhuE`W +&-)[fzs8V!Wzs53kW!!!!0huE`W!!!Pfz!"[ufz&)[Ef*rl9_huEaAJ,g\,!!%M!!'e7!!.VcaIt.M! +J%u*bJ,fS!^^pGF!!%NKs8Duu!'gM`qu?]s5QCcY!!!!@s8V!W!!!9(s*t(L!!*&o!!!!~> +Q +q[1 0 0 1 0 0]concat +50 62 true[1 0 0 1 -757 -1246]@X +imagemask +!!!"KJ,fQL%fu_"!!!!@L]@8P!!"+%s8N'!!$D7@s*t(L+92B@^]4?Vs1nZm!!",@!$C\1!$D+= +&,6,)+8>g@qu?^=p](Eo!!",1!!3'!!$C,!!<)ru+5d,!rr<$@huEb,!!"+V!!%M!!$AuV!'bu6 ++2@jV5C`_U^]4@!J,g\,!!"*k!$AuV!$AuV+2@jV+2@ju^]4?V^]5Il!!"+V!$AuV!$AuV+2@jV +++O>5^]4@!J,g\,!!#66!$AuV!'bu6+2@jVIt.M@^]4@a!!"+V!!%KK!$C,!!<3$!+5d,"rVup? +n,NLg!!",9!!E-!!$D+=#P\9!+9)<_p](:9s1j-R!!",@s8V!W!$D7@s1eU7+4'ueJ,fQka8c,= +!!"+Ws7cQo!$B!@^]4?7+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!!"+Vz+90+V!!!!@s1eU7!!#7`^]4?7!'gL6z5Q?66!!!!@rr<$!!!!~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -818 -1246]@X +imagemask +!!%N,!!!-$qu?^-s8N'!5QCc!!.Y%KhuNfWs6p'hi#h^rrr<<%#Q+Q(r"&Q&!WEW!!!*!?huEcV +5JR7!IQtUJ!.I._!!!jcJ,fQLIfKHK!.OtK!!%KK!!!#uzrVuou!<)ru!!)uu!!!#uzrVuou!<)ru +!!%KK!!!"KzIfKHK!.TM!!!#66!!!!`^]4?7+2@jV!$C,!!:UNg!!E!,p](Eo#Q+Q(qucs!#Q+W& +i!9/[s8W,s!.Y%KquAt]s7cR)s8VQg"98D:!!%N,!!~> +Q +q[1 0 0 1 0 0]concat +52 62 true[1 0 0 1 -862 -1246]@X +imagemask +!!!Q!z!.XtMs53kXs8RlSn,NRjs2Y0/!"],0kPt#O+92B8s6p"Qp^dE)huH"""97ij!.Vcbs6p!g +rr<'!n,NIg!!%N +Q +q[1 0 0 1 0 0]concat +47 45 true[1 0 0 1 -915 -1246]@X +imagemask +!!!"K^]4?7#QO]%!!",@rr<$!J,fP!!!*'!s53kZs8W,g!!iP>5PP3hrW!K(!$Ct9"8i-@n,NLg +!'fBA!WE(K^]4B6!.TM!!.FqJ!!!"J!<3$!!&suXz!WE'!!!!&tz!W2ot!!!&tz!WW3"s83!!s8W,u +"98E$s8E-#s8W,u!WW3"s8E'!s8W,u!W2ot!<*#s!!!#u!W2ot!<)ut!!!#u!<)ru!W2rt!!!&t +!.OtK!W2qIJ,f]H!'e7!#P\9`huF#O!$C\1&+BQ0quAt>!!iN(s53kZs8W,7!!3-"s*t(Ls8W&u +!!#7`qu?]s&-),!!!!'"J,f~> +Q +q[1 0 0 1 0 0]concat +45 62 true[1 0 0 1 -968 -1247]@X +imagemask +"98E$rW!3's8W*!#QOi(rr<<(s8W*!#QOi(rr<0$s8W&u!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+V!!!-$s8W+L"98E$ +s1em>s8W,7#QOi(s1ea:s8W,7!WW3"s*t(L+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz +&)[Q*!!!Pf#N,R^&+C,!!!!9!&+BQ!#Q>8/!!!-$s7cQo!WW2h!!!$!s6p!g!'gMA!!!!@s1eU7 +!!3'!~> +Q +q[1 0 0 1 0 0]concat +52 67 true[1 0 0 1 -1020 -1224]@X +imagemask +!!!9(J,fQL!.Y%H!!!!$s8W*!!!!Q0s8Tk7!'gM`s6p!gJ,fQKp]( +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -1073 -1247]@X +imagemask ++92@ns8V"!s8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1huF#O!!",!!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W,7!!"+us8RTL!$BPerr<$!+2e-X!!!!@_>j91 +!!"+V5MuMA!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz+90+V!!!!`s1eU7!!#7`J,fQL!'gL6z+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +38 61 true[1 0 0 1 -1134 -1247]@X +imagemask +5QCc`pj`>Ds87BHs8W"Hs8W,sJ,fQKr'15]s7cQoIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK +!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK +!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!$D7@!!#7`rr<$`s8N'!5QC``!'gM_ +!!",@rVuouzzzzzzzzzz!-eJD!!2ut!!!-#!!!!$rr<$!"9/?$!!E6$!!!-$!!!!$rVuou!W2ot +!!%6D!!~> +Q +q[1 0 0 1 0 0]concat +38 84 true[1 0 0 1 -1178 -1224]@X +imagemask +!!iN(!!#7`n,NIgs7cQps8W&u!WW3"!!E9$s*t4N!<9h:rW#1@"9&9BhuilW&+BVt!!hunp](Qg +!!!!$p](9o"8Dir!!Dur!!!&p!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t +!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t +!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t +!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t +!!3-"qu?j!s82j!s8Vus"98E!!!E9$p](?ps6p!gzzzzzzzzzz!!D-Z!!!8n!!!!0p](9o&,6,) +!"\u-!!!Q-!!!!0p](9o&,6,)!!hun!!!,Z~> +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -1231 -1247]@X +imagemask +&-)Z[J,d;+s8Tn7s55"!s1n[7n/q]1_#OH(+92AVs8V!fs8RV!s1eUF^]4W/!!!PF!"[uf!"ZjF ++5d,!&&8/e^]4?F^]6TL!!!PF!.OtK!"ZjFrVuou&&82E!!!!0^]F?5!!!Pf"8Dir!"\Q(n,NFg +&,6D!!!!!0r"%]c!!!Q/+2@jV!"])oJ,fQL&-'Cp!!!!0s8N'!!!!PerVuou!"[ERz&&\;F!!!!0 +_>XE7!!!PFrr<$!!"ZkpJ,fQL&&:EF!!!!0^`VJ7!!!PF&+BQ!!"ZjMp](9o&&8;F!!!!0^]FE7 +!!!PF!<3$!!"ZjFIt.M!&&9:err<$0^d%l!J,g+q5QCb6!"Zk0s8RTL&&:F0s*t([^`WUV!!!PFz +!"ZjFz&&8/F!!!!0^]4?7!!!PFz!"ZjFz&&8/F!!!!0^]4?7!!!PFz!"ZjFz&&8/F!!!!0^]4?7 +!"]+Fz+90+V!!!!@s1eU7!!",@J,fQL!$D5kz&,uV0!!!!~> +Q +q[1 0 0 1 0 0]concat +47 61 true[1 0 0 1 -1284 -1247]@X +imagemask +!<<*!s82ots8W,u!WW3"s8E'!s8W,u!WW3"s8E#us8W,s!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru!!!#uz!<)ru +!!!#u!!!$!s8Duu!WW3!!!!'"s8Duu!WW2t!!!'"s82is!<<)o!!!~> +Q +q[1 0 0 1 0 0]concat +52 44 true[1 0 0 1 -1337 -1247]@X +imagemask +5Q:ug_uJYEs,[3Cs6tOn:1Jqs6'FOJ,bT0kPt$9rs/SAs54"K!;HPC!!D]jp],aC"7Q!;HPC!!D]jp],aC"7Q!;HPC!!D]jp],aC"7Q!;HPC!!D]jp],aC"7Q!;HPC!!D]jp],aC"7Q!;HPC!!D]jp],aC"7Q +Q +q[1 0 0 1 0 0]concat +52 44 true[1 0 0 1 -1389 -1247]@X +imagemask ++92@ns8V"!s8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1huF#O!!",!!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jus8V#,^]5JVs8W,7!'gM@s8RTL5Q?fErr<$`s+C@N!!",@!WVopz +5MuMA~> +Q +q[1 0 0 1 0 0]concat +48 45 true[1 0 0 1 -1442 -1246]@X +imagemask +!!!'!z&-'EF!!#7`n,NFgs8Vus!!3-"rVup#s8W*!!!iN+s*t([quD5^!$C\15MuN+huFkg!'e7! +&+BRKJ,fiL!.OtK"8Dlr!!!-!!<)ru!W2rs!!!'!!WE'!!<*#s!!!#u!W2ot!<*#s!!!#u!W2ot +!<*#s!!!"K!W2ot!.P%I!!!"J!W2ot!.FtH!!!#u!W2ot!<*#s!!!#u!W2ot!<)ut!!!#s!<)ru +!W2rt!!!&t!.OtK"8DkGJ,fiL!'e7!#Oh^XhuF;W!$C\15MuMPp],fZ!!iN+s*t(Os8W*!!!3-" +rVuous8Vus!!#7`n,NFg&-'EF!!!'!!!!~> +Q +q[1 0 0 1 0 0]concat +50 66 true[1 0 0 1 -1494 -1225]@X +imagemask ++92@k!!!!@s8Tk7!!#7`s1eU7!'gM`^]4?75QCc!!!!!@s8RTL!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz ++2EAV!!!!@_>j!)!!"+]s82is!$BPerr<$!+92B@J,fQks8W,7!!",@_#N +Q +q[1 0 0 1 0 0]concat +54 66 true[1 0 0 1 -1546 -1225]@X +imagemask +!!!!"s8Vio!!!-$s82is!!E9$qu?]s"98E!!!!!$s8Vus!!!'"s7cQo!!!&tz!!2utz!W2ot!!!!" +qu?]s!!!&tz!!2utz!W2ot!!!!"qu?]s!!!&tz!!2utz!W2ot!!!!"qu?]s!!!&tz!!2utz!W2ot +!!iE&qu?]s5Q:c^!!!$!s2"U5!!E9$nb`@e#QOi"qu?^-s8W&q!!",=#QO]%!'frRs82isJ%u&6 +qu?_HJ,hh3!!*$!!$D+=!<)ru&,ZD.rVup/qu?cq!!!9%!!E-!!!iE%"8Dir"8i-$p](9rqu?uk +!!!-!!!hun!!2ut#Oh]n!W2p&n,NFhqu?uk!!!&t!!hun!!2ut#Oh]n!W2p&n,NFhqu?uk!!!&t +!!hun!!2ut"8Dir"8i-$p](9rqu?io!!!-!!!E-!!!E-!!W2ot#Q+Q&rVup'qu?`s!!!Q-!!*%L +!$D+=!.Vca5PtK]5MuNkqu?^]p]1?l!!",?"989!!"],0rVQWq"98Dsqu?]ts8VWe!!!"Ks5EkU +!!",@JbT3F!!E-!n,N~> +Q +q[1 0 0 1 0 0]concat +49 44 true[1 0 0 1 -1598 -1247]@X +imagemask +#QOi(p](:)s8W,s!!!Q0s8Vus!"],0s82is&-)\0qu?^%s8W,ozrVuou!!!#uz!!)uuz!<)ruzrVuou +!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!$!z +!!*$!z!<3$!zrr<$!!!!$!J,fQL!!*%Lz!<9h7zs53kW!!!$!huE`W!!*&gz!<;fo%KHJ/s82j] +!!!$!rr>96!!*#u^jgk>s8INCIt/(0r]gG_J.M\Z+92@k&-)V6s8RT[s8E-#rr<<(quHcrz!"\Q!~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -1658 -1246]@X +imagemask +GQ[u]!.5mgquHYEs8N*!s8W,7s8W-!i;`iWs7$'f!.XeDp](j"s53kZr;XP4!W;tJ!!)rsJ,fTK +rr<$!IfBBJ!.OnI!!*#t!!!#urVup!r-SJE"8i-!!"\i)!!%ND!!!Q0n,NRjs53lAs8Tk8s8W*! +#QOi%!"],0huFl!qu?^]s*t(LJ+*F +Q +q[1 0 0 1 0 0]concat +46 56 true[1 0 0 1 -1703 -1246]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQIt/(!!!%KK#P\9!IfKTG +!!)uu"8DirrVuus!!)uu!W2otrVuus!!)uu!W2otrVuus!!)uu!;HNorVuou!!)uuzrVuou!!)uuz +rVuou!!)uuzrVuou!!)uuzrVuou!!)uuzrVuou!!)uuzrVuou!!)uuzrVuou!!)uuzrVuou!!)uuz +rVuou!!)uuzrVuou#QOi(s1f0Fs8W,W&-)\0s54Ffs8W,W&-)\0s54.^s8W,7!!)uuzrVuou!!)uuz +rVuou!!)uuzrVuou!!)uuzrVuou!!)uuzrVuou!!%HJzHiO-H~> +Q +q[1 0 0 1 0 0]concat +52 44 true[1 0 0 1 -1755 -1246]@X +imagemask +!!!Q)z!.Y"Ns53kXs8U.>n,NRjs7cQ_!!iQ(s8VQg&-)\0s6p"!p]pj!huFkW!<;Ng!$AuVJ+*F< ++2@k@n,NG1^]5JG!!"+V!"\Q!!$AuV&+BQ!+2@jen,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1 +^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/ +!!"+V!!hun!$AuV#Oh]n+2@j]n,OR1^^'o/!$D6V#QO8n5QAM0s6p"Qs*tX[huH"AJ-Z,4!$D4@ +#QMR>~> +Q +q[1 0 0 1 0 0]concat +51 43 true[1 0 0 1 -1807 -1247]@X +imagemask +!!!#sz!!3'!z"9/?$!!!!$rr<$!!!!9(J,fQL!!iOSz#Od0C!!!!0cbKM\!!!PU^]4?7!"[,cz+,AbS +!!!!@LYr.4!!"*nn,NFg!'^STz56LBT!!!!`!VcWp!!%HKp](9o!.FtDzIK99G!!!#s!;lfs!!)os +qu?]s!;HPC!!!!"p],aC!!!&p!.FnJ!!2Qh56(Z`"7Q:T!!!!$n,PZQ!!!,Z!$?^k!!hE^++O=k +#N,S(J,fQS^]4n\!!!PF!"ZjF!"ZjF&&8/F%tFWbhuEa!J,fi4!!"*k!!hE^!$;1@"7Q9qs82ls +s1f0FrW3'!^`WUU!WW2X+92<@s8V!fs8E'!s1em>quHcs^]~> +Q +q[1 0 0 1 0 0]concat +52 43 true[1 0 0 1 -1859 -1247]@X +imagemask +!!2ipIK0?J"8i0!!!!!$rW)ru!!!-#!WN-"!!E6%s*t(L#QFi)J,fQSrr`:O!!!8]KE$H%!!hD6 +s*t(L#N(1&^]4?FhhU[9!!!PUa615d!$@!bLYr.4 ++,B<;huEa!KE$S^!!")Cs+B50!$;=C"7Q9j56:cdn,NGQ!WN8k!!#4arW2Kg!'^J_!Up'h4ofs2 +n,NGP!!!&p!!%HJ!!2ip!.FnJ!VcWpIK0?Jp](;A!!!#o!!%BH!!)os!;lfs!;lfsqu?]squ?`p +!!!#s!!)os!!%BH!;HNo!.4bWs7cSDs1f`VquHcsi#i!s!<<)g+926=s8VR1s82lss54Ffp],gD^]~> +Q +q[1 0 0 1 0 0]concat +50 43 true[1 0 0 1 -1912 -1247]@X +imagemask +#QO]%s8RT[s8E'!s1f0FrW3'!^^pJE!WW28&-)V0s8Tk>s82lss*t([huFk7!!!8^!$?^k!!D]j +56(Z`"8DkG!!!!"p]19n!!!#s!;lfs!!%HKp](9o!.G%>z56LBT!!!!@LYr.4!!!PU^]4?7!!hD3z +#QFc(!!!!$rr<$!!!!'!z!!)osz!;lfs!!!!"rVuou!!!-#z!!iN(z#QK;S!!!!0hnT3l!!"+e^]4?7 +!'c7szIg>HC!!!"J"8Dir!!*!!qu?]s!W2rq!!!!$p]19n!!!,j!.OtK!!hun5C`_9s8E'!rr<<( +rr`<$J.M\[#QOgS&-)Y7s8RTSs8N3$s*t4OrW3'!!!~> +Q +q[1 0 0 1 0 0]concat +51 66 true[1 0 0 1 -1964 -1224]@X +imagemask +!$?^kzJ)C;,!!!$!p](9o!!3,tz"98?#!!!!$s8N'!!!!9%rr<$!!!iEdJ,fQL#Q,[Z!!!!(r"$RC +!!!,r#N,R^!!E!$huE`W!8mtKz!!D]jz!Up'h!!!!"p](9o!!!&pz!!)coz!;lfszqu?]s!!!"Hz +!!%HJz!.FnJzIK0?J!!!"Kz!!*$!z!<7QL!!!!"s*t(L!!!'"J,fQL!!3,8z"96.:!!!!$pV6b/ +!!!8ehuE`W!!h]Fz#Nt"F!!!!0_sdX+!!!PIn,NFg!"X_Oz++a1e!!!!@JbT3F!!#4ap](9o!'^J]z +4okK\!!!"J!;lfs!!%HJIK0?J!;lhGzquD0G!!!#s!'^G`!!2ip56(Z`!VcXZ!!!!$n,OP\!!!,j +!$?^k!!D]j++O=k#N,Rm^]4?>huF;'!!!PF!"ZjF!"ZjF#N,R^&&8/MhuEa!J,fi4!!"*k!!D]j +#QO]%s8TkFs8E'!s1f0FrW3'!i",ke!WW2X&-)V0s8Tk>s82lss1e~> +Q +q[1 0 0 1 0 0]concat +48 43 true[1 0 0 1 -2016 -1247]@X +imagemask +"98E$s8E9's8W-!&-)\0s8NW0s8W-!&-)\0s8N?(s8W-!"9&9#!.P%L!!!"K!<7QL!.Ouu^]4@a +!'fBA!.Otjn,NGQ!"\i)!'^GgrVup>!!E6$!!!!"s*t(L!!*&7zJ)C;,!!#7Qz+8>g9!!!Q-z#Q=]' +!!!-$z!WRZM!!!$!^]4?7!.Wo,!!!!@n,NFg!"\i)!!!!(qu?]s!!E3#!T3qYrrs5!!!Q-"8Dir#Q=i*s8W,u"98E$s8N3$s8W-!"98E$s8N3$s8W-!!WW3" +s8D~> +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -1121]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -118 -1129]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -1129]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -1129]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -1129]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +38 61 true[1 0 0 1 -337 -1129]@X +imagemask +5QCc`pj`>Ds87BHs8W"Hs8W,sJ,fQKr'15]s7cQoIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK +!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK +!!%KK!!!"KzIfKHK!.OtK!!%KK!!!"KzIfKHK!.OtK!!%KK!$D7@!!#7`rr<$`s8N'!5QC``!'gM_ +!!",@rVuouzzzzzzzzzz!-eJD!!2ut!!!'!!!!!$rr<$!"9/?$!!E6$!!!-$!!!!"rVuou!W2ot +!!%6D!!~> +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -382 -1129]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[4.8 0 0 -240 640.28 1212.48]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +65 71 true[1 0 0 1 -709 -1129]@X +imagemask +5QCW]!<<*!J3X)3!!*'!s+!?6qu?`ss8RTMs1eU7"96.:!.TM!!!*%L!!")@!!!"KJ,fQ[zIt.M! +#64`(!.TM!!!e#S!!%M!!!!+O!!!$!J,fQM^]4?7s*t(L!Pe[8!<7QL!!(pW!!*$!!!!#W!!!$!z +Du]kg9z!$Ct9z!!!Q)z!!!!0p](9oz#P\9!z!!Durz!!!,rz!!!!"p](9oz +!VcWpz!!)coz!!!#ozzDu]k~> +Q +q[1 0 0 1 0 0]concat +69 68 true[1 0 0 1 -783 -1129]@X +imagemask ++92B@s53kW!'gM`s8W&u!!",@s8W-!J,fQL+7K71s53kW!"\Q!!$Ct9!!!8n!!!9%!!!!(p](9r +rVuou#P\9!!WN-"!!Dur!!*%L!!!,r!!!"K^]4?:qu?]s5MuMA"8i-!!$C\1!!2ut!!!Q)!!!&t +!!!!0p](9prVuou#Q+Q%!WE'!!!iE%!!)uu!!!9%!!!#u!!!!$rVuourr<$!"9&9#!<3$!!!E3# +!!%KK!!!-#!!!"K!!!!"rVuouIt.M!!WE'!!.TM!!!3'!!!#66!!!-#!!!!`J,fQOrVuou5JR7! +"9&9#!'e7!!!E-!!!"+V!!!-!!!!!@^]4?>p](9o+5d,!&+BQ!!$C,!!"[uf!!!Pf!!#7!!!!!0 +huEcWz&-)\0qu?]s!"],0s1eU7!!!8n!!Dur!!!!(p](;Dz#P\9!+2@jV!!i9!!"[uf!!!,r!!!9! +!!!!$qu?^!qu?]s"8i-!!WE'!!!E-!!!*$!!!!&t!!!"KJ,fQMqu?]s5JR7!!WE'!!'fBA!!3'! +!!",!!!!#u!!!!@n,NFgrVuou+7K71!<3$!!"\Q!!!*$!!!!Q)!!!"K!!!!0p](9oIfKHK&,6,) +!.TM!!"\i)!!%M!!!!Q)!!!!`J,fQ[p](9o5C`_6&,6,)!'e7!!"\Q!!!#7!!!!Q!!!!!@^]4?V +n,NFg+2@jV+5d,!!$C,!!'e7!!!",!!!%M!!!!!`n,NRj!!!!@s8W-!rVuou+92B@s7cQo!$D7@ +s8RTL~> +Q +q[1 0 0 1 0 0]concat +69 72 true[1 0 0 1 -860 -1127]@X +imagemask +!!!-$z!!!!@s6p!gzs8W&uz"9/@Nz!!iE%&&8/F!!!Q!!!D]j!!!!@^]4B0z5C`_649,?]!.OtK +!$2+?!!)uu!!!N0!!!'!!!!!(J,fQMqu?]s"2Fm:"8i-!!!2!X!!Dur!!!#g!!!9!zDu]kCn,NFg +!&srY&+BQ!!!#+]!"\Q!!!!!=!!!Q!z*WQ0Nn,NFg!"Ju/+7K71!!!N0!$C\1!!!!(!!",1z#Cldr +n,NFg!!@`O+7K71!!!+O!$C\1!!!!$^]5JGz!It.ln,NFgz+7K71z!$C\1z!!",1z!!!!@p](9oz ++8>g9z!"\i)z!!!Q)z!!!!0p](9oz&,ZD-z!!iE%z!!!9%z!!!!(rVuouz#Q=]'z!!E3#z!!!-$z +!!!!"rr<$!z!WN-"!!!!=!!*%Lz*WQ3?J,fQL!"Ju/J%u$a!!!K/!.Vca!!!!/!!#7Az%fcSohuE`W +!"T&0+7K71!!!N0!"\Q!!!!!0!!!9!z%tFWbp](9o!"XS["8i-!!!"*k!!3'!!!!!@J,fTLz+2@jV +It.M!!$AuV!'e7!!!#7!!!",!!!!!`^]4?Fn,NFg5MuMA#P\9!!.Wo,!!E-!!!*&W!!!$!!!!#^ +huE`WIt.M"kO8HO!$C,!"2jU.!!!Q-!"XYM!!!!$s+!<6n,NFg!.Y%H!-eJD!!",@n,PEJ!!!!" +s*t(d~> +Q +q[1 0 0 1 0 0]concat +73 68 true[1 0 0 1 -923 -1129]@X +imagemask +5QCc`rr<$!!!#7`s8W,gz+92B@s8Duu!!!!@n,NRjJ,fQL!"\Q!!'fBA!!!!(p](:)n,NFg!!i9! +!!E-!!!!!(p](9orVuou!!i9!!!%KK!!!!$qu?]s5C`_6!!E-!!!",!!!!!$qu?]s&+BQ!!!E-! +!!!9!!!!!"rVuou"8Dir!!3'!!!!&t!!!!"rVuou!<)ru!!3'!!!!$!zrr<$!!.TM!!!*$!!!!"K +J,fQLrr<$!!'e7!!!*$!!!!!`huE`WIt.M!!$C,!!!%M!!!!!@n,NFgIt.M!!"\Q!!!%M!!!!!0 +p](9o5JR7!!"\i)!!#7!!!!!(qu?]s5JR7!!!iE%!!#7!!!!!$qu?]s+5d,!!!E3#!!",!!!!!$ +rVuou+5d,!!!E3#!!",!!!!!"rr<$!&+BQ!!!3*"!!!Q!!!!!"rr<$!&+BQ!!!3*"!!!Q!zs*t(L +#P\9!!!*%L!!!9!zs*t(L#P\9!!!*%L!!!9!zs*t(L"8Dir!!*%L!!!-!zIt.M!"8i-!!!%M!!!!-!z +It.M!!W2ot!!%M!!!!'!zIt.M!!WE'!!!%M!!!!'!zIt.M!!<)ru!!%M!!!!$!zIt.M!!<3$!!!%KK +!!!$!zrr<$!!.OtK!!*$!!!!"KJ,fQLrVuou!.TM!!!)uu!!!"KJ,fQMrVuou!'bu6!!2ut!!!!` +^]4?:p](9o!'e7!!!i9!!!!!`^]4?>n,NFg!$AuV!"[uf!!!!@huEaA^]4?7!$C,!!<7QL!!!!` +n,N^nz+92B@s82is!!",@s8W,gz+92B@s*t(L~> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -999 -1129]@X +imagemask +5QCc`s8Vus!'gM`s8W,u!!",@s8W-!rr<$!5PP3Y5Q:]`!"\i)!!E6$!!!9!!!!"KJ,fQSp](9o +5C`_6#P\9!!"ZjF!!i9!!!!8>!!!-!!!!!$^]4?:qu?]s"5j.Z"8i-!!!2!X!!E-!!!!#g!!!'!z +n,NFhrVuou!,qo!!!9!!!C":!!!!$qu?cUz"8i-"huE`W!!E-! +!8mhW!!!-!!!(pW!!!!"rVurf!+5d,!WE'!Dueer!!3'!!,qpW!!!'!zDu]k +Q +q[1 0 0 1 0 0]concat +69 68 true[1 0 0 1 -1066 -1129]@X +imagemask +5QCc_z!'gM`rr<$!!!",@s8Duuz5PtK]z!"\i)z!!!9!z!!!!(p](9oz#P\9!z!!iE%z!!!-!z!!!!$ +qu?]sz"8i-!z!!E3#z!!!'!z!!!!"rVuouz!WE'!z!!3*"z!!!$!zzrr<$!z!<3$!z!!*%Lz!!!"K +J,hP/zIt.MYz!.TM!49,?]!!%Ma!#tt=!!!!`^]5>Sz5JR7=z!'e7!*WQ0?!!#7A!$2+?!!!!@huFeu +z+5d,_z!$C,!IfKHK!!",@s8N'!!!!!0s8W*!z&-)\0z!"\Q!It.M!!!!Q)!$?^k!!!!(p](PLz +#P\9(J,fQL!!i9!"2Fm:!!!9%!!C":!!!!$qu?c5z"8i-"^]4?7!!E-!!T3qX!!!-#!!(pW!!!!" +rVurV!5JR7!WE'!huUUn!!3'!!!!&8!!!'"!!!!"huE`Wrr<$!!8mhW!<3$!!!(pW!!*$!!!!#W +!!!$!zhuE`WIt.M!!8mhW!.TM!!!(pW!!%M!!!!#W!!!"KJ,fQLn,NFg5JR7!!:Tsg!'e7!!!)Kg +!!#7!!!!&h!!!!`^]4?8n,NFg+5d,!"7Q9j!$C,!!!D]j!!",!!!!Q)!!!!`n,NH +Q +q[1 0 0 1 0 0]concat +69 72 true[1 0 0 1 -1136 -1127]@X +imagemask +!!!-$J,fQL!!!!@s6p!gzs8W&u0E;(Q"93m9J8bJg!!iE%#N0P$!!!Q!!!2Ta!!!!@^]4@Zp](9o +5C`_64no!W!.OtK!$Ct9!!*$!!!!Q-!!!'!!!!!(qu?]tqu?]s"8i-!"8i-!!!E-!!!Dur!!!-# +!!!9!!!!!"rVup'p](9o!WE'!&+BQ!!!3'!!"\Q!!!!'"!!!Q!zrr<$0n,NFg!<3$!+7K71!!*$! +!$C\1!!!$!J,g\\zIt.M@n,NFg!.TM!+7K71!!%Ma!$C\1!!!$!huFkg!!!'"s8N'@n,NFjs8W*! ++7K71!WW3"!$C\1z!!",1z!!!!@p](9oz+8>g9z!"\i)z!!!Q)z!!!!0p](9oz&,ZD-z!!iE%z!!!9% +z!!!!(rVuouz#Q=]'z!!E3#z!!!-#z!!!!"rr<$!z!WN-"!!!!=!!*%Lz*WQ3?J,fQL!"Ju/J%u$a +!!!K/!.Vca!!!!/!!#7Az%fcSohuE`W!"T&0+7K71!!!N0!"\Q!!!!!0!!!9!z%tFWbp](9o!"XS[ +"8i-!!!"*k!!3'!!!!!@J,fTLz+2@jVIt.M!!$AuV!'e7!!!#7!!!",!!!!!`^]4?Fn,NFg5MuMA +#P\9!!.Wo,!!E-!!!*&W!!!$!!!!#^huE`WIt.M"kO8HO!$C,!"2jU.!!!Q-!"XYM!!!!$s+!<6 +n,NFg!.Y%H!-eJD!!",@n,PEJ!!!!"s*t(d~> +Q +q[1 0 0 1 0 0]concat +81 68 true[1 0 0 1 -1205 -1129]@X +imagemask +5QCcY"98E$!!!!`s8Virs8W+L!!",@s7c]rs8N'!!!#7Y!!!-$J,fQL!"\i)!!3*"z#P\9!!<3$! +!!!!(p](9orr<$!!!!9!!!!"KJ,fQL!!iE%!!%M!z"8i-!!.TM!!!!!$qu?]sIt.M!!!!-!!!!!` +^]4?7!!E3#!!#7!z!WE'!!'e7!!!!!"rVuou5JR7!!!!'!!!!!@huE`W!!3'!!!",!z!<3$!!$C,!z +rr<$!+5d,!!!!$!!!!!0n,NFg!!*$!!!!Q!z!.TM!!"\Q!zIt.M!&+BQ!!!!"KJ,fQ[p](9o!!%M! +!!!9!z!'e7!!!i9!z5JR7!#P\9!!!!!`^]4?>qu?]s!!#7!!!!-!z!$C,!!!E-!z+5d,!"8i-!!!!!@ +huE`ZrVuou!!",!!!!'!z!"\Q!!!3'!z&-)\0s8Duu!!!!0s8W-!rr<$!!!!Q0s8W-!z!!i9!!!*$!z +#P\9!!<3$!!!!!(p](9os*t(L!!!9!!!!"KJ,fQL!!E-!!!%M!z"8i-!!.TM!!!!!$qu?]sJ%u$a +!!!-!!!!!`^]4?7!!3'!!!#7!z!WE'!!'e7!!!!!"rVuou5MuMA!!!'!!!!!@huE`W!!*$!!!",!z +!<3$!!$C,!zrr<$!+7K71!!!$!!!!!0n,NFg!!%M!!!!Q!z!.TM!!"\Q!zIt.M!&,6,)!!!"KJ,fQS +p](9o!!#7!!!!9!z!'e7!!!i9!z5JR7!#Q+Q%!!!!`^]4?:qu?]s!!",!!!!-!z!$C,!!!E-!z+7K71 +"9&9#!!!!`p](9rs*t(L!$D7@p]LQrrr<$!5QCcY"98E$J,fQks8Virs8W+L~> +Q +q[1 0 0 1 0 0]concat +46 68 true[1 0 0 1 -1279 -1129]@X +imagemask +5QCcY!!#7`s82is5QCc]!!!!`p](9o!"\i)!!!!(p](9o!!i9!!!!!(p](9o!!i9!!!!!$qu?]s +!!E-!!!!!$qu?]s!!E-!!!!!"rVuou!!3'!!!!!"rVuou!!3'!zrr<$!!!*$!zrr<$!!!*$!zIt.M! +!!%M!zIt.M!!!%M!z5JR7!!!#7!z5JR7!!!#7!z+5d,!!!",!z+5d,!!!",!z&+BQ!!!!Q!z&+BQ! +!!!Q!z#P\9!!!!9!z#P\9!!!!9!z"8i-!!!!-!z"8i-!!!!-!z!WE'!!!!'!z!WE'!!!!'!z!<3$! +!!!$!z!<3$!!!!$!z!.TM!!!!"KJ,fQL!.TM!!!!"KJ,fQL!'e7!!!!!`^]4?7!'e7!!!!!`^]4?7 +!$C,!!!!!@huE`W!$C\1!!!!`p](9o5QCcY!!#7`s82is5QCc]~> +Q +q[1 0 0 1 0 0]concat +58 70 true[1 0 0 1 -1318 -1127]@X +imagemask +!!i9!z!$D4@z!.5=8z!:U6_z!T4"Vz!Pe^7z"+UB$z"+UA9J,fQL"+UA9^]4?7#Oh^8huE`W#Q+Q4 +huE`W#Q+Q4n,NFg#Q=].n,NFg"9&9*p](9o"9/?+p](9o"9/?'qu?]s!WE'$qu?]s!<)s#qu?]s +!.4bKqu?]s!!!!"rVuou!!!!"rVuou!!!!"rVuou!!!!"rVuouzrr<$!zrr<$!zrr<$!zrr<$!z +It.M!zIt.M!zIt.M!zIt.M!z5JR7!z5JR7!z5JR7!z5JR7!z+5d,!z+5d,!z+5d,!z+5d,!z&+BQ!z +&+BQ!z&+BQ!z&+BQ!z#P\9!z#P\9!z#P\9!z#P\9!z"8i-!z"8i-!z"8i-!z"8i-!z!WE'!z!WE'!z +!WE'!z!WE'!z!<3$!z!<3$!z!<3$!z!<3$!z!.TM!z!.TM!z!.TM!z!.TM!z!'e7!z!'e7!z!'e7!z +!.XJ +Q +q[1 0 0 1 0 0]concat +82 68 true[1 0 0 1 -1370 -1129]@X +imagemask +5QCcY!"],0^]4@!s8Vio+92B!!!",@s7cR)s8Tk7!!#7Y!!!$!qu?]s!"\i)!!#7Qz#P\9!!'fBA +!!!!(p](9o5MuMA!!!9!!!!!`huE`W!!iE%!!#7!z"8i-!!.Vca!!!!$qu?]sIt.M!!!!-!!!!$! +J,fQL!!E3#!!*%Lz!WE'!!<3$!!!!!"rVup!rr<$!!!!'!!!!'"z!!3*"!!3'!z!<3$!"9&9#zrr<$$ +qu?]s!!!$!!!!-!z!!*$!!!iE%z!.TM!#P\9!zIt.M0p](9o!!!"KJ,g,Tz!!%M!!"\Q!z!'e7! ++7K71z5O\XphuE`W!!!!`p])Doz!!#7]!'fBAz!$D1?5JR7!z+7F`0^]4?7!!!!@kJ2S_z!!"," +i.$7Wz!"\Sgs*t(Lz&+FiDz!!!!0n36jPz!!!Q!+9)<@z!!i9(rVuouz#P\E#z!!!!(p]:?oz!!!9! +!;lfsz!!E-!HiO-Hz"8i-?z!!!!$qu@6-z!!!-!!!e#Sz!!3'!"5j.Zz!WE'"n,NFg!!!!"rVuqCz +!!!'!!!#+]z!!*$!!$2+?z!<3$!%tFW[zrr<$(^]4?7!!!$!!!!&Xz!!%M!!!)Kgz!.TM!!-eJDz +It.M!4obQ_!!!"KJ,fQkz!!#7!!!!7Sz!'e7!!!C":z5JR7!!Up'h!!!!`^]4?7p](9o!!",!!!!"Jz +!$C,!!!%KKz+7K71!.Vca!!!!`p](9os7cQo!$D7@p](R!s*t(L5QCcY!!iQ(^]4?Vs8Vio"98CO~> +Q +q[1 0 0 1 0 0]concat +58 68 true[1 0 0 1 -1447 -1129]@X +imagemask +5QCc`s8Tk75QCc`s8Tk7+92B@s8Tk7!'g5Y#QN]^!"\i)!<:sW!!i9!!'fBA!!i9!!"\Q!!!i9! +!!hun!!i9!!!Dur!!E-!!!2ip!!E-!!!)co!!E-!!!%BH!!E-!!!#+]!!3'!!!#+]!!3'!!!"&? +!!3'!!!"&?!!3'!!!!K/!!*$!!!!N0!!*$!!!!6(!!*$!!!!6(!!*$!!!!+O!!%M!!!!+O!!%M! +!!!,:!!%M!!!!&8!!%M!!!!&8!!#7!!!!#7!!#7!z!!#7!z!!#7!z!!",!z!!",!z!!",!z!!",!z +!!!Q!z!!!Q!z!!!Q!z!!!Q!z!!!9!z!!!9!z!!!9!z!!!9!z!!!-!z!!!-!z!!!-!z!!!-!z!!!'!z +!!!'!z!!!'!z!!!'!z!!!$!z!!!$!z!!!$!z!!!$!z!!!"KJ,fQL!!!"KJ,fQL!!!"KJ,fQL!!!"K +J,fQL!!!!`^]4?7!!!!`^]4?7!!!!`^]4?7!!!!`^]4?7!!!!@huE`W!!!!@huE`W!!!!@n,NFg +!!!!`qu?]s!!",@s8Duu!!#7`s8N'!!!",@s8N'!~> +Q +q[1 0 0 1 0 0]concat +96 68 true[1 0 0 1 -1509 -1129]@X +imagemask ++92?@#64l+s8Duu+92@k#Cm'Zs8N'!+92@k#ClpVs8Duu!<;Ng#J^Q!!!#WrVuou3$5p9!!!#WrVuou*$;rr +!!!#grVuou$m37b!!!#grVuou%NjU/!!!"qu?]s!&OBM!!!!>qu?]s!'BrU!!!!@qu?]s!#t\5!!!!@qu?]s!$D+=!!!!`qu?]s!"])0 +!!",@qu?]s!!iQ'!!",@p](9o!!iQ(!!",@p](9o!!E9$~> +Q +q[1 0 0 1 0 0]concat +81 68 true[1 0 0 1 -1598 -1129]@X +imagemask +5QC``!!!K/!!!!`s8N'!!$2+?!!",@rr<$!*WQ0?!!*&W!!!!@z!'e7!!!#4`z++O=k!'^G`!!!!0 +J,fQL56(Z`!!!7S!!!"KJ,fQL!!e#S!!%M!z"+U@O!.TM!!!!!$J,fQLs*t(L!!!,:!!!$!^]4?7 +!!C":!!3,8z!Pe[8!WTq8!!!!"^]4?8s1eU7!!!&X!!!-$huE`W!!2!X!!E2Xz!8mhW"8q'WzhuE`^ +r87PT!!!#g!!!9!n,NFg!!)Kg!!i;gz!,qo<&+FNg9!.TM! +!!!!@p](9os53kW!$D79!!",@rr<$!5QC3Q!$D7@J,fQks6p!g+92@k~> +Q +q[1 0 0 1 0 0]concat +66 72 true[1 0 0 1 -1680 -1127]@X +imagemask +!!!9'z!!!"Ks53kW!!!!"s8Vusz#Q=i*z!"\Q!J%u$a!!",!!$C,!!!!!`J,fiLzIfKHNqu?]s!<3$! +!<3$!!!3'!!!%M!!!!&t!!!!`^]4?:qu?]s+5d,!"8Dir!"\Q!!!i9!!!!9!!!!9!!!!!$qu?^- +p](9o"9&9#&+BQ!!!3*"!"\Q!!!!$!!!",1zs*t(kn,NFg!.Vca+7K71!!#7!!$C\1!!!!`huFkgz ++7K7Pn,NFg!$C\1+7K71!!!Q)!$C\1!!!!0p])E*z&,ZDLn,NFg!!iE%+7K71!!!9'!$C\1!!!!$ +rW"&0z"9/?Cp](9o!!E6$+8>g9!!!'"!"\i)!!!!"s*tXTz!WRZ\p](9o!!*%L&,ZD-!!!$!J-YuPz +s1em;z!<9h>qu?]s!!%Ma"9&9#!!!"K^]XQ9zJ%u0cz!.Vcbrr<$!!!%Ma!WN-"!!!!`^]=B7z5JR:! +J,fQL!'e7!It.M!!!#7!!.Vca!!!!`^]6U7z5JR7`huE`W!'e7!+5d,!!!#7!!"\Q!!!!!`^]4o7z +5JR7(p](9o!'bu6"8Dir!!#66!!2ut!!!!`J,fTKzIt.M!IK0?J!.OtK!'^G`!!%KK!!"*k!!!#u +!!!!0^]4?7rVuou#N,R^!W2ot!!D]j!!2ip!!!&p!!!,jzIK0?Qn,NFg!'^G`&&8/F!!!PF!$?^k +!!!!$n,Rq +Q +q[1 0 0 1 0 0]concat +69 68 true[1 0 0 1 -1749 -1129]@X +imagemask +5QCcYz!'gM`p](9o!!",@s7cQoz+8c*=z!"\i)z!!!9!z!!!!(p](9oz#P\9!z!!iE%z!!!-!z!!!!$ +qu?]sz"8i-!z!!E3#z!!!'!z!!!!"rVuouz!WE'!z!!3*"z!!!$!zzrr<$!z!<3$!z!!*%Lz!!!"K +J,fQLzIt.M!z!.TM!z!!%Maz!!!!`^]4?7z5JR7!z!'e7!z!!#7Az!!!!@huE`Wz+5d,!z!$D7@ +rr<$!!!",@s8V!W!!!!0s8W,sz&+BQ(rr<$!!"\Q!!.Vca!!!Q!!!",!!!!!(p](:)n,NFg#P\9! +#P\9!!!i9!!!E3#!!!9!!!!'!!!!!$qu?]srr<$!"8i-!!<7QL!!E-!!!%Ma!!!-!!!!"K^]4?8 +rVuou5MuMA!WE'!!'fBA!!3'!!!#7Q!!!'!!!!!@n,NFgrr<$!+7K71!<3$!!$Ct9!!*$!!!",9 +!!!$!!!!!0p](9oIfKHK&,6,)!.TM!!"\i)!!%M!!!!Q)!!!"KJ,fQ[n,NFg5C`_6&+BQ!!'e7! +!"\Q!!!#7!!!",!!!!!`^]4?VhuE`W+2@jV5JR7!!$C,!!.TM!!!",!!!*$!!!!!`n,N^m!!!!@ +s8W-!p](9o+92B@s53kW!$D7@s8N'!~> +Q +q[1 0 0 1 0 0]concat +66 89 true[1 0 0 1 -1824 -1110]@X +imagemask +z"8Dirz!"]&/z!!",@z!!!!@s1eU7z5QAM!z!'gMAz!!#7`n,NFg!!!!`s7cQoz5QCKYz!'c&4z +!!#4`HiO-H!!!!_!'UA_z4ocW(z!'UAnz!!#+]#64`(!!!!]!!<3$z49,J6!!!!(rYtn?J,fQLJ,fEH +!It.M!WN9"!!.TM!!iK'IfKHK!!!Pr!$AuV!!!!@MuXshz57@N6p](9o!.PCW*;fd:!!*!.!#U1c +!!!&t"ooK)J,fQMr!!-<+2@jV"8E*$(_>O)!!DuuJ1q5t!!!8n!PgAkp](:!n,VD)!W2ot&+BRK +^]FE7!"\Q!++O@k!!!Q!zIfKHjhuE`W!.TM!+5d,!!!#7!!$C,!!!!!`huFkWz+5d,@huE`W!$C\1 ++5d,!!!!Q!!$C,!!!!!0p])Doz#P\9@huE`W!!iE%+7K71!!!-!!$C\1!!!!$rW"&0z"9&9Bn,NFg +!!3*"+7K71!!!'"!$C\1!!!!"rr +Q +q[1 0 0 1 0 0]concat +68 70 true[1 0 0 1 -1893 -1127]@X +imagemask +z!!!8nz!!!!`quAt]s7cQorZ2&(s8Vio!W30&+92B9!!E-$J,g\d!!!-!"2FmIp](:!quOS5#P\9! +#Q+S[!!i9!!"\u-huF#W!!!Q-!:Tsnp](:)quC[9"8i-!&,ZEH!!E-!!"\u-!!!-!!!!9%!!!!$ +qu?^%qu?]s!WE'!#Q+Q%!!3'!!!iK'!!!'!!!!-#!!!!"rVup#rVuou!<3$!"9&9#!!*$!!!E3# +!!!$!!!!'!zrr<$"rVuou!.TM!!WE'!!!%M!!!3'!!!!"KJ,fWLzIt.M"rVuou!'e7!!WE'!!!#7! +!!2ut!!!!`^]4E5z5JR7"p](9o!$C,!"8Dir!!",!!!hun!!!!@huF;Gz+5d,`J,fQL!"],0rVuou +!!!Q0s8RTL!!!!0n,OR"z&+BQ"qu?]s!!i9!!.OtK!!!9!!!"+V!!!!(p](:)huE`W#P\9!#P\9! +!!E-!!!E-!!!!-!!!!'!!!!!$qu?]trr<$!"8i-!!<3$!!!3'!!!*%L!!!'!!!!"K^]4?8rVuou +J%u$a!WE'!!.Wo,!!*$!!!#7A!!!$!!!!!`huE`Wrr<$!5MuMA!<3$!!'fBA!!%M!!!#7Q!!!"K +J,fR6huE`WIt.M!+5d,!!.TM!!$C,!!!#66!!#7A!!!!`^]4@!^]4?75JR7!5JR7!!'e7!!.TM! +!!"+V!!%KK!!!!@huEfWz+5d,$qu?]s!'frQ5PP3Y!$D7@s8V!W!!",@s8W+L!!!!@s8W,o!!!~> +Q +q[1 0 0 1 0 0]concat +59 72 true[1 0 0 1 -1966 -1127]@X +imagemask +$igP1z)utKgJ,fQL%KZV0huE`W%g2_3p](9o%u9'CrVuou&'ob+56(Z`#Q=]'++O=k#Q+Q%&&8/F +#Q+Q%#N,R^#P\9!"7Q9j"7Q9j!Up'h"7Q9j!;HNo"7Q9j!;lfs"7Q9j!.4bH!T3qX!.FnJ!T3qX +!'UA_!T3qX!'^G`!T3qX!'^G`!8mhW!'^G`!8mhW!$?^k!:Tsg!$?^k!:Tsg!$?^k!,qo +Q +q[1 0 0 1 0 0]concat +68 67 true[1 0 0 1 -2030 -1129]@X +imagemask +!WW3"s*t(L!!3-"s8RTL!!!'"s8W+Lz!'gG_z!!!Q)z!!!!(p](9oz#P\9!z!!E-!z!!!-!z!!!!$ +qu?]sz"8i-!z!!3'!z!!!'!z!!!!"rVuouz!WE'!z!!*$!z!!!$!zzrr<$!z!<3$!z!!%M!z!!!"K +J,fQLzIt.M!z!.TM!z!!#7!z!!!!`^]4?7z5JR7!z!'e7!z!!",!z!!!!@huE`Wz+5d,!z!$C,!z +!!!Q!z!!!!0n,NFgz&+BQ!z!"\Q!z!!!9!z!!!!(p](9oz#P\9!z!!i9!z!!!-!z!!!!$qu?]sz +"8i-!z!!E-!z!!!'!z!!!!"rVuou!!<3$!WE'!"+UW,!!3'!!!@`RJ,fTL!!!+O"+U@Orr<$$J-3Re +!<3$!"2FrQ!!*$!!!0k9huEb,J,fVc!T3qXIt.M"^]<9m!.TM!!Pe^)!!%M!!!0k8n,NGQ^]4Dn +!-eJD5JR7"huJ!%!'e7!!T3s*!!#7!!!2!X4obR)huEf9!'^G`+5d,$huGul!$C,!"7Q:4huFkg +!!hun+8c*\n,P]B!$D7@s8W-!n,O"!s8W-!s6p"!s8W-!s8VQ~> +Q +q[1 0 0 1 0 0]concat +65 70 true[1 0 0 1 -2109 -1127]@X +imagemask +!!E-!z!!",@J,fQL!!!"Ks6p!g!!!!"rWDoqz"8DkFz!!hE^*rl9@!!!PF!!e#S!!!!@^]4JPz++O=l +huE`W!'bu6!,qo +Q +q[1 0 0 1 0 0]concat +66 70 true[1 0 0 1 -2184 -1127]@X +imagemask +!!0k8z!!!&Xz!!!!"n,NFgz"7Q9jz!!Durz!!!,rz!!!!$qu?]sz"9&9#z!!E3#z!!!-$z!!!!$ +rr<$!z"93lOz!!E8:z!!!9&^]4?7!!!!(r87PTz#Q3K[z!!i:z5JR7!"+U@O +!'e7!!!C":!!#7!!!!&8!!!"K^]4?7huE`WJ%u$a!8mhW!.Vca!!$s +Q +q[1 0 0 1 0 0]concat +92 70 true[1 0 0 1 -2258 -1127]@X +imagemask +!#tt=!!`K(z!$2+?!!e#Sz!'UA_!"XS[z!'^G`!"ZjFz!'^G`!"ZjFz!'bu6!"[ufz!'bu6!"[ufz +!'e7!!"\Q!z!'e7!!"\i)z!'fBA!"\i)z!'frQ!"\u-z!'frQ!"\u-z!'g5Y!"]&/z!'g5Y!"]&/z +!'f6=!"\f(z!'f6=!"\f(z!'ea/!"\[Oz!'ea/!"\[Oz!'eL(!"\V8z!'eL(!"\VXz!'eAO!"\SWz +!'eB:!"\Sgz!'e<8!"\R +Q +q[1 0 0 1 0 0]concat +78 68 true[1 0 0 1 -2341 -1129]@X +imagemask +J,fKJ!.Y%KJ,k*!rVuqJs8Tk75QC]_!.Y%K^]4K:n,NFns53kW!.Wo,!!3,8!!!!@^]4?7s*t(L +!!g:>!!*%L!!!!$huE`Xrr<$!!!2!X!!3*"zn,NFhrr<$!!!%6D!!E3#z49,?`rVuou!!"&?!!E-!z +%KHJ6qu?]s!!!6(!!iE%z"+U@Vp](9o!!!,:!"\i)z!T3qgp](9o!!!#g!$C\1z!-eJcn,NFg!!!!] +!$C\1z!#tu'huE`W!!!!/!'fBAz!!`Kg^]4?7!!!!(J:G?7z!!C#d^]4?7!!!!"i.$7Wz!!)NgJ,fQL +zGlN9oz!!#%Zzz*WH*>z!!!Q/zz&,lP/z!!!9'zz"8i-!z!!!9%zz#Q+Q%z!!!Q)zz&,6,)z!!!Q-zz ++8u6?z!!",@zz+6S.Sz!!#7D^]4?7z5N1N#z!!%MahuE`WzJ&$"'z!!%Ma2uipYzs+!33z!!*%L +*WQ0?zs*tU[z!!3*"#CldS!!!!"rr!!!!@p](:!n,NFg!$D+= +!"\u-!!!"Krr<$@s*t(L+92B!!<<)s!!",@s6p$gs82is+92B!!.Y%H~> +Q +q[1 0 0 1 0 0]concat +67 68 true[1 0 0 1 -2432 -1129]@X +imagemask +&-)\-z!"],0rVuou!!!Q0s8Duuz&,lP/z!!E-!z!!!-!z!!!!"rVuouz!WE'!z!!3'!z!!!'!zz +rVuouz!<3$!z!!*$!z!!!$!zzIfKHKz!.TM!z!!%M!z!!!"KJ,fQLz5C`_6z!'e7!z!!#7!z!!!!` +^]4?7z+2@jVz!$C,!z!!",!z!!!!@huE`Wz&+BQ!z!"\Q!z!!!Q)z!!!!@qu?]sz+8c*=z!$CV/z +!!#7Pz!!!!`kC +Q +q[1 0 0 1 0 0]concat +66 68 true[1 0 0 1 -2490 -1129]@X +imagemask +&-)\0s8N'!!"],0s8W+L!!!9(s8W-!J,fQSqu?^=s1eU7"9&9#"96.:!!3*"!!%Ma!!!$!J,fQk +^]4?7It.M!&)[Ef!'e7!!!hE^!!#7A!!!,Z!!!!@n,NFhn,NFg&,6,)!Up'h!!iE%!!)Kg!!!-! +!!!"D!!!!"rVuouGQ7^D!WN-"!&srY!!*%L!!#+]!!!"K^]4?sz5MuMA)uos=!$C,!!#tt=!!!Q! +!!!K/!!!!0p](:(z#Q+Q%%KHJ/!!E3#!!`K(!!!'"!!!6(zrr<$(z!.TM!!WW3#!!%Maz!!!!`huE`W +z+7K71z!"\i)z!!!9!z!!!!$qu?]sz"9&9#z!!3*"z!!!$!J,fQLzJ%u$az!'e7!z!!",!z!!!!@ +n,NFgz&,6,)z!!iE%z!!!-#z!!!!"rVuouz!<3$!z!!*%LzDu]lf^]4?7!,qo<5MuMA!!$s +Q +q[1 0 0 1 0 0]concat +49 45 true[1 0 0 1 -709 -1008]@X +imagemask +!!2ut&&8/F#QFcghuE`fLVS:V!!")Ai:o83!'UC-p`'86HiQ>))uotd!$1hE!!)os&,6V7!;lg% +p^R9(qu?us#64f&!!E!$!!2ut!Vcm"!W2ouqu_HMqu?`p"+UFM!!)p!J-#QJ!;lqL!W2otrVup! +qu?`r!!!'!!!%HJ!!3'!!.FnJ!WE'!IfKHLrVuqJ!!!#u!!#4`!!*$!!'^G`!<3$!5C`_6IfKI5 +J,fS!J,g[A!!%M!!$?^k!'bu6+2@jV5JR7@^]4?V^]4n\!!"+V!"ZjF!"[uf&)[Ef&)[EuhuE`^ +n,O!W!!!,j!"[uf!!2ip&+BQ!!;lg-n,NFgHiP8X!!!!_!$C\1!!")@488dU!"XU"n,NFg#N5+0 +!!!!"s1eU7!!!!`!!!!~> +Q +q[1 0 0 1 0 0]concat +42 70 true[1 0 0 1 -760 -1008]@X +imagemask +!!)uu!!!!$s*t(L!"XkC!!!!@!VcWp!'UD\!!!!]!.FnJ!.4c2!!!"H!$?^k!;HO)^]4B0!"[uf +!;HO!huEcP!!hun!;HNrp](5huFjL!"\Q!++O>%p])B9!"\u-56(ZoquAn\ +!!hrm4obQfpOIVk!!i&Pp](:!nGhDH!!D^4J,fQOp](9o!!Dur!!!!$p](9o!!2ip!!!!"p](9o +!!2ut!!!!"qu?]s!!)oszqu?]s!!)uuzrVuou!!%HJzIK0?J!!%KKzIfKHK!!#4`z56(Z`!!#66z +5C`_6!!#66z5C`_6!$D5k!!!!@s1eU7!"]+Fz+2@jV~> +Q +q[1 0 0 1 0 0]concat +43 45 true[1 0 0 1 -800 -1008]@X +imagemask +!!#7A!!!!"s82is!!hFH!!!!0J-Wji!$;1An,NGQ!!%6D!'UA_4obS3!!!N0!;lfs#ClgP!!!,: +!;lfs!Pea6!!!&X!W2ot!5JX5z!W2ot!!!&tz!W2ot!!!&tz!WE'!!!!'!z!WE'!!!!'!z!<3$! +!!!$!z!<3$!!!!"Kz!.TM!!!!"KJ,fQL!'bu6!!!!`^]4?7!$AuV%fcSO^]5I,!"[uf5JR7(n,P\g +!!D]j+5d,$p])Do!!2ut+5d,!qu?u[!!%HJ!Pe[856(`"!!!O["2Fm:#N,i;!!!&p*rl9@!.XnH +!!!!0n,N~> +Q +q[1 0 0 1 0 0]concat +52 70 true[1 0 0 1 -841 -1008]@X +imagemask +!!2ut&&8/F#QFcghuE`fK>;kR!!")Ai:o83!'UC-p`'86HiQ>))uotd!$1hE!!)os&,6V7!;lg% +p^R9(qu?us#64f&!!E!$!!2ut!Vcm"!W2ouqu_HMqu?cq"+UFM!!)p!J-#QJ!;lqL!W2otrVup! +qu?`r!!!'!!!%HJ!!3'!!.FnJ!WE'!IfKHLrVuqJ!!!#u!!#4`!!*$!!'^G`!<3$!5C`_6IfKI5 +J,fS!J,g[A!!%M!!$?^k!'bu6+2@jV5JR7@^]4?V^]4n\!!"+V!"ZjF!"[uf&)[Ef&)[EuhuE`^ +n,O!W!!!,j!"[uf!!2ip&+BQ!!;lg-n,NFgHiP8X!!!!_!$C\1!!")@488dU!"XU,p](9o#N5.I +!!!!"s2"I1!!!!`Jc#KJ!!!!"qu?]s!!!#sz!!)osz!<)ruzrVuou!!!"Jz!!%HJz!.OtKzIfKHK +!!!!`z!!#4`z!'bu6z5C`_6!!!!@J,fQL!!"*kz!$AuVz+2@jV!!!!0^]4?7!!!PFz!"[ufz+5d,! +!!!9(huE`W!!iP^z#QO8nz#Oh~> +Q +q[1 0 0 1 0 0]concat +43 45 true[1 0 0 1 -891 -1008]@X +imagemask +!!#7A!!!!"s82is!!D.D!!!!(J-Wji!"XS\n,NG1!!%6D!'UA_4obRH!!!N0!.FnJ#Clf'!!!,: +!;lfs!Pe^5!!!&X!;lfs!5JU4z!;lfs!!!&tz!W2ot!!!'!z!WE'!!!!'!z!<)ru!!!#uz!<3$! +!!!$!z!<<)g!!!$!s8RTL!.TM`huEb,J-5QH!.TM!HiO.2^]6Ou!'e7!%fcSO^]4Ui!"[uf#Cldb +huEkp!!hun"2Fm=n,NR+!!2ip"2Fm;qu?i7!!%HJ"2Fm:56(f$!!"*k#CldS#N-*m!!!,r*WQ0? +!.XnH!!!!0n,N~> +Q +q[1 0 0 1 0 0]concat +49 90 true[1 0 0 1 -929 -989]@X +imagemask +"7Q9j!!!!0qu?]s!!"&]z!'Cblz4pQT +Q +q[1 0 0 1 0 0]concat +45 64 true[1 0 0 1 -967 -989]@X +imagemask +!WTq8!!!Q0qu?]s*rpcj!!#1_+2@jVIfK`3!!%M!"7Q9jIt.Rp!!#7!!;lfs5JR9u!!"*k!.FnJ +%fcSoz!'^G`!!!!`J,fQL!$?^k!!!!@J,fQL!$AuV!!!!@^]4?7!"ZjF!!!!0^]4?7!"[uf!!)p- +huE`^s+fM4!"X_&huEa!!;Gs_!'UC4n,NH;!'frQ!.4bgn,NId!"\i)!;lg%p](UJ,g\,!'bu6+2@ju^]4n\!$AuV +&&8/UhuF;G!"[uf&)[Emn,O!W!!D]j&)[Egp](io!!2ip&+BQ!qu@i.!!%HJ+7K71*rnCt!!!O[ +H11e6#N5+0!!!'"^]4?7!'bu6~> +Q +q[1 0 0 1 0 0]concat +49 70 true[1 0 0 1 -1012 -1008]@X +imagemask +#64`(4obQnJ,fTLJ,g\,!!2':!"ZjF"5n+u&&8/Ii&C]IhuF#?2ujKI!!hF%!!hE^#N-R%#N,Re +i!o_ln,N^O%KHb'!!huu!!D]j"7QNq"7Q9mn-=IGp](Ek"+ULK!!2isJ-#EF!W3%M!VcWqqu?]t +qu?`p!!!&t!!)uu!!)os!<)ru!;lfsIK0?JrVuqJ!!!#u!!%KK!!%HJ!'^G`!.FnJ5C`_6IfKI5 +J,fS!!!"*k!!#4`!$?^k!'^G`+2@jV5C`_U^]4@!J,g+q!!"+V!"ZjF!$AuV&&8/F+5d,0^]4?V +huF;G!!!Q!!"ZjF!"\i)&&8/F&,6,8^]4?Fqu@8C!!!8l!"ZjF!!h\;%tFW[#P5_QJ,fQSnG#3J +!!!,jJ,B9H!!D^$n,NFg"8Dir!!!!$p](9o!!!&pz!!2ipz!W2ot!!!!"qu?]s!!!#sz!!)osz!<)ru +zrVuou!!!"Jz!!%HJz!.OtKzIfKHK!!!!`z!!#4`z!'bu6z5C`_6!!!!@J,fQL!!"*kz!'e7!!!!!@ +s1eU7!!",@^]4?7!"]+Fz!"ZjF!!!~> +Q +q[1 0 0 1 0 0]concat +29 66 true[1 0 0 1 -1063 -1008]@X +imagemask +!!hE^!"\i)!$3*[!'C_k!.5"O!.4m!!.4g_!.Fsa!.Fq+!.Fq+!.Ouf!.Ouf!'^I&!'c!Y!'bun +!$?_N!$AuV!"ZjF!"ZjF!"[uf!!hE^!!hun!!hun!!D]j!!Dur!!Dur!!2ip!!2ut!!)os%KQJ. +%flS/#692Q#695R#695R"+WT9"+WT9!Pgo"!PfcW!8nq!!8nq!!,s"[!&u#"!$4<(!"\u-!!D]jzzzz +zzzzzzzzz!!!,:!!!Pf!!!Q!!!!Q!!!!Q!!!!8n!!!8n!!!&X~> +Q +q[1 0 0 1 0 0]concat +40 85 true[1 0 0 1 -1085 -989]@X +imagemask +#Oh]n!$D1?!!#,'J,fRs#J^<>Ifo0?!.P%E!!%M!qu?_HJ:7IuIt2tJ!'^HJ!!"&?5C`_6!$?^k +!!"*k!!!!@^]4?7&&8/F!"ZjF!!!Pf!!!!0huE`W#N,R^!!hE^!!!8n!!!!(n,NFg"7Q9j!!D]j +!!!,r!!!!$p](9o!VcWp!!2ip!!!&t!!!!"qu?]s!;lfs!!)os!!!#uzrVuou!.FnJ!!%HJ!!!"Kz +IfKHK!'^G`!!#4`!!!!`J,fQL5C`_6!$?^k!!"*k!!!!@^]4?7+2@jV!"ZjF!!!PF!"Ju>huF5e +&)[Em!!hE^#65"e!!@`Vn,NQ@#Oh]o^]X'+!Peg,!!(pZn,NH-"7Q9jGQZk(!'CAA!!"&B^]4?F +LVNli"9/?$!!)oszzzzzzzzzzzzzzzzz!-eJD!!)os!!!'!!!!!"rVuou!<3$!!!)uu!!!"Jz49~> +Q +q[1 0 0 1 0 0]concat +46 70 true[1 0 0 1 -1123 -1008]@X +imagemask +#64`+n,NuL!"\u-+2@ju*WQ_d!'Unn&&80-#65:m!.4m!&)[G8"+UX7!.4g_#N,T2!Pes0!.Fq+ +#Oh_B!8mtK!.Fq+"7Q;>!:U*c!.Ouf"8DkG!,qu6!.Ouf!VcYE!!!&t!.FnJ!W2qH!!!#s!<)ru +!;llq!!!#u"8Dir!<*Mu!!!"JJ%u$a!.Y"K!!!"Kn,NFg!.Wo,!!!!`GQ7^D!'_G'!!!!`NW9%Z +!'c5=!!!!@K7Eq%!$?d-!!!!@^q]pM!$B!a!T3qg^b>lc!"Zk)"8Dj,i#Djs!"[ut"8i-(i!0A^ +!!hEaJc#KQn,_Hp!!hunGW5[*n,P]B!!D]j#J^ +Q +q[1 0 0 1 0 0]concat +26 70 true[1 0 0 1 -1168 -1008]@X +imagemask +!$;1@!.Vca!:\nH!Ut%."5n+u"5l-="5l-=#N-R%#Oi]5#Oi]5#Oi3'"7Qd#"7Qd#"8EB,"8E*$ +!Vcm"!VcWp!W2ot!W2ot!;lfs!;lfs!<)ru!<)ru!.FnJ!.FnJ!.OtK!.OtK!'^G`!'^G`!'bu6 +!'bu6!$?^k!$?^k!$AuV!$AuV!"ZjF!"ZjF!"[uf!"[uf!!hE^!!hE^!!hun!!hun!!D]j!!D]j +!!Dur!!Dur!!2ip!!2ip!!2ut!!2ut!!)os!!)os!!)uu!!)uu!!%HJ!!%HJ!!%KK!!%KK!!#4` +!!#4`!!#66!!#66!!"*k!!"*k!!#7!!$D6V!$D6V!"]+F!!!PF~> +Q +q[1 0 0 1 0 0]concat +80 45 true[1 0 0 1 -1193 -1008]@X +imagemask +!&srY*WQ0?qu?_E!!#4`!!3*"!.FnJ56(Zc_gh`9!!#66!!e(j!.FnJ5C`_EJD^EW!!"*k!"XU! +!.OtK++O>%J1psf!!"+V!"Zk)!'^G`+2@je^`3>=J,g+q!"Zjb!'bu6&&8/U^`3=rJ,g,X?49-H'!8r5e!.5gf56(\>Hk_#Cnu< +!-n8D_>",jHiO.2huWl9!<;fo!"XS[It.M@^]4~> +Q +q[1 0 0 1 0 0]concat +54 45 true[1 0 0 1 -1275 -1008]@X +imagemask +!&srY!VcWpHiO-OrVuqI!!!N?!!%HJ!$;;n!.FnJ*s'.WIfKI5!Pe\b!!#4`huGtA!'^I&!'^G` +56,X&5C`_uJ9V&YJ,hfa2uk%N!$?_N!$?^k+2Air+2@ju^`3=r^]4n\)upMb!"\!-!"ZjF&)[Ef +&)[EmhuE`fhuF#O!!!8^!!D]j!!hE^"7Q9j#Oh]qp](:!n,NLa!!!,j!!2ip!!D]j!W2ot"8Dis +qu?^!p]( +Q +q[1 0 0 1 0 0]concat +47 45 true[1 0 0 1 -1331 -1008]@X +imagemask +!!#7!!!!!"s7cQo!!hH]!!!!0J0+ak!$;1O^]4@!!!hE^!.FnMn,NH;!!2ip!;lfsqu?`p!!%HJ +!;lfsIfKNI!!#66!W2ot+2@pT!!"+V!W2ot&)[Kd!!!Pf!W2ot&+BVt!!!8n!WE'!#P\?!!!!9! +!WE'!"8Dor!!!-!!<3$!"8i0!!!!-!!<3$!!W2qI!!!&t!.TM!!WE(KJ,fWL!'bu6!WE'`^]4E7 +!$AuV!<)s?huEcV!"[uf!;lg%huEcT!!D]j!;lg!p](?m!!2ut!VcWpqu?cm!!%HJ!Up'h56(fD +!!!PF#N,R^#N--.!!!&p*rl9@!.XtJ!!!!0n,N~> +Q +q[1 0 0 1 0 0]concat +55 63 true[1 0 0 1 -1374 -990]@X +imagemask +"98D:!!!!(s8Tk7!!!-$s1eU7!!",1z!"[ufz#N,R^!!!!(huE`W!!!8nz!!hunz"7Q9j!!!!$n,NFg +!!!,rz!!Durz!VcWp!!!!"p](9o!!!&tz!!2utz!;lfszr!2]k!!!#u+8c*=!!*!\56(Z`!.Jkt +^]4?7Ic(Ih!!!"KhuiHK!!%Ma!VcWp!'e7!qu?]s5JR8J!!!!`J,k'!!!#66!'^G`!$?^k++O=k +++O>5^]4?V^]5Il!!"+V!"[uf!"ZjF&)[Ef&&8/Un,NG!huF#O!!!Pf!!i9!!!hE^#P\9!#N,Ra +p](:!n,NRg!!!8n!!E-!!!D]j"8i-!"7Q9kqu?^!p](?o!!!,r!!3'!!!2ip!WE'!!VcWqrW!E/ +qu?`r!"T,.!!)uu#6=Z%!<)s'!;lfsrW!0'rVurr!!@cN!!)os"+Yk$!;lg!J:E(Lqu?c5J%u'Z +!!0lbhuNNP!Pj*P!Up'hi-]bMn,NH-GWZ)d!!%9=%gTlM!'fBHrr<$!%tFZX!!~> +Q +q[1 0 0 1 0 0]concat +45 63 true[1 0 0 1 -1427 -990]@X +imagemask +!!*'!qu?]ss8W&u!!*'!rVuou!WN-"!!!#uz!.FnJ!!!"Kz!.OtK!!!!`z!'^G`!!!!`J,fQL!'bu6 +!!!!@J,fQL!$?^k!!!!@^]4?7!$AuV!!!!0^]4?7!"ZjF!!3!.huE`^rt"#f!"X_&huEa!!U&A@ +!'UC4n,NH9!'frQ!.4bgn,NId!"\Q!!;lg%p]( +Q +q[1 0 0 1 0 0]concat +45 45 true[1 0 0 1 -1473 -1008]@X +imagemask +!&srY!!!"Hz!.FnJ!!!"Jz!.FnJ!!!"Kz!.OtK!!!!`z!'^G`!!!!`J,fQL!'bu6!!!!@J,fQL!$?^k +!!!!@^]4?7!$AuV!!!!0^]4?7!"ZjF!!!!0huE`W!"[uf!!!!(huE`W!!hE^!!!!(n,NFg!!hun +!!!!$n,NFg!!D]j!!!!$p](9o!!Dur!!!!"p](9o!!2ip!!!K0qu?]s%fuS.!!!6(qu?]s#6=`' +!!!6(rW!&9"+^CO#N,]7IfL#K"+YlO&+BV8J%uTi!Pj3C#P\>8I..C9!8r6L!Up).GWYuq!-n8\ +"5j/Di!9:t!"ZjGrVu~> +Q +q[1 0 0 1 0 0]concat +38 45 true[1 0 0 1 -1515 -1008]@X +imagemask +!"\i)!!%NKJ,fWF#N,Ra^]Ep)#Clf!!!`K(49,ll!$2+M!!!N0%tFWjJ.LQ<#Cm?C!!g:Mn,N^/ +&+BQ(^^oo7#N,jV!!hE_huF#?!!!!(huE`W&)[Ef!$C,!!!%N,!!!9(huEb,s1eU8s8Tk7"98CO +!!iQ(!!!Q0rVup/s7cQo&-'EF!$D+=!!",!!!!!@^]4?7++O@L!"XS\p](hT"8Dj,J-#QJ%tF]Y +!!e#Squ?u;!.4bK^]6=o!T3r;!!)KgGQ7_g!:Tsg56KgD!"]*[!!!'!!!~> +Q +q[1 0 0 1 0 0]concat +33 63 true[1 0 0 1 -1555 -1008]@X +imagemask +!!hE^!!",=!!!!_*WQ0?Hj9WO!.4m!!!)ot^]4B4!8mhWquC[9!;lh9!!)os2uisV!&srYrW!o< +!<)s +Q +q[1 0 0 1 0 0]concat +52 45 true[1 0 0 1 -1589 -1008]@X +imagemask +!!"+V!Up'h!<;g!qu?]tpcK'.!!!,Z%Nc2]!!hEe4pM&f#J^GU"+U@^^]FE:J,g+q!<*#7!"ZjF +IK@4a&&80p!Pe[W^]8iahuFk7!'^JA!$AuV560UA&&800JFEOL^]6TLDu^Ea!$?`1!"ZjF++O=k +&)[F0^]4?FhuFk7!!!8^!"ZjF!!hun&&8/F#Oh^(huE`Zn,O!W!!!,j!!hE^!!Dur#N,R^!VcX" +n,NFhp](Qg!!!&t!!D]j!!)os"7Q:#!<)s#n,Nt!rW!&q!!`LQ!!2ip#695R!VcX"!.OtLp](DH +56(`^!!@a9!!)os!PgpM!;lft^`S(,qu?`T*rl +Q +q[1 0 0 1 0 0]concat +45 45 true[1 0 0 1 -1643 -1008]@X +imagemask +!!!PfzJ+s!D!!)d8!!!!$n-8pn!!D-]J,fQShuUUn!!g:>huE`f^]8S!"ZjF)uosL^]4iE!"ZjF%KHJ>^]4T>!"ZjF#64`7huEu^!"[uf"+U@VhuEk0!!hun +"+U@Vn,NL)!!D]j!Pe[;n,NL)!!Dur!T3qYp]( +Q +q[1 0 0 1 0 0]concat +65 45 true[1 0 0 1 -1688 -1008]@X +imagemask +!!!Q!!.TM!!!!"KquQiUzr#Q+$p](9o!Up=)J33f3!!D-]T7@s_!!!8^"9/?2!!!!(^]FH8#64`( +&&82E!!@`O!"ZjFrW!%N!!!PF!.FnK^]4?F^]8f`!Pe[8&&80o!!(pW!"ZjFIK0B+!!!PF!.FnJ +Du]kK^]8ia!,qo<&&80p!!$s2!!!8n!$?^k)uos@n,OP\!#tt="7Q:4^]4iE!!Dur&&8/T!!!&p!"ZjF%KHJ0p](i?!"Ju/ +!W2p.huF8f!!)os#N,Rm!"K#.!!hE^#6587rW!2]!!`K/!.FnQn,NuL#695R"7Q:$J-Q((!!D]j +%tFb456(fT!"XS^J3O#9p])Cd!PgpM!VcX:J-!G-J-#EF5C`al*rl?:!.TM!i#_q"quD4s!,s"[ +!;lhHJ,hPM!!)osIt.M?4obT\!.TM!&,ZD-2ul/C!!D]j!!!!?!!~> +Q +q[1 0 0 1 0 0]concat +48 45 true[1 0 0 1 -1754 -1008]@X +imagemask +"8Dj\J,g,Z!<:sW*X;`(p]*DYK>9SLIf[U**WU\?mskoKIt7QL#Co%SIt.WO5JVc!!Pfe-5C`dM +%fehE!8mhW5C`al!!"*k!,qo<+2@kq!!"+V!,qo<&&80)!!!PFz&&8/F!!!Pfz#N,R^!!!8^z#N,R^ +!!!8nz"7Q9j!!!,jz"7Q9j!!!,rz!VcWp!!!&p!!!K/!VcWp%KHP-!!!N0!W2ot#64c%!!!6(!;lhA +"+UCN!;lqL!<*#u!Pe^8!WE,X!<3*"!:U!gJH#Ug!;h:r!&t#L^ch`>!TDrX!"Xk#pj<&Ds+!?/ +!!)uu&&8~> +Q +q[1 0 0 1 0 0]concat +47 64 true[1 0 0 1 -1801 -989]@X +imagemask +!"[uf!!!!`qu?]s!:V'1!!!&X#J^<>!Pefq!!!+O!Up'h"7Q%^]5I,!"[uf++O>%huFk7!!hE^&&8/Mn,O!7 +!!hun&&8/In,O!W!!D]j#N,Rap](QW!!2ip#N,R_p](Qg!!2ut"7Q9jqu?ig%KQJ."7Qg$rW!&q +#692Q!Vcm"IfKNE#695R!VcbI56(`^"+WT9!;ll55C`b3!Pfe-!;liT*rl +Q +q[1 0 0 1 0 0]concat +42 45 true[1 0 0 1 -1849 -1008]@X +imagemask +2uj'=!!#+]&,ZD-)uq)[!!"&?5Q:]`%fh+ZJ,fh)s8Tk7#N>RkhuElZhuiHK!WRZMn,NIX!!%6D +!;HNo49,A/!!#+]!'UA_)uos\!!!K/!"T&0%KHJ6J,g&Z!!C":!!!!"huE`W!!)KgzGQ7^D!!#+]z +*WQ0?!!!N0z#CldS!!!,:z!T3qX!!!#gz!-eJD!!!!]z!$2+?!!!!0z!!e#S!!!!$^]4?o!!2!X +!'C5]n,NG.!!)co!$2+Fqu?^-!$D+=!"ZmE*WQ0Fs83B-!!E8r#64`)s6p8D!!*&W"2Fm:J%u*# +!!")@!Pe~> +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -881]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -119 -889]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -889]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -889]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -889]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +49 44 true[1 0 0 1 -329 -889]@X +imagemask +#QOi(p](:!s8W,s!!!Q0s8Vus!"],0s82is&-)\0qu?^%s8W,ozrVuou!!!#uz!!)uuz!<)ruzrVuou +!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrVuou!!!#uz!!)uuz!<)ruzrr<$!!!!$!z +!!*$!z!<3$!zs*t(L!!!$!J,fQL!!*%Lz!<9h7zs53kW!!!$!huE`W!!*&gz!<;fozs82j +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -382 -889]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[4.8 0 0 -240 640.28 973.68]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +75 71 true[1 0 0 1 -701 -889]@X +imagemask +!WW2p!!*'!s53qXs7cQos8W,W!WW2p!!*'!s53kfs*t(L"97ij!!E3#!!!$!huE`Wqu?]s!<9h7 +!!%BH!!!$!J,fQLGQ7^D!<7QL!!"tY!!!$!J,fQL2uipY!WN-"!!!u=!!!'"z)uos=!WN-"!!!u= +!!!-#z%KHJ/"9&9#!!!K/!!!-#z%fcS0#Q+Q%!!!6(!!!9%z#64`(#Q+Q%!!!7S!!!Q)z"+U@O&,6,) +!!!+O!!!Q!z"2Fm:+7K71!!!&8!!",1z!WW3"s53kW!!!$!s8W,Wz!<<*!s53kW!!!#W!!%Maz!,qo< +J%u$a!!!"rr<$!!!!!=!!3*"z +!$2+BrVuou!!!!/!!E3#z!"Ju2rVuou!!!!0!!iE%z!!`K/qu?]s!!!!(!!iE%z!!e#bp](9o!!!!$ +J.MDTz!!@`^n,NFg!!!!$^`W%Gz!!0kWn,NFg!!!!"^d$`Wz!!2"BhuE`Wzi'6-"z!!(r,^]4?7z +E.>Y'z!!$tf^]4?7zE;tFgz!!#"YJ,fQLz3<+L/z!!#%Zzz*WH*>z!!"&>zz+8u6?z!!!Q/zz&,lP/z +!!!Q-zz#Q+Q%z!!!9%zz#P\9!z!!!,rzz"8Dirz!!!,jzz!Up'hz!!!&Xzz!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +61 68 true[1 0 0 1 -783 -889]@X +imagemask +s8W-!s6p!gs8W-!s8N'!s8W-!s8Tk7!<:sW!<;Ng!.Vca!'g5Y!'e7!!"]&/!'e7!!!E6$!'e7! +!!3+M!'e7!!!3+M!'e7!!!*&7!'e7!!!%N,!'e7!!!%N,!'e7!!!#7Q!'e7!!!#7Q!'e7!!!#7Q +!'e7!!!",9!'e7!!!",9!'e7!!!",9!'e7!!!",9!'e7!!!",9!'e7!!!",9!'e7!!!",1!'e7! +!!#7Q!'e7!!!#7Q!'e7!!!#7A!'e7!!!%N,!'e7!!!%Ma!'e7!!!*%L!'e7!!!*%L!'e7!!!3*" +!'e7!!!E-!!'e7!!!i9!!'e7!!$C,!!'e7!!.TM!!'gM`s8Duu!'gM`s1eU7!'e7!#P\9!!'e7! +!<3$!!'e7!!'e7!!'e7!!$C,!!'e7!!"\i)!'e7!!!iE%!'e7!!!E3#!'e7!!!E3#!'e7!!!3*" +!'e7!!!3+M!'e7!!!*%L!'e7!!!*&7!'e7!!!*&7!'e7!!!*&7!'e7!!!*&7!'e7!!!*&7!'e7! +!!*&7!'e7!!!*&7!'e7!!!*&7!'e7!!!*%L!'e7!!!3+M!'e7!!!3*"!'e7!!!3*"!'e7!!!E3# +!'e7!!!iE%!'e7!!"\i)!'e7!!$C\1!.Vca!'fBA!<:sW!WTq8s8W-!s8N'!s8W-!s7cQos8W-! +s*t(L~> +Q +q[1 0 0 1 0 0]concat +62 72 true[1 0 0 1 -854 -887]@X +imagemask +!!!!"s*t(L!!!!`s7cQo!!!$!s8N'!!!!9(J3SPa!!!Q)!!hE^!!#7A!!)Kg!!*%L!!%BH!!3*" +!!"&?!!E-!!!!N0!!i9!!!!6(!"\Q!!!!+O!$C,!!!!&8!'e7!!!!#7!.Vca!!!#W!<7QL!!!"< +!<3$!!!!"g9!!!!-+8>g9!!!!-+8>g9!!!!-+7K71z5O\XQz5O\XQz5O\XQz5O\XQz +5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz5O\XQz+7K71 +!!!!=+8>g9!!!!=+8>g9!!!!=+8>g9!!!!=&,6,)!!!!=&,ZD-!!!!]#Q+Q%!!!!]#Q+Q%!!!!] +#Q=]'!!!"H"9&9#!!!"H!WE'!!!!"H!WN-"!!!#s!<3$!!!!#s!<7QL!!!&t!.Vca!!!&t!'e7! +!!!-!!$C,!!!!9%!"\Q!!!!9%!!i9!!!!Q-!!E-!!!",=!!3'!!!#1[!!*%L!!)fl!!#7A!!2#* +!!!Q)!!g;e!!!9(J3SQH!!!$!s8E! +Q +q[1 0 0 1 0 0]concat +74 68 true[1 0 0 1 -918 -889]@X +imagemask +!WW3"s8RTL!!!'"s8W-!p](9o!WW3"s8W*!zs53kZs1eU7!!%N,!!#7Az5JR7!&,6,)!!#7!!!!-!z +5JR7!!WE'!!!#7!!!!$!z5JR7!!.TM!!!#7!!!!!`^]4?75JR7!!$C,!!!#7!!!!!0n,NFg5JR7! +!"\Q!!!#7!!!!!(p](9o5JR7!!!iE%!!#7!!!!!$qu?]s5JR7!!!E3#!!#7!!!!!"rVuou5JR7! +!!3*"!!#7!!!!!"rr<$!5JR7!!!3*"!!#7!zs*t(L5JR7!!!*%L!!#7!zs*t(L5JR7!!!*&7!!#7!z +s1eU75JR7!!!*&7!!#7!zs1eU75JR7!!!*&7!!#7!zs1eU75JR7!!!*&7!!#7!zs1eU75JR7!!!*&7 +!!#7!zs1eU75JR7!!!*&7!!#7!zs1eU75JR7!!!*&7!!#7!zs1eU75JR7!!!*&7!!#7!zs1eU75JR7! +!!*&7!!#7!zs*t(L5JR7!!!*%L!!#7!zs*t(L5JR7!!!3+M!!#7!!!!!"rr<$!5JR7!!!3*"!!#7! +!!!!"rVuou5JR7!!!E3#!!#7!!!!!$qu?]s5JR7!!!E-!!!#7!!!!!(p](9o5JR7!!!i9!!!#7! +!!!!0n,NFg5JR7!!$C,!!!#7!!!!!@huE`W5JR7!!'e7!!!#7!!!!"KJ,fQL5JR7!!<3$!!!#7! +!!!'!z5JR7!#Q+Q%!!#7!!!!Q!zJ)C;,J)C;,!!*&W!!E7O!!!'"s8W-!rVuou!WW3"s8Vio!!!'" +s8W-!J,fQL~> +Q +q[1 0 0 1 0 0]concat +69 68 true[1 0 0 1 -993 -889]@X +imagemask +!WW3"s8W-!J-#]Ms8W-!s*t.Ms8W-!s8RTL!WV'X!$D5k!!%N,!!!'"J,fS!^]4?7J%u$a5JR7! +!$AuV!'e7!!!!PF!!#7!!!!!(^]4@!^]4?7"2Fm:5JR7!!!C":!'e7!!!!&X!!#7!!!!!"huEaA +^]4?7!8mhW5JR7!!!(pW!'e7!!!!#W!!#7!z?iU0k^]4?7!,qo<5JR7!!!$s +Q +q[1 0 0 1 0 0]concat +65 68 true[1 0 0 1 -1061 -889]@X +imagemask +!WW3"rVuou!!3-"s8Duu!!!'"s8W&uz!WVopz!!%N,z!!!"KhuE`Wz5JR7!z!'e7!z!!#7!z!!!!` +^]4?7z5JR7!z!'e7!z!!#7!z!!!!`^]4?7z5JR7!z!'e7!z!!#7!z!!!!`^]4?7z5JR7!z!'e7!z +!!#7!z!!!!`^]4H:z5JR7$z!'e7!#64`(!!#7!!!`K(!!!!`^]4T>z5JR7(z!'e7!#64`(!!#7! +!"T&0!!!!`^]4lFz5JR7@z!'e7!rr<$!!!#7`s8N'!!!!!`s8W*!z5QCc`z!'e7!rr<$!!!#7!!'^G` +!!!!`^]4lFz5JR70z!'e7!#64`(!!#7!!!`K(!!!!`^]4T>z5JR7(z!'e7!#64`(!!#7!!!`K(!!!!` +^]4H:"+U@O5JR7$!!@`O!'e7!!!!*$!!#7!!!!!$!!!!`^]4?7!rr<$5JR7!!!<3$!'e7!!!!6( +!!#7!!!!!(!!!!`^]4?7#64`(5JR7!!!`K(!'e7!!!!N0!!#7!!!!!/!!!!`^]4?7%KHJ/5JR7! +!$2+?!'e7!!!#1_!!#7!!!!!_!!!!`^]4?7IK0?JJ%u$a!WE'!!.Wo,!!iK'!!3,h!!#7]!!3-" +s8W-!qu?cts8W-!s82its8W-!s8Vus~> +Q +q[1 0 0 1 0 0]concat +69 72 true[1 0 0 1 -1132 -887]@X +imagemask +!!!!"s1eU7z5QCW]z!<<*!!"8i-!!iOS+2Air!!!Q-!!D^Q!!!!`huEcPHiO-Hs*t(L4T#0Z!WN-" +!$;%g9!!!9'!$Ct9!!!!@rr=/9!!!"Ks8Vj9n,NFgJ,fQD5O\XQ +!.Y%Kpcn6Jz!!#7Qz!!!!`n,NFgz5O\XQz!'frQz!!#7Qz!!!!`n,NFgz5O\XQz!'frQz!!#7Qz +!!!!`n,NFgz5O\XQz!'frQz!!#7Qz!!!!`n,NFgz+7K71!!!!=!$Ct9z)uq)Uz!#tt\p](9o!!!u= +&,6,)!!!!=!"\u-z49,Waz!'C5dqu?]s!!#+]#Q+Q%!!!!]!!E3#zHiO3Hz!.4bIrr<$!!!)os!<3$! +!!!#s!!*%L!!!!"qu?_H^]4?7!W2ot5JR7!!!E-!!$C,!!!!9%!!!Q!!!!!(qu?^%p](9o&,ZD- +"8i-!!$D+=!!3*"!!#1[!!!$!J,fTEqu?]s5MuMBn9b39!"\i)#Jb]e!!!9(J3SQHzs8W&u)uos= +!'gMY!#tt=!!!'"J,fuX~> +Q +q[1 0 0 1 0 0]concat +75 68 true[1 0 0 1 -1202 -889]@X +imagemask +!WW3"p]LQrs53qXs8Virs8W,W!WW3"p]LQrs53kXs7cQo"979Z!!%N,!!!$!^]4?7J)C;,!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7`s8W-!J,fQL5QCc`s8RTL +!!#7`s8W-!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL!!#7!!!!$!J,fQL5JR7!!<7QL +!!#7!!!!$!J,fQL5JR7!!<7QL!!%N,!!!$!J,fQLJ)C;,!<9h7!!3,p!!!-$huEfXs8Virs8W,W +!WW3"p]LQrs53qXs8Virs8W,W~> +Q +q[1 0 0 1 0 0]concat +37 68 true[1 0 0 1 -1276 -889]@X +imagemask +!WW3"p]:Eps7cWps8Vio!WVop!!%N,!!!"KhuE`W5JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7! +!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7! +!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7! +!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7! +!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7!!!#7!!!!!`^]4?75JR7!!'e7! +!!#7!!!!!`^]4?7J)C;,!.Wo,!!3,p!!3-"s7cWps8Vips8W,o~> +Q +q[1 0 0 1 0 0]concat +42 70 true[1 0 0 1 -1320 -887]@X +imagemask +!"\i)!!!"Krr<$!!Uq2H!!!8>&)[Ef%fc_,!!"&?!W2ot49,E]!!"tY!<3$!IfKKK!!%Ma!.TM! +s1eVaJ,oW-!.Vcas53lA^]=Dm!'e7!s53lAhuNf8!'fBAJ%u%KhuH!W!'fBA*rl:*huE`W!'fBA +!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA +!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA +!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA +!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!'fBA +!!!!`huE`W!'fBA!!!!`huE`W!'fBA!!!!`huE`W!.Wo,!!!'"n,NFns8W,7!!iQ(s1eU>s8W,7~> +Q +q[1 0 0 1 0 0]concat +77 68 true[1 0 0 1 -1363 -889]@X +imagemask +!WW3"p](j)s7cWps8Vio&-)\)!WW3"p](j)s7cQps7cQo!<<'!!!%N,!!!"Kqu?]sJ)C;,!.XbD +!!#7!!!!"Kn,NFg5JR7!!.Wo,!!#7!!!!"K^]4?75JR7!!<9h7!!#7!!!!'"J,fQL5JR7!!WN-" +!!#7!!!!-$z5JR7!#Q=]'!!#7!!!!9%z5JR7!&,ZD-!!#7!!!",9z5JR7!+7K71!!#7!!!#7Qz5JR7! +J)C;,!!#7!!!%Maz5JR7!s1eU7!!#7!!!3+Mz5JR7$rr<$!!!#7!!!E6$z5MuMHrVuou!!#7Q!"\u-z +5PP3hp](9o!!#7]!$Ct9z5McB)n,NFg!!#70!'fBAz5KA;(huE`W!!#7$_#M1Mz5JZ4WJ,fQL!!#7! +EW:Ohz5JTA\z!!#7!+8u6?z5JRg/z!!#7!#Q+Q%z5JRBrz!!#7!!VcWpz5JR9gz!!#7!!-eJDz5JR7] +z!!#7!!$2+?z5JR70z!!#7!!!e#Sz5JR7$^]4?7!!#7!!!2!Xz5JR7!n,NFg!!#7!!!%6Dz5JR7! +49,?]!!#7!!!"&?z5JR7!%fcS0!!#7!!!!7Sz5JR7!!Pe[8!!#7!!!!#Wz5JR7!!,qo +Q +q[1 0 0 1 0 0]concat +62 68 true[1 0 0 1 -1441 -889]@X +imagemask +!WW3"s8W,W!WW3"s8W,W!WW3"s8W,W!!3,X!!iPn!!%N,!!*&g!!%Ma!!#7Q!!#7!!!!Q!!!#7! +!!!8n!!#7!!!!,j!!#7!!!!&h!!#7!!!!#g!!#7!!!!#g!!#7!!!!"D!!#7!!!!"D!!#7!!!!"D +!!#7!!!!!Y!!#7!!!!!Y!!#7!!!!!Y!!#7!!!!!Y!!#7!!!!!9!!#7!!!!!9!!#7!!!!!9!!#7! +!!!!=!!#7!!!!!=!!#7!!!!!=!!#7!!!!!=!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z +!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z +!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z!!#7!z +!!#7!z!!#7!z!!#7!z!!%N,z!!%N,z!!3,pz!WW3"rVuou!WW3"rVuou!WW3"rVuou~> +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1512 -889]@X +imagemask +s8W&u!rrB%s8VTgs8E!'!!3-"s7$'grW!1R!WW3"n-B!/!"XS[!WV'X!WE'!&&8/FJ%u$aqu?^- +^]4@aJ,fRo!!"+V!!%M!!!"tY!$C,!!.TM!!&srY5MuMAIt.M!2uiqCn,NHIt.M!2ujKY!5JSaJ,fR/!$C,!^]8k7!!"tY ++5d.W!.TM!!&ss#^]7aBIt.M!2ul1Y!+5eVJ,fR/!'e7!0E?TQ!!"tYIt.MQ!.TM!!&st.J,hP/ +It.M!2unGY!#P]cJ,fR/!<3$!(]]&9!!"tYrr<$-!.TM!!&suX!!!E-It.M!3!'!Y!"8jWJ,fR/ +!WE'!"os.'!!"t\qu?^$!.TM!!&t)Y!!!6(It.M!3!8pU!!<4NJ,fR/#P\9!!s!h$!!"t`p](9p +J:E(L!&tMY!!!%MIt.M!3"PKY!!0lbJ,fR/&)[Ef!5O)7!!"u#huE`W^jgk7!&u(Y!!!",It.M! +3$5p9!!$DVJ,fR/5JR7!!-!F +Q +q[1 0 0 1 0 0]concat +75 68 true[1 0 0 1 -1595 -889]@X +imagemask +!WW3!!!!!"J,fWMs8Duu!!@`O!WW3!!!!!(J,fQ[s1eU7!"XS[!!3'!!!!!0J,fQLqu?]s!$?^k +!!%6D!!!!`J,fQLGQ7^D!'bu6!!$sh% +!!"\Q!!E6'J,fQL0E;(TrW@ZN!!"\Q!!iE(J,fQL0E;(`qu_HL!!"\Q!$Ctg +Q +q[1 0 0 1 0 0]concat +68 72 true[1 0 0 1 -1677 -887]@X +imagemask +!!!!(rr<$!zJ,f!g9!!!$!^`W=Ozs1f`Oz!.Wokp](9o!!%N,5O\XQ!!!"Ki'6]2zJ)EQ\z!.Wok +n,NFg!!%N<5O\XQ!!!"Kn3?CBzJ+,\lz!.XK&n,NFg!!#7Q5O\XQ!!!!`n3?CBz5O^o,z!'fs;n,NFg +!!#7Q5O\XQ!!!"Kn3?CBzJ)EQ\z!.Wokn,NFg!!%N,+7K71!!!"Ki#hFgzJ)DFDz!.Vd+p](9o!!%Ma +&,6,)!!!"K^^p2?zs*tXTz!<7QSqu?]s!!*%L#Q+Q%!!!'"!!E-!!!!!"rr<0#z!WE'"rVuou!!E-! +!<)ru!!!-!!!*$!!!!!(p](;DJ,fQL#Oh]n5C`_6!"\Q!!$AuV!!!Pf!!",!!!!!@^]4?FhuE`W +5C`_6#Oh]n!.OtK!!2ip!!)uu!!!#s!!!&tzIfKHNn,NFg!$?^k&)[Ef!!!8^!'bu6!!!!"rW2uuz +!.Y% +Q +q[1 0 0 1 0 0]concat +66 68 true[1 0 0 1 -1747 -889]@X +imagemask +!WW3"p](9o!!3-"s7cQo!!!'"s8Vioz!<;foz!!%N,z!!!!`huE`Wz5MuMAz!'fBAz!!#7Az!!!!` +huE`Wz5MuMAz!'fBAz!!#7Az!!!!`huE`Wz5MuMAz!'fBAz!!#7Az!!!!`huE`Wz5MuMAz!'fBAz +!!#7Az!!!!`huE`Wz5MuMAz!'fBAz!!#7Az!!!!`huE`Wz5MuMAz!'fBAz!!#7Az!!!!`huE`Wz +5MuMAz!'gM`s*t(L!!#7`s8VQg!!!!`s8W,uz5JR7(s*t(L!'e7!!.Vca!!#7!!!",!!!!!`^]4?F +p](9o5JR7!#Q+Q%!'e7!!!E3#!!#7!!!!-#!!!!`^]4?8rr<$!5JR7!!WN-"!'e7!!!3+M!!#7! +!!!$!J,fR6^]4?7s1eU75JR7!!<9h7!'e7!!!*&7!!#7!!!!$!^]4@!^]4?7s1eU75JR7!!<9h7 +!'e7!!!*&7!!#7!!!!$!^]4@!^]4?7s1eU75JR7!!<7QL!'e7!!!3+M!!#7!!!!'"!!!!`^]4?8 +rr<$!5JR7!"9&9#!'e7!!!E-!!!#7!!!!9!!!!!`^]4?Fn,NFg5JR7!+5d,!!.Wo,!.Vca!!*&W +!!iN(!!3-"s8W,s!!!'"s8W-!n,NFhs8W-!rr<$!~> +Q +q[1 0 0 1 0 0]concat +68 89 true[1 0 0 1 -1823 -870]@X +imagemask +z!!!8nz!!!!@qu?]sz5Q1W_z!.Y"Kz!!*'!J,fQL!!!'"s*t(L!!!!"s8Tk7z!WW28z!!E9$huE`W +!!!-$s53kW!!!!$r"%]cz#P\Djz!!huon,NFg!!!8^!:Tsg!!!!(^]8g9!!!"K +^^p2?zJ%uTiz!<7Q[p](9o!!*%L#Q+Q%!!!$!J-YuP!!!!"rr<0!z!WN-%rVuou!!3'!!WE'!!!!-! +!!*$!!!!!$qu?`sz#P\9!It.M!!!hun!'bu6!!!Q!!!"+V!!!!@huEa!huE`W+2@jV&)[Ef!'bu6 +!!hun!!%KK!!!&p!!!#uzrVup!qu?]s!.OtK#Oh]n!!"+V!"[uf!!!!(n,P\'z!WE-!z!!%NKn,NFg +!!!!(rr<$!!!~> +Q +q[1 0 0 1 0 0]concat +77 70 true[1 0 0 1 -1893 -887]@X +imagemask +z!!!!"rVuouz!$D5k!WW3"p](;D_nZ!!%N,!!!9' +!&+BQ5JR7!&,ZD]!!#7!!!!Q-!&srY5JR7!&,ZDe!!#7!!!",=!&srY5JR7!+8c*U!!#7!!!",9z +5JR7!+8>g9!!#7!!!",9z5JR7!+8>g9!!#7!!!",9z5JR7!+8>g9!!#7!!!",1z5JR7!+7K71!!#7! +!!",1z5JR7!+7K71!!#7!!!",1z5JR7!+7K71!!#7!!!",!z5JR7!5MuMA!!#7!!!#7Az5JR7!5JR7! +!!#7!!!%Maz5JR7!It.M!!!#7!!!*$!z5JR7"rVuou!!#7!!!E-!z5JR70n,NFg!!#7!!'fBAz5QCc` +z!!#7`s8Tk7z5JR7@n,NFg!!#7!!!3'!z5JR7!IfKHK!!#7!!!#7!z5JR7!+5d,!!!#7!!!!Q!z +5JR7!#P\9!!!#7!!!!9%z5JR7!"9&9#!!#7!!!!-#z5JR7!"9/?$!!#7!!!!-$z5JR7!"9/?$!!#7! +!!!-$J,fQL5JR7!!WRZM!!#7!!!!-$J,fQL5JR7!"93lO!!#7!!!!-$J,fQL5JR7!"9/?$!!#7! +!!!-$z5JR7!"9/?$!!#7!!!!-#z5JR7!#Q+Q%!!#7!!!!9%z5JR7!&,6,)!!#7!!!",1z5JR7!5MuMA +!!#7!!!%M!zJ)C;-rr<$!!!*&W!$D+=!!!'"s8W-!n,NFg!WW3"s8RTL!!!'"s8W,oz~> +Q +q[1 0 0 1 0 0]concat +46 72 true[1 0 0 1 -1974 -887]@X +imagemask +0E;X_!!"\Qs8Tk73!93\n,PQ]p]L9k4?n>rrW#-0!!#4`5PP3Y++QT6!!!O[5JR7!#J`QS!!!8^ +56(Z`"5l?C!!!,j4obQ_!Ur2O!!!&p49,?]!VeVS!!!&p2uipY!VeVS!!!&t2uipY!W4VO!!!&t +0E;(Q!W4VO!!!&t0E;(Q"8jhQ!!!-!+92BA#P\9!!!!9!z&,6,)!!",9z5O\XQ!!%N!!",!"5j.Z5MuY5!!*&W!VcWqoABWJ!!gF"!'buuJ`$MMs8E#V!!iQ!!8mhWJ%u%l~> +Q +q[1 0 0 1 0 0]concat +64 67 true[1 0 0 1 -2030 -889]@X +imagemask +!!iQ(s8V!W!!iQ(s8V!W!!iQ(s8V!W!!!$!rVuou!!!!@p](9o!!!!@p](9o!!!!@n,NFg!!!!@ +n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg +!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@ +n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg +!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@ +n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg!!!!@n,NFg +^]4?Vn,NFj^]4?Vn,NFj^]4?Vn,NFj^]4?Vn,NFnhuEa!n,NFnhuEa!n,NFnhuEa!n,NFnhuEa! +n,NFnhuEa!n,NFnhuEa!n,NFun,NG1n,NFuDu]k[n,NFuDu]k[n,NFuGQ7^cn,NG0GQ7^cn,NG0 +HiO-gn,NGPIK0?in,NH;It.M@p](?oJ+*G&p](j(J,fQKs8W,uJ,fQKs8W,uJ,fQKs8W,s~> +Q +q[1 0 0 1 0 0]concat +75 70 true[1 0 0 1 -2094 -887]@X +imagemask +z"9&9#z!!#7`^]4?7zs8Vioz!!E3$qu?]s!!!!0n,PZQz!$AuV%tFW[!!!!`J,fhiz!.OtK!T3qX +!!!#u!!!#gz!W2ot!,qo!!%N, +!!!!(^]4?7J)C;,!$C\1!!3,p!!!"Kqu?cts8Vio&-)[f!WW3"p](j)s53qXs8Vio&-)[f~> +Q +q[1 0 0 1 0 0]concat +77 70 true[1 0 0 1 -2168 -887]@X +imagemask +z!8mhWz!!!&Xzz!Up'hz!!!,jzz"8Dirz!!!,rzz#P\9!z!!!9%zz&,ZD-z!!!Q/zz&,lP/z!!",?zz ++9)<@z!!#7Xzz5N`"Hz!!#7DJ,fQLzJ)c%Zz!!%Md^]4?7zJ&/o#z!!*%M^]4?7zs+0).z!!3+M +huE`W!!!!"rrCsWz!!3*"Du]kg9!"Ju/!!",1!!!!0z+7K71!!`K(!!#7A!!!!(z5MuMA!!@`O!!%N,!!!!$ +J,fQLJ%u$a!!C":!!%Ma!!!!"^]4?7s1eU7!!0k8!!*%L!!!!"huE`Ws*t(L!!2Qh!!3+M!!!!$ +p](9rs*t(L!!iE%!!iP^!!!!@s*t4Os8RTL!<<)o"98E$J,fTLs7c]rs8RTL!<<)o~> +Q +q[1 0 0 1 0 0]concat +105 70 true[1 0 0 1 -2242 -887]@X +imagemask +z)uos=!8mhWz!!"&?!!!#Wzz*WQ0?!Up'hz!!#1_!!!&hzz4obQ_!Up'hz!!#4`!!!,rzzIfKHK +"8Dirz!!%KK!!!,rzzIt.M!#Q+Q%z!!*%L!!!9%zzs*t(L#Q+Q%z!!*&7!!!Q/z!!!!"s1eU7&,lP/z +!!3,8!!!Q/z!!!!"s53kW&,uV0z!!E4.!!",8z!!!!$ra5^++7fI4z!!E4>!!",4J,fQL!!!!(r%J*N +5N@7oz!!iEU!!#7BJ,fQL!!!!(r&=ZV5N0BXz!"\iA!!%Mb^]4?7!!!!0p_Wu2J&&i"z!"\iE!!%Ma +huE`W!!!!@n/ME.s+'#-z!$C\=!!*%L?iU0,!!!!@n.#Eus+#%gz!'fBO!!3*"Du]k +Q +q[1 0 0 1 0 0]concat +76 68 true[1 0 0 1 -2344 -889]@X +imagemask +"98E!!!%NKs6p-js82isJ,fQ<"98E!!!%NKs6p"!s53kW&-)D)!!3,8!!!-$huE`WIt.M!!WTq8 +!!#4`!!!'"J,fQL*rl9@!WN-"!!!N0!!!-$z#CldS#Q=]'!!!7S!!!9%z"2Fm:&,ZD-!!!&X!!",9z +!T3qX+8>g9!!!#g!!#7Qz!-eJDJ)C;,!!!!Y!!%N,z!'C5]s1eU7!!!!?!!3+Mz!"Ju0s*t(L!!!!0 +!!E6$z!!e#ZrVuou!!!!$J-Z&Rz!!C"Iqu?]s!!!!"i#h^oz!!(q!p](9ozn3?CBz!!%7nhuE`Wz +3.Kidz!!#.]^]4?7z+9-ikz!!!Q0J,fQLz&,uV0z!!!9'zz#Q=]'z!!!Q-zz+8>g9z!!",9zz5O\XQz +!!%NDzzJ+s!Dz!!*&sz!!!!"s.02jz!!3+[z!!!!$rso)0z!!iK.J,fQL!!!!(rWBq9z!"\u0^]4?7 +!!!!@p]9:Qz!$Ct9n,NFg!!!!`n,VqXz!.Wo,GQ7^D!!!"KhuGk>z!<9h7)uos=!!!'"J,gVjz!WRZM +%fcS0!!!-$!!!6(z#Q=]'#CldS!!!9'!!!,:z&,ZD-"2Fm:!!",9!!!&Xz+8>g9"7Q9j!!#7Y!!!-!z +J,B9H#QFc(!!3-"!!",@huEcWs8V!Ws8W*!!<<*!huNfWrr<'!s8V!Ws8W*!~> +Q +q[1 0 0 1 0 0]concat +78 68 true[1 0 0 1 -2418 -889]@X +imagemask +!!!!@s8W*!z!$D7@rr<$!!!!!@s8W*!z!!",@zz&,ZD-z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz +#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz +#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz#Q+Q%z!!!9%zz&,ZD-z!!!Q/zz+9)<@z!!#7`zz5P'C*z!!%N? +J,fQLzs5C`nz!!*&8huE`W!!!!"s1mOmz!!3+MDu]k +Q +q[1 0 0 1 0 0]concat +52 68 true[1 0 0 1 -2501 -889]@X +imagemask +5QCc`s8Tl!s8W-!s1gl!s8W-!^d%;g!$D6V+8>g9!WTqWp](9oJ%uTm!!!!`i!95]!!!Pf#Q=]' +!!hEarr<$!#N,X_J,fQOhuWk.!!!,Z!<9h7!!2!Xs1eU7!T3s-huE`WhuH"2!!!#W!'frQ!!(pW ++8>g9!8mhfqu?]s?iU`8!!!",!!iK'!!$C,"9&9#!+5d/rr<$!Du]q=J,fRg!!3+M!!$sg9!!!!0qu?]s!!!Q-z!!iK'z"9/?$!!!!$rr<$!!!!'" +J,fQL!!*&7z!<9h7zJ)C;,!!!!`huE`W!!#7Qz!$Ct9z+8>g9!!!!0qu?]s!!!9'!!!i9!!iK'!#tt= +"9/?$)uos>rr<$=!!!'"J,gPh!!*&7!#tt=!<9h7)uos=J)C;J!!!!`n,OL0!!#7Q!$2+?!$Ct9 +*rl9@&,6,H!!!!0qu@gh!!!9'!"XS[!!E3#&&8/F"9/?3n,NFhs*tXT!!!'"J.MVZ!!*&7&-(Pf +!.Wo;s8W-!s54Ffs8W-!i",kfs8W,W~> +Q +q[1 0 0 1 0 0]concat +45 46 true[1 0 0 1 -709 -769]@X +imagemask +!$C\156(`arW%Fu#Q,)4s54FW"2Xb?+2@m:n1[(W!+YLPIt.MTn2Pmt!$C,Yrr<$@i#)Io!"\!) +rr<$0i#)Io!"\!)rr<$0i#$qD!"\!)It.M0i#$ro!"[uf5C`_EhuH!W!"[uf+5d,0huF;W!"[uf +#P\90huEfW!"[uf!<3$0huEaAi"+`G!!iK6huE`Ws8V!W!!!-$huE`W!"[uf!!!!0huE`W!"[uf +#J^ +Q +q[1 0 0 1 0 0]concat +56 71 true[1 0 0 1 -752 -769]@X +imagemask +!!!!(rVuou!Iu9l^]4?8^jH[^!!!&Xn,`Fe!!2&o!.FnJ!V:gA56(ZapAb18J,fWL!!!PF!!3'! +!!hE^!W2ot#Oh]oqu?^!p](?i!!!,r!!2ip!!E-!!VcWp!W2oup](9pqu?cm!!!'!!!2ip!!3'! +!VcWp!WE'"p](9prr<)p!!!$!!!2ip!!*$!!VcWp!<3$"p](9orr<)p!!!$!!!2ip!!*$!!VcWp +!<3$"p](9orr<)p!!!'!!!2ip!!3'!!VcWp!WE'"p](9prVuuo!!!&t!!2ip!!2ut!VcWp"8Dis +p](9rp](?m!!!,j!!2ut!!hE^!WE'!&&8/Grr<$0^]4E4J,g[A!!2o2!'UA_!Vl-aqu?]tpc\fL +!!!&p&-'EF!!2iqrVuou!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp +!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o!!!,rz!!Durz +#P\9!!!!"Kp](9o!!3,pz!WVop!!!!"s7cQoz#QOi)!!~> +Q +q[1 0 0 1 0 0]concat +45 46 true[1 0 0 1 -809 -769]@X +imagemask +!!!$!J,fQL#QO8n!!"+V49,?]IfKuZ!!)uu"+U@Pp](?1!!D]j!5JR>n,NIH!"[uf!,qo[^]4@R +!$AuV!&ssC^]4?o!'bu6!#P]cJ,fQd!.TM!!!!$!z!<3$!!!!$!z!<3$!!!!$!z!WN-"!!!'"z!WN-" +!!!'"z!WN-"!!!$!z!<3$!!!!$!z!<3$!!!!$!z!.OtK#J^=hJ,g, +Q +q[1 0 0 1 0 0]concat +57 72 true[1 0 0 1 -853 -768]@X +imagemask +z!$D7A!!!$!J3X'a!!!9(n3?r'!!"+VGX)4Y!!%HJ*^BQ&!!)os#=$!(!!2ip"2B?d!!D]j!WRZM +!!hE^!<7QL!"ZjF!<7QL!$AuV!.TM!!$?^k!'bu6!'bu6!'bu6!'bu6!'bu6!.OtK!'bu6!.OtK +!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!WN-"!'bu6!WN-"!'bu6 +!WN-"!'bu6!WN-"!'bu6!WN-"!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$! +!'bu6!.OtK!'bu6!.TM!!'bu6!'bu6!'bu6!'bu6!'bu6!$AuV!'bu6!"ZjF!'bu6!"[uf!.TM! +!!hE^!<7QL!!D]j!<7QL!!2ip!WRZM!!)os#JYch!!#4`%mPRE!!!PfHp<,]!!!-$n3;F'!!!"K +^d!>Lz!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z +!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!.TM!z#QK;Sz5Q?66z5Q?66z5Q?66z +!!%NL~> +Q +q[1 0 0 1 0 0]concat +45 46 true[1 0 0 1 -909 -769]@X +imagemask +!!!$!J,fQL#QO8n!!"+VHiO-HIK1Dh!!)os#64`)p](DH!!hun!Pe[?huEc8!"ZjF!,qo[^]4@R +!'bu6!&ssCJ,fR/!.OtK!#P]c!!!!9!<3$!!!!$!z!<)ru!!!'!z!WE'!!!!'!z!WE'!!!!'!z!WE'! +!!!'!z!WW3"s7cWps8W,o!WE'!!Vc]p!!!&p!WE'!!VcZo!!!&p!<3$!"8Dlr!!!,r!.OtK"8DkG +!!!,j!'bu6"7Q:TJ,fiD!$?^k#N,S(^]4Vt!"ZjF&&8/MhuFjL!!D]j*rl9Ap]*MY!!)osHiO-H +5CrS0!!!Q0huE`W!WN-"~> +Q +q[1 0 0 1 0 0]concat +40 70 true[1 0 0 1 -953 -770]@X +imagemask +!WW3!!!3-"rW!!!s8Duu"9/?$!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot +!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot +!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot!!2ut!!!&t!!!!"qu?]s!W2ot +!!2ut!!!&t!!!!"qu?]s!W2ot!WW3"J-#]Ms*t.Ms8RTL!VcWp!!2ip!!!&p!!!!"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp!!2ut!!!&tzqu?]s!;lhA!!)os +rVuqI!WE'!IKBHK!'^Ma!!")ArVup/JGoNK#Jb]e!!D_ +Q +q[1 0 0 1 0 0]concat +52 66 true[1 0 0 1 -983 -749]@X +imagemask +!!!'"huE`W!'gM_zrr>:!!!!,j!!hun!"ZjF!;lfs*rl9@IK0@3!!!!`!!%BH!!"*k!;HNo!"ZjG +p](9o#J^B0!!!!(^]Ep)!!!,Z!Up'h!!D-[n,NFg"5j4L!!!!$huW +Q +q[1 0 0 1 0 0]concat +57 69 true[1 0 0 1 -1033 -770]@X +imagemask +!WW2t+92@k!WW2t+92@k!WW2t+92@k!!iK'!.Wo,!!2ut!'e7!!!2ut!$?^k!!2ut!$?^k!!2ut +!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k +!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut +!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k +!!2ut!$?^k!!3'!!$?^k!!3'!!$?^k!!3'!!$?^k!!3*"!'bu6!!2rs!'bu6!!2nG!'^G`!!2o2 +!'^G`!!2lQ!.FnJ!!2k6!.FnJ!!2jW!;lfs!!2j:"8Dir!!2j"s53kW!!2iprr<$!!!2ipz!!2ipz +!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz +!!2ipz!!2ipz!!2ipz!!2ipz!!2ipz!!Durz!'g5Yz!WVopz!WVopz!WVopz~> +Q +q[1 0 0 1 0 0]concat +29 67 true[1 0 0 1 -1088 -770]@X +imagemask +!WW2p!WW2p!WW2p!!E3#!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!E-!!'gA]!<;rs!<;rs!<;rs!!!-%zzzzzzzzz +zzz!!2!X!!hun!"\i)!"\u-!"\u-!$D+=!"\u-!"\u-!"\i)!!hun!!2!X~> +Q +q[1 0 0 1 0 0]concat +25 87 true[1 0 0 1 -1116 -750]@X +imagemask +!WE'!&-%.[*s:F$49=pOIfT6Ds+#Iss+#Ous+#Ous+!<6s+!<6IfM\54odft!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66 +!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!#66!!%M!!!iOS +!'gL6!'gL6!'gL6!!!"Lzzzzzzzzzzzz!!%BH!!)uu!!3*"!!3+M!!E7O!!E7O!!E7O!!3+M!!3*" +!!)uu!!%BH~> +Q +q[1 0 0 1 0 0]concat +55 70 true[1 0 0 1 -1146 -770]@X +imagemask +!WW2p+92<@s8Vj9s8E'!s7d]9rW!3$!!E8Z!!Dur!WRZM"8Disrr<$"p](?o!!!&p!!E-!!!2ip +"8Dir!VcX"n,NFhp](io!!!&p!"[uf!!2ip+2@jV!VcXZ^]4?8p]*O/!!!&p!.OtK!!2iprVuou +!Vc]p!!!!"quQ]q!!!'!"8Dir!!3*)p](9o!WRrE!!!!"qp41#!!!&ps1eU7!!2kE^]4?7!Vem0 +!!!!"p`BJ9!!!&p%fcS0!!2j"J,fQL!Vc]2!!!!"p]04P!!!&p!-eJD!!2ip49,?]!VcX9!!!!" +p](g)!!!&p!!e#S!!2ip#N,R^!VcX"n,NFhp](Qs!!!&p!"]*[!!2ip5QCKY!VcXZs7cQpp]*PY +p](?iz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!" +p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!$p](9o!!!,rz!!i9!zJ+s!D +!!!'"p](9o!!3,pz!WVopz!!iQ)!!!~> +Q +q[1 0 0 1 0 0]concat +29 70 true[1 0 0 1 -1199 -770]@X +imagemask +!WW2p!WW2p!WW2p!!E3#!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut!!2ut +!!2ut!!2ut!!2ut!!2ut!!E-!!'gA]!WW&t!WW&t!WW&t!!!-%~> +Q +q[1 0 0 1 0 0]concat +85 44 true[1 0 0 1 -1226 -770]@X +imagemask +!WW2t+92@ls8Vips8W!=s8RZMs7cWps83u=s+14Mp](Qu!!%N,!!iK'!!2ut!'e7!"8Dir!W2ot ++2@jYp](9pqu?^=^]4K3!!!&t!!"+V!!Dur!!2ut!$AuV"8Dir!W2ot+2@jYp](9pqu?^=^]4K3 +!!!&t!!"+V!!Dur!!2ut!$AuV"8Dir!W2ot+2@jYp](9pqu?^=^]4K3!!!&t!!"+V!!Dur!!2ut +!$AuV"8Dir!W2ot+2@jYp](9pqu?^=^]4K3!!!&t!!"+V!!Dur!!2ut!$AuV"8Dir!W2ot+2@jY +p](9pqu?^=^]4K3!!!&t!!"+V!!Dur!!2ut!$AuV"8Dir!W2ot+2@jYp](9pqu?^=^]4K3!!!&t +!!"+V!!Dur!!2ut!$AuV"8Dir!W2ot+2@jYp](9pqu?^=^]4K3!!!'!!!"+V!!Dur!!3'!!$C,! +"8Dir!WE'!+5d,$p](9pqZ$U\huElS!!!&s!!#6f!!Dur!!2nG!'dsn"7Q9j!VsM259'Y.n,NFj +ptu.%$igOj!!#7YDub=l!"[uf!WVpW!;lqL&&8/Gs7dZ +Q +q[1 0 0 1 0 0]concat +57 44 true[1 0 0 1 -1309 -770]@X +imagemask +!WW2t+92@k!WW2t+92@k!WW2t+92@k!!iK'!.Wo,!!2ut!'e7!!!2ut!$?^k!!2ut!$?^k!!2ut +!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k +!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut +!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k!!2ut!$?^k +!!2ut!$?^k!!3'!!$?^k!!3'!!$?^k!!3'!!$?^k!!2rs!'bu6!!2rs!'bu6!!2nG!'^G`!!2o2 +!'^G`!!E#S!.FnJ!'g6t!.FnJ!WVpW!;lfs!WVp:"8Dir!WVp"s53kW!!2iprr<$!~> +Q +q[1 0 0 1 0 0]concat +51 46 true[1 0 0 1 -1364 -769]@X +imagemask +!!!$!J,fQL!!iQ!z++X=j!!!"J!$?^k!!)co&&8/F"7Q9mhuE`^huElK!!!PF!!2ip!"ZjF!;lfs +++O=krVup_J,fS!!!#4`!!%KK!.OtK!'bu6IfKHK5C`b6!!!!`J,oQK!!#7!!<)ru!'e7"rVuou +5JR=!!!!!@huWfW!!",!!WE'!!$C,"rVuou+5d2!!!!!@huWfW!!",!!WE'!!$C,"rVuou+5d2! +!!!!@huWfW!!"+V!<)ru!'e7!rVuou5JR9u!!!!`^]=B7!!#66!.OtK!'bu6IfKHK56([J!!!"K +!!"*k!!%HJ!$?^k!.FnJ&&8/Fqu?^%^]4E1!!!,Z!!2Qh!!2Qh"5j.Z!;HO)^]4?7IK1Gi!!!!@ +JGoNK!!!9(p](9o!!*%L!!!~> +Q +q[1 0 0 1 0 0]concat +56 63 true[1 0 0 1 -1415 -751]@X +imagemask +!WW2p!!!!"s8Vio!!!'"s7cQo!!!9'z!!E-!z"8i-!!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p](9o +!!!&pz!!2ipz!VcWp!!!!"p](9o!!!&pz!!2ipz!VcWp!!!!"p]LEo!!!&p+90+V!!2kB&+BQ!!Vl-b +qu?]tq7m"0!!!&sJ,k'!!!2rs!'bu6!WE'!+2@jWrVup/huEfU!!!Q!!!2ut!!hun!VcWp#P\9" +p](9rqu?cm!!!-!!!2ip!!E-!!VcWp!WE'"p](9prVuuo!!!'!!!2ip!!3*"!VcWp!WN-#p](9o +rr<)p!!!$!!!2ip!!*$!!VcWp!<3$"p](9orr<)p!!!$!!!2ip!!3*"!VcWp!WE'"p](9prVuuo +!!!'!!!2ip!!3'!!VcWp"8i-"p](9rqu?cm!!!,r!!2ip!!i9!!W2ot#Oh]oqu?^-huElY!!",! +!!E6$!$AuV"8dTK5C```q7lu[!!3,pn,`Fe!WVpY#P\9"s7d-)^]4?8p]:?o!!~> +Q +q[1 0 0 1 0 0]concat +57 63 true[1 0 0 1 -1472 -751]@X +imagemask +z5QCb6z5QCb6z5QCb6z!<9h7z!.TM!z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z!'bu6z +!'bu6z!'bu6z!'bu6z!'bu6z!'bu6!!!$!J3SPa!!!9(i'2_l!!"+Vpcj9/!!%KK*'\rR!!)uu%mPRE +!!2ut"2B?d!!Dur"2B?d!!hun!WRZM!"[uf!<7QL!$C,!!.TM!!$AuV!.TM!!'e7!!'bu6!'bu6 +!'bu6!.TM!!'bu6!.TM!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6!<3$!!'bu6 +!WN-"!'bu6!WN-"!'bu6!WN-"!'bu6!WN-"!'bu6!WN-"!'bu6!<3$!!'bu6!<3$!!'bu6!<3$! +!'bu6!<3$!!'bu6!<3$!!'bu6!.TM!!'bu6!.TM!!'bu6!'bu6!'bu6!'e7!!.TM!!$AuV!.TM! +!$C,!!<7QL!"[uf!8i;,!!hun!T/D-!!Dur!KVa2!!2ut"-7s4!!)uu#7#bZ!!#66*X@2q!!",! +GR&a!!!!-$n,n1@!!!"KJ-1<%~> +Q +q[1 0 0 1 0 0]concat +40 44 true[1 0 0 1 -1525 -770]@X +imagemask +!WW3!!!3-"rW!!!s8Duu#Q=]'!!E-!!!!,r!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2ut!!!&t!!!!"qu?]s!W2ot!!3'!!!!'!!!!!"rW%BI!W)ls +!!E)urr2p`KD6!Vccd~> +Q +q[1 0 0 1 0 0]concat +40 46 true[1 0 0 1 -1564 -769]@X +imagemask +!Iu9e!!0lbrr<)Yn.3;8o7-l"!WN-"n,`Lg!-ePB!!#+^p](:V!VcWp*Wba1!$211!!"&@huEa! +!T3qX*s(:"!$;6W!!#4a^]4@!!Pe[8IfR7a!<)ru!!E3#!!!Q/!!!$!qu?^-s7cQos8Vio"98Dj +!"],0^]5JVs*t)6s8DuuJ,f! +Q +q[1 0 0 1 0 0]concat +37 62 true[1 0 0 1 -1604 -769]@X +imagemask +!!!&t!!!!(rr<$!++o(D!'^J!!!%HJhuEcV!+5d,quC[9!W2pO!!2ut0E;.K!&srZp]*8R"8Dj5 +!!Dur(]X[5!#P\ +Q +q[1 0 0 1 0 0]concat +57 46 true[1 0 0 1 -1642 -768]@X +imagemask +z!"],1!!!"K^`WT,!!!9(n/q[\!!!Pf4!WW&t+90+V!WW&t+90+V!WW&t+90+V!!!-% +!!#7a~> +Q +q[1 0 0 1 0 0]concat +55 44 true[1 0 0 1 -1698 -769]@X +imagemask +!!!!(z!!!N0z!"XS[z%tFW[!!!!@J,fQL!!"+Vz!'e7!z5MuMA!!!!`huE`W!!%LVz!.Sqfzr\+

\:!!!,r$ig8-!!E!+z#P\c/!!!!(n-/jm!!!8n#64`(!"[uiz +&)[P?!!!!@hueK0!!"+V!It.M!$AuW^]4?75C`aL!!!!`J,nL-!!%M!!8mhW!.OtKDu]k +Q +q[1 0 0 1 0 0]concat +74 44 true[1 0 0 1 -1750 -769]@X +imagemask +!!!!9!!!i9z!'C5]49,?]!!!!]!!#+]z!.4bHIK0?J!!!"J!!%HJz!.FnJIK0?J!!!#u!!*$!z!<3$! +rr<$!!!!'"!!*$!z!WN-#qg\YH!!!'"J-#Otz"8RHJq1&GF!!!,s^]X,Bz"8T_7n\>,)!!!8n^^'AEz +#OpXVi8=S8!!!8ni!81Jz&)^h+i,AYr!!!PfE"Ba'z&)_C;^b>`g!!"+V0HYg)z+2BiXJ2dN/!!#66 +(a"8Fz5Ca_n,N^O!!2!X!!hun#N,R_n,NG!n,O!g!!Dur!$D+=+8>gHrW!'#s24m:J:IU7 +"98D=s8RV!s1ea:s24m:J:IU7~> +Q +q[1 0 0 1 0 0]concat +55 43 true[1 0 0 1 -1822 -770]@X +imagemask +#QOc'+92XE7!!!#Xqu?]s!!%*8z +!.XJ"98D:&-)P0s8TkFs83!!s1f0Fqu~> +Q +q[1 0 0 1 0 0]concat +55 63 true[1 0 0 1 -1875 -750]@X +imagemask +!"ZjFz5O\XQ!!!#o49,?]!!2!fz!Up\:!!!,r$ig8-!!E!+z#Ohot!!!!(n-/jm!!!8n#64`(!"[uiz&)[P?!!!!@ +^]Arc!!"+V!Pe[8!'e7"^]4?75C`aL!!!!`J,nL-!!%KK!+5d,!.OtKDu]k +Q +q[1 0 0 1 0 0]concat +44 43 true[1 0 0 1 -1928 -770]@X +imagemask +!WW3"s1e[8s8W,7!WN-"s1eX7!!",!!.TM!#N,T3^]4Jp!'e7!!T3r"huEf9!"\Q!!8mhfp](

+Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -642]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -118 -650]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -650]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -650]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -650]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +50 61 true[1 0 0 1 -329 -650]@X +imagemask +!!!"K^]4?7++sUg!!!!@L]@>R!!"+5s8N'!!$D7@s*t(L+92B@huEa!s1n[(!!",@!$C\1!$D+= +&,6,)+8>g@qu?^=p](Eo!!",1!!3'!!$C,!!<3$!+5d,!rr<$@^]4@a!!"+V!!%M!!$AuV!'bu6 ++2@jV5C`_UJ,fR6J,g[A!!#66!$?^k!$AuV++O=k+2@ju^]4?V^]5Il!!"+V!$?^k!'bu6++O=k +5C`_UJ,fR6J,g[A!!#66!$AuV!.TM!+2@jVIfKHj^]4@a!!",!!!*$!!$C,!!WE'!+7K72rVup? +p](Eo!!",=!!i9!!$D4@+8>g9+90-+n,NG1s8W,W!!",@s8Tk7!$BPes*t(L+34E\!!!!@_>j91 +!!"+V5JR7!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +45 62 true[1 0 0 1 -382 -650]@X +imagemask +"98E$rW!'#s8W*!#QOi(rr<<(s8W*!"98E$rr<*"s8W&u!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV +!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+V!!!'"s8W+L"98E$ +s1em>s8W,7#QOi(s1ea:s8W,7!WW3"s*t(L+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz+2@jV!!"+Vz ++5d18!!!Pf#N,R^&+Bhn!!!9!&+BQ!#Q>8/!!!-$s7cQo!WW2h!!!$!s6p!g!.Y%,!!!!@s1eU7 +!!3'!~> +Q +q[4.8 0 0 -240 640.28 734.88]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +80 70 true[1 0 0 1 -707 -650]@X +imagemask +5QCcA!!3-"s8P=`s53kXs8W-!5QCcA!!3-"s8P=`s53kXs8W-!5QCcA!!3-"s8N'@huE`W!<<#u +!"ZjF!!!'"qu?^%^]4?7!WW&t!!hE^!!!'"p](9rhuE`W"98,r!!D]j!!!-$n,NFjn,NFg#QO8n +!!2ip!!!9(n,NFhp](9o&-(Pf!!)co!!!Q0huE`Wqu?]s&-'EF!!)os!!",@^]4?7IK0?J+90+V +!!%HJ!!#7`J,fQL5QCc`s8RTL!!#7`s8W-!z5QCc`s8N'!!!",@s8W-!z+92B@s8Duu!!!PF!!*&uz +&&8/Gs82is!!!8>!!3,tz#N,R_s82is!!!8^!!E8rz"7Q9ms7cQo!!!,j!!iPnz!Up'os6p!g!!!&p +!!iP^z!VcX*s53kW!!!#s!"]+fz!;lg=s1eU7!!!"J!$D6Vz!.Fnis*t(L!!!"J!'gL6z!'^HJs*t(L +!!!!`!.Y"Kz!$?`@rr<$!!!!!@JH,TKz!"XV[rVuou!!!!0_#OB6z!"ZpGqu?]s!!!!(iW&fUz!!hQa +p](9o!!!!$j8\lSz!!Dimp](9o!!!!$p]'^_z!!3-"n,NFg!!!!"s8V!Wz!!*'!huE`Wzs8Tk7z +!!*'!^]4?7zJ,d:az!!%NKJ,fQLz5Q?66z!!#7`zz+9)<@z!!",@zz+8u6?z!!!Q/zz&,ZD-z!!!9%z +z#Q+Q%z!!!9!zz"8Dirz!!!&hz~> +Q +q[1 0 0 1 0 0]concat +73 68 true[1 0 0 1 -793 -650]@X +imagemask +5QCc`s8W&u!!#7`s8W-!s53kW5QCc`s8W,s!!#7`s8W-!s8N'!5QCc`s8W-!J,fQSs1eU7J,eF, +!!iP>!!",@n,NFns1eU7#QOQ!!!iP>!!!-$qu?^%s1eU7!WW&t!!iP>!!!$!rVup's1eU7!.XtJ +!!iP>!!!"Krr<$(s1eU7!.Y"K!!iP>!!!!`s*t(Ss1eU7!'gL6!!iP>!!!!`s*t(Ss1eU7!'gL6 +!!iP>!!!!`s*t(Ss1eU7!'gL6!!iP>!!!!`s*t(Ss1eU7!'gL6!!iP>!!!!`rr<$(s1eU7!'gJ` +!!iP>!!!!`rr<$(s1eU7!.XtJ!!iP>!!!"KrVup's1eU7!<;rs!!iP>!!!$!p](:!s1eU7!WVWh +!!iP>!!!-$huE`^s1eU7#QK;S!!iP>!!!Q0!!!!(s1eU7J,B9H!!iQ(s8W,7!!!!(s8W-!p](9o +!!iQ(s8W+L!!!!(s8W-!s6p!g!!iP>!!E9!!!!!(s1eU7J,TEJ!!iP>!!#7`J,fQSs1eU7&-'EF +!!iP>!!!9(huE`^s1eU7#QN]^!!iP>!!!-$n,NFns1eU7!WVop!!iP>!!!'"p](:!s1eU7!WVop +!!iP>!!!'"qu?^%s1eU7!<;rs!!iP>!!!$!qu?^%s1eU7!<;rs!!iP>!!!$!qu?^%s1eU7!<;rs +!!iP>!!!'"p](:!s1eU7!WVop!!iP>!!!'"p](:!s1eU7"97ij!!iP>!!!-$n,NFns1eU7#QN]^ +!!iP>!!!Q0^]4?>s1eU75Q?66!!iP>!!*'!!!#7`s8W-!s8Duu5QCc`s8W,o!!#7`s8W-!s53kW +5QCc`s8W*!!!#7`s8W-!n,NFg~> +Q +q[1 0 0 1 0 0]concat +74 70 true[1 0 0 1 -874 -649]@X +imagemask +z#QN]^z!!3-"rVuou!!!!0s8W,7z!.Y%Ks6p!g!!!'"s8W,sz#QOgS&,uV0!!!Q0n,NIgJ,fQL5QAM! +!'e7!!!%NK!!!!0huE`Ws82is!!D]j!!E8j!!!!"p](:!s53kW!!)os!!iP>zIK0?Ys*t(L!!#1_ +!$D5kz*rl:*rr<$!!!")@!.XtJz%tFY0rVuou!!!O[!<;rsz#J^?>qu?]s!!!8>!WVopz#J^B?p](9o +!!!8>!WVopz#J^HAp](9o!!!,:"97ijz"2G$=n,NFg!!!,:#QO8nz!!!9(n,NFgz#QO8nz!!!9( +n,NFgz#QO8nz!!!9(n,NFgz&-),!z!!!Q0n,NFgz&-),!z!!!Q0n,NFgz&-),!z!!!Q0n,NFgz#QO8n +z!!!9(n,NFgz#QO8nz!!!9(n,NFgz#QO8nz!!!9(n,NFg!!!+O"97ijz#J^HAn,NFg!!!8>"98,rz +#J^B?p](9o!!!PF!WVopz&&85Gqu?]s!!!PF!<;rsz&&82Fqu?]s!!"+V!.XtJz+2@k@rVuou!!#7! +!'gJ`z5JR7@s*t(L!!%Ma!"]*[zs1eU>s1eU7!!3,8!!iP^!!!!$s1eU:s7cQo!!iP>!!*&s!!!!0 +s1eU7J,]KK!$D6V!!#7`^]4@as1eU7&-),!!WW28!!!9(s*u3hJ%u$a!WW3"s7d\O!!!"Ks8W,W +&&8/F!"],0s*t?izs8Vus"2Fm:!!!9(^]4DN~> +Q +q[1 0 0 1 0 0]concat +79 68 true[1 0 0 1 -957 -650]@X +imagemask +5QCc`s8VQg!!#7`s8W-!rr<$!5QCc`s8W,W!!#7`s8W-!s82is5QCc`s8W-!!!!!(s1eU8s8RTL +!!iP>!!",@huE`^s1eU7#QO8n!!iP>!!!'"p](:!s1eU7!.XnH!!iP>!!!!`rVup's1eU7!$D4@ +!!iP>!!!!0s*t(Ss1eU7!!iP>!!iP>!!!!(s1eU>s1eU7!!E8Z!!iP>!!!!$s53k^s1eU7!!3,h +!!iP>!!!!"s6p!ns1eU7!!3,p!!iP>zs7cR!s1eU7!!*&s!!iP>zs82j%s1eU7!!*&s!!iP>zs82j% +s1eU7!!*&u!!iP>zJ,TEQs1eU7!!%NJ!!iP>zJ,TEQs1eU7!!%NJ!!iP>zJ,TEQs1eU7!!%NJ!!iP>z +J,TEQs1eU7!!%NJ!!iP>zJ,TEQs1eU7!!%NJ!!iP>zJ,TEQs1eU7!!%NJ!!iP>zJ,TEQs1eU7!!%NJ +!!iP>zJ,TEQs1eU7!!*&u!!iP>zs82j%s1eU7!!*&s!!iP>zs82j%s1eU7!!*&s!!iP>zs7cR!s1eU7 +!!3,p!!iP>!!!!"s7cR!s1eU7!!3,h!!iP>!!!!$s6p!ns1eU7!!E8Z!!iP>!!!!$s53k^s1eU7 +!!iP>!!iP>!!!!0s*t(Ss1eU7!"])0!!iP>!!!!@rr<$(s1eU7!'gG_!!iP>!!!$!qu?^%s1eU7 +!WVop!!iP>!!!9(n,NFns1eU75QAM!!!iP>!!E9$J,hh6s8W-!s8Duu5QCc`s8W,o!!#7`s8W-! +s53kW5QCc`s8W*!!!#7`s8W-!huE`W~> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -1045 -650]@X +imagemask +5QCc`s8W-!^d%l!s8W-!s1gl!s8W-!s8Tl!s8W-!s8W,75QCc`s8W-!^]4W>huEb,s1eU>s53kW +#QN]^#QN]^!!3,X!!iP^!!!"KhuF#^huE`W5MuMHs53kW!$C,!#QN]^!!!Pf!!iP^!!!!(n,N^n +huE`W#Oh]us53kW!!D]j#QN]^!!!,j!!iP^!!!!"n,N^nhuE`W!Up'os53kW!!2ip#QN]^!!!#o +!!iP^zp](R!huFi!!;HO!s53l!!!)co#QN]^*rl:c!!iP^!$;1@HiOEOhuFi!!.4bOs53lA!!%BH +#QN]^56(Z`!!iP^!'^G`!!!9(huJ6,!!!!(s53m,z#QN]_rr<$!!!iP^#QFc(!!!9(s8W*!!!!!( +s8W-!z#QOi(rr<$!!!iQ(s8N'!!!!9(s8W*!!!!!(s54.^z#QN]^rr<$!!!iP^!.OtK!!!9(huGtA +!!!!(s53lAz#QN]^56(Z`!!iP^!$;1ChuF#^huFi!"5j.as53l!!!C":#QN]^*rlDY!!iP^!$;1G +^]4W>huE`W#J^#QN]^!!!8>!!iP^!!!!0^]4W>huE`W&&8/Ms53kW!"XS[#QN]^ +!!"*k!!iP^!!!!`J,fiShuE`W5C`_=s53kW!.TM!#QN]^!!*%L!!iP^!!!-$J,fiShuE`fs*t(S +s53kWs8N'`s8W-!s8W*!5QCc`s8W-!!'gM`s8W-!rr>:`s8W-!s8N'`s8W-!s8W*!~> +Q +q[1 0 0 1 0 0]concat +65 68 true[1 0 0 1 -1120 -650]@X +imagemask +5QCc`rr<$!!'gM`s8N'!!!#7`s8W*!!!!!`s8W-!z5QCc`rr<$!!!!9(huE`W!!!!(s53kWz#QN]^z +!!iP^z!!!9(huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9(huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9( +huE`W!!!!(s53kWz#QN]^z!!iP^!'UA_!!!9(huGq@!!!!(s53l@z#QN]^4obQ_!!iP^!'UA_!!!9( +huGq@!!!!(s53m+z#QN]^IK0?J!!iP^!<)ru!!!9(huWfW!!!!(s54.]z#QOi(rVuou!!iQ(s8Duu +!!!9(s8W&u!!!!(s8W,uz#QOi(rVuou!!iP^&,lP/!!!9(huWfW!!!!(s53nVz#QN]^IK0?J!!iP^ +!.FnJ!!!9(huGq@!!!!(s53l@z#QN]^4obQ_!!iP^!'UAnJ,fiShuGq@%tFWbs53l@!"XS[#QN]^ +4oc+D!!iP^!!!!0J,fiShuE`W%fcS7s53kW!$;1@#QN]^!!")@!!iP^!!!!@!!!9(huE`W56(Zg +s53kW!'^G`#QN]^!!#4`!!iP^!!!"K!!!9(huE`WrVup's53kW!WE'!#QN]^!!E3#!!iP^!!!9' +!!!9(huEa!rVup's53kXs8E!_s8W-!s8W&u5QCc`s8W,u!'gM`s8W-!quAt]s8W-!s82j]s8W-! +s8Vus~> +Q +q[1 0 0 1 0 0]concat +82 70 true[1 0 0 1 -1189 -649]@X +imagemask +z#QN]^z!!!'"s8E!!^]4?7!"],0s1elTzJ,fQKn/oFG!!!'"s8W,oJ%u$a!!iQ(J.MSX^]4?7+92*9 +!WW28!!!!`s1eU7J,d:a!!%NK!!!!`s1eU7!WW&t!!",@^]4?:s7cQo!$D6V!!!9(huE`W&-'EF +!"]+F!!!!0s1eU7&-'EF!!!Q0^]4?Vs*t(L!"]+F!!#7`z&-'EF!.XtJ!!!!0s1eU7J,TEJ!!!Q0 +^]4B7qu?]s!"]+F!!*&sz&-'EF!WW&t!!!!0s1eU8s7cQo!!!Q0^]4E8p](9o!"]+F!!E8rz&-'EF +"97ij!!E9$s8Tk:s6p!g"98E$s1em>n,NFjs8W-!^^'o/!!!-$s8W,7#QO8n!!E9$s8Tk>s6p!gz +!!!9(n,NFgz!!iPnzz&-),!z!!!!0s6p!gz!!!Q0n,NFgz!"],!zz&-),!z!!!!0s6p!gz!!!9( +n,NFgz!!iPnzz#QO8nz!!!!(s6p!gz!!!9(n,NFgz!!iPnz!!@`O"97ijz#J^!!3,pz!"ZjF!WVopz&&8/Gs82is!!!!0^]4B7qu?]s!!"+V!!*&sz!$AuV!.XtJz+2@jV +J,TEJ!!!!`^]4@!rr<$!!!%Ma!!",@J,fQL!.Vca!"]*[zs1eU7#QMR>!!!'"^]4?>s53kW!!E8: +!!!-$n,NFg#QMR>!!*&s!!!!0s1eU7!.Y"K!!",@^]4?75QAM!!.Y$a!!!!0s6p!hs8Tk7!!!9( +s*u3hJ%u$a!!3-"s8VjY^]4?7!.Y%Ks54F'z&-)\0J-Wji!!!!"s8Vus"2Fm:!!!!(s1eU8^]4~> +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1279 -650]@X +imagemask +5QCc`quHcss8VRQs8W,s!<<*!s6r8Qs8Vuss8W-!n3?sQs82lss8W,g5QCc`quHcss8VQg#QN]^ +!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k +!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^ +!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@ +J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9( +huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@ +s*t(L#QOi(s8W-!J,fQSs8W-!s8W+L!!!9(s8W-!s8RTL!!iQ(s8W-!s*t(L#QOi(s8W-!J,fQS +s53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W ++9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L +#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW +!$D5k!!!9(huE`W+9-ik!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!!!9(huE`W+9-ik +!!iP^!!!!@s*t(L#QN]^!!",@J,fQSs53kW!$D5k!'gM`s82lss8W,g5QCc`quHcss8VRQs8W,s +!<<*!s6r8Qs8Vuss8W-!n3?sQs82lss8W,g~> +Q +q[1 0 0 1 0 0]concat +38 68 true[1 0 0 1 -1369 -650]@X +imagemask +J,fQKr."bHs87BHs8W"Hs8W,sJ,fQKqu@!%huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^ +!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^ +!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^ +!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^ +!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^!!iP^!!!9(huE`^s53kW#QN]^ +!!iP^!!!9(huE`^s53m,s8W,sJ,fQKr."bHs87BHs8W"Hs8W,s~> +Q +q[1 0 0 1 0 0]concat +51 69 true[1 0 0 1 -1412 -649]@X +imagemask +!!iP>z5QCW]!!!'"s8RTL!!iQ(s53kW&,68,p](:9n,Rt9!!#7Y!'gG_!'gA]+9)<@J,TEirr<%K +rW!K/J,oWK!"]*[!<<#u&-'EFs8N'(s1eX7rW!3'^]8l`!!iP>!.XtJ#QMR>J,B9Os1eV!qu@!% +^]5JO!!iP>!!hE^#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z +#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7 +!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z +#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7 +!!!9(^]4?7!!iP>z#QMR>!!!!(s1eU7!!!9(^]4?7!!iP>z#QMR>!!3-"s8V!W!WW3"s53kXs8W-! +huEfXs8W,W!!3-"s8V!~> +Q +q[1 0 0 1 0 0]concat +83 68 true[1 0 0 1 -1471 -650]@X +imagemask +5QCc`qu@i=s8V"As8W,s!$D7@s56-As8Vus+92B@i'78As82j=s8W,W5QCc`qu@i=s8V!W#QN]^ +!!%NKhuE`^s53kW!'gM!!!!9(huE`WJ,b$!!!iP^!!!$!rr<$!#QN]^!!3-!!!!!(s53kW!WW&t +!!!9(huE`Zs82is!!iP^!!!9(p](9o#QN]^!"],!!!!!(s53kW&-(Pf!!!9(huEa!s53kW!!iP^ +!!#7`^]4?7#QN]^!.Y$!!!!!(s53kWJ,]KK!!!9(huEcWrVuou!!iP^!!3-!z#QN]^"989!!!!!( +s53k^s7cQo!!!9(huF#^n,NFg!!iP^!"],!z#QN]^+917!!!!!(s6p"Qs1eU7!!!9(p]*PYJ,fQL +!!iQ%!.Y$!z#QOc's8N'!!!!!(s8RZMrVuou!!!9(s2"a5z!!iPmj8\lSz#QNu]s7cQo!!!!(s5X.Z +n,NFg!!!9(iW&r9z!!iP^J,d:az#QN^Hs1eU7!!!!(s55"!J,fQL!!!9(i",hfz!!iP^#Q=]'z#QN]_ +qu?]s!!!!(s53nVz!!!9(huJ7Wz!!iP^!'e7!z#QN]^&)[Ef!!!!(s53k^n,NFg!!!9(huElSz!!iP^ +!!3'!z#QN]^!<3$!!!!!(s53kW5C`_6!!!9(huEa!^]4?7!!iP^!!!Q!z#QN]^!!i9!!!!!(s53kW +!W2ot!!!9(huE`WrVuou!!iP^!!!"Kz#QN]^!!#7!!!!!(s53kW!$C,!!!!9(huE`W#Oh]n!!iP^ +!!!!$p](9o#QN]^!!!'!!!!!(s53kW!!E7O!'gM`s82isJ,fP!5QCc`qu?_Hs8RU6s8W,s!!%NK +s+!?6s8Vus!.Y%KJ3X)6s82isJ,fP!~> +Q +q[1 0 0 1 0 0]concat +62 68 true[1 0 0 1 -1560 -650]@X +imagemask +5QCc`s8W,W5QCc`s8W,W5QCc`s8W,W5QCc`s8W,W5QCc`s8W,W!!iP^!'gMQ!!iP^!!E8j!!iP^ +!!*&g!!iP^!!%N +Q +q[1 0 0 1 0 0]concat +103 68 true[1 0 0 1 -1629 -650]@X +imagemask +5QCcY!!0k8#QOi(r]gG_p](ES!!iQ(s8G7_s7cR!n,N^ns8W'_s8Vio#Oh]us8W,u5QCcY!"\i) +#QOi(rW"%u!!!Q)!!!'"n,NFn^]4?Vp](9ps6p!g#J^<>+8c*=!WVWh!!g:>!'gA]!!3,h!!!8> +!!#7_!!!'"n,NFn^]4@!rVup!s6p!g#J^<>J,]KK!WVWh!!g:>!.Y"K!!3,h!!!8>!!*&nJ,fWM +n,NFn^]4B7pOE5Es6p!g#J^!WV2q!!3,h!!!8>!!E8=huEfXn,NFn^]4K: +_;G:os6p!g#J^#QK>D!!3,h!!!8>!!iOSn,NLhn,NFn^]4oF!-eJEs6p!g +#J^+8u7&!!3,h!!!8>!$D1?49,E^n,NFn^]6Us!'UA`s6p!g#J^=(qu@c< +!WVWh!!g:>J+s!c!!3,h!!!8>!.XbD%fcY1n,NFn^]8lR!"T&1s6p!g#J^?>n,N]D!WVWh!!g:> +s6p!nJ-#]>!!!8>!WV'X"2Fs;n,NFn^]FJn!!C";s6p!g#J^HA^]4Dn!WVWh!!g:As1eU8huWlI +!!!8>#QK;S!:U$hn,NFn^^'mi!!)Khs6p!g#J^lM!!!#o!WVWh!!g:Mrr<$!GQIj6!!!8>&,lP/ +!.4hIn,NFn^`WOU!!#+^s6p!g#J_G\!!!!]!WVWh!!g;(qu?]s*Wc<1!!!8>5PtK]!$21@n,NFn +^jl+Z!!!N1s6p!g#Jbia!!!!0!WVWh!!g=>n,NFg#D)pE!!!8>s6p!g!!e)Tn,NFn_>iEn!!!8? +s6p!g#JpGu!!!!$_>j!)!!g@?^]4?7"6':L!!!8As1eU7!!2'Yn,NFn_uILP!!!&Ys6p!g#KQjpz +nc/(Y!!gREJ,fQL!:g*Y!!!8Mrr<$!!!% +Q +q[1 0 0 1 0 0]concat +84 68 true[1 0 0 1 -1738 -650]@X +imagemask +5QCcYz%fcSos8Vio!!!!@J,hh6s7cQo!!"*k!'gM`p](9o!'bu65QCcYzIt.M!+5d,!!!!$!J,fQS +^]4?7!!3+M!!!8>z"93lO!!g:>!!!!(s*t(L#J^<>!!!9(J,fQS^]4?7!"]*[!!!8>z+9-ik!!g:> +!!!!`s*t(L#J^<>!!%NKJ,fQS^]4?7!<<(L!!!8>!!!!"s8RTL!!g:>!!!'"s*t(L#J^<>!!E9$ +J,fQS^]4?7#QOgS!!!8>!!!!0s8RTL!!g:>!!",@s*t(L#J^<>!'gMPJ,fQS^]4?75QB&[!!!8> +!!!"Ks,V[1!!g:>!!*'!%tFW[#J^<>!WW-0J,fQS^]4?:s83CX!!!8>!!!9(r"";X!!g:>!"],) +%tFW[#J^<>&-),0J,fQS^]4?Vs54E!!#7`^^kqq!!g:>!.Y$!%tFW[#J^<>s8N'0J,fQS +^]4E8rr!!E9#!"XS[!!g:>"989!%tFW[#J^!$D7! +!"XS[!!g:>5QAM!%tFW[#J^=hs1eUFJ,fQS^]8laJ,g+1!!!8>!<<'!!"XS[!!g:?s8Duu%tFW[ +#J^HAqu?^-J,fQS^^'o7!!!O[!!!8>&-),!!"XS[!!g:]s6p!g%tFW[#J_G]huE`fJ,fQS^d%k7 +!!!O[!!!8>J,b$!!"XS[!!g=>rr<$!%tFW[#JpH>!!!!0J,fQS_uKW7!!!O[!!!8Es82is!"XS[ +!!gREp](9o%tFW[#LEG>!!!!0J,fQShuDU7!!!O[!!!9(s1eU7!"XS[!!iQ(J,fQL%tFW[#QOf( +!!!!0J,fQSs8N'!!!#7!!'gM`rVuouJ,fQ<5QCc]!!!"Ks8VRQs8Vio!!%NKs6r8Qs6p!g!.Y%K +n3?sQhuE`WJ,fQ<~> +Q +q[1 0 0 1 0 0]concat +78 70 true[1 0 0 1 -1828 -649]@X +imagemask +z5Q:]`z!!iQ(p](9o!!!!`s8W*!z!WW3"s53kW!!!9(p]pioz&-%.[J,B9H!!#7_!!",@zJ,B9H +&-%.[!!3,h!!!-$huE`Zs53kW!WVWh!!iP>!!!$!p](:)s1eU7!<;rs!"]*[!!!"Kqu?^=rr<$! +!'gG_!'gJ`!!!!`rr<%KrVuou!$D5k!.XtJ!!!!@s*t+Lqu?]s!"]+F!<;rs!!!!0s1e[8qu?]s +!"]+f!WVop!!!!(s53qXp](9o!!iP^"98,r!!!!(s6p-jp](9o!!iPn"97ij!!!!$s6p9nn,NFg +!!E8r#QO8n!!!!$s7cj!n,NFg!!E8r#QO8n!!!!$s7cj!n,NFg!!E8r#QO8n!!!!$s7d-)n,NFg +!!E8r&-),!!!!!$s83E-n,NFg!!E9!&-),!!!!!$s83E-n,NFg!!E9!&-),!!!!!$s83E-n,NFg +!!E9!#QO8n!!!!$s7cj!n,NFg!!E8r#QO8n!!!!$s7cj!n,NFg!!E8r#QO8n!!!!$s7cj!n,NFg +!!E8r"97ij!!!!$s6p-jn,NFg!!E8j"97ij!!!!$s6p-jn,NFg!!E8j!WVop!!!!(s53qXp](9o +!!iP^!<;fo!!!!(s1eX7p](9o!"]+F!.XnH!!!!0s*t*!qu?]s!"]*[!'gG_!!!!@rr<$`rVuou +!$D4@!$D4@!!!!`rVup/rr<$!!'gA]!!iOS!!!"Kp](9rs1eU7!<;Ng!!3,X!!!'"huE`Ws6p!g +"96.:!!%ND!!!9(J,fQL5Q1W_+9)<@!!!Q0J,k)sz"97ims6p!g!!!$!s8W,7z!'gM`rr<$!!!!!( +s8Vioz!!#7`z~> +Q +q[1 0 0 1 0 0]concat +70 68 true[1 0 0 1 -1914 -650]@X +imagemask +5QCc`qu?]s!'gM`s82is!!#7`s8Vus!!!!`s8W,sz5QCc`qu?]s!!!9(huE`W!!!!(s53kWz#QN]^z +!!iP^z!!!9(huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9(huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9( +huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9(huE`W!!!!(s53kWz#QN]^z!!iP^z!!!9(huE`W!!!!( +s53kWz#QN]^z!!iP^z!!!9(huE`W!!!!(s8W-!huE`W#QOi(s8Duu!!iQ(s8W,7!!!9(s8W-!n,NFn +s1eU>s82is#QMR>!.XtJ!!iP>!!",@!!!9(^]4?Fs*t(Ss1eU7#QMR>#QMR>!!iP^!!iP>!!!-$ +n,N^n^]4?:s6p!ns1eU7"98,r#QMR>!!E8r!!iP>!!!-$p](R!^]4?8s82j%s1eU7!WW&t#QMR> +!!3,t!!iP>!!!'"qu@!%^]4?8s82j%s1eU7!WW&t#QMR>!!3,t!!iP>!!!-$p](R!^]4?:s7cR! +s1eU7"98,r#QMR>!!E8j!!iP>!!!-$n,N^n^]4?>s53k^s1eU7#QN]^#QMR>!"]+F!!iP>!!",@ +J,fiS^]4@arr<$(s1eU:s8E!_s8W-!s8Vio5QCc`s8W,g!'gM`s8W-!J,hh6s8W-!rVup_s8W-! +s1eU7~> +Q +q[1 0 0 1 0 0]concat +78 88 true[1 0 0 1 -1992 -631]@X +imagemask +z!!!!(n,NFgz!$D+=z!!!"Krr<$!z!<<(Lz!!!$!s1eU7z!WW28z!!!-$s53kWz"98Djz!!!-$s6p!g +z#QOi!z!!!9(s7cQoz&-)\)z!!!Q0s7cQoz&-)\-z!!!Q0s82isz+8u<=z!!",9!.4bHz+7K7mz +5Q@A6!#tt=!!iQ(s1eUS!!!!`s8W+L!#P\9!WW3"s53kW!!!9(qucuoz+91g1J,B9H!!#7`huJ9,z +J,/"&s8RTL!!3,ihuNZShuE`Zs5Dl:nc/(Y!!iP>n,`%Yp](:)s+'S@i.(Y)!"])0r"$S-qu?^= +rW%HJJ04aj!'gG_5Q:^*rr<%Kqu@i:!"]*[!.XnH"7Q:$s*t+Lp](9o!!iP>!<;fo!!!!(s1e[8 +p](9o!!iP^!WVWh!!!!(s53qXn,NFg!!E8Z"97ij!!!!$s6p-jn,NFg!!E8j"97ij!!!!$s6p9n +huE`W!!E8r#QN]^!!!!"s7cj!huE`W!!3,p#QN]^!!!!"s7cj!huE`W!!3,p#QN]^!!!!"s7d-) +huE`W!!3,p&-(Pf!!!!"s83E-huE`W!!3,t&-(Pf!!!!"s83E-huE`W!!3,t&-(Pf!!!!"s83E- +huE`W!!3,t#QN]^!!!!"s7cj!huE`W!!3,p#QN]^!!!!"s7cj!huE`W!!3,p#QN]^!!!!"s7cj! +huE`W!!3,p"97ij!!!!$s6p-jn,NFg!!E8j"97ij!!!!$s6p-jn,NFg!!E8j!WVWh!!!!$s53qX +p](9o!!iP^!<;fo!!!!(s1eX7p](9o!!iP>!.XnH!!!!0s*t*!qu?]s!"]*[!'gA]!!!!@rr<$` +rVuou!$D4@!$D4@!!!!`rVup/rr<$!!'gA]!!iOS!!!"Kp](9rs1eU7!<;Ng!!3,X!!!'"huE`W +s6p!g"96.:!!%ND!!!9(J,fQL5Q1W_+9)<@!!!Q0J,k)sz"97ims6p!g!!!$!s8W,7z!'gM`rr<$! +!!!!(s8Vioz!!#7`z~> +Q +q[1 0 0 1 0 0]concat +83 69 true[1 0 0 1 -2079 -649]@X +imagemask +zzs6p"Qs8W,o!!!Q0quAt]s8Vio!.Y%K!'gM`s7cQps8W+L5QCc`p](Err#^GRs8W,o!!iPn&&8/M +s1eU7&-),(huF#^^]4?Vs54";!!iP>!!",@^]WKp#QMR>!$D6V!T3q_s1eU75QAM"huF#^^]4@! +s1eZn!!iP>!!#7`J,m@b#QMR>!'gL6!!!!(s1eU75Q?66!!!9(^]4@!s*t(L!!iP>!!#7`J,fQL +#QMR>!'gL6!!!!(s1eU75Q?66!!!9(^]4@!rr<$!!!iP>!!#7`z#QMR>!'gJ`!!!!(s1eU75Q:]` +!!!9(^]4@!rr<$!!!iP>!!#7`z#QMR>!.XtJ!!!!(s1eU7J,TEJ!!!9(^]4B7qu?]s!!iP>!!*&sz +#QMR>!WVop!!!!(s1eU:s6p!g!!!9(^]4oFhuE`W!!iP>!'gM!z#QOi(s8N'!!!!!(s8W-!qu?]s +!!!9(s8W,uz!!iQ(s8W,7z#QMR>&-),!!!!!(s1eU7s82is!!!9(^]4@!rVuou!!iP>!!",@z#QMR> +!"]*[!!!!(s1eU7#QMR>!!!9(^]4?>s53kW!!iP>!!!-$n,NFg#QMR>!!E8j!!!!(s1eU7"98,r +!!!9(^]4?:s7cQo!!iP>!!!-$p](9o#QMR>!!E8r!!!!(s1eU7"98,r!!!9(^]4?:s7cQo!!iP> +!!!-$p](9o#QMR>!!E8r!!!!(s1eU7"98,r!!!9(^]4?:s7cQo!!iP>!!!-$n,NFg#QMR>!!iPn +!!!!(s1eU7#QN]^!!!9(^]4?Fs1eU7!!iP>!!",@J,fQL#QMR>!'gJ`!!!!(s1eU7s8Duu!!!9( +^]4oFqu?]s5QCc`s8W,g!!!!`s8W-!s8Tk7!!#7`s8W-!rr<$!!'gM`s8W,gz5QCc`s8Duu!!!!~> +Q +q[1 0 0 1 0 0]concat +55 70 true[1 0 0 1 -2165 -649]@X +imagemask +#64`gqu?^-J-Z,S^]4n\5QCcQ!"\#fs8Vus&+fi$s8N'0s8Tk>s*tX[qu?`s^^pJ'!!%N,&-%.[ +!'fBPrVuou+7Kg=!!!!0p^d-"!!!Q)&+BQ!!!iE4huE`W#Q,+j!!!!(r"$RC!!!9%&&8/F!!E32 +^]4?7#Q>6a!!!!(rXXMZ!!!9'%tFW[!!iK6J,fQL&,m)i!!!!0rW`E'!!",?z!'gG_zJ,TEJ!!!$! +rVuou!!iQ%zJ,fEH!!!Q0s82is!WW3"p](:9s8W,o!!%NKs8VQg"98E$s53k^s8W-!huF;fs8W,7 +!'gM`s8RTLJ,fQKrr<%Ks8W,s!!*'!s8Vio!WW3"s53kXs8W-!!!!-$s8Vio!!E9$rr<$!#QOh^ +!!!!(s8Duu!!!9(n,NFg!!iP^!!!&h&-%.[!!2R"rr<$!!UpX"!!!!"n.5Ku!!!&h&,lP/!!D]q +qu?]s"7QQn!!!!$n-Ajk!!!8n#Q+Q%!!huqqu?]s&+B]!!!!!@n,`Lg!!",1!WE'!!'frQrr<$! +J+*GfJ,fWMn,RsR!!E8j!'frQ+91g1&,ZG-a7''6s8W+On,NLhs8E&g!!%NKn,VqX!!iN(!,q~> +Q +q[1 0 0 1 0 0]concat +73 67 true[1 0 0 1 -2229 -650]@X +imagemask +!!*'!s8W,gzs8W-!s6p!g!!*'!s8W,gzs8W-!s6p!g!!*'!s8W,gz!!3,pz!!!!"s7cQoz!!3,pz +!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz +!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!" +s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,p +z!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQoz!!3,pz!!!!"s7cQo!!#1_!!3,p!!!7S +4obQ`s7cQo#Cnu +Q +q[1 0 0 1 0 0]concat +82 69 true[1 0 0 1 -2308 -649]@X +imagemask +z#QN]^z!!!$!s8Duuz!!iQ(s1eU7z5QCc`n,NFg!!!$!s8W,oz!!3-!!'gG_z#QO8n"9/?$!!!!0 +s1eU7It.M!!!",@!!!!`^]4?7!'gG_!!!PfzJ,B9H!!hun!!!$!p](9o"7Q9j!!*&o!!!!"p](9o +!WVWh!!!&p!!!!"s6p!g!!)os!!!-$n,NFg!;lfs!!E8ZzHiO-H"979Z!!!"J!!!!(s53kW!!%HJ +!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_ +#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_ +!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_ +#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_ +!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_ +#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_ +!!!9(huE`W!'UA_!!iP^z4obQ_#QN]^!!!!_!!!!(s53kW!!#1_!!!9(huE`W!'UA_!!iP^z4obQ_ +#QN]^!!!!_!!!!(s53kW!!#4`!!!9(huE`W!.TM!5QCc`qu?cts8Tl!s8W,s!!3-"s1gl!s8Vus +!WW3"^d%l!s82its8W,75QCc`qu?cts8Tk~> +Q +q[1 0 0 1 0 0]concat +82 69 true[1 0 0 1 -2395 -649]@X +imagemask +z!Up'hz!!!!$p](9oz!!!9!zz!!iE%zz&,ZD-z!!!!0rVuouz!!",?zz!$D4@zz+9)<@z!!!!`rr<$! +z!!#7`J,fQLz!.Y$!zzJ,d:az!!!$!s1eU7z!!*'!huE`Wz!WW2Xz!!!!"s8VQgz!!!'"s6p!gz +!!E8sn,NFgz"982lz!!!!(s7,jaz!!!9(nGE7dz!"]+fqu?]sz&-(R:z!!!!@s1j'`z!!",@^cqf!z +!$D6V56(Z`z5Q?6Uz!!!!`s*u2Az!!%NK!$?^kz!.Y"K&&8/Fzs8E!/^]4?7!!!$!rW!2]z!!3,t +!!hE^z!WW&t"7Q9j!!!!"s7cQrn,NFg!!!-$p](?az!!E8r!!2ipz#QO8n!;HNo!!!!(s6p!gqu?]s +!!!Q0huEcTz!"]+f!!%HJz+90+V!.FnJ!!!!@s1eU756(Z`!!#7`J,fR6z!'gL6!!")@z5Q:]`!$?^k +!!!"Krr<$!%tFW[!!%NK!!!!0^]4?7!<<#u!!!PFzs8Duu!!hE^!!!'"qu?]s#N,R^!!3,t!!!!$ +n,NFg"98,r!!!,j!!!!$s7cQo!!2Qh!!!-$n,NFg!VcWp!!iPnzp](9o#QO8n!!!#s!!!!0s53kW +!!%BH!!!Q0huE`W!.FnJ!$D6VzIK0?J+90+V!!!!`!!!!`s*t(L!!#4`!!#7`J,fQL!.VcaJ,fQK +^]4@!s8Tlas8W,7!!#7`s1j-as8Tk7!'gM`^jlCas1eU75QCc!J,fQK^]4@!s8Tk~> +Q +q[1 0 0 1 0 0]concat +114 69 true[1 0 0 1 -2482 -649]@X +imagemask +z4obQ_!"T&0z!!!"Jz++O=kz!!%KK!!!!@J,fQLz!.OtK!!#7!zzs*t(L!'e7!z!!!$!J,fQLJ)C;,z +!!3+M!!!"KhuE`Wz!WTq8!!%N,z!!!!"s1eU7!<;Ngz!!!-$^]4?7s6p!gz!!E8Z!!!'"p](9oz +#QN]^!!3,pz!!!!(s6p!g!WVopz!!!9(n,NFjs82isz!"],!!!!-$qu?]sz&-)D)!!E9#z!!!!@ +s7cQo#QOc'z!!",@qu?^%s8Duuz!$D7=!!!Q0rr<$!z5QCW]!"],0z!!!!`s1SI5&-(Mez!!%NK +4obR)s3H2qz!.Y#4!!",@O+731zJ,UMi!'gL=^]4?7!!!$!rZ;+?5Q?MSz!!*&u%tFXErs-=>z!<;s- +J,k*!"5j.Z!!!!"s83CX!.XtMhuE`W!!!'"p]nS7J,TQ>z!!E8r#J^?>rW2Kgz"98,uhuNfT!Up'h +!!!!$s6p-K!WW&tp](9o!!!9(n,qSLs7cThz!!iP^!Up-ip]13lz&-(Pgn,r^c!.4bH!!!!0s53nP +"97ijHiO-H!!!Q0^]=-7s6p"Pz!$D6V!;Hg!n,PWPz+9-ikHjB]0!'UA_!!!!`s*t)s&-(Pf*rl9@ +!!#7`J,h\Bs1eUVz!'gJ`!'Uqn^]4mqzJ,]KK4s0g?!"XS[!!!"Krr<$@+9-ik%tFW[!!%NJ!!"** +s*t(S^]4?7!<<#u!"Vzs82is&&8,E!!D-Z!!!'"qu?^-s8N'!"5j.Z!!3,t!!!9(rVup# +huE`W!WVop!!iQ'!!!&h!!!!$s7cQo#QO]%!!2Qh!!!-$n,NFjs82is!VcWp!!iPn!!!-$qu?]s +p](9o#QO8n!!3,p!!!#o!!!!(s53kW"98,r!!%BH!!!Q0huE`Zs6p!g!.4bH!"]+F!!!-$n,NFg +HiO-H+90+V!!iPn!!!!_!!!!@s1eU7#QN]^!!#1_!!",@J,fQ[s53kW!$;1@!'gL6!!!Q0huE`W +*rl9@5Q:]`!"]+F!!!!@!!!!`rr<$!+90+V!!!O[!!%NK!!!!@s*t(L!'e7!s8W-!J3X)6s53lA +s8Tn7s8W+L5QCc`huH"As1n[7s8RU6s8W,W!'gM`_#OH7s+!?6s8V!W5QCc!s8W-!J3X)6s53lA +s8Tk~> +Q +q[1 0 0 1 0 0]concat +81 68 true[1 0 0 1 -2600 -650]@X +imagemask +J,fQH!!3-"s8RV!s8Vus!WW3"s+#V!s82its8W-!J:IV!qu?cts8W+LJ,fQH!!3-"s8RTL&,lP/ +!!3-!!!!!$p](9o"989!!!!&t!!!!(s82is!!)uu!!!9(p](9o!.FnJ!"],!zIfKHK+917!!!!!` +J,fQks53kW!!"+V!!#7`^]4?7!"ZjF!.Y$!z&)[Efs8N'!!!!!(n,NIgrr<$!!!!,r!!3-!z!!2ip +"989!z!;lg%s7cQozrW!3'p](9o!!!"K!"],!z!!#4`+917!z!$?_Us53kWz+2C,@^]4?7!!!!0 +i.(cWz!!!8ns8N'!z!!D`jrr<$!z!Vucpz!!!!"s8Vusz!!!$!s7cQoz!!%NKp](9oz!'gMQzz5QBXA +z!!!!`s1eU7z!!#7`^]4?7z!.Y$!zzs8N'!z!!!'"rr<$!z!!3-!zz"989!z!!!!(s8Duuz!!!Q0 +rr<$!z!"],0J,fQLz+92@kz!!!!`s8Tk7z!!#7`cend'z!.Y$(n,NFgzs8N2rz!!!'"rrMlpz!!3-! +!W2otz"989!rVuou!!!!(s7cSDz!!!Q0p]*MYz!"],!!'bu6z+917!+2@jV!!!!`s1eUFhuE`W!!%NK +^]4W/z!.Y$!!!D]jzs8N'!"8Dir!!!'"rVup!qu?]s!!E9#!!!#uz"989!!!%HJ!!!!(s7cQo!WTq8 +!$D7@s7cTos8VQg+92B@p]1?os6p"1s8W,o!<<*!n,OR1s8Vios8W,g!$D7@s7cTos8VQg~> +Q +q[1 0 0 1 0 0]concat +83 68 true[1 0 0 1 -2687 -650]@X +imagemask +!!!$!s8W,Wz!!*'!s8V!Wz!<<*!s53kWzs8W-!huE`W!!!$!s8W,Wz!!!!`rr<$!z!!#7`zz!'gJ`zz +5Q:]`z!!!!`rr<$!z!!#7`zz!'gJ`zz5Q:]`z!!!!`rr<$!z!!#7`zz!'gJ`zz5Q:]`z!!!!`rr<$!z +!!#7`zz!'gJ`zz5Q:]`z!!!!`rr<$!z!!#7`zz!'gJ`zz5Q:]`z!!!!`rr<$!z!!#7`zz!'gJ`zz +5Q?66z!!!"Ks1eU7z!!*'!^]4?7z!<<)Wz!!!!"s8VQgz!!!-$s6p!gz!!iQ&p](9oz#QOVtz!!!!0 +s7lKlz!!",@n9t?;z!$D7!IfKHKz5QBY+z!!!"Ks1f_,z!!%NKJ02Q,z!<<'!&)[Ef!!!!"s8N'( +huE`W!!!-$rW!&iz!!E9!!!Durz#QO]%!VcWp!!!!0s7cQoqu?]s!!!Q0n,NIfz!$D71!!%HJz5QBXA +!'^G`!!!!`s1eU75C`_6!!%NKJ,fQk^]4?7!<<(L!!!PFzs8N'!!!hE^!!!'"rVuou#Oh]n!!E9# +!!!!$n,NFg#QO]%!!!&p!!!!(s7cQo!!2ut!!!Q0p](9o!;lfs!$D71zIK0?J+917!!!!"K!!!!` +s1eU7!!*&7!<<*!s53kW5QCcAs8W-!huEaAs8V$Ws8W,W!!#7`s5 +Q +q[1 0 0 1 0 0]concat +62 68 true[1 0 0 1 -2773 -650]@X +imagemask +#QOi(s8W,g&-)\0s8W,o&-)\0s8W,o&-)\0s8W,o&-)\0s8W,o#QOQ!!.Y%D"989!!!iQ!!WW&t +!!*&o!WW-!!!#7Y!<<'!!!",9!.Y$!!!!Q)!.Y$!!!!9!!'gM!!!!,r!$D7!!!!,r!$D7!!!!&p +!"],!!!!&p!!iQ!!!!#o!!iQ!!!!#s!!E9!!!!#s!!3-!!!!#s!!*&u!!!"H!!*'!!!!"H!!%NK +J,fRs!!#7`J,fRs!!#7`^]4@^!!",@huEb)!!!Q0n,NH9!!!Q0n,NH9!!!9(p](9o!!!-$qu?]s +!!!-$qu?]s!!!'"rVuou!!!$!rr<$!!!!"Krr<$!!!!"Ks*t(L!!!!`s1eU7!!!!@s1eU7!!!!@ +s53kW!!!!0s6p!g!!!!(s6p!g!!!!(s7cQo!!!!$s82is!!!!"s8Duu!!!!"s8Duu"2Fm:s8N'! +"2Fm:J,b$!"5j.ZJ,b$!"5j.Z5QAM!"5j.Z+917!"5j.Z&-(Pf"5j.Z&-),!"7Q9j#QOQ!"7Q9j +"98,r"7Q9j"989!"8Dir!WW-!"8i-!!<<#u"8i-!!<<'!"9&9#!.Y$!"9/?$!'gM!"93lO!'gM! +"979Z!$D7!"98,r!"],!!WW1M!!iPn!WW3"s8W,o!WW3"s8W,o!WW3"s8W,s!WW3"s8W,o!WW3" +s8W,o~> +Q +q[1 0 0 1 0 0]concat +54 46 true[1 0 0 1 -707 -530]@X +imagemask +!!E7Oz5QC3QJ+s'Es83!!p]LQrrWiK$&-(R;&-)DHrr:Y!!!Q0pcnNR!!3-"s7cQo!$D7@p](9o +!'gMYz!'g5Yz5PP3Y!!!!`p](9o!!#7Y!!)uu!'g5Y!WN-"J+s!Gs*t*!p](ErJ,k)g!!iP>!.XJ< +#QMR>s6p!ns1eX7huF#^J-#].!!E7O"96.:"9/?+s*t(Mrr=/@!!!$!s8Vus!!%NKs6p!g!$D7@ +^]4?7!WW&t!!!~> +Q +q[1 0 0 1 0 0]concat +58 70 true[1 0 0 1 -762 -530]@X +imagemask +!!!!0rVuou!.4crs1eU7!.FtKs7cQo!.G%Ms8Duu!.POK&-%.[!.UWV"96.:!.Y"K!<:sW!.XtJ +!.XJ!.XJ!.XJ!.XJ< +!!iP>!.XJ!.XJ!.XJ!.XJ!.XJ +Q +q[1 0 0 1 0 0]concat +46 46 true[1 0 0 1 -830 -530]@X +imagemask +!!!9(zJ,eF,!!E9$qu?^-s8W&u!$D4@s*t*!qu@hS!<;Ng#N,X_huEl;"96.:!Up3k^]4E)#QK;S +!;I*)!!!#o&,uV0!.5=W!!!"D+8u6?!!",?z+8u6?!!#7_z5Q1W_!!#7_z5Q1W_!!#7_z5Q1W_!!#7_ +z5Q1W_!!#7_z5Q1W_!!#7_z5Q1W_!!",?z+8u6?!!",?!!"*k&,lP/5N!(P!!%N,#QFc(s6p9n!!*&g +"93lOs6p'h^]=E(!WTq8s6p$ghuNfH!'g5YJ)C;KrW%H+!"],0s1eU:s8W*!!!%NKqu?]s#QMR>~> +Q +q[1 0 0 1 0 0]concat +58 70 true[1 0 0 1 -880 -530]@X +imagemask +!!!Q-!<;fo!!*'!JH,Yb!!E9$nGiO(!"],0q#CB0!$D1@rr<#6!.XJ +Q +q[1 0 0 1 0 0]concat +47 46 true[1 0 0 1 -943 -530]@X +imagemask +!!!9(J,fQLJ,f!hC!!!9'+8u6? +#Q,\C!!!9%&,lP/&,Z\4!!!Q)#QFc(&,68,J,g\\!WTq85MuPAhuJ8b!.XJ +Q +q[1 0 0 1 0 0]concat +42 70 true[1 0 0 1 -996 -531]@X +imagemask ++92B9!!",@s7cQo+92B9!!",@s7cQo+92B9!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg +!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg +!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg +!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!#7`s8N'! +5QCc`!!#7`s8N'!5QCc`!!#7`s8N'!!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg +!'frQ!!!!`n,NFg!'frQ!!!!`n,NFg!'frQ!!!!`n,Rh9!'frRrr<$`n,r[j!'frTs*t(kp]phL +!$Ct@s*t(kr!38;!"\u4s*t(SrWE1N!!E6's*t(Ms5EtX!!*'!rVuou5QCW]!!!9(p](9o!<9h7~> +Q +q[1 0 0 1 0 0]concat +54 65 true[1 0 0 1 -1031 -511]@X +imagemask +!!#7`huE`W#QOi(!!!!`s8W,W!!*'!s8Vio"97ijJ,TEQrr<$(rrh2!!#7Q5O\XQ!<;O1 +qu?^-s54Ffs8W-!huj#Zs8W,7!<<*!s8Tk7J,fQKs*t+Ls8W-!!!*'!s8W&u!WW3"s82j!s8W-! +n,NRjs8W+L!!E9$s7cQo"8i-!!!!!(n,NFg!!!8nz!!hE^z"5j.Z!!!!$^]4?7!!!,:z!!C#$p](9o +!TX4[J,fQMn,NFG!!!$!s8Vio!!%N<+8c*=!WTq?rVup!s*t4O!!!-$!!3+M!!iK'!WTq8#Q=]' +s1eUFrVuruhuF;e!!*&W!"]&/!<:sW&,lP/s53kfrVuruhuF;e!!*&W!"]&/!<:sW&,lP/s53kf +rVuruhuF;e!!*&7!!iK'!<9n)#Q=](s+C(Krr<*"L\LoMJ-5fVquHc4#QG&,!.XJ[s2Xm7+92B8 +s7cR)s8Tq8p](?prW%H;z!$Au~> +Q +q[1 0 0 1 0 0]concat +59 69 true[1 0 0 1 -1088 -531]@X +imagemask +5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA!.XbD!.XJ +Q +q[1 0 0 1 0 0]concat +26 69 true[1 0 0 1 -1152 -531]@X +imagemask ++92AV+92AV+92AV+92AV+92AV!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!.XJ +Q +q[1 0 0 1 0 0]concat +33 89 true[1 0 0 1 -1176 -511]@X +imagemask +!.Wo,!!E9!!!!Q0s*t(ks8Tk75N%%L!.Wokp],g5+8>hcp^d9&s7d-(!<;g!rW%HC#QFdRp]pg! +J+*R?!'fBDrr=.V"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O +!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O +!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O +!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!E7O!!!-$J,fQOs*t(L"93lO!!iOS +!!E9$J,f]Os*t(Os8RTL"98CO!!E9$J,fQLzzzzzzzzz!!!!$n,NFg&,6,)!$D+=!!#7_!!!!`rr<$! +J,]KK!.Y"K!!%NKJ,fS!s*t(LJ,]KK!.Y"K!!#7`!!!!`rVuou+8c*=!"\i)!!!,Z!!~> +Q +q[1 0 0 1 0 0]concat +56 69 true[1 0 0 1 -1219 -531]@X +imagemask +5QCc!5QCaJs8Tl!s8P=`s1gl!s$-P`^d%l!5QCc!5QC``J)C;3s1eVahuF#^J,k)W!"])0!.Wo, ++9)<@J)C;krVuqJhuH">!!%N,!.XbD!.Wo,s6p!gJ)CA-n,NH,!!!"K +huGul!!%N,!$C,!!.Wo,&+BQ!J)C;/p](;DhuF#]!!%N,!$D7=!.Wo,+926=J)C;Ks82kHhuFl! +quD6)!$D7=!.Wo,zJ)C;,!!!"KhuE`W!!%N,z!.Wo,zJ)C;,!!!"KhuE`W!!%N,z!.Wo,zJ)C;, +!!!"KhuE`W!!%N,z!.Wo,zJ)C;,!!!"KhuE`W!!%N,z!.Wo,zJ)C;,!!!$!huE`W!!*&Wz5QBXA +!!!!`s53kW!!#7`huE`W!'gMAz5QBXA!!!!~> +Q +q[1 0 0 1 0 0]concat +27 69 true[1 0 0 1 -1279 -531]@X +imagemask ++92B!+92B!+92B!+92B!+92B!!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ!'frQ +!'frQ!'frQ!.XJ +Q +q[1 0 0 1 0 0]concat +91 45 true[1 0 0 1 -1312 -531]@X +imagemask +5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA5QCcQ5QCcA5QCcA +!.XbD!.XJ +Q +q[1 0 0 1 0 0]concat +59 45 true[1 0 0 1 -1407 -531]@X +imagemask +5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA5QCcQ5QCcA!.XbD!.XJ +Q +q[1 0 0 1 0 0]concat +52 46 true[1 0 0 1 -1471 -530]@X +imagemask +!!!Q0J,fQL!<<)o!!!!$s8W&u!!!Q0s8RTL!'gA^s53kWJ+*Gfn,NIg^]5JO!!3+M!"\u-"93lO +#Q=].rr<$(rr!!3,X5PtK]!WV(B +qu?]ts58D)!!!'"n:1?9!!3,hJ,B9H!WVY=qu?]ts6tO9!!!'"n:1?9!!3,hJ,B9H!WVY=qu?]t +s6tO9!!!'"n3?gN!!3,h5PtK]!WV(Bqu?]ts56->!!!'"i#hjs!!3,8+8c*=!WTqGrVup#s1f0E +!!!-$J-Z&R!!E6$#QFc(#QFc+rr<$(rW!!!J,g,X!!*&7!$Ct9!.XJ +Q +q[1 0 0 1 0 0]concat +58 64 true[1 0 0 1 -1529 -512]@X +imagemask +5QCcAz5QCcAz5QCcAz5QCcAz5QCcAz!.XJ!.Y"K!WV'X!.XtJ!<;Ng!.XnH!.XbD!.XbD!'gA]!.XJ!.XJ!.XJ!.XJ!.XJ!.XJ!.XJ!.XJ +!.XJ +Q +q[1 0 0 1 0 0]concat +58 64 true[1 0 0 1 -1596 -512]@X +imagemask +zJ,fPazJ,fPazJ,fPazJ,fPazJ,fPaz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz!<:sWz +!<:sWz!<:sWz!<:sWz!<:sWz!<:sW!!!Q-!<:sW!!*'!JH+O-!!E9$i;_^8!"],0q#B7P!$D4Cr;Y[T +!.XnHIfJ=+!<;Ng5QBXA!WV'X&-(Pf"96.:#QN]^"96.:"979Z#QK;S"979Z&-%.[!WV'X&,uV0 +!<:sW&,uV0!<:sW+9)<@!<:sW+8u6?!<:sW+8u6?!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW +5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_!<:sW5Q1W_ +!<:sW5Q1W_!<:sW+8u6?!<:sW+8u6?!<:sW+9)<@!<:sW&,uV0!<:sW&,uV0!WV'X#QK;S!WV'X +#QK;S"979Z"96.:"979Z!WV'X#QN]^!WVWh&&7$&!<;fo+!9D@!'gA]IimSK!$D5lr"%]c!"],0 +p]o^W!!E9$n-@kO!!%NK^]WKp!!!9'!!2!X~> +Q +q[1 0 0 1 0 0]concat +42 45 true[1 0 0 1 -1656 -531]@X +imagemask +5QCcQ!!#7`s6p!g5QCcQ!!#7`s6p!g5QCcQ!!!"KhuE`W!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W +!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W +!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W!.Wo,!!!"KhuE`W!.XJjN85QAP!rW#1_^d%_s5QAM0huE~> +Q +q[1 0 0 1 0 0]concat +39 46 true[1 0 0 1 -1702 -530]@X +imagemask +3!'';!'UqnquArGs8RU6s8W,75Q:^Ji'7,>#OjtI!!E!\huEfU5JR7!r',]3!<,35!!*!_!!!#u +56(Z`r]U;^!<,.^!!3'_!!!'!49,?drVuou&,lP/!.XtJ!$D7=!!E9$qu@i=s7cSDs8Vips8W,g +"98E$i!9;^s1f0Fs8N'@s8Vus+92B1!'gM_!!#7`^]4@!qu?]s5O\XQ!'e7!!:W4'!!)LQJ,fT= +5C`_7n/m/\!Uq1]!!2R"^]4K+&&8/Mn-AF_+7KC3!.XJ +Q +q[1 0 0 1 0 0]concat +36 64 true[1 0 0 1 -1748 -530]@X +imagemask +!!",1!!!'"qu?^%s8Duu&-)Z[!$D1NJ,hh3#J^=(p]KFSJ+*Qu!.XJ=huJ8r!Up*hn,`"Ys6p'Y +!<;Nhn,WLX!Up*hn,`"Ys6p'Y!<;Nhn,WLX!Up*hn,`"Ys6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g +!<;Ng!!*&g!!!$!n,NFgs6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g!<;Ng!!*&g!!!$!n,NFgs6p!g +!<;Ng!!*&g!!!$!n,NFgs6p!gs8W-!_#OH7s1n[7s8Tn7s8W,7#QOi(^]FK)!!!$!n,NFgJ+*F< +!'frQ!!",1!!!!@n,NFg&+BQ!!"\Q!!!!8n!!!!(n,NFg"7Q9j!!D]j!!!,j!!!!$n,NFg!Up'h +!!2Qh!!!&h!!!!"n,NFg!Up'h~> +Q +q[1 0 0 1 0 0]concat +59 46 true[1 0 0 1 -1792 -530]@X +imagemask +!!!Q0!'gMA!!%NKi'78"!!3-"pcnf:!!iQ(r'15>!"])0r]gG@!$D+=+$]N#!$Ct9&&7l>!'g5Y +#J]a.!'g5Y"97ij!'g5Y!WVWh!'g5Y!WVWh!.XbD!<;Ng!.XbD!<;Ng!.XbD!.XJ +Q +q[1 0 0 1 0 0]concat +56 44 true[1 0 0 1 -1856 -531]@X +imagemask +!!!!]z!!%HJz!<3$!zrr<$!!!!'"J,fQL!!3+Mz"96.:!!!!$s1eU7!!!-$huE`W!!iP^z#QO8n +!!!!0s6p!g!!!Q0p](9o!$D48z+9$Wf!!!!`r-SJE!!#7]4obQ_!.Xc-zJ+u5.!!!$!n/hW1!!*&g +++O=k!WV'gJ,fQMs54E#QK;VhuE`^s*t40!!!Q0!!2Qh!"])0!Up'h ++8u6?p](:9rVurn!!",=!!%BH!'gA]!.4bH5PtK]4obS4p](:X!!%ND!!")@!<;Ng!$;1@s6p!g +++OClhuEa!^jlCa!!3-"J,fNK!WW1Ls8N'"s8RTKrr<*"s*t(K!!3-"~> +Q +q[1 0 0 1 0 0]concat +78 44 true[1 0 0 1 -1916 -531]@X +imagemask +!!!&X!!")@z"7Q9j5C`_6!!!,r!!#66z#P\9!5C`_6!!!9%!!%Maz&,ZD-J%u$a!!!Q-!!*&Wz&,lP/ +s53kW!!",?!!3,hz+9)g95Cie6 +rs/T(^^'o;s8W*(s8Tk>s8;osrs/T(^^'o;s8W*(s8Tk>s8;osrs/T(^^'o;~> +Q +q[1 0 0 1 0 0]concat +56 44 true[1 0 0 1 -1999 -531]@X +imagemask +s8VQgJ,fQKs6p#56(Z`#QK;rJ,fQ[rr=.V!!",?!"[uf +!'gA]#Oh]nJ+s!Gp]( +Q +q[1 0 0 1 0 0]concat +56 64 true[1 0 0 1 -2059 -511]@X +imagemask +!WE'!!!!!(s*t(L!!!Q0huE`W!'gMQz5D/k6!!!"K_#=<6!!%N,IfKHK!<:t!zs6q+\!!!$!n.3;7 +!!*&g#J^<>!.Wo3huE`WJ)CFe!!!!`^]X'+!!")@!Up'h!!!!"p](9o!!!#oz!!)osz!.4bHzIK0?J +!!!"Jz!!%KKz!<3$!zs*t(L!!!'"J,fQL!!3,8z!WTq8!!!!$s1eU7!!!-$huE`W!!iP^z#QO8n +!!!!0s6p!g!!!Q0p](9o!$D48z+9)0 +Q +q[1 0 0 1 0 0]concat +44 44 true[1 0 0 1 -2119 -531]@X +imagemask +5QCc`s1j-as8W,7J,fQKs1j-as8W,W5Q:]gs55"!!!%N,&-%.[5MueH^]5J7#QN]^&)[QihuF#? +!WVWh#N,U^p](ES!<;rs"5j0/qu?iW!'gG_!Up(2rr<)h!"]*[!Up("s1e[)!!iP>!Up'ks53qI +!!3,h!!!!"s7cQo!!*&ozJ,B9H!!#7_z+9)<@!!",@J,gYk&-%.[*rlQG^]5GV"979Z*rlECn,OO1 +!WVWh*rl<@p])Cd!.XnH++O>UrW"%U!'gG_+2@jurr +Q +q[1 0 0 1 0 0]concat +47 77 true[1 0 0 1 -66 -403]@X +imagemask +z!#tt=!!!!_z!.FnJ!!!"Jz!<)ru!!!#uz!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz ++2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKzrVuou!!)uuzqu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg +!!hun!!!!(huE`W!"[uf!!!!0^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#uz +!W2ot!!!&tz"8Dir!!!,rz#Oh]n!!!8nz&)[Ef!!!Pfz+2@jV!!"+Vz5C`_6!!#66zIfKHK!!%KKz +rVuou!!)uu!!!!"qu?]s!!2ut!!!!"p](9o!!Dur!!!!$n,NFg!!hun!!!!(huE`W!"[uf!!!!0 +^]4?7!$AuV!!!!@J,fQL!'bu6!!!!`z!.OtK!!!"Jz!<)ru!!!#sz!W2ot!!!&pz!VcWp!!!&hz +!8mhW!!!~> +Q +q[1 0 0 1 0 0]concat +54 44 true[1 0 0 1 -119 -411]@X +imagemask +5Q:ug_>j"Ss,[3?s7h*DTE"Zcr."a=s7cQkJ,bT0j8\m=rs/S?s6p-[!;lg]!!D]jquAq]"7Q +Q +q[1 0 0 1 0 0]concat +53 44 true[1 0 0 1 -171 -411]@X +imagemask +!!#7Yz!WW1MJ+*FCs8V'Xp])E9s82ik!'gM`s8VioJ,fQKs7cTon-B!nn,WK=!<;Ng!WN-"5MuMB +rVup?huEfU!!!Pf!!2ut!"[uf"8Dir&)[Eip](:)huEfU!!!Pf!!2ut!"[uf!WE'!&)[Egrr<$0 +huEcW^]4o'!!%N +Q +q[1 0 0 1 0 0]concat +46 55 true[1 0 0 1 -224 -411]@X +imagemask +!!!!`huE`W!WW&t!!!9(rr<$!&-)Z[!!",@s1eU75QCcA!!#7A5O\XQJ%uTi!!%M!#P\9!rr +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -277 -411]@X +imagemask +&-)Z^s8V"As8U.>s6r8Qs2Y0>n3?sQa8c2/5QCc(s8VR1s8R`Os53l!^]4W/!!"+V!!hun!$AuV +#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n ++2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j]n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+2@j] +n,NG1^]4W/!!"+V!!hun!$AuV#Oh]n+5d,(n,NG1huF#O!!",1!!hE^!$C\1&)[Ef+8>gHhuEa! +qu@8c!!",?!$C,!!$D4@+2@jV+918K^]4?Vs8W+L!!"+us8RTL!$BPerr<$!+2e-X!!!!@_#O00 +!!"+V+5d,!!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV!!!!@^]4?7!!"+Vz!$AuVz+2@jV +!!!!@^]4?7!$D6Vz5QAM!!!!!`s1eU7!!#7`J,fQL!$D5kz+9)<@!!!!~> +Q +q[1 0 0 1 0 0]concat +52 61 true[1 0 0 1 -329 -411]@X +imagemask +!!!Q!"979Z!.XtQs6p!hs8RlSn,NRjs6'FO!"],0p]'^_+92B@s53lAp`KOo!!%N,"979Z!.Vcb +s53kWrr<'!huEfX!!%N,!!3'!!'fBA!W2ot+5d,$qu?^=huElS!!!Pf!!i9!!"[uf#Oh]n&)[Em +n,NFnhuF#O!!!8^!!hun!!hE^#Oh]n#N,Ren,NFnhuF#?!!!8^!!hun!!hE^#Oh]n#N,Ren,NFn +huF#O!!!8^!!hun!!hE^"8Dir#N,Rap](:)huElW!!!Pf!!2ut!"[uf!WE'!+5d,!rr<$`huEcW +J,k)W!!%Ma!<:sW!'frRs53kW+8cBDhuE`fs8W,W!!!9(s7bFO!!E9$kMQ=?!<<(ShuE`W5Q:uH +!!!!(p]o^Wz#N,R^!!!!(huE`W!!!8^z!!hE^z#N,R^!!!!(huE`W!!!8^z!!hE^z#N,R^!!!!( +huE`W!!!8^z#QN]^!!!!0s53kW!!!Q0huE`W!"]+fz&-(Pf!!!!(s1eU~> +Q +q[1 0 0 1 0 0]concat +39 45 true[1 0 0 1 -390 -410]@X +imagemask +GQ7^D!.4nK^]=9ss7cTns8W*!s8W-!_#OH7s5 +Q +q[1 0 0 1 0 0]concat +28 49 true[1 0 0 1 -444 -446]@X +imagemask +!;lfs"93lO#D_4;%fu/"*WYs8*WUQf49.PF49-H'49-IRHiO\-HiO\mHiODeHiOE0IK0W24ob]C +4ob]S4ob]S4ob]S*rlE4*rl?2*rl?2*rl?2%tF]M%tF]M&&858&)[KH#OhiR#P\D:#Q+hB#L +Q +q[4.8 0 0 -121.2 640.28 496.08]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +75 70 true[1 0 0 1 -708 -411]@X +imagemask +s8Vio+92B@s5!.XnKn,NIf!!!!`qubjW +!.4bH!'gA`^]4?s!!!!`p]J;3!'C5]!'g5h^]4?s!!!!`p^b.?!#tt=!.XbSJ,fQh!!!"Ki"(>< +!$2+?!.WoKJ,fQZ!!!"Ki#Vju!"Ju/!<:su!!!!/!!!$!^ch_u!"XS[!<9hu!!!!$J,fTL^cVSs +!!@`O!WR[4!!!!$J,fWMJ33f3!!E9$s8RUs!!!!"s8W-!J9V%o!!3-"s8N(D!!!!"s8W-!!-eJD +!!(pW"9/AjzhuF;f!:Tsg!!(pW&,uY!zn,O!u"7Q9j!!$s<+8uB#zDu_!Z"5j.Z!!$s<+8>rrz2uk&q +#CldS!!"tY5PPJ6z2ul2<#CldS!!#1_5O]26z%KJ`_%fcS0!!!K/J+*sKz%KM":%fcS0!!!N0J)DCKz +#6=e^*WQ0?!!!6(s54puz#6=e>*WQ0?!!!7Ss1geuz"+^Ee49,?]!!!+Rs1g_sz"2k.hqu?]s!!!,= +s+("Iz!Q4qfp](9o!!!&?rW)]nz!U'F_p](9o!!!&_rW2coz!:TmfhuE`W!!!#fqubjWz!:TgfhuE`W +!!!!`qua_7z!'g5\^]4?7!!!!`p]nS7z!'g5`^]4?7!!!!@p]l +Q +q[1 0 0 1 0 0]concat +66 69 true[1 0 0 1 -791 -411]@X +imagemask +s8W-!s8N'!!<<*!s8W,o!!*'!s8W-!rVurus8W-!s8RTL!.XJKJ.M\ +Q +q[1 0 0 1 0 0]concat +60 74 true[1 0 0 1 -869 -408]@X +imagemask +!!!!0s*t(L!!!"Ks7cQo!!!"Ks7cQo!!!9(s8Duu!!",?!'bu6!!#7_!'fBA!!3,h!"\Q!!!E7O +!!Dur!!E7O!!%6D!!iOS!!#+]!"]*[!!"&?!'gL6!!"&?!.X0^!!!O[!<;54!!!PF!<:)i!!!,: +!WRq*!!!&8!WRq*!!!&X"94.,!!!&X"9/UV!!!&X&,ulb!!!#W&,lfa!!!#W&,lfa!!!#g+8uLq +!!!"<+8uLq!!!"<5PPJ6!!!"<5PPJ6!!!"<5PPJ6!!!"<5PPJ6!!!"<5O\o.zJ+*\nzJ+*\nzJ+*\nz +J+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nzJ+*\nz +5O\o.!!!"<5PPJ6!!!"<5PPJ6!!!"<5PPJ6!!!"<5PPJ6!!!#g+8?(k!!!#g+8uLq!!!#g&,lfa +!!!#g&,lfa!!!&h&,ulb!!!&h"9/UV!!!&h"9/UV!!!&h!WRq*!!!,j!WRq*!!!,j!WU2j!!!Q! +!<;54!!",1!.X0^!!",1!'fXs!!",1!"]*[!!#7Q!!iOS!!%N +Q +q[1 0 0 1 0 0]concat +69 69 true[1 0 0 1 -939 -411]@X +imagemask +s8W-!s8Duu!<<*!s8W,7!!*'!s8W-!p](g95O]0`!$C\1 +!'fr`!!#7A!!#7Q%fcY1J,fR6n.,L$s*t(LJ+*u!5Q:]`s8W-!s8Vus!<<*!s8W,o!!*'!s8W-! +^]4B7s8W-!p](9os8W-!s7cQo!!~> +Q +q[1 0 0 1 0 0]concat +67 69 true[1 0 0 1 -1018 -411]@X +imagemask +s8W-!s8W,u!<<*!s8W-!rW)uus8W-!s8E#us8W-!s8W&u!.XJKJ,g,[J,hh'%fcS0s*t)6n.,L! +!.TM!5O]0`!!"*k!'fr`!!!!@J,hh'%fcS0++O>Un.,L!!"XS[5O]0`!!!O[!'fr`!!!!$J,hh' +%fcS0"2Fn$n.,L!!!C":5O]0`!!!,:!'fr`!!!!"^]6Ug%fcS0!Pe\"n.,L!!!0k85O]0`!!!&8 +!'fr`!!!!"^]6Ug%fd(>!T3rBn.,L/!!(pW5O]0`%KHLe!'fr`!"Ju/huH"2%fd(>!8miAn.,L/ +!!(pW5O]0`%KHJ/!'fr`!"Ju/!!#7Q%fd(>!!!!`n.,L_z5O]0`4obQ_!'fr`!<)ru!!#7Q&-)V/ +!!!!`n.5Quz5O]3`rVuou!'fr`s8Duu!!#7Q%flS/!!!!`n.,Nuz5O]0`4obQ_!'fr`!'UA_!!#7Q +%fd(>!!!!`n.,L/z5O]0`%KHJ/!'fr`!"Ju/!!#7Q%fd(>%KHJnn.,L/!"Ju/5O]0`%KHt=!'fr` +!"Ju=!!#7Q%fcS0%KHJnn.,L!!$2+?5O]0`!!"&?!'fr`!!!!=!!#7Q%fcS0)uot'n.,L!!#tt= +5O]0`!!!u=!'fr`!!!!]!!#7Q%fcS049,@Gn.,L!!'C5]5O]0`!!#+]!'fr`!!!"H!!#7Q%fcS0 +qu?^]n.,L!#Q+Q%J+*u!!$Ct9s8W-!s8W,o!<<*!s8W-!p]1?os8W-!s7cTos8W-!s8Vios8W-! +s8W,o!!~> +Q +q[1 0 0 1 0 0]concat +63 69 true[1 0 0 1 -1091 -411]@X +imagemask +s8W-!s7cQos8W-!s7cQos8W-!s7cQos8W-!s7cQo!.XJKhuE`W!'fr`z!'fr`z!'fr`z!'fr`z!'fr` +z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`!"Ju/!'fr` +!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!'UA_ +!'fr`!'UA_!'fr`!'UA_!'fr`!<)ru!'fr`s8Duu!'fr`s8Duu!'fr`s8Duu!'fr`s8Duu!'fr` +!<)ru!'fr`!'UA_!'fr`!'UA_!'fr`!'UA_!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/!'fr`!"Ju/ +!'fr`!"Ju/!'fr`!"Ju=!'fr`!"Ju=!'fr`!"Ju=!'fr`!!!!/!'fr`!!!!/!'fr`!!!!?!'fr` +!!!!?!'fr`!!!!=!'fr`!!!!=!'fr`!!!!=!'fr`!!!!=!'fr`!!!!]!'fr`!!!!]!'fr`!!!!] +!'fr`!!!!]!'fr`!!!"H!'fr`!!!#s!'fr`!!!9%!.XJKJ,g\ds8W-!s8W,os8W-!s8W,os8W-! +s8W,os8W-!s8W,os8W-!s8W,o~> +Q +q[1 0 0 1 0 0]concat +68 74 true[1 0 0 1 -1163 -408]@X +imagemask +!!!!(s*t(LzJ,f!g:s+c+)!$Ct9!WRq*!!",9!!iOZJ,fQkp](R!#CldS+8>gHrs+&S!$Ct9&,ZZ_!!",9!"\u4 +J,fQkp])E6#CldS+8>gXr!.`P!$Ct95PPJ6!!",9!'g5`J,fQkp]*PR#CldS+8>h#p]l +Q +q[1 0 0 1 0 0]concat +75 69 true[1 0 0 1 -1240 -411]@X +imagemask +s8W-!s24m:s5 +Q +q[1 0 0 1 0 0]concat +44 69 true[1 0 0 1 -1320 -411]@X +imagemask +s8W-!s7$'gs8W,gs8W-!s7$'gs8W,g!.XbK^]4?Vp]l +Q +q[1 0 0 1 0 0]concat +51 72 true[1 0 0 1 -1367 -408]@X +imagemask +!'gM_zs8W+L!!!$!s8RTL!!hH^L[Y9D%fei0HiO-g!'fCj!!"&?5PRHn!'C5lr#`]S49,oi&&800 +i!9/^^]=E(#Q=h`!<;g!rWD'Ys7cj!!Up*hp]LNsn,WL`"9/Aj!<;frrrDNgs7c]r!:U!gp]LNr +n,P]B"9/Aj!$C,$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg +"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj +!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$ +rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg +!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$ +!:Tsg!!E6$n,NFg"9/Aj!!!!$rrDNg!!!-$!:Tsg!!E6$n,NFg&,uY)!!%NKs8W,W!.Y%Ks8V!W +J,fQKs53m,s8W-!huJ9,s8W,W~> +Q +q[1 0 0 1 0 0]concat +75 69 true[1 0 0 1 -1427 -411]@X +imagemask +s8W-!s1gl!s5g9 +!'fr`!!#7Y!!!!`n.,L!5O\XQ!'fr`!!*&g!!!!`n.,L!s6p!g!'fr`!!3,X!!!!`n.,L"s53kW +!'fr`J-#\#!!!!`n.4FZs*t(L!'fr`n,r]@!!!!`n.5!nrr<$!!'fr`GR+6K!!!!`n.0aKrVuou +!'fr`4:hDk!!!!`n.-QNqu?]s!'fr`+2@^R!!!!`n.-&Equ?]s!'fr`"98,r!!!!`n.,X$huE`W +!'fr`!WV'X!!!!`n.,O!^]4?7!'fr`!<9h7!!!!`n.,MK^]4?7!'fr`!'bu6!!!!`n.,L`J,fQL +!'fr`!"T&0!!!!`n.,L(J,fQL!'fr`!!g:>!!!!`n.,L$^]4?7!'fr`!!2!X!!!!`n.,L"huE`W +!'fr`!!)co!!!!`n.,L!49,?]!'fr`!!#1_!!!!`n.,L!*WQ0?!'fr`!!!N0!!!!`n.,L!%fcS0 +!'fr`!!!7S!!!!`n.,L!"5j.Z!'fr`!!!,j!!!!`n.,L!!:Tsg!'fr`!!!"D!!!!`n.,L!!-eJD +!'fr`!!!!]!!!!`n.,L!!.FnJ!'fr`!!!"K^]4@an.1$L"97ijs8W-!s1f0Fs+(.Ls8W,7&-)Z[ +s8W-!s1f0Fs+(.Ls8W,7&-)Z[s8W-!s1f0Fs*t~> +Q +q[1 0 0 1 0 0]concat +61 69 true[1 0 0 1 -1510 -411]@X +imagemask +s8W-!s8W,Ws8W-!s8W,Ws8W-!s8W,Ws8W-!s8W,W!.XJKJ-#].!'fr`!!#7A!'fr`!!!Q!!'fr` +!!!8n!'fr`!!!8n!'fr`!!!,j!'fr`!!!,j!'fr`!!!#g!'fr`!!!#g!'fr`!!!#g!'fr`!!!#g +!'fr`!!!" +Q +q[1 0 0 1 0 0]concat +92 69 true[1 0 0 1 -1578 -411]@X +imagemask +s8W-!s*u'hs8W,gs8W-!s*u'hs8W,gs8W-!s+!95s8W,gs8W-!s+!95s8W,g!<;O!J,hb5!<;Ng +!.XJK!!#1_!'fBA!'fr_!!*$!!'fBA!'fr_!!*$!!'fBA!'fr_!!*$!!'fBA!'fr_!!3+M!'fBA +!'fr_!!3+M!'fBA!'fr_!!3+M!'fBA!'fr_!!3+M!'fBA!'fr_!!E5Y!'fBA!'fr_!!E5Y!'fBA +!'fr_!!E5Y!'fBA!'fr_!!iMm!'fBA!'fr_!!iF@!'fBA!'fr_!!iF@!'fBA!'fr_!!iF@!'fBA +!'fr_!"]!P!'fBA!'fr_!"\ia!'fBA!'fr_!"\ia!'fBA!'fr_!"\ia!'fBA!'fr_!"\ia!'fBA +!'fr_!'fB]!'fBA!'fr_!'fB]!'fBA!'fr_!'fB]!'fBA!'fr_!.WoJ!'fBA!'fr_!.Vco!'fBA +!'fr_!.Vco!'fBA!'fr_!.Vco!'fBA!'fr_!<9hFJ3Vrl!'fr_!<7QOJ3Vrl!'fr_!<7QOJ3Vrl +!'fr_!<7QOJ3Vrl!'fr_!WN-#^d$`W!'fr_!WN-#^d$`W!'fr_!WN-#^d$`W!'fr_"9/?%i'6-" +!'fr_"9&9#i'6-"!'fr_"9&9#i'6-"!'fr_"9&9#i'6-"!'fr_&,6,)E'N7\!'fr_&,6,)E'N7\ +!'fr_&,6,)E'N7\!'fr_&,6,)E'N7\!'fr_&,6,)E'N7\!'fr_+7K713'Z=$!'fr_+7K713'Z=$ +!'fr_+7K713'Z=$!'fr_5O\XQ5!Rs*!'fr_5MuMA%R8kO!'fr_5MuMA%R8kO!'fr_5MuMA%R8kO +!'fr_J%u$a#=%,H!'fr_J%u$a#=%,H!'fr_J%u$a#=%,H!'fr_s1eU7#J]0s!'fr_s*t(L"2Eao +!'fr_s*t(L"2Eao!'fr_s*t(L"2Eao!'fr`s*t(L"979Z!.XJKrVuou!WVWhs8W-!rVuou!WW2h +s8W-!rVuou!WW2hs8W-!qu?]s!<<)gs8W-!qu?]s!<<)gs8W-!qu?]s!<<)g~> +Q +q[1 0 0 1 0 0]concat +75 69 true[1 0 0 1 -1678 -411]@X +imagemask +s8W-!s*t(M^]=E7s8W+L!!C":s8W-!s*t(O^]=E7s8W+L!"ZjF!<;O!J,fQ[^]4@an.,L!!"ZjF +!'fr_!!!!@^]4@!n.#Eu!$AuV!'fr_!!!!`^]4@!n.#Eu!'e7!!'fr_!!!"K^]4@!n.#Eu!.Vca +!'fr_!!!"K^]4@!n.#Eu!<9h7!'fr_!!!$!^]4@!n.#Eu"96.:!'fr_!!!-$^]4@!n.#Eu"96.: +!'fr_!!!9(^]4@!n.#Eu#QMR>!'fr_!!!Q0^]4@!n.#Eu&-'EF!'fr_!!",>^]4@!n.#Eu+8rtT +!'fr_!!#7Z^]4@!n.#Eu5OlMh!'fr_!!*&h^]4@!n.#Eus7*l)!'fr_!!3,Y^]4@!n.#F!s5C`n +!'fr_!!3+N^]4@!n.#F#s+.rc!'fr_!!E7P^]4@!n.#F'rrKn8!'fr_!!iN)^]4@!n.#F'rW0e7 +!'fr_!"]&0^]4@!n.#F/quOS5!'fr_!'gA^^]4@!n.#F_quOS5!'fr_!.XbE^]4@!n.#GJp]8/1 +!'fr_!.Wo-^]4@!n.#HuhuUUn!'fr_!WV'Y^]4@!n.#L!^]D4N!'fr_"93lP^]4@!n.#R#J-!Fc +!'fr_"9/?%^]4@!n.$!/!!0k8!'fr_&,uV1^]4@!n.$Q>!!0k8!'fr_+8u6@^]4@!n.$Q8!!0k8 +!'fr_5PP3Z^]4@!n.%\P!!0k8!'fr_J+*F=^]4@!n.'s;!!0k8!'fr_s53kX^]4@!n.,KV!!0k8 +!'fr_s1eU8^]4@!n.5Q7!!D-Z!'fr`s1eUFn,NH +Q +q[1 0 0 1 0 0]concat +66 74 true[1 0 0 1 -1763 -408]@X +imagemask +!!!!@rr<$!zs8V!Wz!<<)Wz!"\i,rVuou!!#7A!<7QL!!!$!huNf8!!!!$s*t(kp](9o#QK;S&,ZD- +!!iOS!!iE%!!!Q0J,f]N!!!!`kC!!%Ma!!*&>J,fS!huEcWLO]@) +5MuMBs+c+)!'frQ!WNCT!!",1!!E6+J,fQkp](j)#CldS+8u6NrWdrR!"]&/&,lfa!!!Q/!"]&6 +J,fQ[rW"&8#CldS"9/?Cp]l +Q +q[1 0 0 1 0 0]concat +63 69 true[1 0 0 1 -1839 -411]@X +imagemask +s8W-!s1eU7s8W-!s1eU7s8W-!s1eU7s8W-!s1eU7!.XJKJ,fQL!'fr`z!'fr`z!'fr`z!'fr`z!'fr` +z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z +!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`z!'fr`s8N'!!'fr`s8Tk7!'fr` +s8Vus!'fr`!.XnH!'fr`!!iK'!'fr`!!3+M!'fr`!!3,X!'fr`!!*&g!'fr`!!#7Y!'fr`!!",9 +!'fr`!!",9!'fr`!!",=!'fr`!!",=!'fr`!!!Q/!'fr`!!!Q/!'fr`!!!Q/!'fr`!!!Q/!'fr` +!!!Q/!'fr`!!!Q/!'fr`!!!Q/!'fr`!!!Q/!'fr`!!!Q/!'fr`!!!Q-!'fr`!!",=!'fr`!!",= +!'fr`!!",9!'fr`!!#7Y!'fr`!!#7Q!'fr`!!*&W!'fr`!!3+M!'fr`!!iOS!.XJKJ:IS!s8W-! +s8Vuss8W-!s8V!Ws8W-!s8RTLs8W-!s6p!gs8W-!s6p!g~> +Q +q[1 0 0 1 0 0]concat +66 91 true[1 0 0 1 -1914 -391]@X +imagemask +z!!#7!z!!!!`^]4?7zs6p!gz"98,rz!!iQ'z!!!9(rr<$!!!!!0s8N'!z&-)Y0z!"],0J,fQL!!!Q0 +s*t(L!!!!0s8RTLz+92@kz!$C\p^]4?7!!",!&&8/F!!!!@J-Wjiz++OI/z!$?^n^]4?7+9*D_"2Fm: +!<<)u!!0k8!!*'!rVuu7!!!Q/"9&9$^]4@!quHbIzs82lshuE`W"98,r5PP3Y!!iPn!<;rs!!!9( +n,WLd!!!!0s6p$KrVuou5NhM:i;\<-!.X2,!T=!n!!%Mhqua`a^]4B7a1_eoJ)C;,s+d0NJ3Vrl +!WNCcrr=/1!!3*)JbT3en,NRj#D)XM+8>gHrs+&S!$D1?&,lfa!!!Q/!"]&6J,fQ[rW!K.#CldS +&,lPNp]lrWdrR!"]&/ +"9/UV!!",9!!E6+J,fQkp](?p#CldS+7K72s+c+)!'frQ!WRq*!!#7Q!!*&>J,fS!huEb,a++-i +J%u$aJ&d'>!.Vca!'fXs!!*%L!!!Q0J,f]N!!!!0s*t(SrVuou#QK;S&,ZD-!!3+M!$C\1!!!$! +J,g\Lz+5d/!z!"\i,rVuou!!!Q0s8Duuzs8V!Wz!$D4@!!!!~> +Q +q[1 0 0 1 0 0]concat +75 72 true[1 0 0 1 -1990 -408]@X +imagemask +z!!!!0p](9oz!.Y"Kz!!!"KrrE*!s8W,7"9&OUs8W-!s1em;"+^FOs8W,7&,ZOFs8W-!s1f`S"2Fnd +n.1$L5PP9;!'fr`!!#7Y!T3rBn.,L!5PP6:!'fr`!!*&o!8miAn.,L!s7cTP!'fr`!!*&g!8miA +n.,L!s6p$H!'fr`!!*&g!!!!`n.,L!s6p!g!'fr`!!*&g!!!!`n.,L!s6p!g!'fr`!!*&g!!!!` +n.,L!s6p!g!'fr`!!*&g!!!!`n.,L!s53kW!'fr`!!*&W!!!!`n.,L!s53kW!'fr`!!*&W!!!!` +n.,L!s53kW!'fr`!!*&W!!!!`n.,L"s*t(L!'fr`!!3+M!!!!`n.,L"s*t(L!'fr`!!E6$!!!!` +n.,L(rr<$!!'fr`!!iK'!!!!`n.,L0qu?]s!'fr`!.Wo,!!!!`n.,R"huE`W!'fr`s8RTL!!!!` +n.5R!z!'fr`s8N'!!!!!`n.,O!huE`W!'fr`!"\u-!!!!`n.,L0rr<$!!'fr`!!E7O!!!!`n.,L! +s53kW!'fr`!!#7A!!!!`n.,L!5O\XQ!'fr`!!",9!!!!`n.,L!+8c*=!'fr`!!",=!!!!`n.,L! +&,lP/!'fr`!!!Q/!!!!`n.,L!&,lP/!'fr`!!!Q/!!!!`n.,L!&,lP/!'fr`!!!Q/!!!!`n.,L! +&,lP/!'fr`!!!Q/!!!!`n.,L!&,ZD-!'fr`!!",=!!!!`n.,L!+8c*=!'fr`!!#7Y!!!!`n.,L! +5PP3Y!'fr`!!#7Q!!!!`n.,L!s53kW!'fr`!!E7O!!!!`n.,L0s*t(L!.XJKJH,TK!!*'!s8W-! +p](9os8W-!s8Tk7!!*'!s8W,uzs8W-!s1eU7!!*'!s8W,7z~> +Q +q[1 0 0 1 0 0]concat +46 74 true[1 0 0 1 -2070 -408]@X +imagemask +Du_!X!!%6Es8Tk7GQIjE^]8Tas8VQgHp?P=quD3Gi.(b,J,]Lns+#Ug!-j"/J)C!!*'!s1eU>s8W,7!'gM`s*t+Ls8W*!!<<*!qu?cts8VQg +#QOi(^]4oFs8Tk7&-)\/!!",@s1eU7+926=!!#7`qu?]s5Q#m/!!#7]HiO-HJ,"Bk!!%N +Q +q[1 0 0 1 0 0]concat +67 69 true[1 0 0 1 -2124 -411]@X +imagemask +!"],0s8W&u!!!Q0s8W,u!!!!0s8W-!rVuou&-)\0s8Duu!!!9(J:7Iu!!!!$s+#=oz"93mrz!!E7O +GQ7^D!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D +!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$ +J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o +!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!!!!$s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!!!!$ +s+#=oz"93mrz!!E7OGQ7^D!!!-$J9V%o!8mhZs+#=o!8uc8"93mr!!(s8!!E7OGQ7a%huElZJ9V%o +i8=S;s+#=o!9!VP"93mr!!2$Q!!E7OGQ7d&2uj'\J9V%p^c2;rs+#=o!PgYp"93mr!!0kp!!E7O +GQ7c[49,K`J9V%r^cVT!s+#=o"2I)#"93mr!"Zk/!!E7OGQ88i56(fcJ9V&)^d!>Os+#=o5JTMA +"93mr!.Vd+rWE1NGR+8!+92B@s8W-!J04gks8W-!s*u3ks8W-!s8RTks8W-!s8W+L+92B@s8W-!J,~> +Q +q[1 0 0 1 0 0]concat +73 72 true[1 0 0 1 -2199 -408]@X +imagemask +zs6p!gz!"],0z!!!!0s8N'!z!'gM`^]4?7!!!'"J.MDTz#QK;bqu?]s!!!Q0!!3'!zJ,]KK56(Z` +!!%N;!!!N0zs3CZF#CldS!!*%[!!!,Z!!!!"s,R-["7Q9j!!E63!!!#g!!!!0rXSu/!;HNo!"]&> +!!!"D!!!!0p^[?)!&srY!$CtH!!!!]!!!!@p^[?)!'C5]!$CtH!!!!=!!!!`p^[?)!$2+?!'fr` +!!!!?!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!/!!!!`n.,L!!"Ju/!'fr` +!!!!/!!!!`n.,L!!"Ju/!'fr`!!!!@J,fR6n.,L!!'e7!!.XJKJ,fTLn,WLgs8W,7+92@ks8W-! +s1f`Vs+(.Ls8W,7+92@ks8W-!s1f`Vs+(.Ls8W,7+92@k~> +Q +q[1 0 0 1 0 0]concat +75 71 true[1 0 0 1 -2278 -409]@X +imagemask +zJ)C;,z!!%N,z!!!!"s6p!gz!!3,hz!!!!"s6p!gz!!E8rz!!!!$s7cQoz!!E6\z!!!!$s#9uYz +!!iKCz!!!!(rYtn^]4@!p]l!'frXJ,fQS^]4@an.1$L!!hE^!.XJKJ,fQ[n,NLh +i#f`7!$D4@s8W-!rr<*"s5 +Q +q[1 0 0 1 0 0]concat +105 71 true[1 0 0 1 -2359 -409]@X +imagemask +!!!!0qu?]s+8>g9z!"\u-!!",9z!!!!0rVuou5PP3Yz!'gG_!!#7_z!!!!`rVuou5Q1W_z!'gG_ +!!#7_z!!!!`rr<$!J,TEJz!'gJ`!!%N:z!!!"Kk5YJ^J*-e3z!.X/3!!%N3z!!!"KkCJ,fQL!!!$!_gh^es20?ez!<9re!!*&:J,fQL!!!$!_gh^es20?ez!WTsn!!E7R^]4?7 +!!!'"^u,1ps+A)ez!WR].!!E7P^]4?7!!!'"JFEODs+.rcz!WR[h!!iK(^]4?7!!!-$!,qoCrW(jVz +"9/Aj!!iK'huE`W!!!-$!;HO)rW(jVz&,uY)!"]&/p](9o!!!Q/!;HO)quA\Vz&,lS(!"\u-2uipY +!!!Q/"8Dj,quA\Vz&,l\/!$Ct92uipY!!",?"8i-@p]*DVz+8?*=!$Ct9)uos=!!",9#G(o[p])96z ++8?)$!'frQ)uos=!!#7Q#EAdKn,Npuz5O]2D!'frQ%KHJ/!!#7Q%upWSn,NpuzJ+*sZJH,*=%fcS0 +!!%N<%g.@^huF8fzJ)Ch>JH+O-#64`(!!%N,*WprmhuEu^zJ)D@K_>f#c#64`(!!*&W*Wa+WJ,fh)z +s1gf!_>f#c"+U@O!!*&74os^DJ,f\%zs1g_tj8XW0"+U@O!!E8:494FA!!!#W!!!!$s+!33j8T)Z +!8mhW!!E7OquGdW!!!#W!!!!$s+'kEp\t3n!8mhW!!iOSp],O;!!!#g!!!!(rW)]nGQ%RB!,qo< +!!iK(huJ!#!!!"!!!!Y!!!!0qua_75PtK]!&srY!$D+@^]6Uo!!!!]!!!!@p]J;35PP3Y!#tt=!$Ct@^]6Uo +!!!!=!!!!@p]l +Q +q[1 0 0 1 0 0]concat +80 69 true[1 0 0 1 -2469 -411]@X +imagemask ++92B!#QOi(s8O2@s54.^s8W-!+92B!#QOi(s8O2@s54.^s8W-!!'gJ`!.Y$!It.M(qu?^=rr@EH +!!2ip!$D1?GQ7^DGQ7^crW)]n!!%BH!'gG`p](9o49,A2quQ9e!!")@!.XJChuE`W*rl:jn-@kO +!!!7S!<:s^^]4?7"2Fp:i"*U'!!!,:!WV("^]4?7!T44_^`NOV!!!#g#QMS'z!:U6nJ3Er5!!!"H +&,uVlz!#uOL!.4bH!!!!?+9)=gz!"V +!!!!"s6p9/z!!E8Z%tFW[!!!!$s54uLz!!E8:*rl9@!!!!(rr=)?z!!iN(IK0?J!!!!0rr@KJz!$D1? +qu?]s!!!!@rW2osz!$D+>n,NFg!!!"Kp]9:Qz!.XbGhuE`W!!!$!p]KFSz!WVWo^]4?7!!!'"n/oFGz +!WTqWJ,fQL!!!-$J0+akz"93m9J,fQL!!!9(J3UgLz+9)=j^]4?7!!",@!<(gUz+8u98huE`W!!#7] +!:]IXz5PtQOHiO-H!!%NH!UtO*rlDY!!!!(s+!95!Up'h!"]*[IK0@m!!!!0rr@EH!-eJD!$D+=GQ7_+!!!!@quQQm +!.FnJ!'gA`p](;D^]4E8p]LKq"98,rs8W-!s54Ffs5 +Q +q[1 0 0 1 0 0]concat +77 69 true[1 0 0 1 -2553 -411]@X +imagemask +!!#7`s8W,Wz5QCc`s53kW!!#7`s8W,Wz5QCc`s53kW!!!!`qubjWz!"\u0^]4?7!!!!0qua_7z!"\u0 +^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0qua_7z +!"\u0^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0qua_7z!"\u0^]4?7!!!!0 +qua_7z!"\u0^]4?7!!!!0qua_7z!'gA`^]4?7!!!!`qua_7z!.XbG^]4?7!!!"Kp^c9_z!.Wo;huE`W +!!!$!i"+`Gz!<9hUDu]k +Q +q[1 0 0 1 0 0]concat +64 69 true[1 0 0 1 -2640 -411]@X +imagemask +J,fQKs8W,uJ,fQKs8W,uJ,fQKs8W,uJ,fQKs8W,u5PPKA!!iQ'5PP?=!!#7_+8uB3!!!Q/+8u98 +!!!-#+9)?9!!!-#&,uY-!!!'!"93n!!!!#u"93m6!!!"J!WTr!!!!!_!WTqV!!!!`!WV("J,fR6 +!<:t!^]4@!!.XbS^]4?F!.XbG^]4?F!'gA`huE`f!'gA^huE`f!'gG`n,NG!!"]&0p](:!!"])0 +p](:!!!iN(p](:!!!E7OIK0?Q!!E7O4obQf!!E8Z56(Zg!!3,X5C`_6!!3,h%tFW[!!*&g%tFW[ +!!#7Y#J^<>!!#7Y"2Fm:!!#7]"5j.Z!!",="8Dir!!",?!VcWp!!!Q/!VcWp!!!9'!;lfs!!!9( +J33f3!!!9(^ch_u!!!-$^cqf!!!!-$i#_q!!!!$!i#_q!!!!"Ki"(>g9&,lV!+9-ik&,u\*+926=#QFf!+92B@s8W,u+92B@s8W,u+92B@s8W,u+92B@ +s8W,u+92B@s8W,u~> +Q +q[1375.2 0 0 -4.8 7.88 316.08]concat +1 1 false[1 0 0 -1 0 1]@X +imagemask +!!~> +Q +q[1 0 0 1 0 0]concat +33 26 true[1 0 0 1 -149 -247]@X +imagemask +!VccT!!iN7p](g0h])V;!WEQ/495?j!'C71#69,O4pM(8!$;FGHiP5jJ:%>=!!%BH%fcTW!"XS[ +HiO\-!.FnQJ,k#u#Cle56(r(!$;1C^]4mq"5j.iJ-4^0#J^T&!!D-ahuEfI&+BQ!Hp-s! +!'g8:!!!8^!!!~> +Q +q[1 0 0 1 0 0]concat +59 55 true[1 0 0 1 -188 -219]@X +imagemask ++92*9!!'e7+92*9!!2!X!WRZM!!2!X!.FnJ!!D-Z!'C5]!!hE^!'C5]!"[uf!#P\9!"[uf!#P\9 +!$C,!!#P\9!'fBA!#P\9!'fBA!#P\9!.Wo,!#P\9!<:sW!#P\9!WV'X!#P\9!WM!W!#P\9"8q'W +!#P\9#Q3K[!#P\9#Pd3W!#P\9&+JKW!#P\9+5l&W!#P\95N(H"!#P\95JZ1W!#P\9It6GW!#P\9 +rrCsW!#P\9rrCsW!#P\:rW(jV!#P\ +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -251 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -293 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -369 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +42 35 true[1 0 0 1 -408 -218]@X +imagemask +!!!K/z*WQ0?!!")@z56(Z`!!#66z5C`_6!!%M!zJ%u$a!!*#6zr87PT!!3#U!!!!"r*TL)!!2k6 +!!!!$pb2[J!!D^M!!!!(n2LCJ!!hF%!!!!0i#D^s!"[ur!!!!0^^^>E!$Au\!!!!@J-Q&S!'bu9 +!!!!`!!@`O!.OtNJ,fS!!!0k8!.FnK^]4B6!!'e7!;lfshuEfU!!)Kg!VcWpn,NRc!!)co#Q+Q& +rW%HJ^^'nTJ,d:hs1e~> +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -448 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +20 54 true[1 0 0 1 -490 -219]@X +imagemask +5QC4;s6p'g!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?cq!!iE%+8c*\qu?iszzzzzzzzn,NLa!!E-!"8i-$ +qu?is!!E-!!VcWpn,N~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -514 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -538 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +43 56 true[1 0 0 1 -580 -218]@X +imagemask +!!!9!!!!#W5Q:]`!8r)D^]4B)i!80?!:t^Ap]( +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -627 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -651 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +29 56 true[1 0 0 1 -732 -219]@X +imagemask +5QCW]5QCW]!WN-"!<)ru!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs5QC``5QC``5QC``!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!.4bH!.4bH!.Fq+!.G%>!'UM[!$;= +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -758 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -800 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -876 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -900 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +58 35 true[1 0 0 1 -939 -218]@X +imagemask +!!"\Q!It.M!!%6D"2Fm:!!%6D"2Fm:!!)os#N,R^!!)os#N,R^!!)os#N,R^!!3'!&+BQ!!!3'! +&+BQ!!!E6$+1M:N!!E6$+1M:N!!Dfm*uFtX!!i+G59'Y'!!hP74raP&!!hJ54q%Dk!"\&(ILZ>X +!"Zl\Hk$,V!$B#7Hj9WO!$?aLp]gd!!$?`!p]CKr!'c!Qp]H$H!'^H +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -998 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -1035 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -1112 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -1136 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -1173 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -1206 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -1238 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -1275 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +30 37 true[1 0 0 1 -1307 -218]@X +imagemask +0G!XQ3.Lo-4R`l34hq085C`dm56(]Q4obS-49,A+49,A+2uir'2uir'2uir+2uisR0E;.K!!!,r +!!",9!!3,h!'gMA!WW2X"98CO#QOf(&-)P-+917!5PP3Y5JR7!56([k4obRj49,@h49,@h49,B> +49,B>*WQ6!%KHUh%tFoC"5k9Z!<;uT!$C]<~> +Q +q[1 0 0 1 0 0]concat +15 9 true[1 0 0 1 -1341 -219]@X +imagemask +!-ePB!WE3#"9&E%!WE,t!-e~> +Q +q[1 0 0 1 0 0]concat +51 54 true[1 0 0 1 -1448 -219]@X +imagemask ++92B1!!!!@s8VQg!!",@s6p!g!!%NJ,g\, +!!!O[!'e7!!$?^k5JR7!5C```huElZJ04gks8W+L+92B@s8RTks8W-!rr<~> +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -1496 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -1538 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +67 35 true[1 0 0 1 -1614 -219]@X +imagemask +5QC4;s6tO +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -1685 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -1727 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +44 55 true[1 0 0 1 -1759 -219]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp]( +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -1806 -218]@X +imagemask +!!*$!!!!9(huEa!_"[m0IfMS2!;lg,!!2ip#64kq!!@`Vn,NQ@#N,R_^^o?'!Pf5]!!'eV^]4@" ++2@jV!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!@J,fQL ++2@jV!$AuV!!!PF!"T&?huGul#N,SHJ-59@5C`k2!'bu7quAs3!<)s/J,hfa56([*s8Duu#QOQ! +!!*&7!!~> +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -1843 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -1885 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -1954 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +42 34 true[1 0 0 1 -1991 -219]@X +imagemask +s8E!_s1n[6!'gM!&,ZDLqu?io!"\Q!!;HO)huEb%!"ZjF!'C6'J,fQh!'^G`!"K!Y!!!!(!<)ru +!!@cL!!!!$_>"!1!!1"4zkO8HO!!%N,z5JR7!!!#66z56(Z`!!%KKzrr<$!!!3+M!!!!"q7lt1!!E&T +!!!!(nF-DX!"\"4!!!!@^c2;o!$?_2!!!!`!"Ju/!.OtZ!!!#u!"ZjF!WE'0huElZ!"\i)J,b$` +s+#V!J3X'a~> +Q +q[1 0 0 1 0 0]concat +20 54 true[1 0 0 1 -2035 -219]@X +imagemask +5QC4;s6p'g!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?cq!!iE%+8c*\qu?iszzzzzzzzn,NLa!!E-!"8i-$ +qu?is!!E-!!VcWpn,N~> +Q +q[1 0 0 1 0 0]concat +30 37 true[1 0 0 1 -2059 -218]@X +imagemask +0G!XQ3.Lo-4R`l34hq085C`dm56(]Q4obS-49,A+49,A+2uir'2uir'2uir+2uisR0E;.K!!!,r +!!",9!!3,h!'gMA!WW2X"98CO#QOf(&-)P-+917!5PP3Y5JR7!56([k4obRj49,@h49,@h49,B> +49,B>*WQ6!%KHUh%tFoC"5k9Z!<;uT!$C]<~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -2093 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +30 37 true[1 0 0 1 -2125 -218]@X +imagemask +0G!XQ3.Lo-4R`l34hq085C`dm56(]Q4obS-49,A+49,A+2uir'2uir'2uir+2uisR0E;.K!!!,r +!!",9!!3,h!'gMA!WW2X"98CO#QOf(&-)P-+917!5PP3Y5JR7!56([k4obRj49,@h49,@h49,B> +49,B>*WQ6!%KHUh%tFoC"5k9Z!<;uT!$C]<~> +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -2202 -218]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +44 35 true[1 0 0 1 -2287 -219]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp](&-%.[!;lls!!!~> +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -2334 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +44 35 true[1 0 0 1 -2376 -219]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp](&-%.[!;lls!!!~> +Q +q[1 0 0 1 0 0]concat +29 56 true[1 0 0 1 -2466 -219]@X +imagemask +5QCW]5QCW]!WN-"!<)ru!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs5QC``5QC``5QC``!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!.4bH!.4bH!.Fq+!.G%>!'UM[!$;= +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -2492 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -2524 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -2562 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +29 56 true[1 0 0 1 -2643 -219]@X +imagemask +5QCW]5QCW]!WN-"!<)ru!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs5QC``5QC``5QC``!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!.4bH!.4bH!.Fq+!.G%>!'UM[!$;= +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -2669 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +44 35 true[1 0 0 1 -2711 -219]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp](&-%.[!;lls!!!~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -2756 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +29 56 true[1 0 0 1 -2831 -219]@X +imagemask +5QCW]5QCW]!WN-"!<)ru!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs5QC``5QC``5QC``!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!.4bH!.4bH!.Fq+!.G%>!'UM[!$;= +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -2858 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -2900 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -2976 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -3000 -218]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +58 35 true[1 0 0 1 -3040 -218]@X +imagemask +!!"\Q!It.M!!%6D"2Fm:!!%6D"2Fm:!!)os#N,R^!!)os#N,R^!!)os#N,R^!!3'!&+BQ!!!3'! +&+BQ!!!E6$+1M:N!!E6$+1M:N!!Dfm*uFtX!!i+G59'Y'!!hP74raP&!!hJ54q%Dk!"\&(ILZ>X +!"Zl\Hk$,V!$B#7Hj9WO!$?aLp]gd!!$?`!p]CKr!'c!Qp]H$H!'^H +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -3099 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -3136 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +20 55 true[1 0 0 1 -3211 -219]@X +imagemask +5QC4;s6p'g!!)uu!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!E-!5PtLGquAtZ!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -3235 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -3272 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -3305 -218]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -3337 -218]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +30 35 true[1 0 0 1 -3374 -219]@X +imagemask +5QCKY5QCKY"9&9#!W2ot!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!<)ru!<)ru!<3&o!;cfl!W.NI +!VsY25PX445PTO!5PRJ4!Vd2@~> +Q +q[1 0 0 1 0 0]concat +30 37 true[1 0 0 1 -3407 -218]@X +imagemask +0G!XQ3.Lo-4R`l34hq085C`dm56(]Q4obS-49,A+49,A+2uir'2uir'2uir+2uisR0E;.K!!!,r +!!",9!!3,h!'gMA!WW2X"98CO#QOf(&-)P-+917!5PP3Y5JR7!56([k4obRj49,@h49,@h49,B> +49,B>*WQ6!%KHUh%tFoC"5k9Z!<;uT!$C]<~> +Q +q[1 0 0 1 0 0]concat +27 80 true[1 0 0 1 -9 -104]@X +imagemask +!!!",!!!#W!!!,:!!!7S!!!N0!!!K/!!!u=!!#+]!!%6D!!)Kg!!)Kg!!2!X!!C":!!C":!!e#S +!!e#S!"XS[!"T&0!$;1@!$;1@!$2+?!'UA_!'UA_!'C5]!.4bH!.4bH!.4bH!.4bH!;HNo!;HNo +!;HNo!;HNo!;HNo!;HNo!;HNo!VcWp!VcWp!VcWp!VcWp!VcWp!VcWp!VcWp!VcWp!VcWp!VcWp +!;HNo!;HNo!;HNo!;HNo!;HNo!;HNo!;HNo!.4bH!.4bH!.4bH!.4bH!'C5]!'UA_!'UA_!'UA_ +!$;1@!$;1@!"T&0!"XS[!!e#S!!e#S!!C":!!C":!!2!X!!2Qh!!)Kg!!%6D!!#+]!!#+]!!"&? +!!!N0!!!7S!!!,:!!!&X!!!",~> +Q +q[1 0 0 1 0 0]concat +44 55 true[1 0 0 1 -41 -124]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp]( +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -86 -123]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +27 50 true[1 0 0 1 -118 -123]@X +imagemask +!!2ut!"]&/!$?sr!'^R9!.Fsa!.Fp`!;li4!;liT!;liT!;lh)!;lh)!;lh)!;lh)!;lh)!;lh) +!;lh)!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs!;lfs +!;lfs!;lfs!;lfsJ,fPaJ,fPa+92AV#Q+Q%!W2ot!;lfs!;lfs!.4bH!.4bH!'C5]!'C5]!#tt= +!#tt=!#tt=!#tt=!#tt=!#tt=~> +Q +q[1 0 0 1 0 0]concat +43 50 true[1 0 0 1 -150 -109]@X +imagemask +5QC3Q!!#7`n,NFg"9&9#!!!&tz!;lfs!!!#sz!;lfs!!!#sz!;lfs!!!#sz!;lfs!!!#sz!;lfs +!!!#sz!;m)s!!!#s5Q:]`!;uU6^]4B5i!80?!<7QOp]( +Q +q[1 0 0 1 0 0]concat +15 34 true[1 0 0 1 -197 -124]@X +imagemask +!-ePB!WE3#"9&E%!WE)s!-eJDzzzzzzzz!;llq!WE3#"9&?#!W2qB~> +Q +q[1 0 0 1 0 0]concat +36 80 true[1 0 0 1 -221 -104]@X +imagemask +$ig8-!"8i-!!!K/!!!!'z"onW'!!`K(!!!*$!!!!$J,fQL!It.M!!.TM!!!&8z^]4?7!8mhW!!(pW +!!!",zDu]k +Q +q[1 0 0 1 0 0]concat +36 80 true[1 0 0 1 -263 -104]@X +imagemask +$ig8-!"8i-!!!K/!!!!'z"onW'!!`K(!!!*$!!!!$J,fQL!It.M!!.TM!!!&8z^]4?7!8mhW!!(pW +!!!",zDu]k +Q +q[1 0 0 1 0 0]concat +58 35 true[1 0 0 1 -305 -123]@X +imagemask +!!"\Q!It.M!!%6D"2Fm:!!%6D"2Fm:!!)os#N,R^!!)os#N,R^!!)os#N,R^!!3'!&+BQ!!!3'! +&+BQ!!!E6$+1M:N!!E6$+1M:N!!Dfm*uFtX!!i+G59'Y'!!hP74raP&!!hJ54q%Dk!"\&(ILZ>X +!"Zl\Hk$,V!$B#7Hj9WO!$?aLp]gd!!$?`!p]CKr!'c!Qp]H$H!'^H +Q +q[1 0 0 1 0 0]concat +58 35 true[1 0 0 1 -366 -123]@X +imagemask +!!"\Q!It.M!!%6D"2Fm:!!%6D"2Fm:!!)os#N,R^!!)os#N,R^!!)os#N,R^!!3'!&+BQ!!!3'! +&+BQ!!!E6$+1M:N!!E6$+1M:N!!Dfm*uFtX!!i+G59'Y'!!hP74raP&!!hJ54q%Dk!"\&(ILZ>X +!"Zl\Hk$,V!$B#7Hj9WO!$?aLp]gd!!$?`!p]CKr!'c!Qp]H$H!'^H +Q +q[1 0 0 1 0 0]concat +58 35 true[1 0 0 1 -427 -123]@X +imagemask +!!"\Q!It.M!!%6D"2Fm:!!%6D"2Fm:!!)os#N,R^!!)os#N,R^!!)os#N,R^!!3'!&+BQ!!!3'! +&+BQ!!!E6$+1M:N!!E6$+1M:N!!Dfm*uFtX!!i+G59'Y'!!hP74raP&!!hJ54q%Dk!"\&(ILZ>X +!"Zl\Hk$,V!$B#7Hj9WO!$?aLp]gd!!$?`!p]CKr!'c!Qp]H$H!'^H +Q +q[1 0 0 1 0 0]concat +15 9 true[1 0 0 1 -488 -124]@X +imagemask +!-ePB!WE3#"9&E%!WE,t!-e~> +Q +q[1 0 0 1 0 0]concat +42 50 true[1 0 0 1 -512 -108]@X +imagemask +#N,R^!!",9z4<=J&!!%BOzIKP*#!!%HKJ,fQLIf[=b!!%HJhuE`WIK8:+!!!i9Du]k +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -554 -123]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +44 35 true[1 0 0 1 -596 -124]@X +imagemask +5QC4;s6r8Qn3?sB!WN-%rVurt!!2ut!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os!;lfsqu?`p!!)os +!;lfsqu?`p!!)os!<)ruqu?`r!!)os!<)ruqu?`r!!)os!<3$!qu?`s!!2ip!<7QMp](&-%.[!;lls!!!~> +Q +q[1 0 0 1 0 0]concat +43 56 true[1 0 0 1 -643 -123]@X +imagemask +!!*$"rVup's2"`n!$?d^s53m+!'1(0!;lg;qu?cm!!i9!"7Q9mp](QW!!Dur#N,R_p](i?!!2ip ++2@jWp])Cd!!2ip++O=lp]*O/!!2ip5C`_7p]*O/!!2ip5C`_7p]*O/!!2ip5C`_7p]*O/!!2ip +5C`_7p]*O/!!2ip5C`_7p])Cd!!2ip+2@jWp](i?!!2ip&&8/Gp](QW!!2ip#N,R_p](Ec!!Dur +!VcX"p]( +Q +q[1 0 0 1 0 0]concat +42 50 true[1 0 0 1 -690 -108]@X +imagemask +#N,R^!!",9z4<=J&!!%BOzIKP*#!!%HKJ,fQLIf[=b!!%HJhuE`WIK8:+!!!i9Du]k +Q +q[1 0 0 1 0 0]concat +15 9 true[1 0 0 1 -727 -124]@X +imagemask +!-ePB!WE3#"9&E%!WE,t!-e~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -751 -123]@X +imagemask +!!*$!!!!9(huEa!_"[m0IfMS2!;lg,!!2ip#64kq!!@`Vn,NQ@#N,R_^^o?'!Pf5]!!'eV^]4@" ++2@jV!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!@J,fQL ++2@jV!$AuV!!!PF!"T&?huGul#N,SHJ-59@5C`k2!'bu7quAs3!<)s/J,hfa56([*s8Duu#QOQ! +!!*&7!!~> +Q +q[1 0 0 1 0 0]concat +39 37 true[1 0 0 1 -788 -123]@X +imagemask +!!*%L!!!9(n,NG1Jc#KJIK2P3!;HO9J-#->&&8;*!!hEehuEl;&&8/In/oFG!Vdae!!2jZJ,fWJ +5C`_7r',]3!;o'3!!*"J!!!#uIfKHKrdOnJ!<.HJ!!*"J!!!#uIfKHKr]^A_!<,1_!!)p]J,fTI +5C`_7r#^Fh!Vdae!!2j*J,fW>&&8/In-?`/"5j:>!!g:?n,NuL!;HO9!!%BH4obR)JG9*E#QN]^ +!!*$!!!~> +Q +q[1 0 0 1 0 0]concat +67 35 true[1 0 0 1 -830 -124]@X +imagemask +5QC4;s6tO +Q +q[1 0 0 1 0 0]concat +24 80 true[1 0 0 1 -901 -104]@X +imagemask +$ig8;!!!6(!!@`O!Pe[8huEcH!!%6D!'C5]*WQ0]!!!N0!"XS[#CldZ^]4JP!!D-Z!T3qYhuEfI +!!)Kg!;HNop]( +Q +q[1 0 0 1 0 0]concat +26 42 true[1 0 0 1 -154 -55]@X +imagemask +!W2ot#QFc(%gTlM*Wt=#494jN490U+GQ<*kGQ9o-GQ8fcGQ8fcHiP7=HiO\-HiO\-HiO\m4obi' +4obi'4obi'4obi'*rlP]*rlOr++OTH+2AD;&+C)0&,\Tk&"ib"%u9WS#CldS#J^<>#J^<>#J^<> +"2Fm:"5j.Z"5j.Z"5j.Z!T3qX!Up'h!Up'h!Up'h!Up'h+8>g9+8>g9"8Dir~> +Q +q[1 0 0 1 0 0]concat +59 55 true[1 0 0 1 -188 -26]@X +imagemask ++92*9!!'e7+92*9!!2!X!WRZM!!2!X!.FnJ!!D-Z!'C5]!!hE^!'C5]!"[uf!#P\9!"[uf!#P\9 +!$C,!!#P\9!'fBA!#P\9!'fBA!#P\9!.Wo,!#P\9!<:sW!#P\9!WV'X!#P\9!WM!W!#P\9"8q'W +!#P\9#Q3K[!#P\9#Pd3W!#P\9&+JKW!#P\9+5l&W!#P\95N(H"!#P\95JZ1W!#P\9It6GW!#P\9 +rrCsW!#P\9rrCsW!#P\:rW(jV!#P\ +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -251 -25]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -288 -25]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +43 56 true[1 0 0 1 -326 -25]@X +imagemask +!!*$"rVup's2"`n!$?d^s53m+!'1(0!;lg;qu?cm!!i9!"7Q9mp](QW!!Dur#N,R_p](i?!!2ip ++2@jWp])Cd!!2ip++O=lp]*O/!!2ip5C`_7p]*O/!!2ip5C`_7p]*O/!!2ip5C`_7p]*O/!!2ip +5C`_7p]*O/!!2ip5C`_7p])Cd!!2ip+2@jWp](i?!!2ip&&8/Gp](QW!!2ip#N,R_p](Ec!!Dur +!VcX"p]( +Q +q[1 0 0 1 0 0]concat +30 37 true[1 0 0 1 -372 -25]@X +imagemask +0G!XQ3.Lo-4R`l34hq085C`dm56(]Q4obS-49,A+49,A+2uir'2uir'2uir+2uisR0E;.K!!!,r +!!",9!!3,h!'gMA!WW2X"98CO#QOf(&-)P-+917!5PP3Y5JR7!56([k4obRj49,@h49,@h49,B> +49,B>*WQ6!%KHUh%tFoC"5k9Z!<;uT!$C]<~> +Q +q[1 0 0 1 0 0]concat +43 50 true[1 0 0 1 -435 -11]@X +imagemask +5QC3Q!!#7`n,NFg"9&9#!!!&tz!;lfs!!!#sz!;lfs!!!#sz!;lfs!!!#sz!;lfs!!!#sz!;lfs +!!!#sz!;m)s!!!#s5Q:]`!;uU6^]4B5i!80?!<7QOp]( +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -482 -25]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -523 -25]@X +imagemask +!!*$!!!!9(huEa!_"[m0IfMS2!;lg,!!2ip#64kq!!@`Vn,NQ@#N,R_^^o?'!Pf5]!!'eV^]4@" ++2@jV!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!`J,fQL5C`_6!'bu6!!#66!!!!@J,fQL ++2@jV!$AuV!!!PF!"T&?huGul#N,SHJ-59@5C`k2!'bu7quAs3!<)s/J,hfa56([*s8Duu#QOQ! +!!*&7!!~> +Q +q[1 0 0 1 0 0]concat +42 55 true[1 0 0 1 -558 -26]@X +imagemask +5QBY+s1gl!i'77W"9&92rVuus!!i9!!;HO!n,NI`!"[uf!;HO)^]4B0!$AuV!;HOYJ,fTE!'^G` +!;HPC!!!#o!<)ru!;HTm!!!#o"8Dir!;lrg!!!#u#Oh]n!<8, +Q +q[1 0 0 1 0 0]concat +41 37 true[1 0 0 1 -598 -25]@X +imagemask +!$C\1huEcWquc]o"98B+rW!3$&!+^1&+B\IK)d"O!WRcP+2@mVK7G%o!.TWO++O>UK7G%o!'c*d +++O>UK7G%o!'c*d+2@k@K7FKJ!'bu6&)[FPJ,fiD!'bu6"8Dj\J,fTK!'bu6!.VdKJ,fQ[r',]3 +!!3-"J,fQL+9-ik!!!!`J,fQL!'bu6!!!!`J,fW.!'bu6"7Q:T!!!8n!'^G`#P\9`!!!9!!.OtK +#Oh_B!!!,j!;lfs"5j4T!!!&X"7Q9j!;mAc!!!!`s*t(L!!iE%!!!~> +Q +q[1 0 0 1 0 0]concat +40 52 true[1 0 0 1 -640 -10]@X +imagemask +!!E8:!!#7`rVuuu!.TM(n,O!W&&8/In/hW1!;J_X!!%C1!!!!]HiO-H5(!>1!'Yc1!!#31!!!!_ +4obQ_IQd`3!;mph!!3!.huF;_#QOi(n,`Rhs53nWs8Tk8s8W*!!WW2X!!D-Z!!!,:!!!!$J,fQL +#CldS!!e#S!!!*$!!!!$z",HdS!!/_lJ,fWL#J^ +Q +q[1 0 0 1 0 0]concat +34 37 true[1 0 0 1 -682 -25]@X +imagemask +!!*$!!!!9(huEa!s6p!gIt7Fs!<)s^!!2ip%fc_$!!e#ZhuEk0&)[Eg^^n3\!Pfem!!'eVJ,fSb +5C`_6!'bu6!!#66!!!!`J,fQLIfKHK!.OtK!!%KK!!!"Ks8W,7J,fQK^jgk7#J`QS!!g;(J,fhi +5C`_=^d!>L&&9:&!"XT%^]4mq&&8/eJ-Y!4*rlQ(!'^Gcn,PWP!VcYB!!%BHp](:Y"7Q9j&-'EF +!!3'!!!~> +Q +q[1 0 0 1 0 0]concat +41 49 true[1 0 0 1 -749 -26]@X +imagemask +!!2uurVup/s+gW)!'gMHs*t*!s7cPD!<<*!s*t.M"98?#"8i0!huElS!.Wo,#Oh^XhuF;G!$C,! +&)[F0huF;'!"[uf+2@jehuFjL!"[uf++O=rhuFjL!!hE^++O=rhuFjL!!hE^++O=rhuFjL!!hE^ +++O=rhuFjL!!hE^+2@j]huF;'!"[uf&)[EuhuF#?!"[uf#Oh^8huElS!'fBA"9&:MhuEfXJcFX. +!<<*!huEb,s8V!W!$D7(huE`^s2X$t!!3'(huE`W!!hE^!!!!(huE`W!!hE^!!!!(huE`W!!hE^ +!!!!(huE`W!!hE^!!!!(huE`W!!hE^!!!'"huE`W"979Z!!!-$huE`W"96.:!!!'"^]4~> +Q +q[1 0 0 1 0 0]concat +37 35 true[1 0 0 1 -791 -26]@X +imagemask +!Pj3C!!D9]qu?ifs8N'$s8W,7"98E$huj"p+7KC4!!huqqu?ce"8i-"p]L9k!;HZc!!)crn,NLa +"7Q9kp]9:Q"7Q9j!$C\1!!3,X!!*'!^]4oFs*t)6s8N'!J,fEH!WW28!!3,X!!!-#!!!!$n,NQ@ +"5j.a^]WKp#J^H"!"[uin,O!W"8Dj,s8V!WJ,fQ,!'gM`^]4oFs1eU8s5SV~> +Q +q[1 0 0 1 0 0]concat +35 49 true[1 0 0 1 -833 -26]@X +imagemask +&-)\/!"],0rr=/@s8N'0s8W*!&-)\/!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!!!&p!!!!"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2ip!"],0s*tX[s8RTks8W,7&-)\0J.M\[rr<$"p](9o!VcWp +!!2ip!!!&p!!!!"p](9o!VcWp!!2is^]4E5#N,R^rX[oe!<3Sf!!%NKhuEaAs53kW+90+V!!iOS +!!!'!!!~> +Q +q[1 0 0 1 0 0]concat +38 35 true[1 0 0 1 -875 -26]@X +imagemask +!!%M!!!!-$n,NG!s82is+92 +Q +q[1 0 0 1 0 0]concat +41 35 true[1 0 0 1 -917 -26]@X +imagemask +5QB[Arr@QKnc/W>J,f'=s+#V!nc/W>5QB[Arr<)t!!hE^!W2p&huEfU!!hE^!W2p&huEfU!!hE^ +!W2p&huEfU!!hE^!W2p&huEfU!!hE^!W2p&huEfU!!hE^!W2p&huEfU!!hE^!W2p&huEfU!!hE^ +!W2p&huEfU!!hE^!W2p&huEfW!!hE^!WE'0huEfX!"[uf!WRZ\^]4E8i#f`7!WVpZ^]6V!s8RTL +J,fQKJ,k)ts8N'!J,''C!!#7Y5PP3Y!!!8^!!!~> +Q +q[1 0 0 1 0 0]concat +36 44 true[1 0 0 1 -959 -26]@X +imagemask +!!!Pf!!!"Kqu?]ss8N'!!WW1M!!E9$^]4W75MuMHn.4FW#N,jV!"[uin,O!7"7Q:$^]X'+&&8;: +!"ZjGhuF;'!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7&&8/F +!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!$D7@s1gl!s8Tl!s8W,75QCc`^`WUVs*t([^]4?7&&8/F +!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7#CldS~> +Q +q[1 0 0 1 0 0]concat +11 11 true[1 0 0 1 -1017 -26]@X +imagemask +*WSETJ&)*"s1nZms1nZMJ&$Pa*WQ~> +Q +q[1 0 0 1 0 0]concat +37 35 true[1 0 0 1 -1042 -26]@X +imagemask +!Pj3C!!D9]qu?ifs8N'$s8W,7"98E$huj"p+7KC4!!huqqu?ce"8i-"p]L9k!;HZc!!)crn,NLa +"7Q9kp]9:Q"7Q9j!$C\1!!3,X!!*'!^]4oFs*t)6s8N'!J,fEH!WW28!!3,X!!!-#!!!!$n,NQ@ +"5j.a^]WKp#J^H"!"[uin,O!W"8Dj,s8V!WJ,fQ,!'gM`^]4oFs1eU8s5SV~> +Q +q[1 0 0 1 0 0]concat +36 44 true[1 0 0 1 -1084 -26]@X +imagemask +!!!Pf!!!"Kqu?]ss8N'!!WW1M!!E9$^]4W75MuMHn.4FW#N,jV!"[uin,O!7"7Q:$^]X'+&&8;: +!"ZjGhuF;'!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7&&8/F +!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!$D7@s1gl!s8Tl!s8W,75QCc`^`WUVs*t([^]4?7&&8/F +!"ZjF!!!PF!!!!0^]4?7&&8/F!"ZjF!!!PF!!!!0^]4?7#CldS~> +Q +q[1 0 0 1 0 0]concat +40 52 true[1 0 0 1 -1126 -8]@X +imagemask +!;HNo!!E3#!!!9(J,fQ[s1eU7&-(Pf!"[-.!!"+Yn,NG1iV3BQ&)d3_!"ZmC!!!*$HiO-H!.4bH +!!#1_!!!!_z56(Z`!$;1@!!")@!!!!@J,fQL++O=k!$?^k!!#7!!!!!`^]4?75JR7!!.Wo,!!%N, +!!!#rhuE`Wq="@a!;Z*a!!2WZ!!!&hp](9rnFut`"5rqS!!D/,!!!8>HiO-O^jH+^&&:@/!"XTD +!!!O[4obR)J0+ak*rmA_!'^H*!!#1_%tFXD!"XS[IK0n/!.4bO^]8`^#J^?7!!g:]s+#Uu5QAP! +s$-P!s8P=`_#OEVs+#Uu~> +Q +cleartomark end end pagesave restore showpage +%%PageTrailer +%%Trailer +%%Pages: 1 diff --git a/Master/texmf-doc/doc/english/mathmode/styles.pdf b/Master/texmf-doc/doc/english/mathmode/styles.pdf new file mode 100644 index 00000000000..fd2b893e35e Binary files /dev/null and b/Master/texmf-doc/doc/english/mathmode/styles.pdf differ diff --git a/Master/texmf-doc/doc/english/metafont-for-beginners/metafont-for-beginners.tex b/Master/texmf-doc/doc/english/metafont-for-beginners/metafont-for-beginners.tex new file mode 100644 index 00000000000..516e70ed423 --- /dev/null +++ b/Master/texmf-doc/doc/english/metafont-for-beginners/metafont-for-beginners.tex @@ -0,0 +1,1313 @@ +% begin file mfb3w4.tex % +\documentstyle[11pt]{article} + +% gt: Narrower margins; no marginal notes. + +\oddsidemargin=0in +\evensidemargin=0in +\marginparwidth=0in +\marginparsep=0in + +% gt: text width that is okay for both Am. Quarto and for A4 paper. + +\textwidth=6.25in + +% gt: less gap at top of each page; more text height. + +\addtolength{\textheight}{\topmargin} +\topmargin=0in +\addtolength{\textheight}{0.4in} + +% gt: Variant of \METAFONT macro in "texnames.sty": +% gt: Uses empty discretionary. See _The TeXbook_, p 95. +\font\mf=logo10 +\font\mfsl=logosl10 +\hyphenchar\mf=-1 +\hyphenchar\mfsl=-1 +% A way to get a hyphen, courtesy of Karl Berry. +\newcommand{\MF}{{\mf META}\-{\mf FONT\/}} +\newcommand{\MFSL}{{\mfsl META}\-{\mfsl FONT\/}} +\newcommand{\MFbook}{{\sl The \MFSL{}book\/}} +\newcommand{\TeXbook}{{\sl The \TeX{}book\/}} +\newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} +\newcommand{\ttbsl}{{\tt \char`\\\/}} % typewriter type backslash. + +% gt: employing usual title font for "METAFONT" here. +\title{% + \vspace*{-1in}% + METAFONT for Beginners\\% + {\normalsize Third Draft, Revision `W4'}\\% + {\normalsize (14:12 GMT +10 Thursday 14 July 1994)}% +} + +\date{} + +\author{Geoffrey {\sc Tobin} ({\tt G.Tobin@ee.latrobe.edu.au})} + +\begin{document} + +\maketitle + +\tableofcontents + +\newpage + + +\section*{Scope}% +\addcontentsline{toc}{section}{Scope} + +This is not a tutorial on \MF{}. It is an attempted description of +how some of the pitfalls in running the program may, hopefully, be +avoided. + + +\section*{Where you can obtain this file}\label{sec:CTAN}% +\addcontentsline{toc}{section}{Where you can obtain this file} + +For those without ftp, an older version of \MF{} for Beginners can be +received by email from: +\begin{verbatim} + fileserv@shsu.edu +\end{verbatim} +by sending the one-line message: +\begin{verbatim} + sendme faq.mf +\end{verbatim} + +\MF{} for Beginners can be obtained by ftp from the CTAN +(Comprehensive \TeX{} Archive Network) sites, in the +\begin{verbatim} + documentation +\end{verbatim} +subdirectory, as the file +\begin{verbatim} + metafont-for-beginners.tex +\end{verbatim} + +The following record of a unix `script' command lists several +CTAN sites. + +\begin{verbatim} +bash$ script +Script started on Mon Jun 27 19:17:54 1994 +bash$ finger ctan_us@ftp.shsu.edu +[ftp.shsu.edu] +Login name: ctan_us In real life: US CTAN +Bldg: +Directory: /pub/mirror/ctan_us Shell: /usr/local/bin/tcsh +Last login Sun Jun 26 14:59 on ttyp6 +Plan: +In order to reduce network load, it is recommended that you use the CTAN +host which is located in the closest network proximity to your site. + +The participating hosts in the Comprehensive TeX Archive Network (CTAN) are: + ftp.dante.de (Germany) /tex-archive (/pub/tex /pub/archive) + ftp.shsu.edu (Texas, USA) /tex-archive (/pub/tex /pub/archive) + ftp.tex.ac.uk (England) /tex-archive (/pub/tex /pub/archive) + +Known mirrors of the CTAN reside on (alphabetically): + ftp.center.osaka-u.ac.jp (Japan) /CTAN + ftp.cs.rmit.edu.au (Australia) /tex-archive + ftp.loria.fr (France) /pub/unix/tex/ctan + ftp.uni-bielefeld.de (Germany) /pub/tex + ftp.uni-stuttgart.de (Germany) /tex-archive (/pub/tex) + ftpserver.nus.sg (Singapore) /pub/zi/TeX + src.doc.ic.ac.uk (England) /packages/tex/uk-tex + sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX + wuarchive.wustl.edu (Missouri, USA) /packages/TeX + +Known partial mirrors of the CTAN reside on (alphabetically): + dongpo.math.ncu.edu.tw (Taiwan) /tex-archive + ftp.adfa.oz.au (Australia) /pub/tex/ctan + ftp.muni.cz (The Czech Republic) /pub/tex/CTAN + nic.switch.ch (Switzerland) /mirror/tex + ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive +Please send updates to this list to . +bash$ exit +exit + +script done on Mon Jun 27 19:18:09 1994 +\end{verbatim} + + +\section*{Reference}% +\addcontentsline{toc}{section}{Reference} + +\MFbook{}, by Donald Ervin {\sc Knuth}, published by the +American Mathematical Society and Addison Wesley Publishing Company. +First edition, 1986, covers \MF{} 1.0. +Later editions cover \MF{} 2.0 and above. +This file is based, except where indicated otherwise, +on the 1986 edition.\footnote +{Opinion: I actually enjoy reading \MFbook{}, +whereas \TeXbook{} confuses me no end.} + + +\section*{Acknowledgements}% +\addcontentsline{toc}{section}{Acknowledgements} + +Additions and corrections were kindly contributed by: +\begin{quote} +Bill {\sc Alford} ({\tt bill@phys.anu.edu.au}),\\ +Tim A.~H.~{\sc Bell} ({\tt bhat@mundil.cs.mu.oz.au}),\\ +Karl {\sc Berry} ({\tt karl@cs.umb.edu}),\\ +Gert W.~{\sc Bultman} ({\tt bultman@dgw.rws.nl}),\\ +Anita {\sc Zanolini Hoover} ({\tt anita@ravel.udel.edu}),\\ +Berthold K.~P.~{\sc Horn} ({\tt bkph@kauai.ai.mit.edu}),\\ +Micha{\l} {\sc Jaegermann} ({\tt ntomczak@vm.ucs.ualberta.ca}),\\ +\hspace*{4em}and\\ +David {\sc Kastrup} ({\tt dak@pool.informatik.rwth-aachen.de}). +\end{quote} + +Typesetting was initiated by +\begin{quote} +Yannis {\sc Haralambous} ({\tt yannis@gat.citilille.fr}). +\end{quote} + +Mistakes remain copyright \copyright{} 1994 Geoffrey {\sc Tobin}. + + +\section*{Motivation}% +\addcontentsline{toc}{section}{Motivation} + +It's a common experience to have initial (and medial and final +{\tt :-)} ) difficulty with running \MF{}, and not all `\TeX{}nicians' +are as familiar with \MF{} as they are with \TeX{}. Still, nothing +ventured, nothing gained. So let's be of good cheer, and get down to +work. + + +\section{What is \MF{}?} + +\MF{} is a program for making bitmap fonts for use by \TeX{}, +its viewers, printer drivers, and related programs. +It interprets a drawing language +with a syntax apparently derived in part from the Algol\footnote +{Around 1960, Donald {\sc Knuth} worked as an Algol compiler +designer.} +family of programming languages, of which C, C++, Pascal and Modula-2 +are members. + +The input can be interactive, or from a source file. +\MF{} source files are usually suffixed `{\tt .mf}'. + +\MF{} sources can utilize scaling, rotation, reflection, skewing and shifting, +and other complex transformations in obvious and intuitive ways. +But that is another story, told (in part) by \MFbook{}. + +\MF{}'s bitmap output is a {\sc gf} ({\em generic font\/}) file. +This may be compressed to an equivalent {\sc pk} ({\em packed\/}) font +by the auxiliary program {\sf GFtoPK}. + +Why doesn't \MF{} output {\sc pk} fonts directly? Firstly, Tomas +{\sc Rokicki} had not invented {\sc pk} at the time Donald +E.~{\sc Knuth} was writing \MF{}. Secondly, to change \MF{} now +would be too big a change in {\sc Knuth}'s opinion. ({\sc Knuth} +is a very conservative programmer; this fact is a two-sided coin.) + +{\sc gf} and {\sc pk} files are suffixed `{\tt .*gf}' and `{\tt .*pk}' +respectively, where, in a typical {\sc unix} installation, the +`{\tt *}' stands for the font resolution. +(Resolution will be explained below.) +{\sc ms-dos} truncates file name suffixes to three characters, so a +font suffix `{\tt .1200gf}' becomes `{\tt .120}' --- beware of this! + +A bitmap is all that's needed for large-scale {\em proofs}, +as produced by the {\sf GFtoDVI} utility, +but for \TeX{} to typeset a font it needs a {\sc tfm} +({\em \TeX{} Font Metric\/}) file to describe the dimensions, ligatures +and kerns of the font. \MF{} can be told to make a {\sc tfm} file, +by making the internal variable `{\tt fontmaking}' positive. Most +output device modes (see subsection \ref{sub:modes} below) do this. + +Remember that \TeX{} reads only the {\sc tfm} files. +The {\em glyphs}, or forms of the characters, as stored in {\sc gf} +or {\sc pk} font files, do not enter the picture +(I mean, are not read) +until the {\sc dvi} drivers are run. + +\TeX{} can scale {\sc tfm} files. Unfortunately, bitmaps such as +{\sc gf} and {\sc pk} are not scalable. +% deleted "except in integer multiples of their original size". +% Pixel replication is as inexact an interpolation as other schemes, +% and does not produce adequate images. +However, \MF{} files can be compiled into fonts of arbitrary scale +by \MF{}, even +by non-programmers --- see subsection \ref{sub:mag}. + +Incidentally, properly constructed {\sc tfm} files are +device-independent, so running \MF{} with different modes normally +produces the identical {\sc tfm}. +% This explanation might want a different place... +Dimensions in {\sc tfm}~files are specified to~\MF{} in device +independent `sharped' dimensions (commonly suffixed by \#), where +a~value of~1 corresponds to the dimension of {\tt 1pt} (typographical +point). Most of \MF{}'s calculations are done with (resolution and +device dependent) pixels as units. Care must be taken by font +designers to {\em always\/} calculate unsharped dimensions from sharped +ones, and never the other way round, so as to keep roundoff errors or +similar effects from influencing the {\sc tfm} files to depend on +resolution or device. Although type quality will be influenced only in +minuscule ways, this is one of the more common reasons for checksum +errors reported by printer drivers. +Note that the only way to be sure that a TFM file is device-independent +is to create the font in different modes and compare the resulting +TFM's, perhaps using {\sf tftopl}. + +More detailed descriptions of {\sc tfm} and {\sc gf} files, and of +{\em proof\/} mode, are found in Appendices F, G, and H, respectively +of \MFbook{}. + +{\sl The TUG {\sc dvi} Drivers Standard, Level 0}, draft 0.05, includes +precise definitions of the file structure of {\sc tfm} metrics and of +{\sc gf} and {\sc pk} bitmap fonts. +That document is obtainable from CTAN (see section \ref{sec:CTAN} +above) as the several files in the subdirectory: +\begin{verbatim} + dviware/driv-standard/level-0 +\end{verbatim} +Related information is contained in the documents in the `sister' +directory +\begin{verbatim} + dviware/driv-standard/papers +\end{verbatim} + + +\section{Getting \MF{}'s Attention}\label{sec:typing} + + +\subsection{Typing at \MF{}'s `{\tt **}' prompt}\label{sub:starstar} + +If you type the name of the \MF{} program alone on the command line: +\begin{verbatim} + mf +\end{verbatim} +then {\tt mf} displays a `{\tt **}' prompt, +which +`is \MF{}'s way of asking you for an input file name'. +(See \MFbook{}, Chapter 5: `Running \MF{}'.) +Thus, to process a \MF{} file named {\tt fred.mf}, you may type: +\begin{verbatim} + fred +\end{verbatim} + +A backslash (`\ttbsl') can also be typed here. +This causes all subsequent commands at the prompt line to be +interpreted as in a \MF{} file. +(Concerning the backslash, see \MFbook{}, Chapter 20: +`More About Macros', pages 179 and 180 in the 1986 edition.) +Thus we can respond to the {\tt **} prompt with: +\begin{verbatim} + \ input fred +\end{verbatim} +or even: +\begin{verbatim} + \ ; input fred +\end{verbatim} + +The backslash is useful because +certain commands are often executed before a \MF{} file is input. +In particular, quality printing +(see subsection \ref{sub:modes} below) +requires the \MF{} command {\tt mode}, +and output magnification +(subsection \ref{sub:mag}) +employs the {\tt mag} command. +For example: +\begin{verbatim} + \mode=localfont; mag=magstep(1); input fred +\end{verbatim} + +To read {\sc ms-dos} pathnames at the {\tt **} prompt, +this satisfies \MF{}: +\begin{verbatim} + \input \seldom\fred.mf +\end{verbatim} +as does: +\begin{verbatim} + d:\seldom\fred.mf +\end{verbatim} + + +\subsection{Typing on the Command Line}\label{sub:cmdline} + +Most \MF{} implementations permit you to type \MF{} commands on the +command line, instead of at the {\tt **} prompt. (Rather, it is +automatically passed to that prompt.) + +On {\sc ms-dos}, type commands as at the {\tt **} prompt: +\begin{verbatim} + mf \mode=localfont; input myfont10 +\end{verbatim} + +On {\sc unix}, command shells typically interpret semicolons, +backslashes and parentheses specially, unless they are 'quoted'. +So, when typing those characters as part of instructions to \MF{} +on the {\sc unix} command line, it's wise to accustom +yourself to protecting them with {\em apostrophes\/}: +\begin{verbatim} + mf '\mode=localfont; input myfont10' +\end{verbatim} +If {\tt localfont} makes fonts for a 300 dots per inch (dpi) device, +this should produce a {\sc tfm} file, `{\tt myfont10.tfm}', +and a 300 dpi {\sc gf} font file, `{\tt myfont10.300gf}'. +Almost all of the following will presume a 300 dpi device, and other +resolution devices will have appropriately different font file names. + +These command lines are a bit long, very often used, and rather +intolerant of mistakes (see subsection \ref{sub:typo} below), +so you might type the repetitive parts into a {\sc unix} shell script +or an {\sc ms-dos} batch file, as appropriate. + +In {\sc unix}, the {\tt **} prompt has the advantage that those pesky +apostrophes are not needed. (Indeed, those apostrophes are always +wrong at the {\tt **} prompt --- \MF{} doesn't understand them. +It would not understand them on the command line either---it's just +that the shell does not hand them over to \MF{}.) +However, for shell scripts (and for batch files in {\sc ms-dos}), +the command line is a boon. + +For the Macintosh, which is not command line based, +Tim {\sc Bell} reports that one port of \MF{} +(by Timothy {\sc Murphy\/} {\tt } 22 January 1993) +simulates the command line within the program +(using a special THINK C library written just for that). +But what you type goes through some string processing, +so you need double `\verb+\+'s. +Thus your example line reads: +\begin{verbatim} + mf \\mode=localfont; input myfont10 +\end{verbatim} + + +\subsection{`{\tt Please type another input file name: }'}% +\label{sub:another} + +When \MF{} cannot find the main source file, it doesn't quit. +For example, when I typed {\tt mf fred}, \MF{} said: +\begin{verbatim} + This is METAFONT ... + **fred + ! I can't find file `fred.mf'. + <*> fred + + Please type another input file name: +\end{verbatim} +The usual program interrupts (eg, Control-C) don't work here, +and the `{\tt Please type ...}' prompt does not understand +\MF{} commands: it will read only the first word, and insist on +interpreting this as a file name. + +Beginners faced with this often wonder how to avoid an endless loop +or a reboot, or try to think of a \MF{} file that they do have +in \MF{}'s path. In the latter case, the canonical name to use +is `{\tt null}', standing for the file `{\tt null.mf}'. + +In fact, the solution is much easier: on the +systems that I have tried, a simple end of file marker +(`control-Z' in {\sc ms-dos}, `control-D' in {\sc unix}) +stops \MF{} in its tracks: +\begin{verbatim} + ! Emergency stop. + <*> fred + + End of file on the terminal! +\end{verbatim} + + +\section{Base files}\label{sec:base} + +In versions 2.7 and 2.71, the \MF{} language contains 224 +(previous versions had fewer) primitives, +which are the commands preceded by an asterisk in the Index (Appendix I) +to \MFbook{}. From these we can build more complex operations, +using macros. In \MF{} macros have some of the desirable +characteristics of functions in other languages. Collections of +macros can be stored in \MF{} source files. + +{\em Base\/} files are {\em precompiled internal tables\/} that \MF{} +loads faster than it loads the original \MF{} source files. +Thus, they are closely analogous to \TeX{}'s {\em format\/} files. + + +\subsection{The {\tt plain} base}\label{sub:plain} + +The {\tt plain} base provides the commands that \MFbook{} +describes. (See Appendix B of \MFbook{}, if you have it around +--- maybe a library has it --- I'm learning from a copy borrowed from the +local university's library.) + +When it starts, \MF{} automatically loads\footnote +{There are releases of \MF{} that contain the {\tt plain} base, +and so don't have to load it. However, on most computers, including +personal computers, reading bases is so fast that such a {\em preloaded\/} +base is unnecessary.} +the {\tt plain} base. +This is usually called {\tt plain.base}, or sometimes only (see +subsection~\ref{sub:link} for why this works) {\tt mf.base}, +although for those systems concerned (such as {\sc unix}), +both file names should really be present. + +Em\TeX{} for {\sc ms-dos} calls the plain base {\tt plain.bas}, +due to filename truncation. + + +\subsection{Loading a Different Base}\label{sub:loading} + +Suppose that you have a base named {\tt joe.base}. +Typing +\begin{verbatim} + mf &joe +\end{verbatim} +or (on unix, where we must either quote or escape the ampersand) +\begin{verbatim} + mf \&joe +\end{verbatim} +or responding +\begin{verbatim} + &joe +\end{verbatim} +to the {\tt **} prompt, +omits loading {\tt plain} base, and loads the {\tt joe} base instead. +Typically, however, the {\tt joe.mf} file which originally produced +the {\tt joe} base will have included {\tt plain.mf}, because working +without the {\tt plain} base macros would be too cumbersome. +(Refer to \MFbook{} (1986), Chapter 5: `Running \MF{}', page 35, +`dangerous bend' number two.) + +The `{\tt cm}' base, for making the {\sc Computer Modern} fonts, +can be loaded in that way: +\begin{verbatim} + mf &cm +\end{verbatim} +Remember to quote the ampersand under {\sc unix}! + + +\subsection{The Linkage Trick}\label{sub:link} + +On systems such as {\sc unix} where programs can read their own +command line name, and where files may be linked to two or more +names, then programs can modify their behavior according to the +name by which they are called. Many {\sc unix} \TeX{} and \MF{} +installations exploit this in order to load different {\em format\/} +and {\em base\/} files, one for each of the various names to which +\TeX{} and \MF{} are linked. Such installations can often +be recognised by the presence of the executable `{\tt virmf}' +in one of the directories in the {\tt PATH}. + +For example, if a base file called `{\tt third.base}' resides where +\MF{} can find it (see section \ref{sub:env} below), then +{\tt virmf} can be linked to {\tt third}. +In {\sc unix}, a {\em hard link\/} is formed by +\begin{verbatim} + ln virmf third +\end{verbatim} + +On systems supporting {\em symbolic links\/}, you should make all of +these links symbolic, rather than hard, or else you will have to redo +them every time you install a new copy of~{\tt virmf}; see below. +In {\sc unix}, this is done by +\begin{verbatim} + ln -s virmf third +\end{verbatim} + +Normally one wants {\tt mf} to load the {\tt plain} base, +so in such installations one links {\tt plain.base} to {\tt mf.base}: +\begin{verbatim} + ln plain.base mf.base +\end{verbatim} +Again, you'd best make that link symbolic. This comment applies for +the rest of this section as well. + +As another example, take the `{\tt cm}' base. In {\sf web2c}: +\begin{verbatim} + ln virmf cmmf + ln cm.base cmmf.base +\end{verbatim} +so that `{\tt cmmf}' automatically loads `{\tt cm.base}'. + +This applies equally to \TeX{}, which is why {\tt tex} and {\tt latex} +are then links to {\tt virtex}, {\tt tex.fmt} is a link to +{\tt plain.fmt}, and {\tt latex.fmt} is a link to {lplain.fmt}: +\begin{verbatim} + ln virtex tex + ln plain.fmt tex.fmt + + ln virtex latex + ln lplain.fmt latex.fmt +\end{verbatim} + +Karl {\sc Berry\/}'s {\sf web2c} distribution for {\sc unix} uses +this `{\em linkage trick\/}'. + +If you used symbolic links, you can laugh off the following + +{\sc Warning:} +This linkage is convenient, but watch out during updates! +If {\tt mf.base} is a {\em hard link\/} +to {\tt plain.base}, then replacing {\tt plain.base} with its +new version severs the link: {\tt mf} will still load {\tt mf.base}, +but it will be the old version! The proper procedure is to remove +the old {\tt mf.base}, and relink. On {\sc unix}: +\begin{verbatim} + rm mf.base + ln plain.base mf.base +\end{verbatim} +On most {\sc unix\/} systems, {\tt ln -f} will automatically remove +the second file (if present) --- in this case, mf.base --- before linking. + +Alternatively, {\sf web2c} will update `{\tt plain.base}' +(and `{\tt plain.fmt}', and so on) for you, +if you tell {\sf web2c\/}'s {\tt Makefile} to +\begin{verbatim} + make install +\end{verbatim} +Symbolic links, on systems that have them, are probably the best +method of handling updates, at least when doing them manually. +(Consult your system administrator for details.) + + +\subsection{Making a Base; the Local Modes file}\label{sub:modes} + +The {\tt plain} base is made from a \MF{} file named +{\tt plain.mf} and, commonly, from some other file, often called +{\tt local.mf} or {\tt modes.mf}. + +The {\tt local}/{\tt modes} file lists printers (and monitors), giving +each output device a font-making {\em mode\/}, containing a +description of some refinements that must be made in order to produce +good-looking output. For instance, how to make the characters just +dark enough, and how to make diagonal lines come out sharply. + +If you want to make a base, you need a variant of the \MF{} program +called `{\tt inimf}'. (See \MFbook{}, p 279.) For example, +{\tt plain.base} can be made in {\sc unix} by typing: +\begin{verbatim} + inimf 'plain; input local; dump' +\end{verbatim} +If using the em\TeX{} version of \MF{} for a {\sc pc}, type: +\begin{verbatim} + mf/i plain; input local; dump +\end{verbatim} + + +\section{Fonts}\label{sec:fonts} + + +\subsection{Proof Mode}\label{sub:proof} + +The purpose of \MF{} is to make fonts. For \ae{}sthetically pleasing +{\sc pk} bitmaps, the correct device mode must be selected. + +An obstacle to beware of is that {\tt plain} \MF{} uses +{\em proof\/} mode by default. +(\MFbook{}, page 270, defines this mode.) +That means writing unmagnified font files with a resolution of +2601.72 dots per inch (dpi); that's 36 pixels per point. (One +point is 1/72.27 of an inch.) Proof mode does {\bf not} produce a +{\sc tfm} file. + +What good is proof mode, and why is it the default? +{\em Proofs\/} are blown up copies of characters used by font +designers to judge whether they like the results of their work. +Naturally, proofs come first, and normal sized character production +later --- if you're a font designer. + +So there are two clues that proof mode is on: font files with +extensions like `{\tt .2602gf}' (or on {\sc ms-dos}, `{\tt .260}'), +and the `failure' to produce any {\sc tfm} file. + +On some systems, such as {\sc X11}, a third clue is that the proof +font may be drawn on the screen --- it's so large, you can't miss it! + + +\subsection{Localfont Mode}\label{sub:localfont} + +When using a stable font, or when testing the output of a new font, +we {\em don't\/} want proof mode, +we want our local output device's mode. +Usually, \MF{} is installed with a `{\tt localfont}' +assigned in the {\tt local}/{\tt modes} file. +On our department's Sun Network, we have assigned +\begin{verbatim} + localfont:=CanonCX +\end{verbatim} +We use Karl {\sc Berry\/}'s `{\tt modes.mf}'\footnote +{Available at {\tt ftp.cs.umb.edu} in the {\tt pub/tex} directory.}, +which contains modes for many, many devices. We chose the +{\tt CanonCX} mode because `{\tt modes.mf}' recommends it for Apple +Laserwriters and HP Laserjet~II printers, which we use. + +To process a \MF{} source file named `{\tt myfont10.mf}' for the most +usual local device, specify the local mode to {\tt mf} before +inputting the font name: +\begin{verbatim} + \mode=localfont; input myfont10 +\end{verbatim} +This should produce a {\sc gf} font file, `{\tt myfont10.300gf}' +(`{\tt myfont10.300}' in {\sc ms-dos}), +and a {\sc tfm} file, `{\tt myfont10.tfm}'. + + +\subsection{Font Naming}\label{sub:naming} + +By the way, if you modify an existing, say a {\sc Computer +Modern (cm)}, font, you must give it a new name. This is an honest +practice, and will avoid confusion. + + +\subsection{Using a New Font in \TeX{}}\label{sub:tex} + +To use a new font in a \TeX{} document, select it specifically. +Example: in a \TeX{} macro file, or in a \LaTeX{} style file, +to define \verb+\mine+ as a font-selection command for +`{\tt myfont10.tfm}', say: +\begin{verbatim} + \font\mine=myfont10 +\end{verbatim} + +Then to typeset `Mary had a little lamb,' in the {\tt myfont10} font, +and then to revert to the previous font, type +\begin{verbatim} + {\mine Mary had a little lamb,} +\end{verbatim} +Note, however, that this will not change the line spacing parameters +of \TeX{} as +well. If your lines appear a little too cramped and unevenly spaced vertically, +it is very probable that you need to increase \verb+\baselineskip+. +For \LaTeX{} users, a simple remedy is to just select a larger font +before your own. Also, end your paragraph by an empty line or a +\verb+\par+ command before the closing brace, or your line spacing changes +will be cancelled before the paragraph has a chance of being typeset. + + +\subsection{Magnification (and Resolution)}\label{sub:mag} + +Now suppose that you want {\tt myfont10} to be magnified, +say to magstep 1 (magnified by 1.2), for a `jumbo' printer. +Assuming that the {\tt local}/{\tt modes} file has a mode +for the jumbo printer, +you may then run \MF{} with the following three commands: +\begin{verbatim} + \mode=jumbo; mag=magstep(1); input myfont10 +\end{verbatim} +to produce `{\tt myfile10.tfm}' (again!) +and a {\sc gf} font, `{\tt myfile10.360gf}'. +On {\sc ms-dos}, the file names will be truncated; +for example, `{\tt myfile10.360}'. + +The `{\tt 360}' is `300 {\tt *} 1.2', indicating the magnification. +A 360 dpi font can be used either as a magnification 1.2 font on +a 300 dpi printer or as a normal sized font on a 360 dpi printer. + +Note, however, that the \MF{} language includes special hints for +each output device which clue \MF{} as to the reactions of the +output device to pixel-sized minuscule changes. + +So for highest quality, you would not even want to mix the fonts for +two 300~dpi printers, unless they share the same mode and most probably +the same print engine. + + +\subsection{{\sf GFtoPK}}\label{sub:gftopk} + +\TeX{} uses only the {\sc tfm} file, which \MF{} +will produce if it's in a font-making mode. +(\MFbook{}, Appendix F.) +Most {\sc dvi} drivers read the {\sc pk} font format, +but \MF{} makes a {\sc gf} (Generic Font) file. +So we need also to apply the {\sf GFtoPK} utility: +\begin{verbatim} + gftopk myfile10.300gf +\end{verbatim} +to produce the wanted `{\tt myfile.300pk}' +(or, on {\sc ms-dos}, `{\tt myfile.pk}') +{\sc pk} font. + + +\subsection{Storing the Fonts}\label{sub:store} + +Now we have the fonts, where do we store them? \TeX{}, \MF{} and +the various driver programs are compiled with default locations +written in. +These can be overridden by certain environment variables. +The names of these variables differ between systems, +but on {\sc unix} they might, for example, be `TEXFONTS' for the +{\sc tfm} files, and either `PKFONTS' or `TEXPKS' (or both of those) +--- before searching `TEXFONTS' --- for {\sc pk} fonts. +You can find out what environment variables you now have +by typing `{\tt set}' in {\sc ms-dos} and `{\tt env}' in the Bourne shell, sh, +% `set' in the Bourne shell is dangerous, because it gives the values +% of non-environment variables of the shell as well. If you forgot +% to say export, you might have some time detecting your omission +% if you use just `set'. +in {\sc unix}. In the {\sc unix} C shell, {\tt csh}, type +`{\tt setenv}'. + +Micha{\l} {\sc Jaegermann} notes that on a `virgin' installation +--- in which everything is in default directories and no environment +variables have yet been set --- that won't succeed. Presumably we're +talking to system installers now. So, as a first resort: +\begin{quote} + \em Read The Manual. +\end{quote} +As a last resort, one can discover default values and environment +variable names by using a command like {\sc unix}'s {\tt strings} +on the executable files. +For instance: +\begin{verbatim} + strings -6 /bin/virmf | less +\end{verbatim} +(Use `more' or `pg' for paging, if `less' is not available.) +Seeking 6-letter names is about right, as ``{\tt TEXPKS}'' has six +letters, while {\tt strings\/}' default of four collects too much +random noise. +Environment variables are usually in upper case, and their names +strongly hint at their purposes. +Default locations may be discovered by looking for path name strings. + +Using this advice may show some undocumented names. +If you have the program sources, you may check their purpose. +Otherwise, not to worry, the important ones should be self-evident. +As an illustration, here are some environment variable names found by +applying ``strings -6'' to {\sc Rokicki's} {\tt dvips}: +\begin{verbatim} + * DVIPSHEADERS + HOME + * PKFONTS + PRINTER + TEXCONFIG + TEXFONTS + TEXINPUTS + * TEXPACKED + * TEXPICTS + TEXPKS + VFFONTS +\end{verbatim} +The four starred names are not documented by the {\tt dvips} manual +(for version 5.484). +In Karl {\sc Berry's} {\tt dvipsk}, a variant of {\tt dvips}, +{\tt DVIPSHEADERS}\footnote{In version 5.518b, which is forthcoming.}, +{\tt PKFONTS} and {\tt TEXPICTS} {\em are\/} +documented, while {\tt TEXPACKED} is {\em not used}. + +If you want \TeX{} and \MF{} to find files in the current directory +(as you almost certainly do!), then one way is to put `{\tt .}' into +their search paths. +(Both {\sc unix} and {\sc ms-dos} accept the {\tt .} notation +for the current directory.) +Default search paths are compiled into \TeX{} and \MF{}, but users +can customise the environment variables (see subsection \ref{sub:env}) +that the programs read, to override the defaults. + +\MF{} (as illustrated in section \ref{sec:typing} above), +as well as the {\sc dvi} drivers, +can also be given full path specifications for input files. +(On most systems, so can \TeX{}, but, as Berthold K.~P.~{\sc Horn} +({\tt bkph@kauai.ai.mit.edu}) has observed, +{\sc ms-dos} poses the problem that the backslash `\ttbsl{}' +used in {\sc ms-dos} path names is very special in \TeX{} input. +However, I'll leave solving that one to the \TeX{}ackers.) + +On the other hand, you may be content with your new font, and you may +have write access to the place where most of the fonts are stored. In +that case, copy your font to there. There will be a place for the +{\sc tfm} files, and another for the {\sc pk} files. It's up to you +or your local system administrator(s) to know where these directories +are, because their names are very locale dependent. + + +\subsection{Environment Variables for em\TeX{} and {\sf web2c}}% +\label{sub:env} + +Environment variables often cause confusion, as they vary unpredictably +--- sometimes subtly, sometimes widely --- between systems. + +Em\TeX{} for {\sc ms-dos} and {\sf web2c} for {\sc unix} are two +popular distributions of \TeX{}, \MF{}, and associated programs. +It's worthwhile therefore to compare their environment variables. + +Firstly, the variables used leading up to the production of the +{\sc dvi} file: + +\begin{center} +\begin{tabular}{|l|l|l|} + \hline + \multicolumn{3}{|c|}{\TeX{}, \BibTeX{}, \MF{} and {\sf MFjob}} \\ + \hline + Seeking & em\TeX{} & {\sf web2c} \\ + \hline + \TeX{} Pool file & {\tt TEXFMT}, {\tt BTEXFMT} & {\tt TEXPOOL} \\ + \TeX{} Formats & {\tt TEXFMT}, {\tt BTEXFMT} & {\tt TEXFORMATS} \\ + \TeX{} Inputs & {\tt TEXINPUT} & {\tt TEXINPUTS} \\ + \TeX{} Font Metrics & {\tt TEXTFM} & {\tt TFMFONTS, TEXFONTS} \\ + \hline + \BibTeX{} {\tt bst} & {\tt TEXINPUT} & {\tt BSTINPUTS, TEXINPUTS} \\ + \BibTeX{} {\tt bib} & {\tt BIBINPUT} & {\tt BIBINPUTS} \\ + \hline + \MF{} Pool & {\tt MFBAS, BMFBAS} & {\tt MFPOOL} \\ + \MF{} Bases & {\tt MFBAS, BMFBAS} & {\tt MFBASES} \\ + \MF{} Inputs & {\tt MFINPUT} & {\tt MFINPUTS} \\ + {\sf MFjob} Inputs & {\tt MFJOB} & \multicolumn{1}{c|}{---} \\ + \hline +\end{tabular} +\end{center} + +The second table compares the environment variables used by em\TeX{}'s +{\sc dvi} drivers with those for Tomas {\sc Rokicki\/}'s portable +{\sf PostScript} driver, {\tt dvips}. + +\begin{center} +\begin{tabular}{|l|l|l|} + \hline + \multicolumn{3}{|c|}{{\sc dvi} Drivers} \\ + \hline + Seeking & em\TeX{} Drivers & {\tt dvips} \\ + \hline + {\sc dvi} files & {\tt DVIDRVINPUT} & {\em current directory} \\ + {\sc pk} Fonts & {\tt DVIDRVFONTS} & {\tt TEXPKS, PKFONTS} \\ + Bitmap Graphics & {\tt DVIDRVGRAPH} & \multicolumn{1}{c|}{---} \\ + Virtual Fonts & set by {\tt /pv} option & {\tt VFFONTS, TEXFONTS} \\ + {\tt MakeTeXPK} & \multicolumn{1}{c|}{---} & {\tt MAKETEXPK} \\ + {\tt config.ps} & \multicolumn{1}{c|}{---} & {\tt TEXCONFIG} \\ + {\sc ps} files & \multicolumn{1}{c|}{---} & {\tt TEXINPUTS} \\ + \hline +\end{tabular} +\end{center} + +Where two or more variables are listed together, they are +searched from left to right. For example, {\tt dvips} seeks {\sc pk} +fonts first in {\tt TEXPKS}, then in {\tt PKFONTS}. +By the way, if no {\sc pk} fonts can be found, then {\tt dvips} +uses the {\sc tfm} files to determine spacing, and leaves the +characters blank. + +{\sc Berry}'s {\tt dvipsk} seeks {\sc pk} fonts in whichever +{\em one\/} of {\tt PKFONTS, TEXPKS, GLYPHFONTS} and {\tt TEXFONTS} +--- in that order --- is set and of the highest priority. +If a font cannot be found via environment variables, then the +compile-time system default paths are searched; any lower priority +font path environment variables are ignored --- which may also be the +behavior of Rokicki's {\tt dvips}, but readers are encouraged to +discover the truth for themselves. +In addition, {\tt dvipsk} seeks {\sc gf} fonts using the successive +environment variables {\tt GFFONTS, GLYPHFONTS} and {\tt TEXFONTS}. + +{\sf MFjob} and {\tt MakeTeXPK} have a similar function: +to create {\sc pk} fonts from \MF{} files. +When {\sc pk} fonts are missing, but the \MF{} font sources +are available, +{\sf MFjob} can be called by recent versions (1.4r and above) +of the em\TeX{} drivers to create the missing fonts. +{\tt MakeTeXPK} is called by {\tt dvips} for the same purpose. + +In {\sc Berry\/}'s {\tt web2c 5.851d}\footnote +{Available at {\tt ftp.cs.umb.edu} in the {\tt pub/tex} directory.}, +\TeX{} can be configured to call {\tt MakeTeXTFM} and +{\tt MakeTeXTeX}, and \MF{} to call {\tt MakeTeXMF}, +to make missing {\sc tfm}, \TeX{}, and \MF{} files, respectively. +{\tt MakeTeXTFM}, like {\tt MakeTeXPK}, can call \MF{}. +Design of {\tt MakeTeXTeX} and {\tt MakeTeXMF} are up to the user's +imagination --- Karl says that one possibility is to employ {\tt ftp}. + + +\section{Some Limitations of \MF{}}\label{sec:limit} + +\MF{} contains some builtin limitations, some obvious, others +less so. + +Parts of the following list are most useful to budding programmers, +though casual users may wish to read it to learn whether +an error message produced by somebody else's \MF{} file is very +serious or not. + +\begin{enumerate} +\item +All valid numbers are strictly less than 4096. + +\item +\MFbook{}, in `Appendix F: Font Metric Information', +warns of one limitation that I've met when processing some fonts. + +`At most 15 different nonzero heights, 15 different nonzero depths, +and 63 different nonzero italic corrections\footnote{Respectively, +{\tt charht}, {\tt chardp} and {\tt charic} values.} +may appear in a single font. if these limits are exceeded, +\MF{} will change one or more values, by as little as possible, +until the restriction holds. A warning message is issued if such +changes are necessary; for example + +{\small\tt (some charht values had to be adjusted by as much as 0.12pt)} + +means that you had too many different nonzero heights, but \MF{} +found a way to reduce the number to at most 15 by changing some of them; +none of them had to be changed by more than 0.12 points. +No warning is actually given unless the maximum amount of perturbation +exceeds $\frac{1}{16}$ pt.' + +Every correct implementation of \MF{} will adjust character box +dimensions by the same amount, giving the same {\sc tfm} files, so we +ignore small perturbations in other people's fonts. When designing +your own fonts, however, I think it's courteous to keep within the +limits, so as not to worry inexperienced users. + +\item +In the {\tt addto} picture command, {\tt withweight} only accepts +values that round to {\tt -3}, {\tt -2}, {\tt -1}, {\tt +1}, {\tt +2}, +or {\tt +3}. To obtain other pixel weights, you can apply further +{\tt addto} commands. + +\item +The memory size of the version of \MF{} you use is an evident, +implementation dependent restriction, but it may be, as in \TeX{}, +that memory is not enough simply because, if you'll pardon my saying +so, some of your coding may be seriously inefficient or logically +invalid. +\end{enumerate} + + +\section{What Went Wrong?} + +The complexity of wrong things far exceeds that of things intended. + +References for some of the subsequent points: + +\MFbook{}, chapter 5, `Running \MF{}', contains +instructive examples, and supposedly `dangerous', but actually basic +and useful, notes. + +In that chapter, and in chapter 27, `Recovery from Errors', {\sc Knuth} +discusses the diagnosis of \MF{}'s error messages. I find this +perhaps the hardest part of the book --- if not of using \MF{}. + +Incidentally, \MF{}'s error messages are contained in an ASCII +file called `{\tt mf.pool}'. Reading the {\tt pool} file can be +entertaining. + + +\subsection{Big fonts, but Unwanted}\label{sec:proof} + +Recently, I found myself accidentally producing fonts with extensions +like `{\tt 3122gf}'. How? + +{\em \MF{} will take\/ {\bf anything} as an excuse to revert +to\/ {\bf proof mode}.} + +The `{\tt 3122}' is a magstep 1 proof mode. It's +\begin{verbatim} + (1.2)^1 * 2601.72 = 3122.164 dots per inch. +\end{verbatim} + +My intention was for \MF{} on a PC to use an HP Laserjet mode in +place of proof mode. However, \MF{}'s command line resembles +the law: {\em every stroke of the pen is significant}. What I had +forgotten was that on my setup, `{\tt localfont}' must be explicitly +requested. + +Em\TeX{}'s \MF{}, with {\tt plain.mf}, defaults to proof mode. +However, I usually want a local printer's font-making mode. +So to process {\tt pics.mf} correctly, I need to say: +\begin{verbatim} + mf '\mode=localfont; input pics' +\end{verbatim} + + +\subsection{Consequences of Some Typing Errors on \MF{}'s + command line}\label{sub:typo} + +Small typing errors are so common, and yet undocumented (why are +common mistakes not documented?), that I thought I'd list several that +have tripped me up on innumerable occasions. After all, why reinvent +the car crash? + +Consider a source file `{\tt pics.mf}' that contains `{\tt mag=1200/1000;}', +so it is automatically scaled by 1.2 (ie, by magstep 1). If the target +printer has 300 dpi, then a 360 dpi {\sc gf} font is wanted. + +Here is the gist of what happens for various typing errors, when using +em\TeX{}'s `{\tt mf186}' on a 286 {\sc pc} to process `{\tt pics.mf}'. + +\begin{enumerate} +\item +\verb+mf186+ $\Longrightarrow$ \MF{} will keep prompting for arguments: +\begin{verbatim} + ** +\end{verbatim} + +We can type the contents of the command line here; for example, I can +now type `{\tt pics}'. In fact, even if you use the command line, +the {\tt .log} (`transcript') file shows \MF{} echoing its +interpretation of the command line to a ** prompt. + +\item \verb+mf186 pics+ $\Longrightarrow$ proof mode: + +\begin{verbatim} + ! Value is too large (5184) +\end{verbatim} + +No {\sc tfm} is produced, and the {\sc gf} file has resolution 3122 dpi. +(3121.72 dpi, to be precise.) + +\item \verb+mf186 mode=localfont; input pics+ $\Longrightarrow$ misinterpretation: +\begin{verbatim} + ! I can't find file `modes=localfont.mf'. +\end{verbatim} + +So, `{\tt modes}' needs that backslash, otherwise mf thinks it's the start +of a source font's filename. Backslash (`$\backslash$') and ampersand +(`\&') are escapes from this standard interpretation by \MF{} +of the first argument. (Ampersand is in fact only a temporary escape, +as \MF{} resumes the {\tt mf} filename prompting attitude as soon +as a base is read.) + +\item \verb+mf186 \mode=localfont input pics+ $\Longrightarrow$ + weird effect: +\begin{verbatim} + >> unknown string mode_name1.2 + ! Not a string + + ; + mode_setup-> ...ode)else:mode_name[mode]fi; + l.6 mode_setup + ; +\end{verbatim} + +Wow! What a difference a semicolon can make! + +\item \verb+mf186 \mode=localfont pics+ $\Longrightarrow$ + almost nothing happens: +\begin{verbatim} + ** \mode=localfont pics + + * +\end{verbatim} + +There's the echo I mentioned. From the lack of activity, {\tt pics} +evidently needs to be `{\tt input}'. + +\item \verb+mf186 \mode=localfont; pics+ $\Longrightarrow$ + + Same as 5. + +So, yes, when the mode is specified, we need `{\tt input}' +before `{\tt pics}'. + +\item \verb+mf186 &plain \mode=localfont; input pics+ $\Longrightarrow$ + + Works. + +Just as without the `{\tt \&plain}', it writes a {\sc gf} file, +`{\tt pics.360gf}', which is correct. +({\sc ms-dos} truncates the name to `{\tt pics.360}'.) +So, redundancy seems okay. Does it waste time, though? +\end{enumerate} + + +\subsection{Finding the Fonts}\label{sub:finding} + +Finding the fonts ({\tt *.mf}, {\tt *.tfm}, {\tt *.gf}, and {\tt *.pk}) +trips up \TeX{}, \MF{}, {\sf GFtoPK} and the output drivers continually. +`{\tt pics.tfm}' needs to be put where \TeX{} will look for {\sc tfm\/}s, +so I needed to ensure that `{\tt .}' was in the appropriate path environment +variable. Similarly for the \MF{}, {\sc gf} and {\sc pk} font files. + +Environment variables can be tricky. For instance, em\TeX{}'s font-making +automation program `{\sf MFjob}' cannot make fonts in the current directory +unless both `{\tt .}' and `{\tt ..}' are added to {\tt MFINPUT}. +This was not documented. + +Also, some popular \TeX{} output drivers, such as the em\TeX{} drivers +on {\sc ms-dos} and {\sc os/2}, and Tomas {\sc Rokicki\/}'s `{\tt dvips}' +which has been ported to many systems, make missing fonts automatically +--- provided that they can find the necessary \MF{} source files. +Again, making fonts in the current directory can require some +tweaking. + + +\subsection{{\tt MakeTeXPK}}\label{sub:maketexpk} + +On {\sc unix}, when fonts are missing, +{\tt dvips} calls a Bourne shell script, `{\tt MakeTeXPK}', +which creates a temporary directory, which it then changes to, +before calling \MF{} to make the missing fonts. +The change of directory can cause \MF{} not to find font sources +lying in what {\bf used} to be the current directory. + +Gert W.~{\sc Bultman} ({\tt bultman@dgw.rws.nl}) has suggested the +following modification to {\tt MakeTeXPK\/}: +\begin{verbatim} + MFINPUTS=${MFINPUTS}:`pwd`; export MFINPUTS +\end{verbatim} +to add the current directory to the search path, {\em before\/} the +change to the temporary directory: +\begin{verbatim} + cd $TEMPDIR +\end{verbatim} + +Micha{\l} {\sc Jaegermann} ({\tt ntomczak@vm.ucs.ualberta.ca}) +has pointed out that: + +`This will not work very well in a situation when the {\tt MFINPUTS} variable +is not set, and you rely instead on \MF{} files being in a default +location. The problem is that in such a situation, after an execution +of the line above, you will end up with ONLY your 'current working +directory' in the {\tt MFINPUTS} path, [which still leaves you +without access to the standard \MF{} files]. + +`For the Bourne shell, {\tt sh}, this line should rather read +somewhat\footnote +{gt: I've separated this into two (valid, unix Bourne shell) lines, +to fit into the text width of this document.} +like: +\begin{verbatim} + MFINPUTS=`pwd`:${MFINPUTS-/usr/lib/mf/inputs} + export MFINPUTS +\end{verbatim} +which gives you a fallback position. Of course, +\begin{verbatim} + /usr/lib/mf/inputs +\end{verbatim} +should be replaced by a default value for the {\tt MFINPUTS} path. + +`This problem is highly likely to affect budding \MF{} hackers +on {\sf NeXT}, for example.' + +Micha{\l}'s suggestion gives priority to \MF{} files in the directory that +is current when MakeTeXPK is called, which is the usual preference. +In {\tt sh}, the `{\tt \${A-B}}' construction has the value of {\tt A}, +if {\tt A} is defined, and the value of {\tt B}, otherwise. + +Karl {\sc Berry} advises that for {\tt web2c 5.851c} and above, +a leading or trailing colon in a path is replaced by the compile-time +default path. For {\tt web2c} he suggests: +\begin{verbatim} + if test -z "$MFINPUTS"; then + MFINPUTS=`pwd`: + else + MFINPUTS=`pwd`:$MFINPUTS: + fi +\end{verbatim} + +Test these ideas on your system, to see what is most applicable. + +Incidentally, on {\sc ms-dos}, {\tt dvips} calls a batch file, +`{\tt MAKETEXP.BAT}', but, in the {\sc ms-dos} versions I've seen, +this lacks the change to a temporary directory that causes +the problem that occurs both in the {\sc unix} versions of {\tt dvips} +and in em\TeX{}'s MFjob. + + +\subsection{Strange Paths; Not a cycle; Bad pos} + +\MF{} satisfactorily fills simple closed curves, like `{\tt O}' +and `{\tt D}', but filling a figure eight, `{\tt 8}', causes a +complaint: +\begin{verbatim} + Strange path (turning number is zero) +\end{verbatim} +because \MF{}'s rules for distinguishing inside from outside +might or might not give what you want for an `{\tt 8}', as there is +more than one conceivable answer. You can use the `positive turning +rule' for all cases, and also turn off complaints, by setting +\begin{verbatim} + turningcheck := 0; +\end{verbatim} +Chapter 13: `Drawing, Filling, and Erasing', and Chapter 27: +`Recovery from Errors', discuss {\tt strange paths} in greater +depth. + + +Sometimes, when making a perfectly valid font, but in {\em low\/} +resolutions, as for previewers (eg, VGA has 96 dpi), one may get +flak about a `{\tt Strange path}', `{\tt Not a cycle}', +`{\tt bad pos}', or something similar. Don't be alarmed. Fonts for +previewing will still be OK even if not perfect. (Actually, I don't +spot any difference!) + +Consequently, it is an idea to make low resolution fonts in +\MF{}'s \hbox{\tt nonstopmode}. + +Em\TeX{}'s drivers version 1.4s make missing fonts automatically +through the {\tt MFjob} program (version 1.1l). To keep {\tt MFjob} +running, add the option {\tt /i} (`ignore errors produced by \MF{}') +to the {\tt MFJOBOPT} environment variable. + +Examples of fonts that give messages of this nature are the pleasant +Pandora, and --- from memory --- the commendable Ralf Smith's +Formal Script ({\tt rsfs}). Everything is fine at higher resolutions. + +Mind you, some fonts provoke sporadic +(that is, design size dependent) +strange path messages at 300 dpi +(phototypesetter users would consider that low resolution), +yet the printed appearance shows no visible defect. + +Why do strange paths occur? +One cause is rounding error on relatively coarse grids. + +To summarize, if your viewed or printed bitmaps are fine, +then you are OK. + + +\section{\MF{} Mail List} + +Since 10 December 1992, there has been an e-mail discussion list +for \MF{}, created: + +\begin{enumerate} +\item as a means of communication between hooked \MF{}ers; + +\item as a way to bring the ``rest of us'' closer to them; + +\item as a means to get quick and efficient answers to questions + such as: + +\begin{itemize} + \item[$\circ$] why do I always get a ``.2602gf'' file? + \item[$\circ$] what is a ``strange path'', + and what can I do to avoid it? + \item[$\circ$] is there a way to go from \MF{} to PostScript + and vice-versa? + \item[$\circ$] where can I find a Stempel Garamond font + written in \MF{}? + \item[$\circ$] what is metaness? +\end{itemize} + +\item and finally, as a first step to encourage people to undertake + \MF{}ing, and start a new post-Computer Modern era of \MF{}! +\end{enumerate} + +To subscribe to this list, send the following two lines to +``{\tt listserv@ens.fr}'' on the Internet: + \begin{quote} + \tt + SUBSCRIBE METAFONT $<$Your name and affiliation$>$\\ + SET METAFONT MAIL ACK + \end{quote} +The address of the list is ``{\tt metafont@ens.fr}'' +(at the notorious Ecole Normale Superieure de~Paris). +Owner of the list is Jacques {\sc Beigbeder} +(``{\tt beig@ens.fr}''), +coordinator is Yannis {\sc Haralambous} +(``{\tt yannis@gat.citilille.fr}''). +Language of the list is English; +intelligent mottos are encouraged. + + +\section{Conclusion} + +\MF{}, like \TeX{} and many another `portable' program of any +complexity, merits the warning: `{\em Watch out for the first step\/}'. + +I hope that a document like this may help to prevent domestic +accidents involving \MF{}, and so contribute to making the task +of using and designing meta-fonts an enjoyable one. My brief +experience with \MF{} suggests that it can be so. + + +All the Best! +%% Geoffrey Tobin + +\end{document} +% end file mfb3w4.tex % diff --git a/Master/texmf-doc/doc/english/metafp/metafp.pdf b/Master/texmf-doc/doc/english/metafp/metafp.pdf new file mode 100644 index 00000000000..fa9940fe18d Binary files /dev/null and b/Master/texmf-doc/doc/english/metafp/metafp.pdf differ diff --git a/Master/texmf-doc/doc/english/metapost-examples/Makefile b/Master/texmf-doc/doc/english/metapost-examples/Makefile new file mode 100644 index 00000000000..f2300310718 --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/Makefile @@ -0,0 +1,21 @@ +METAPOST = mpost --interaction=nonstopmode + +all: + perl mp2html.pl + +old_all: + TEX=latex $(METAPOST) examples.mp + +clean: + rm -f examples.[0-9] examples.[0-9][0-9] examples.[0-9][0-9][0-9] *.mps + rm -f examples.tex examples.ps examples.dvi examples.pdf + rm -f *.dvi *.aux *.log *\~ + rm -f mpxerr.* *.mpx mptextmp.* + rm -f nohup.out + +cleanse: clean + rm -f examples.[0-9].gif examples.[0-9][0-9].gif examples.[0-9][0-9][0-9].gif + rm -f examples.[0-9].eps examples.[0-9][0-9].eps examples.[0-9][0-9][0-9].eps + rm -f examples.[0-9].ps examples.[0-9][0-9].ps examples.[0-9][0-9][0-9].ps + rm -f examples.[0-9].tex examples.[0-9][0-9].tex examples.[0-9][0-9][0-9].tex + rm -f examples.html diff --git a/Master/texmf-doc/doc/english/metapost-examples/README b/Master/texmf-doc/doc/english/metapost-examples/README new file mode 100644 index 00000000000..a884163d656 --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/README @@ -0,0 +1,21 @@ +These are a few (hundred) example pictures drawn with +metapost, ranging from very simple (lines and circles) +to rather intricate (uncommon geometric transformations, +fractals, bitmap, etc.). + +README this file +data1 sample data file (for plot drawings) +data2 +data3 +examples.mp The examples +mptohtml.pl A perl script that turns the examples into a PostScript + file and into an HTML file and GIF pictures + The resulting (huge) Web page may be seen here: + http://www.math.jussieu.fr/~zoonek/LaTeX/Metapost/metapost.html +Makefile runs the above script + +Vincent Zoonekynd +August 1999 +Updated august 2001 +Version 0.01 +Distributed under the GPL (see http://www.gnu.org/copyleft/gpl.html for details) diff --git a/Master/texmf-doc/doc/english/metapost-examples/data1 b/Master/texmf-doc/doc/english/metapost-examples/data1 new file mode 100644 index 00000000000..24092f087bb --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/data1 @@ -0,0 +1,11 @@ +0 82 +1 90 +2 100 +3 97 +4 70 +5 75 +6 93 +7 103 +8 115 +9 121 +10 119 diff --git a/Master/texmf-doc/doc/english/metapost-examples/data2 b/Master/texmf-doc/doc/english/metapost-examples/data2 new file mode 100644 index 00000000000..c934e72a70b --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/data2 @@ -0,0 +1,11 @@ +0 100 +1 95 +2 85 +3 80 +4 83 +5 90 +6 88 +7 96 +8 99 +9 100 +10 105 diff --git a/Master/texmf-doc/doc/english/metapost-examples/data3 b/Master/texmf-doc/doc/english/metapost-examples/data3 new file mode 100644 index 00000000000..7e54a066ff7 --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/data3 @@ -0,0 +1,11 @@ +0 125 +1 119 +2 123 +3 104 +4 81 +5 94 +6 90 +7 88 +8 85 +9 89 +10 90 diff --git a/Master/texmf-doc/doc/english/metapost-examples/examples.mp b/Master/texmf-doc/doc/english/metapost-examples/examples.mp new file mode 100644 index 00000000000..7a156f03deb --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/examples.mp @@ -0,0 +1,4896 @@ +warningcheck:=0; + +input rboxes; +input sarith; +input graph; + +verbatimtex +\documentclass[a4paper,12pt]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\begin{document} +etex + +vardef TEX primary s = + write "verbatimtex" to "mptextmp.mp"; + write "\documentclass[12pt]{article}" to "mptextmp.mp"; + write "\usepackage[T1]{fontenc}" to "mptextmp.mp"; + write "\usepackage{amsmath,amssymb}" to "mptextmp.mp"; + write "\begin{document}" to "mptextmp.mp"; + write "etex" to "mptextmp.mp"; + write "btex "&s&" etex" to "mptextmp.mp"; + write EOF to "mptextmp.mp"; + scantokens "input mptextmp" +enddef; + +vardef longueur(expr p) = + save l,i; + numeric l; + l:=0; + for i=0 step .01 until length(p): + l:=l+abs( (point i of p) - (point(i+.01) of p) ); + endfor; + l % Pas de point-virgule +enddef; + +vardef milieu(expr p) = + save l,i,tot,A,B; + numeric l,tot,i; + pair A,B; + tot := longueur(p); + l:=0; + B := point 0 of p; + for i:=0 step .01 until length(p): + A := B; + B := point i of p; + l := l+abs(B-A); + exitif l > 1/2 tot; + endfor; + show l; show tot; + 1/2[A,B] +enddef; + +vardef milieu_time(expr p) = + save l,i,tot,A,B,t; + numeric l,tot,i,t; + pair A,B; + tot := longueur(p); + l:=0; + B := point 0 of p; + for i:=0 step .01 until length(p): + t:=i; + A := B; + B := point i of p; + l := l+abs(B-A); + exitif l > 1/2 tot; + endfor; + t +enddef; + +beginfig(1) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C; + +endfig; +beginfig(2) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + +endfig; +beginfig(3) + pair A[]; + A[0]:=(-1cm, -1cm); + A[1]:=( 1cm, -1cm); + A[2]:=( 1cm, 1cm); + A[3]:=(-1cm, 1cm); + draw A[0]--A[1]--A[2]--A[3]--cycle; + draw A[0]--A[2]; + draw A[1]--A[3]; +endfig; +beginfig(4) + pair A; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A withpen pencircle scaled 4bp; + +endfig; +beginfig(5) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw C withpen pencircle scaled 4bp; +endfig; +beginfig(6) + pair A, B, C, D; + A:=(0,0); B:=(1cm,0); + C:=(1cm,1cm); D:=(0,1cm); + draw A--B--C--D--cycle; + draw A--C; + draw B--D; + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw C withpen pencircle scaled 4bp; + draw D withpen pencircle scaled 4bp; +endfig; +beginfig(7) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw 1/2[A,B] -- C; + draw 1/2[B,C] -- A; + draw 1/2[C,A] -- B; +endfig; +beginfig(8) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw 1/2[A,B] -- C; + draw 1/2[B,C] -- A; + draw 1/2[C,A] -- B; + draw 1/3 A + 1/3 B + 1/3 C + withpen pencircle scaled 4bp; +endfig; +beginfig(9) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw A--B withpen pencircle scaled 2bp; + +endfig; +beginfig(10) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw A--B withcolor (green + red); + +endfig; +beginfig(11) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B; + draw B--C dashed evenly; + draw C--A dashed withdots; + +endfig; +beginfig(12) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B withpen pencircle scaled 2bp withcolor .8white; + draw B--C withpen pencircle scaled 2bp withcolor .6white; + draw C--A withpen pencircle scaled 2bp withcolor .4white; + +endfig; +beginfig(13) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + draw 1/2[A,B] -- C dashed evenly; + draw 1/2[B,C] -- A dashed evenly; + draw 1/2[C,A] -- B dashed evenly; + draw 1/3 A + 1/3 B + 1/3 C + withpen pencircle scaled 4bp + withcolor red; +endfig; +beginfig(14) + draw (0,0)--(3cm,0) dashed evenly scaled 2; + draw (0,-5mm)--(3cm,-5mm) dashed evenly; + +endfig; +beginfig(15) + draw (0,0)--(3cm,0) + dashed dashpattern(on 2bp off 3bp); + +endfig; +beginfig(16) + draw (0,0)--(3cm,0) dashed dashpattern(on 1bp off 2bp on 10bp off 2bp); +endfig; +beginfig(17) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + drawarrow C--B--A; + drawarrow A--C withpen pencircle scaled 2bp; + +endfig; +beginfig(18) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw C--B--A--cycle; + drawdblarrow A--C withpen pencircle scaled 2bp; + +endfig; +beginfig(19) + draw (-1.5cm,0)--(1.5cm,0); + draw (0,-1.5cm)--(0,1.5cm); + drawarrow (0,0)--(1cm,0) + withpen pencircle scaled 2bp; + drawarrow (0,0)--(0,1cm) + withpen pencircle scaled 2bp; +endfig; +beginfig(20) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + fill A--B--C--cycle withcolor .8 white; + +endfig; +beginfig(21) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + fill A--B--C--cycle withcolor .8 white; + draw A--B--C--cycle; + +endfig; +beginfig(22) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + fill A--B--C--cycle withcolor .8 white; + draw A--B--C--cycle withpen pencircle scaled 2bp; +endfig; +beginfig(23) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle withpen pencircle scaled 2bp; + fill A--B--C--cycle withcolor .8 white; +endfig; +beginfig(24) + pair A, B, C, D; + A:=(0,0); B:=(1cm,0); + C:=(1cm,1cm); D:=(0,1cm); + fill A--C--B--D--cycle withcolor .8white; +endfig; +beginfig(25) + pair A, B, C, D; + A:=(0,0); B:=(1cm,0); + C:=(1cm,1cm); D:=(0,1cm); + path p; + p := A--C--B--D--cycle; + fill p withcolor .8white; + draw p; +endfig; +beginfig(26) + pair A, B, C, D; + A:=(-1.5cm,-1.5cm); B:=(1.5cm,-1.5cm); + C:=(1.5cm,1.5cm); D:=(-1.5cm,1.5cm); + fill A--C--B--D--cycle withcolor .8white; + draw (-1.5cm,0)--(1.5cm,0); + draw (0,-1.5cm)--(0,1.5cm); + drawarrow (0,0)--(1cm,0) + withpen pencircle scaled 2bp; + drawarrow (0,0)--(0,1cm) + withpen pencircle scaled 2bp; +endfig; +beginfig(27) + pair A; + A := (0,0); + draw A withpen pencircle scaled 4bp; + label.top(btex Au dessus etex, A); + label.bot(btex En dessous etex, A); + label.rt (btex À droite etex, A); + label.lft(btex À gauche etex, A); + +endfig; +beginfig(28) + pair A; + A := (0,0); + draw A withpen pencircle scaled 4bp; + label.ulft(btex En haut à gauche etex, A); + label.urt (btex En haut à droite etex, A); + label.llft(btex En bas à gauche etex, A); + label.lrt (btex En bas à droite etex, A); + +endfig; +beginfig(29) + pair A; + A := (0,0); + dotlabel.urt(btex $A$ etex, A); + +endfig; +beginfig(30) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + dotlabel.llft(btex $A$ etex, A); + dotlabel.lrt(btex $B$ etex, B); + dotlabel.top(btex $C$ etex, C); +endfig; +beginfig(31) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + label.bot(btex $1$ etex, 1/2[A,B]); + label.lft(btex $1$ etex, 1/2[A,C]); + label.urt(btex $\sqrt 2$ etex, 1/2[B,C]); +endfig; +beginfig(32) + u:=1cm; + pair A,B,C,D,E,F,G; + A := (-u,u); + B := (0,u); + C := (u,u); + D := (-u,0); + E := (0,0); + F := (u,0); + draw A--D; draw A--E; draw A--F; + draw B--D; draw B--E; draw B--F; + draw C--D; draw C--E; draw C--F; + dotlabel.top(btex $a$ etex, A); + dotlabel.top(btex $b$ etex, B); + dotlabel.top(btex $c$ etex, C); + dotlabel.bot(btex $a'$ etex, D); + dotlabel.bot(btex $b'$ etex, E); + dotlabel.bot(btex $c'$ etex, F); +endfig; +beginfig(33) + draw fullcircle; + +endfig; +beginfig(34) + draw (0,0) withpen pencircle scaled 4bp; + draw fullcircle scaled 1cm; + +endfig; +beginfig(35) + draw (0,0) withpen pencircle scaled 4bp; + draw fullcircle scaled 1cm shifted (1cm,1cm); + +endfig; +beginfig(36) + pair A, B, C; + A:=(0,0); B:=(1cm,0); C:=(0,1cm); + draw A--B--C--cycle; + fill fullcircle scaled 4bp shifted A withcolor white; + fill fullcircle scaled 4bp shifted B withcolor white; + fill fullcircle scaled 4bp shifted C withcolor white; + draw fullcircle scaled 4bp shifted A; + draw fullcircle scaled 4bp shifted B; + draw fullcircle scaled 4bp shifted C; +endfig; +beginfig(37) + draw (0,0) .. (0,1cm) .. (1cm,0) .. (1cm,1cm); + draw (0,0) withpen pencircle scaled 4bp; + draw (0,1cm) withpen pencircle scaled 4bp; + draw (1cm,0) withpen pencircle scaled 4bp; + draw (1cm,1cm) withpen pencircle scaled 4bp; + +endfig; +beginfig(38) + draw (0,0) -- (0,1cm) .. (1cm,0) .. (1cm,1cm); + +endfig; +beginfig(39) + draw (0,0) --- (0,1cm) .. (1cm,0) .. (1cm,1cm); + +endfig; +beginfig(40) + draw (0,0) .. (0,1cm) .. (1cm,0) .. (1cm,1cm) + .. cycle; + +endfig; +beginfig(41) + pair A, B, C, D; + A:=(0,0); B:=(1cm,0); + C:=(1cm,1cm); D:=(0,1cm); + draw A..B..C..D..cycle; +endfig; +beginfig(42) + draw (0,0) .. (1cm,1cm) .. cycle; +endfig; +beginfig(43) + draw (0,0){(0,1)} .. (2cm,0){(1,0)}; + +endfig; +beginfig(44) + draw (0,0){dir 90} .. (2cm,0){dir 0}; + +endfig; +beginfig(45) + draw (0,0){up} .. (2cm,0){right}; + +endfig; +beginfig(46) + draw (0,0){up} .. (2cm,0){up}; +endfig; +beginfig(47) + draw (0,0){up} .. (2cm,0){up} .. cycle; +endfig; +beginfig(48) + alpha := 30; + draw (0,0) -- 2cm*dir 0; + draw (0,0) -- 2cm*dir alpha; + draw 1cm * dir 0 {dir 90} .. + 1cm * dir alpha {dir(90+alpha)}; +endfig; +beginfig(49) + alpha := 30; + draw (0,0) -- 2cm*dir 0; + draw (0,0) -- 2cm*dir alpha; + draw 1cm * dir 0 {dir 90} .. + 1cm * dir alpha {dir(90+alpha)}; + draw 1.1cm * dir 0 {dir 90} .. + 1.1cm * dir alpha {dir(90+alpha)}; +endfig; +beginfig(50) + def draw_angle(expr A, O, B, n) = + draw_angle_(A,O,B,5mm); + if n>1 : draw_angle_(A,O,B,4.5mm); fi; + if n>2 : draw_angle_(A,O,B,4mm); fi; + if n>3 : draw_angle_(A,O,B,5.5mm); fi; + enddef; + def draw_angle_(expr A,O,B,d) = + draw (O + d*unitvector(A-O)) + { d*unitvector(A-O) rotated 90 } + .. + { d*unitvector(B-O) rotated 90 } + (O + d*unitvector(B-O)); + enddef; + pair A, B, C; + A := (0,0); + B := (3cm,0); + C := (1cm,2cm); + draw A--B--C--cycle; + draw_angle(B,A,C,1); + draw_angle(C,B,A,2); + draw_angle(A,C,B,3); +endfig; +beginfig(51) + u:=1cm; + path p; + p := (u,0){up}..(-u,0){down}--cycle; + fill p withcolor .8*white; + draw p withpen pencircle scaled 1bp; +endfig; +beginfig(52) + u:=1cm; + path p; + p := (u,0){up} .. + (-u,0){down} -- + (-.2u,0){up} .. + (.2u,0){down} -- + cycle; + fill p withcolor .8*white; + draw p withpen pencircle scaled 1bp; +endfig; +beginfig(53) + u:=1cm; + pair A,AA,B,BB,C,D; + A := ( .2u, .05u); + AA := ( .2u, -.05u); + B := ( u, .05u); + BB := ( u, -.05u); + C := (-.2u, 0); + D := ( -u, 0); + path p; + p:= B{up} .. D{down} .. BB{up} -- + AA{down} .. C{up} .. A{down} -- cycle; + fill p withcolor .8*white; + draw p withpen pencircle scaled 1bp; +endfig; +beginfig(54) + u:=1cm; + pair A,B,C,D; + A:=(0,0); + B:=u*dir 60; + C:=u*dir -60; + D:=(2u,0); + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw C withpen pencircle scaled 4bp; + draw D withpen pencircle scaled 4bp; + draw A--D--B--D--C; + draw A{up}..B; + draw A{down}..C; + draw A{dir 30}..B; + draw A{dir -30}..C; +endfig; +beginfig(55) + draw (0,0) .. (1cm,1cm) .. (2cm,0); + +endfig; +beginfig(56) + draw (0,0) .. tension 2 .. + (1cm,1cm) .. (2cm,0); + +endfig; +beginfig(57) + draw (0,u) {right} .. + ( u*dir -150 ){dir 120} .. + ( u*dir -30 ){dir -120} .. + cycle; +endfig; +beginfig(58) + draw (0,u) {right} .. tension 2 .. + ( u*dir -150 ){dir 120} .. tension 2 .. + ( u*dir -30 ){dir -120} .. tension 2 .. + cycle; +endfig; +beginfig(59) + draw (0,u) {right} .. tension 4 .. + ( u*dir -150 ){dir 120} .. tension 4 .. + ( u*dir -30 ){dir -120} .. tension 4 .. + cycle; +endfig; +beginfig(60) + u:=.5cm; + pair A,B,C,D; + A:=(0,0); B:=(-u,2u); + C:=(4u,3u); D:=(3u,0); + draw A.. controls B and C .. D + withpen pencircle scaled 2pt; + draw B--C dashed evenly; + drawarrow A--B; + drawarrow D--C; + +endfig; +beginfig(61) + pair A, B, C, D; + A = (0,0); + D = (2u,0); + B = (-u,2u); + C = (3u,3u); + + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw C withpen pencircle scaled 4bp; + draw D withpen pencircle scaled 4bp; + draw A .. controls B and C .. D; + + pair a[]; + a[1] := A; + a[2] := B; + a[3] := C; + a[4] := D; + + a[12] := 1/2 [ a[1], a[2] ]; + a[23] := 1/2 [ a[2], a[3] ]; + a[34] := 1/2 [ a[3], a[4] ]; + a[123] := 1/2 [ a[12], a[23] ]; + a[234] := 1/2 [ a[23], a[34] ]; + a[1234] := 1/2 [ a[123], a[234] ]; + + draw a[1234] withpen pencircle scaled 4bp; +endfig; +beginfig(62) +vardef bezier(expr n,A,B,C,D) = + save a; + pair a[]; + a[1] := A; + a[2] := B; + a[3] := C; + a[4] := D; + + a[12] := 1/2 [ a[1], a[2] ]; + a[23] := 1/2 [ a[2], a[3] ]; + a[34] := 1/2 [ a[3], a[4] ]; + a[123] := 1/2 [ a[12], a[23] ]; + a[234] := 1/2 [ a[23], a[34] ]; + a[1234] := 1/2 [ a[123], a[234] ]; + + if n>0: + bezier(n-1, a[1], a[12], a[123], a[1234]); + bezier(n-1, a[1234], a[234], a[34], a[4]); + else: + draw a[1234] withpen pencircle scaled 2bp; + fi; +enddef; + + pair A, B, C, D; + A = (0,0); + D = (2u,0); + B = (-u,2u); + C = (3u,3u); + + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw C withpen pencircle scaled 4bp; + draw D withpen pencircle scaled 4bp; + + bezier(5,A,B,C,D); +endfig; +beginfig(63) + draw (0,0){up} .. (1cm, 1mm) .. (2cm,0){down}; + +endfig; +beginfig(64) + draw (0,0){up} ... (1cm, 1mm) ... (2cm,0){down}; + +endfig; +beginfig(65) + draw (0,0){curl 0} .. (0,1cm)..(1cm,0)..(1cm,1cm); + +endfig; +beginfig(66) + draw (0,0){curl 1} .. (0,1cm)..(1cm,0)..(1cm,1cm); + +endfig; +beginfig(67) + draw (0,0){curl 2} .. (0,1cm)..(1cm,0)..(1cm,1cm); + +endfig; +beginfig(68) + pair A,B,C,D; + xpart A = ypart A = ypart B = xpart C = 0; + xpart B = ypart C = xpart D = ypart D = 2cm; + draw A--B--C--D--cycle withpen pencircle scaled 2bp; +endfig; +beginfig(69) + pair A,B,C,D,M; + numeric lambda, mu; + A=(0,0); B=(2cm,3cm); + C=(1cm,0); D=(-1cm,2cm); + M = lambda [A,B]; + M = mu [C,D]; + draw A--B; + draw C--D; + draw M withpen pencircle scaled 4bp; + +endfig; +beginfig(70) + pair A,B,C,D,M; + A=(0,0); B=(2cm,3cm); + C=(1cm,0); D=(-1cm,2cm); + M = whatever [A,B]; + M = whatever [C,D]; + draw A--B; + draw C--D; + draw M withpen pencircle scaled 4bp; + +endfig; +beginfig(71) + pair A,B,C,AA,BB,CC,G; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + AA = 1/2 [B,C]; + BB = 1/2 [C,A]; + CC = 1/2 [A,B]; + G = whatever [A,AA]; + G = whatever [B,BB]; + draw A--B--C--cycle; + draw A--AA dashed withdots; + draw B--BB dashed withdots; + draw C--CC dashed withdots; + draw G withpen pencircle scaled 4bp; +endfig; +beginfig(72) + path p; + p := fullcircle scaled 5mm; + draw p; + draw p shifted (1mm,2mm); + draw p shifted 2(1mm,2mm); + draw p shifted 3(1mm,2mm); + draw p shifted 4(1mm,2mm); + draw p shifted 5(1mm,2mm); + +endfig; +beginfig(73) + path p; + p := (5mm,-5mm) {right} .. (2cm,0); + draw p; + draw p rotated 10; + draw p rotated 20; + draw p rotated 30; + draw p rotated 40; + draw p rotated 50; + draw p rotated 60; + draw p rotated 70; + draw p rotated 80; + draw p rotated 90; + +endfig; +beginfig(74) + path p; + p := fullcircle scaled 5mm; + draw p; + draw p xscaled 2; + draw p xscaled 3; + draw p xscaled 4; + +endfig; +beginfig(75) + pair A,B,C,D,E; + A := (1cm,0); + B := A rotated 72; + C := B rotated 72; + D := C rotated 72; + E := D rotated 72; + draw A--B--C--D--E--cycle; +endfig; +beginfig(76) + pair A,B,C,D,E; + A := (1cm,0); + B := A rotated 72; + C := B rotated 72; + D := C rotated 72; + E := D rotated 72; + draw A--C--E--B--D--cycle; +endfig; +beginfig(77) + pair A,B,C,D,E; + A := (1cm,0); + B := A rotated 72; + C := B rotated 72; + D := C rotated 72; + E := D rotated 72; + pair AA, BB, CC, DD, EE; + AA = whatever [A, C]; + AA = whatever [B, D]; + BB = whatever [B, D]; + BB = whatever [C, E]; + CC = whatever [C, E]; + CC = whatever [D, A]; + DD = whatever [D, A]; + DD = whatever [E, B]; + EE = whatever [E, B]; + EE = whatever [A, C]; + fill A--C--E--B--D--cycle withcolor .8white; + fill AA--BB--CC--DD--EE--cycle withcolor white; + draw A--C--E--B--D--cycle; +endfig; +beginfig(78) + path p; + p := (0,0) -- (1cm,0); + drawarrow p withpen pencircle scaled 2bp; + drawarrow p zscaled (1,2); + +endfig; +beginfig(79) + u:=1cm; + path p; p := (0,0) -- (u,0); + pair A; A := (u,-u); + numeric a; a := 90; + drawarrow p withpen pencircle scaled 1bp; + drawarrow p rotatedaround( A, a ); + drawarrow p shifted -A rotated a shifted A + withpen pencircle scaled 1bp dashed withdots; +endfig; +beginfig(80) + path p; p := (0,0) -- (u,0); + pair A; A := (u,-u); + numeric a; a := 90; + drawarrow p withpen pencircle scaled 1bp; + draw A withpen pencircle scaled 4bp; + label ulft ( btex $A$ etex, A ); + draw (0,0) withpen pencircle scaled 4bp; + label bot ( btex $O$ etex, (0,0) ); + for i=0 upto 10: + drawarrow p shifted -(i*A/10) withcolor red; + endfor; + for i=0 upto 10: + drawarrow p shifted -A rotated (i*a/10) withcolor green; + endfor; + for i=0 upto 10: + drawarrow p shifted -A rotated a shifted (i*A/10) withcolor blue; + endfor; +endfig; +beginfig(81) + pair A,B,C,AA,BB,CC,H; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + AA - A = whatever * (B-C) rotated 90; + AA = whatever [B,C]; + BB - B = whatever * (A-C) rotated 90; + BB = whatever [A,C]; + CC - C = whatever * (A-B) rotated 90; + CC = whatever [A,B]; + H = whatever [A,AA]; + H = whatever [B,BB]; + draw A--B--C--cycle; + draw A--AA; + draw B--BB; + draw C--CC; + draw H withpen pencircle scaled 4bp; +endfig; +beginfig(82) + pair A,B,C,H; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + H - A = whatever * (B-C) rotated 90; + H - B = whatever * (A-C) rotated 90; + draw A--B--C--cycle; + draw H withpen pencircle scaled 4bp; +endfig; +beginfig(83) + pair A,B,C,O; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + O - 1/2[B,C] = whatever * (B-C) rotated 90; + O - 1/2[A,B] = whatever * (A-B) rotated 90; + draw A--B--C--cycle; + draw O withpen pencircle scaled 4bp; + draw fullcircle scaled 2abs(O-A) shifted O; +endfig; +beginfig(84) + pair A,B,C,D; + u:=2cm; + A=(0,0); B=(u,0); C=(u,u); D=(0,u); + + transform T; + A transformed T = 1/5[A,B]; + B transformed T = 1/5[B,C]; + C transformed T = 1/5[C,D]; + + path p; + p = A--B--C--D--cycle; + draw p; + draw p transformed T; + +endfig; +beginfig(85) + pair A,B,C,D; + u:=2cm; + A=(0,0); B=(u,0); C=(u,u); D=(0,u); + + transform T; + A transformed T = 1/5[A,B]; + B transformed T = 1/5[B,C]; + C transformed T = 1/5[C,D]; + + path p; + p = A--B--C--D--cycle; + for i=0 upto 100: + draw p; + p:= p transformed T; + endfor; + +endfig; +beginfig(86) + u:=1cm; + pair A,B,C,D,E; + A := (0,u); + B := A rotated 72; + C := B rotated 72; + D := C rotated 72; + E := D rotated 72; + transform T; + A transformed T = 1/5[A,B]; + B transformed T = 1/5[B,C]; + C transformed T = 1/5[C,D]; + path p; + p := A--B--C--D--E--cycle; + draw p; + p := p transformed T; draw p; + p := p transformed T; draw p; + p := p transformed T; draw p; +endfig; +beginfig(87) + u:=3mm; + fill fullcircle scaled 2u withcolor .8white; + fill fullcircle scaled u shifted (u*dir30) + withcolor .8white; + fill fullcircle scaled u shifted (u*dir150) + withcolor .8white; +endfig; +beginfig(88) + u:=3mm; + transform T; + (0,0) transformed T = (0,0); + (1,0) transformed T = (1,1); + (0,1) transformed T = (1,0); + + fill fullcircle scaled 2u transformed T withcolor .8white; + fill fullcircle scaled u shifted (u*dir30) transformed T + withcolor .8white; + fill fullcircle scaled u shifted (u*dir150) transformed T + withcolor .8white; +endfig; +beginfig(89) + u:=3mm; + transform T; + xpart T = ypart T = 0; + xxpart T = 1; + yxpart T = 2; + xypart T = 3; + yypart T = 4; + + fill fullcircle scaled 2u transformed T withcolor .8white; + fill fullcircle scaled u shifted (u*dir30) transformed T + withcolor .8white; + fill fullcircle scaled u shifted (u*dir150) transformed T + withcolor .8white; +endfig; +beginfig(90) + draw fullcircle scaled 1cm; + draw fullcircle scaled 5mm shifted (1cm*dir45); + draw fullcircle scaled 5mm shifted (1cm*dir135); + picture mypicture; + mypicture := currentpicture; + currentpicture := nullpicture; + draw mypicture; + draw mypicture shifted (1mm,1mm); + draw mypicture shifted (2mm,2mm); + +endfig; +beginfig(91) + picture pic; + pic := nullpicture; + addto pic contour fullcircle scaled 1cm + withcolor .8white; + addto pic doublepath fullcircle scaled 1cm + withpen pencircle scaled .5bp; + addto pic also pic shifted (1mm,1mm); + draw pic; + +endfig; +beginfig(92) + u:=3mm; + picture mickey; + mickey := nullpicture; + addto mickey contour fullcircle scaled 2u + withcolor .8white; + addto mickey contour fullcircle scaled u + shifted (u*dir30) withcolor .8white; + addto mickey contour fullcircle scaled u + shifted (u*dir150) + withcolor .8white; + draw mickey; +endfig; +beginfig(93) + u:=3mm; + picture mickey; + mickey := nullpicture; + addto mickey contour fullcircle scaled 2u + withcolor .8white; + addto mickey contour fullcircle scaled u + shifted (u*dir30) withcolor .8white; + addto mickey contour fullcircle scaled u + shifted (u*dir150) withcolor .8white; + + transform T; + (0,0) transformed T = (0,0); + (1,0) transformed T = (1,1); + (0,1) transformed T = (1,0); + + draw mickey transformed T; +endfig; +beginfig(94) + u:=3mm; + picture mickey; + fill fullcircle scaled 2u withcolor .8white; + fill fullcircle scaled u shifted (u*dir30) + withcolor .8white; + fill fullcircle scaled u shifted (u*dir150) + withcolor .8white; + mickey := currentpicture; + currentpicture := nullpicture; + + transform T; + (0,0) transformed T = (0,0); + (1,0) transformed T = (1,1); + (0,1) transformed T = (1,0); + + draw mickey transformed T; +endfig; +beginfig(95) + pair A,B; + path p; + A = (0,1cm); + B = A rotated 120; + p = A{dir 0} .. tension 2 .. B{dir 120}; + draw p; + draw p rotated 120; + draw p rotated -120; +endfig; +beginfig(96) + pair A,B; + path p; + numeric n; + n:=5; + A = (0,1cm); + B = A rotated (2*360/n); + p = A{dir 180} .. tension 4 .. B{dir (180+2*360/n)}; + draw p withcolor red; + draw p rotated (1*360/n); + draw p rotated (2*360/n); + draw p rotated (3*360/n); + draw p rotated (4*360/n); +endfig; +beginfig(97) + path c[], l[]; + c[0] = fullcircle xscaled 1cm yscaled .5cm + shifted (0,1cm); + c[1] = c[0] rotated 120; + c[2] = c[1] rotated 120; + pair A; + A = (-.5cm,1cm); + l[0] = A{down} .. + (A xscaled -1 rotated 120){-down rotated 120}; + l[1] = l[0] rotated 120; + l[2] = l[1] rotated 120; + draw c[0]; draw c[1]; draw c[2]; + draw l[0]; draw l[1]; draw l[2]; +endfig; +beginfig(98) + path c[], l[]; + c[0] = fullcircle xscaled 1cm yscaled .5cm + shifted (0,1cm); + c[1] = c[0] rotated (360/4); + c[2] = c[1] rotated (360/4); + c[3] = c[2] rotated (360/4); + pair A; + A = (-.5cm,1cm); + l[0] = A{down} .. + (A xscaled -1 rotated (360/4)) + {-down rotated (360/4)}; + l[1] = l[0] rotated (360/4); + l[2] = l[1] rotated (360/4); + l[3] = l[2] rotated (360/4); + draw c[0]; draw c[1]; draw c[2]; draw c[3]; + draw l[0]; draw l[1]; draw l[2]; draw l[3]; +endfig; +beginfig(99) + pair A, B; + A := (0,0); B := (2cm,1cm); + draw A withpen pencircle scaled 4bp; + draw B withpen pencircle scaled 4bp; + draw fullcircle scaled abs(B-A) shifted 1/2[A,B]; + +endfig; +beginfig(100) + pair A; + A:=(2cm,2cm); + drawarrow origin--A; + drawarrow (origin--A) rotated -1/3 angle(A); + drawarrow (origin--A) rotated -2/3 angle(A); + drawarrow (origin--A) rotated -angle(A); + +endfig; +beginfig(101) + pair A,B; + A:=(1cm,2cm); B:=(2cm,1cm); + numeric alpha; + alpha = angle(A) - angle(B); + drawarrow origin--A; + drawarrow origin--B; + drawarrow (origin--A) rotated -1/3 alpha; + drawarrow (origin--A) rotated -2/3 alpha; + drawarrow (origin--A) rotated -alpha; +endfig; +beginfig(102) + pair A,B,C; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + draw A--B--C--cycle; + label.llft(TEX decimal(angle(C-A)-angle(B-A)), A); + label.lrt(TEX decimal(angle(A-B)-angle(C-B)), B); + label.urt(TEX decimal(angle(B-C)-angle(A-C)), C); +endfig; +beginfig(103) + pair A,AA,B,BB,C,CC,O,H; + A=(0,0); B=(3cm,0); C=(1cm,2cm); + AA = 1/2[B,C]; + BB = 1/2[A,C]; + CC = 1/2[A,B]; + O - 1/2[BB,CC] = whatever * (BB-CC) rotated 90; + O - 1/2[AA,BB] = whatever * (AA-BB) rotated 90; + draw A--B--C--cycle; + draw AA withpen pencircle scaled 4bp; + draw BB withpen pencircle scaled 4bp; + draw CC withpen pencircle scaled 4bp; + draw fullcircle scaled 2abs(O-AA) shifted O; + % Il faut aussi tracer les hauteurs + pair AA,BB,CC; + AA - A = whatever * (B-C) rotated 90; + AA = whatever [B,C]; + BB - B = whatever * (A-C) rotated 90; + BB = whatever [A,C]; + CC - C = whatever * (A-B) rotated 90; + CC = whatever [A,B]; + draw A--AA; draw B--BB; draw C--CC; + draw AA withpen pencircle scaled 4bp; + draw BB withpen pencircle scaled 4bp; + draw CC withpen pencircle scaled 4bp; + % Il passe aussi par le milieu de HA, HB, HC + H = whatever [A,AA]; + H = whatever [B,BB]; + draw 1/2 [A,H] withpen pencircle scaled 4bp; + draw 1/2 [B,H] withpen pencircle scaled 4bp; + draw 1/2 [C,H] withpen pencircle scaled 4bp; +endfig; +beginfig(104) + pair A,B,C,M,h; + u:=2cm; + A=(0,0); B=(2u,-.5u); C=(u,u); + draw A--B--C--cycle; + (M-A) = whatever * ( + (A-C) rotated 1/2( angle(B-A) - angle(C-A)) ); + (M-B) = whatever * ( + (B-A) rotated 1/2( angle(C-B) - angle(A-B)) ); + draw M--A; draw M--B; draw M--C; + M-h = whatever * (B-C) rotated 90; + h = whatever[B,C]; + draw fullcircle scaled 2 abs(M-h) shifted M; +endfig; +beginfig(105) + path p; + p = (0,0){up} .. (2cm,0){down}; + draw p; + draw point 0 of p withpen pencircle scaled 4bp; + draw point .5 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + +endfig; +beginfig(106) + path p; + p = (0,0){up} .. (2cm,0){down}; + draw p; + pair A; + A := point 0 of p; + B := A + 1cm*unitvector(direction 0 of p); + drawarrow A--B withpen pencircle scaled 1bp; + A := point .5 of p; + B := A + 1cm*unitvector(direction .5 of p); + drawarrow A--B withpen pencircle scaled 1bp; + A := point 1 of p; + B := A + 1cm*unitvector(direction 1 of p); + drawarrow A--B withpen pencircle scaled 1bp; + +endfig; +beginfig(107) + u:=5mm; + path p; + p = (0,0) {curl 0} .. (u,2u) .. (2u,1.5u) + .. (3u,2u) .. {curl 0} (4u,0); + draw subpath(0,1) of p withcolor red; + draw subpath(1,2) of p withcolor green; + draw subpath(2,3) of p withcolor blue; + draw subpath(3,3.5) of p dashed evenly; + draw subpath(3.5,4) of p dashed withdots; + +endfig; +beginfig(108) + u:=1cm; + path p,q; + p := (0,0){up} .. (u,2u){up}; + q := (u,0){up} .. (0,2u){up}; + draw p; + draw subpath(0,.4) of q withpen pencircle scaled 1bp; + draw subpath(.6,1) of q withpen pencircle scaled 1bp; +endfig; +beginfig(109) + u:=1cm; + path a,b,c,d; + a = (-u,-.2u){up} .. tension 1.2 .. (u,-.2u){down}; + b = a rotated 90; + c = b rotated 90; + d = c rotated 90; + fill buildcycle(a,b,c,d) withcolor .8white; + draw a; draw b; draw c; draw d; + +endfig; +beginfig(110) + u:=1cm; + path c[]; + c[1] := fullcircle scaled u; + c[2] := c[1] shifted (0,.5u); + draw c[1] dashed evenly; + draw c[2] dashed evenly; + draw buildcycle(c[1],c[2]) withpen pencircle scaled 1bp; +endfig; +beginfig(111) + path a,b,c; + a = fullcircle scaled 2u shifted (.5u,0); + b = a rotated (360/3); + c = b rotated (360/3); + fill a withcolor red; + fill b withcolor green; + fill c withcolor blue; + fill buildcycle(a,b) withcolor red + green; + fill buildcycle(b,c) withcolor green + blue; + fill buildcycle(c,a) withcolor blue + red; + fill buildcycle(a,b,c) withcolor white; + draw a; draw b; draw c; +endfig; +beginfig(112) + def compute_curve(suffix f)(expr xmin, xmax, xinc) = + ( (xmin,f(xmin)) + for x=xmin+xinc step xinc until xmax: + .. (x,f(x)) + endfor ) + enddef; + vardef f(expr x) = x**2 + 1 enddef; + vardef g(expr x) = 2 - (x-1)**2 enddef; + path p, q; + p := compute_curve(f, -1, 1.5, .1) scaled 1cm; + q := compute_curve(g, -.5, 2, .1) scaled 1cm; + fill buildcycle(p,reverse q) withcolor red+green; + draw p withpen pencircle scaled 1bp; + draw q withpen pencircle scaled 1bp; + draw (-1cm,0) -- (2cm,0); + draw (0,g(-.5)*1cm) -- (0,f(1.5)*1cm); +endfig; +beginfig(113) + path p, q; + p = (0,0){up} .. (2cm,0){up}; + q = (0,1cm){dir -60}..(1cm,-1cm)..{dir 60}(2cm,1cm); + draw p; draw q; + draw p intersectionpoint q withpen pencircle scaled 4bp; + +endfig; +beginfig(114) + path p, q; + p = (0,0){up} .. (2cm,0){up}; + q = (0,1cm){dir -60}..(1cm,-1cm)..{dir 60}(2cm,1cm); + draw p; draw q; + numeric a,b; + (a,whatever) = p intersectiontimes q; + draw point a of p withpen pencircle scaled 4bp; + +endfig; +beginfig(115) + pair A,B; + path p; + A = (0,1cm); + B = A rotated 120; + p = A{dir 0} .. tension 2 .. B{dir 120}; + numeric a; + (a,whatever) = p intersectiontimes (p rotated 120); + draw subpath(0,a-.02) of p; + draw subpath(a+.02,1) of p; + draw subpath(0,a-.02) of p rotated 120; + draw subpath(a+.02,1) of p rotated 120; + draw subpath(0,a-.02) of p rotated -120; + draw subpath(a+.02,1) of p rotated -120; +endfig; +beginfig(116) + u:=2cm; + pair A[], B[], C[], D[], E[]; + path p[]; + + A[0] = u*up; + for i=1 upto 10: + A[i] := A[i-1] rotated 72; + endfor; + for i=0 upto 4: + p[i] := A[i]--A[i+1]; + draw p[i]; + draw (point 1 of p[i]) -- + ( (point 1 of p[i]) + 4mm*unitvector(direction 1 of p[i])); + draw (point 0 of p[i]) -- + ( (point 0 of p[i]) - 4mm*unitvector(direction 0 of p[i])); + endfor + + for i=0 upto 9: + B[i] := 1/2[ A[i], A[i+1] ]; + endfor; + B[5]:=B[0]; + + for i=0 upto 9: + C[i] := .8*B[i]; + endfor; + + for i=0 upto 4: + p[i] := B[i] --- C[i] .. C[i+2]{dir 72i}; + draw p[i]; + draw (point 2 of p[i]) -- + ( (point 2 of p[i]) + 4mm*unitvector(direction 2 of p[i])); + draw (point 0 of p[i]) -- + ( (point 0 of p[i]) - 4mm*unitvector(direction 0 of p[i])); + endfor; + for i=0 upto 4: + draw subpath(1,1.4) of p[i] withpen pencircle scaled 4bp withcolor white; + draw subpath(0,1.5) of p[i]; + endfor; + + for i=0 upto 4: + draw A[i] withpen pencircle scaled 4bp; + draw B[i] withpen pencircle scaled 4bp; + draw C[i] withpen pencircle scaled 4bp; + endfor; +endfig; +beginfig(117) + u:=2cm; + pair A, B, C, D, E; + path p, q, r; + + A = u*up; + p := (-.2)[ A, A rotated 72 ] -- (1.2)[ A, A rotated 72 ]; + for i=0 upto 5: + draw p rotated 72i; + endfor; + B := 1/2[ A, A rotated 72 ]; + C := .8*B; + + p := B --- C .. (C rotated (2*72)){right}; + % On allonge le chemin p + p := ( (point 0 of p) - 4mm*unitvector(direction 0 of p)) + -- + (point 0 of p) + & p & + (point 2 of p) + -- + ( (point 2 of p) + 4mm*unitvector(direction 2 of p)); + + E = p intersectionpoint (p rotated 72); + q := p cutbefore fullcircle scaled -2mm shifted E; + r := p cutafter fullcircle scaled 2mm shifted E; + + for i=0 upto 4: + draw q rotated 72i; + draw r rotated 72i; + draw A rotated 72i withpen pencircle scaled 4bp; + draw B rotated 72i withpen pencircle scaled 4bp; + draw C rotated 72i withpen pencircle scaled 4bp; + endfor; +endfig; +beginfig(118) + for i=0 step 1 until 3: + draw 1cm*right rotated (i*90) + withpen pencircle scaled 4bp; + endfor; + +endfig; +beginfig(119) + draw for i=0 step 1 until 3: + 1cm*right rotated (i*90) -- + endfor cycle; + +endfig; +beginfig(120) + n:=5; + draw for i=0 step 1 until n-1: + 1cm*up rotated (i*360/n) -- + endfor cycle; +endfig; +beginfig(121) + n:=7; + draw for i=0 step 1 until n-1: + 1cm*up rotated (i*360/n) -- + endfor cycle; +endfig; +beginfig(122) + path p; + p = (0,0) .. (-1cm,2cm) .. (2cm,1cm) .. (1cm,0); + draw p; + n:=10; + for i=0 step 1 until n: + draw point (i/n*length(p)) of p + withpen pencircle scaled 4bp; + endfor; +endfig; +beginfig(123) + path p; + p = (0,0) .. (-1cm,2cm) .. (2cm,1cm) .. (1cm,0); + draw p; + n:=10; + for i=0 step length(p)/n until length(p): + drawarrow (point i of p) -- + 1cm * unitvector(direction i of p) + shifted point i of p; + endfor; +endfig; +beginfig(124) + u:=1cm; + draw (-2u,0)--(2u,0); + draw (0,-2u)--(0,2u); + for i=-2u step u until 2u: + draw (i,u/20)--(i,-u/20); + draw (u/20,i)--(-u/20,i); + endfor; +endfig; +beginfig(125) + u:=1cm; + draw (-2u,0)--(2u,0); + draw (0,-2u)--(0,2u); + for i=-2u step u until 2u: + draw (i,u/10)--(i,-u/10); + draw (u/10,i)--(-u/10,i); + endfor; + for i=-2u step u/5 until 2u: + draw (i,u/20)--(i,-u/20); + draw (u/20,i)--(-u/20,i); + endfor; +endfig; +beginfig(126) + u:=1cm; + draw (-2u,0)--(2u,0); + draw (0,-2u)--(0,2u); + for i=-2u step u until 2u: + draw (i,2u)--(i,-2u); + draw (2u,i)--(-2u,i); + endfor; +endfig; +beginfig(127) + u:=1cm; + draw (-2u,0)--(2u,0); + draw (0,-2u)--(0,2u); + for i=-2u step u until 2u: + draw (i,2u)--(i,-2u); + draw (2u,i)--(-2u,i); + endfor; + for i=-2u step u/5 until 2u: + draw (i,2u)--(i,-2u) withpen pencircle scaled .2bp; + draw (2u,i)--(-2u,i) withpen pencircle scaled .2bp; + endfor; +endfig; +beginfig(128) + u := 5mm; + % vardef est nécessaire pour pouvoir passer f en argument + vardef f(expr x) = x**2 -.1 enddef; + def axes(expr xmin,xmax,ymin,ymax) = + draw ( (xmin,0) -- (xmax,0) ) scaled u; + draw ( (0,ymin) -- (0,ymax) ) scaled u; + enddef; + def courbe(suffix f)(expr xmin, xmax, M) = + draw ( ( xmin, f(xmin) ) + for i=1 upto M: + -- ( xmin + (i/M)*(xmax - xmin), f( xmin + (i/M)*(xmax - xmin) )) + endfor ) scaled u; + enddef; + vardef newton(suffix f)(expr y, h, M) = + save x,t; + numeric x,t; x:=y; + for i=1 upto M: + t := x - f(x)/( (f(x+h) - f(x))/h ); + draw ( (x,f(x)) -- (t,0) -- (t,f(t)) ) scaled u; + x := t; + endfor; + enddef; + axes(-.5,2,-.5,4); + courbe(f,-.5,2, 100); + newton(f, 2, .01, 10); +endfig; +beginfig(129) + transform T; + u:=1cm; + z0=(0,0); z1=(2u,0); z3 = z1 rotated 90; z2 = z1+z3; + z0 transformed T = .1[z0,z1]; + z1 transformed T = .1[z1,z2]; + z2 transformed T = .1[z2,z3]; + path p; + p = z0--z1--z2--z3--cycle; + fill p withcolor .8*white; + fill p transformed T withcolor white; +endfig; +beginfig(130) + transform T; + u:=1cm; + z0=(0,0); z1=(2u,0); z3 = z1 rotated 90; z2 = z1+z3; + z0 transformed T = .1[z0,z1]; + z1 transformed T = .1[z1,z2]; + z2 transformed T = .1[z2,z3]; + path p; + p = z0--z1--z2--z3--cycle; + for i=0 upto 100: + fill p withcolor .8*white; + p := p transformed T; + fill p withcolor white; + p := p transformed T; + endfor; +endfig; +beginfig(131) + transform T; + u:=1cm; + z1=(0,2u); + n := 5; + for i=1 upto n-1: + z[i+1] = z1 rotated (360*i/n); + endfor; + z1 transformed T = .1[z1,z2]; + z2 transformed T = .1[z2,z3]; + z3 transformed T = .1[z3,z4]; + path p; + p = for i=1 upto n: z[i] -- endfor cycle; + for i=0 upto 100: + fill p withcolor .8*white; + p := p transformed T; + fill p withcolor white; + p := p transformed T; + endfor; +endfig; +beginfig(132) + u:=1cm; + pair A[]; + numeric n; n:=7; + A[0] = (u,0); + for i=1 upto n-1: + A[i] = A[0] rotated (360/n*i); + endfor; + for i=0 upto n-1: + draw A[i] withpen pencircle scaled 4bp; + for j=0 upto n-1: + if i<>j: draw A[i]--A[j] fi; + endfor; + endfor; +endfig; +beginfig(133) + u:=2cm; + numeric n,m; n:=4; m:=5; + pair A[], B[]; + for i=1 upto n-1: A[i+1]-A[i] = (0,.2u); endfor; + for j=1 upto m-1: B[j+1]-B[j] = (0,.2u); endfor; + (0,0) for i=1 upto n: + A[i] endfor = (0,0); + (0,0) for j=1 upto m: + B[j] endfor = (4u,0); + for i=1 upto n: + draw A[i] withpen pencircle scaled 4bp; + endfor; + for j=1 upto m: + draw B[j] withpen pencircle scaled 4bp; + endfor; + for i=1 upto n: + for j=1 upto m: + draw A[i]--B[j]; + endfor; + endfor; +endfig; +beginfig(134) + u:=1cm; + numeric n,m; n:=3; m:=3; + pair A[], B[]; + for i=1 upto n-1: A[i+1]-A[i] = (.5u,0); endfor; + for j=1 upto m-1: B[j+1]-B[j] = (.5u,0); endfor; + (0,0) for i=1 upto n: + A[i] endfor = (0,0); + (0,0) for j=1 upto m: + B[j] endfor = (0,4u); + for i=1 upto n: + draw A[i] withpen pencircle scaled 4bp; + endfor; + for j=1 upto m: + draw B[j] withpen pencircle scaled 4bp; + endfor; + for i=1 upto n: + for j=1 upto m: + draw A[i]--B[j]; + endfor; + endfor; +endfig; +beginfig(135) + pair A[], B[]; + numeric n; n:=6; + for i=0 upto n-1: + A[i] = 1cm * right rotated (i*360/n); + B[i] = 2cm * right rotated (i*360/n); + endfor; + A[n] = A[0]; B[n] = B[0]; + for i=0 upto n-1: + draw A[i] -- A[i+1] -- B[i+1] -- B[i]; + draw A[i] withpen pencircle scaled 4bp; + draw B[i] withpen pencircle scaled 4bp; + endfor; +endfig; +beginfig(136) + numeric n; n:=5; + pair O,A,B,C,D; + O = (0,0); + A = 1cm*up; + B = 2cm*up rotatedabout(A,30); + C = 2cm*up; + D = 2cm*up rotatedabout(A,-30); + for i=0 upto n-1: + draw (O--A--C) rotated (i*360/n); + draw (B--A--D) rotated (i*360/n); + draw A rotated (i*360/n) withpen pencircle scaled 4bp; + draw B rotated (i*360/n) withpen pencircle scaled 4bp; + draw C rotated (i*360/n) withpen pencircle scaled 4bp; + draw D rotated (i*360/n) withpen pencircle scaled 4bp; + endfor; + draw O withpen pencircle scaled 4bp; +endfig; +beginfig(137) + path p; u:=1cm; + p = fullcircle xscaled -u yscaled 3u; + draw p; + for i=2 step .5 until 6: + draw (point 2 of p){down} .. (point i of p); + endfor; +endfig; +beginfig(138) + pair P[], Q[], R[], S[]; + u:=.5cm; + for i=0 upto 4: + P[i] = u* down rotated (i*360/5); + endfor; + P[5] = P[0]; + for i=0 upto 4: + Q[i] = 3*( 1/2[ P[i], P[i+1] ] ); + endfor; + Q[5] = Q[0]; + for i=0 upto 4: + R[i] = 1/3( Q[i] + Q[i+1] + P[i+1] ); + endfor; + R[5] = R[0]; + for i=0 upto 5: + S[i] = 1.5*Q[i]; + endfor; + for i=0 upto 4: + draw P[i] -- P[i+1]; + draw P[i+1] -- R[i]; + draw Q[i] -- R[i]; + draw R[i] -- Q[i+1]; + draw Q[i] -- S[i]; + draw S[i] -- S[i+1]; + endfor; +endfig; +beginfig(139) + pair P[], Q[], R[], S[]; + u:=.5cm; + for i=0 upto 4: + P[i] = u* down rotated (i*360/5); + endfor; + P[5] = P[0]; + for i=0 upto 4: + Q[i] = 3*( 1/2[ P[i], P[i+1] ] ); + endfor; + Q[5] = Q[0]; + for i=0 upto 4: + R[i] = 1/3( Q[i] + Q[i+1] + P[i+1] ); + endfor; + R[5] = R[0]; + for i=0 upto 5: + S[i] = 1.5*Q[i]; + endfor; + for i=0 upto 4: + draw P[i] -- P[i+1]; + draw P[i+1] -- R[i]; + draw Q[i] -- R[i]; + draw R[i] -- Q[i+1]; + draw Q[i] -- S[i]; + draw S[i] -- S[i+1]; + endfor; + draw P[2] -- P[3] -- P[4] -- P[0] -- P[1] -- + R[0] -- Q[0] -- R[4] -- Q[4] -- R[3] + -- Q[3] -- R[2] -- Q[2] -- + S[2] -- S[3] -- S[4] -- S[0] -- S[1] -- + Q[1] -- R[1] -- cycle + withpen pencircle scaled 2bp; +endfig; +beginfig(140) + for i=1 step -.01 until 0: + fill fullcircle scaled (i*2cm) withcolor i*white; + endfor; + draw fullcircle scaled 2cm withpen pencircle scaled 2bp; +endfig; +beginfig(141) + u:=5mm; + path p; + p = (0,0) .. (-1,1) .. (2,0) .. (0,-3) .. cycle; + p := p shifted (-1,0); + for i=1 step -.01 until 0: + fill p scaled (i*u) withcolor i*white; + endfor; + draw p scaled u withpen pencircle scaled 2bp; +endfig; +beginfig(142) + z0 = (50,50); + z1 = z0 rotated 90; + z2 = z1 rotated 90; + z3 = z2 rotated 90; + path carre; + carre = z0--z1--z2--z3--cycle; + s := .01; + path rect; + z4 = s [z2,z3]; z5 = s [z1,z0]; + rect = z1--z2--z4--z5--cycle; + for i=0 step s until 1: + fill rect shifted (i*(z0-z1)) withcolor i*white; + endfor; + draw carre withpen pencircle scaled 2bp; +endfig; +beginfig(143) + z0 = (50,50); + z1 = z0 rotated 90; + z2 = z1 rotated 90; + z3 = z2 rotated 90; + path carre; + carre = z0--z1--z2--z3--cycle; + s := .01; + for i=1 step -s until s: + fill carre scaled i withcolor i*white; + endfor; +endfig; +beginfig(144) + u:=1cm; + vardef degrade(expr p,q,M,N) = + save a,b; + numeric a,b; + a := length(p); + b := length(q); + for i=0 upto M: + draw (i/M) [ point 0 of p, point 0 of q ] + for j=1 upto N: + .. (i/M) [ point (j/N*a) of p, point (j/N*b) of q ] + endfor; + endfor; + enddef; + degrade( + (-.1u,-.1u) .. (.1u,.1u) .. cycle, + (-u,-u) -- (u,-u) -- (u,u) -- (-u,u) -- cycle, + 10, + 100); +endfig; +beginfig(145) + u:=1cm; + def couleur(expr c) = c*white enddef; + vardef degrade(expr p,q,M,N) = + save a,b; + numeric a,b; + a := length(p); + b := length(q); + for i=0 upto M: + draw (i/M) [ point 0 of p, point 0 of q ] + for j=1 upto N: + .. (i/M) [ point (j/N*a) of p, point (j/N*b) of q ] + endfor + withcolor couleur(i/M); + endfor; + enddef; + degrade( + (-.5u,-.5u) .. (.5u,.5u) .. cycle, + (-u,-u) -- (u,-u) -- (u,u) -- (-u,u) -- cycle, + 255, + 100); +endfig; +beginfig(146) + def degrade(expr p, q, N) = + begingroup + save n, m, M; + numeric n, m, M; + n := length(p); + m := length(q); + M := n*m; % Il faudrait prendre le ppcm + for i=0 upto N: + draw + (i/N)[ point 0 of p, point 0 of q ] + { (i/N)[ direction 0 of p, direction 0 of q ] } + for j=1 upto M-1: + .. + { (i/N) [ direction 1 of subpath((j-1)*n/M,j*n/M) of p, + direction 1 of subpath((j-1)*m/M,j*m/M) of q ] } + (i/N)[ point (j*n/M) of p, point (j*m/M) of q ] + { (i/N) [ direction 0 of subpath(j*n/M,(j+1)*n/M) of p, + direction 0 of subpath(j*m/M,(j+1)*m/M) of q ] } + endfor + .. + { (i/N)[ direction n of p, direction m of q ] } + (i/N)[ point n of p, point m of q ] + ; + endfor; + endgroup; + enddef; + numeric u; + u := 2cm; + path p, q; + p := fullcircle scaled u; + q := (-u,-u)--(u,-u)--(u,u)--(-u,u)--cycle; + degrade(p,q,10); +endfig; +beginfig(147) + draw for i=0 step 10 until 360: + 2cm* (sind(2*i), cosd(3*i)) .. + endfor cycle; +endfig; +beginfig(148) + for i=0 step .1 until 360: + col := i/360; + draw 2cm* (sind(2*i), cosd(3*i)) + withpen pencircle scaled 2bp + withcolor + if col>.5: (2*(1-col)) [red, blue] + else: (1-2col) [blue, red] + fi; + endfor; +endfig; +beginfig(149) + def couleur(expr x) = + if x>.5: (2*(1-x)) [red, blue]; + else: (1-2x) [blue, red] + fi + enddef; + for i=0 step .1 until 360: + draw 2cm* (sind(2*i), cosd(3*i)) + withpen pencircle scaled 2bp + withcolor couleur(i/360); + endfor; +endfig; +beginfig(150) + for i=0 step 1 until 360: + pair P; + P = 2cm* (sind(2*i), cosd(3*i)); + fill fullcircle scaled 4mm shifted P withcolor white; + draw fullcircle scaled 4mm shifted P; + endfor; +endfig; +beginfig(151) + for i=0 step 1 until 360: + pair P; + P = 2cm* (sind(2*i), cosd(3*i)); + fill fullcircle scaled 4mm shifted P withcolor white; + draw fullcircle scaled 4mm shifted P; + endfor; + picture p; + p:=nullpicture; + for i=-180 step 1 until 180: + pair P; + P = 2cm* (sind(2*i), cosd(3*i)); + addto p contour fullcircle scaled 4mm shifted P withcolor white; + addto p doublepath fullcircle scaled 4mm shifted P + withpen pencircle scaled .5bp; + endfor; + clip p to (.5cm,2.5cm) -- (.5cm,1.5cm)-- + (-.5cm,1.5cm) -- (-.5cm,2.5cm)--cycle; + draw p; +endfig; +beginfig(152) + u:=5mm; + vardef project(expr x,y,z) = + x*(-1,-1) + y*(1,0) + z*(0,1) + enddef; + vardef f(expr x,y) = sind(x/u*180)*sind(y/u*180)*u enddef; + numeric m,M; + m:=-2u; M:=2u; + for i=m step .1u until M: + path p; + p = + for j=m step .1u until M: + project(i,j,f(i,j)) -- + endfor + project(i,M,f(i,M)); + fill (project(i,m,f(i,m)) - (0,3u)) -- p -- + (project(i,M,f(i,M)) - (0,3u)) -- cycle + withcolor white; + draw (project(i,m,f(i,m)) - (0,3u)) -- p -- + (project(i,M,f(i,M)) - (0,3u)) -- cycle; + draw p; + endfor; +endfig; +beginfig(153) + vardef project(expr x,y,z) = + x*(-1,-1) + y*(1,0) + z*(0,1) + enddef; + vardef f(expr x,y) = sind(x/u*180)*sind(y/u*180)*u enddef; + m:=-2u; M:=2u; inc:=.1u; + for i=m step inc until M: + for j=m step inc until M: + path p; + p = project(i,j,f(i,j)) -- + project(i,j+inc,f(i,j+inc)) -- + project(i+inc,j+inc,f(i+inc,j+inc)) -- + project(i+inc,j,f(i+inc,j)) -- + cycle; + fill p withcolor white; + draw p; + endfor + endfor; +endfig; +beginfig(154) + vardef project(expr x,y,z) = + x*(-1,-1) + y*(1,0) + z*(0,1) + enddef; + vardef f(expr x,y) = sind(x/u*180)*sind(y/u*180)*u enddef; + numeric m,M,inc,couleur; + m:=-2u; M:=2u; inc:=.1u; + for i=m step inc until M: + for j=m step inc until M: + path p; + p = project(i,j,f(i,j)) -- + project(i,j+inc,f(i,j+inc)) -- + project(i+inc,j+inc,f(i+inc,j+inc)) -- + project(i+inc,j,f(i+inc,j)) -- + cycle; + dfdx := (f(i,j) - f(i+inc,j))/inc; + dfdy := (f(i,j) - f(i,j+inc))/inc; + couleur := 1/sqrt( dfdx**2 + dfdy**2 + 1); + fill p withcolor couleur*(red+green); + endfor + endfor; +endfig; +beginfig(155) +vardef f(expr x,y) = sind(x/u*180)*sind(y/u*180)*u enddef; + +boolean dessine_fil_de_fer; dessine_fil_de_fer := false; +color dessine_couleur; dessine_couleur := red+green; + +vardef dessine(suffix f)(expr xmin, xmax, xinc, ymin, ymax, yinc) = + save i,j,p,dfdx,dfdy,project; + vardef project(expr x,y,z) = + x*(-1,-1) + y*(1,0) + z*(0,1) + enddef; + for i=m step inc until M: + for j=m step inc until M: + path p; + p = project(i,j,f(i,j)) -- + project(i,j+inc,f(i,j+inc)) -- + project(i+inc,j+inc,f(i+inc,j+inc)) -- + project(i+inc,j,f(i+inc,j)) -- + cycle; + dfdx := (f(i,j) - f(i+inc,j))/inc; + dfdy := (f(i,j) - f(i,j+inc))/inc; + couleur := 1/sqrt( dfdx**2 + dfdy**2 + 1); + fill p withcolor couleur*dessine_couleur; + if dessine_fil_de_fer: draw p fi; + endfor + endfor; +enddef; + + % Il faudrait pouvoir choisir différents + % types d'« éclairage ». + vardef f(expr x,y) = sind(x/u*180)*sind(y/u*180)*u enddef; + dessine(f,-2u,2u,.1u, -2u,2u,.1u); +endfig; +beginfig(156) + vardef random_path (expr n) = + save i, A ; numeric i; pair A[]; + for i=0 upto n: + A[i] = (uniformdeviate(2u), uniformdeviate(2u)); + endfor; + A[0] + for i=1 upto n: + .. A[i] + endfor + enddef; + + vardef intersections(expr p,q) = + save a,b,N,i,j; + numeric N,i,j; + N:=10; + for i=0 step length(p)/N until length(p): + for j=0 step length(q)/N until length(p): + numeric a,b; + pair A; + (a,b) = (subpath(i,i+length(p)/N) of p) + intersectiontimes + (subpath(j,j+length(q)/N) of q); + if a <> -1: + A = point a of subpath(i,i+length(p)/N) of p; + show A; + draw A withpen pencircle scaled 4bp; + fi; + endfor; + endfor; + enddef; + + path p,q; + p:=random_path(4); + q:=random_path(4); + draw p withcolor red; + draw q withcolor blue; + intersections(p,q); +endfig; +beginfig(157) + vardef auto_intersections(expr p) = + save a,b,N,i,j; + numeric N,i,j; + N:=100; + for i=0 step length(p)/N until length(p): + for j=i+2*length(p)/N + step length(p)/N + until length(p): + numeric a,b; + pair A; + (a,b) = (subpath(i,i+length(p)/N) of p) + intersectiontimes + (subpath(j,j+length(p)/N) of p); + if a <> -1: + A = point a of subpath(i,i+length(p)/N) of p; + show A; + draw A withpen pencircle scaled 4bp; + fi; + endfor; + endfor; + enddef; + + u:=2cm; + path p,q; + p:=random_path(12); + draw p; + auto_intersections(p); +endfig; +beginfig(158) + path p; + p := (0,0){up} .. (1cm,1cm) .. (1cm,0); + draw p; + draw point 1/2length(p) of p + withpen pencircle scaled 4bp withcolor red; + draw point (arctime (1/2 arclength(p)) of p) of p + withpen pencircle scaled 4bp; + +endfig; +beginfig(159) + vardef milieu(expr p) = + save l,i,tot,A,B; + numeric l,tot,i; + pair A,B; + tot := longueur(p); + l:=0; + B := point 0 of p; + for i:=0 step .01 until length(p): + A := B; + B := point i of p; + l := l+abs(B-A); + exitif l > 1/2 tot; + endfor; + 1/2[A,B] + enddef; + + path p; + p := (0,0){up} .. (1cm,1cm) .. (1cm,0); + draw p; + draw point 1/2length(p) of p withpen pencircle scaled 4bp withcolor red; + draw milieu(p) withpen pencircle scaled 4bp; +endfig; +beginfig(160) + vardef milieu_time(expr p) = + save l,i,tot,A,B,t; + numeric l,tot,i,t; + pair A,B; + tot := longueur(p); + l:=0; + B := point 0 of p; + for i:=0 step .01 until length(p): + t:=i; + A := B; + B := point i of p; + l := l+abs(B-A); + exitif l > 1/2 tot; + endfor; + t % Pas de point-virgule + enddef; + + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := milieu(p); + u := unitvector(direction milieu_time(p) of p); + A -- (A - ahlength*u rotated 15) -- + (A - ahlength*u rotated -15) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(161) + save arrowhead; + vardef arrowhead expr p = + save A,B,u; pair A,B,u; + A := milieu(p); + B := p intersectionpoint + (fullcircle scaled ahlength shifted A); + u := unitvector(direction milieu_time(p) of p); + A -- (A - ahlength*u rotated 30) -- B -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(162) + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := milieu(p); + u := unitvector(direction milieu_time(p) of p); + A -- (A - ahlength*u rotated 30) -- A -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(163) + save arrowhead; + vardef arrowhead expr p = + save A,u,a,b; pair A,u; path a,b; + A := milieu(p); + u := unitvector(direction milieu_time(p) of p); + a := A{-u} .. (A - ahlength*u rotated 30); + b := A{-u} .. (A - ahlength*u rotated -30); + ( a & reverse(a) & b & reverse(b) ) --cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(164) + pair A,B,C; + C = 3mm*up; + A = C rotated 120; + B = C rotated -120; + picture pic ; + pic:=nullpicture; + addto pic doublepath A--B--C--cycle withpen currentpen; + addto pic doublepath A withpen pencircle scaled 4bp; + addto pic doublepath B withpen pencircle scaled 4bp; + addto pic doublepath C withpen pencircle scaled 4bp; + for i=-3 upto 3: + for j=-3 upto 3: + draw pic shifted( i*(B-A) + j*(C-A) ); + endfor; + endfor; + clip currentpicture to (-2cm,-2cm)--(2cm,-2cm)--(2cm,2cm)--(-2cm,2cm)--cycle; +endfig; +beginfig(165) + pair A,B,C; + C = 3mm*up; + A = C rotated 120; + B = C rotated -120; + picture pic ; + pic:=nullpicture; + path p; + p := A{(C-A) rotated 30} .. C{(C-A) rotated 30}; + addto pic doublepath p withpen currentpen; + addto pic doublepath p rotated 120 withpen currentpen; + addto pic doublepath p rotated -120 withpen currentpen; + for i=-3 upto 3: + for j=-3 upto 3: + draw pic shifted( i*(B-A) + j*(C-A) ); + endfor; + endfor; + clip currentpicture to (-2cm,-2cm)--(2cm,-2cm)--(2cm,2cm)--(-2cm,2cm)--cycle; +endfig; +beginfig(166) + ux:=2mm; + uy:=5mm; + numeric xmin, xmax, ymin, ymax, M; + xmin := -6.3; xmax := 12.6; + ymin := -2; ymax := 2; + M := 100; + draw (ux*xmin,0) -- (ux*xmax,0); + draw (0,uy*ymin) -- (0,uy*ymax); + pair a[]; + for i=0 upto M: + a[i] := ( + xmin + (i/M)*(xmax-xmin), + sind(180/3.14*( xmin + (i/M)*(xmax-xmin) )) + ) xscaled ux yscaled uy; + endfor; + draw a[0] for i=1 upto M: --a[i] endfor; +endfig; +beginfig(167) + ux:=5mm; + uy:=2mm; + numeric xmin, xmax, ymin, ymax, M; + xmin := -2; xmax := 2; + ymin := -.1; ymax := 8; + M := 100; + draw (ux*xmin,0) -- (ux*xmax,0); + draw (0,uy*ymin) -- (0,uy*ymax); + pair a[]; + for i=0 upto M: + a[i] := ( + xmin + (i/M)*(xmax-xmin), + mexp(256*( xmin + (i/M)*(xmax-xmin) )) + ) xscaled ux yscaled uy; + endfor; + draw a[0] for i=1 upto M: --a[i] endfor; +endfig; +beginfig(168) + ux:=5mm; + uy:=5mm; + numeric xmin, xmax, ymin, ymax, M; + xmin := .2; xmax := 3; + ymin := -1.6; ymax := 1.2; + M := 100; + draw (ux*-.1,0) -- (ux*xmax,0); + draw (0,uy*ymin) -- (0,uy*ymax); + pair a[]; + for i=0 upto M: + a[i] := ( + xmin + (i/M)*(xmax-xmin), + (1/256)*mlog(( xmin + (i/M)*(xmax-xmin) )) + ) xscaled ux yscaled uy; + endfor; + draw a[0] for i=1 upto M: --a[i] endfor; +endfig; +beginfig(169) + path p; + p = fullcircle scaled 2cm; + z0 = (-1cm,0); + draw p; + draw z0 withpen pencircle scaled 2pt; + + pair A[]; + for i=0 step length(p)/100 until length(p): + pair M,N; + M = point i of p; + N-M = whatever * direction i of p; + N-z0 = whatever * direction i of p rotated 90; + A[i] := N; + endfor; + draw for i=0 step length(p)/100 until length(p): + A[i] .. + endfor cycle; +endfig; +beginfig(170) +vardef cardiodide(expr p, O) = + save i,M,N; + numeric i; + for i=0 step length(p)/100 until length(p): + hide( + pair M,N; + M = point i of p; + N-M = whatever * direction i of p; + N-O = whatever * direction i of p rotated 90; + ) + N .. + endfor cycle +enddef; + + path p; + p = fullcircle scaled 2cm; + z0 = (-1cm,0); + draw p; + draw z0 withpen pencircle scaled 2pt; + draw cardiodide(p,z0); +endfig; +beginfig(171) +vardef cardiodide(expr p, O) = + save i,M,N; + numeric i; + for i=0 step length(p)/100 until length(p): + hide( + pair M,N; + M = point i of p; + N-M = whatever * direction i of p; + N-O = whatever * direction i of p rotated 90; + ) + N .. + endfor cycle +enddef; + + path p; + p = fullcircle scaled 2cm; + z0 = (-1cm,0); + pickup pencircle scaled 1pt + draw p; + draw z0 withpen pencircle scaled 3pt; + draw cardiodide(p,z0); + pickup pencircle scaled .4pt + pair M,N; + i:=1.5; + M = point i of p; + N-M = whatever * direction i of p; + N-z0 = whatever * direction i of p rotated 90; + draw z0--N; + draw (-1/2)[N,M]--(3/2)[N,M]; + draw N withpen pencircle scaled 3pt; + draw M withpen pencircle scaled 3pt; +endfig; +beginfig(172) + path p; + p := (-1cm,0) .. (1cm,-1cm) .. (8mm,0) + .. (1cm,1cm) .. (-1cm,1cm) .. cycle; + z0 = (-2cm,0); + draw p withpen pencircle scaled 1bp; + draw z0 withpen pencircle scaled 3pt; + draw cardiodide(p,z0); +endfig; +beginfig(173) +vardef inversion (expr O,k,M) = + if pair M: + (O + k*unitvector(M-O)/abs(M-O)) + elseif path M: + for i=0 step length(M)/100 until length(M): + inversion(O,k,point i of M) .. + endfor + cycle + fi +enddef; + + u:=4cm; + path p[],A,B; + + z0 = (5u,0) rotated 10; + + A = fullcircle scaled 2u; + B = A scaled 3; + draw inversion( z0, 2 (u**2), A ) + withpen pencircle scaled 1pt; + draw inversion( z0, 2 (u**2), B ) + withpen pencircle scaled 1pt; + + p0 = fullcircle scaled 2u shifted (2u,0); + for i=0 upto 5: + if i<>0: + p[i] = p[i-1] rotated (360/6); + fi; + draw inversion( z0, 2 (u**2), p[i] ); + endfor; +endfig; +beginfig(174) + def curve(expr p,i,q,j,t) = + point i of p {direction i of p} .. + tension t .. + point j of q {direction j of q} + enddef; + + vardef sphere_with_holes (expr n) = + save i; + c[0] = fullcircle xscaled u yscaled 2u + shifted (4u,0) rotated (360/(2n)) ; + draw c[0]; + for i=1 upto n-1: + c[i] = c[i-1] rotated (360/n); + draw c[i]; + endfor; + l[0] = curve(c[0], 2, c[1], -2, 1); + draw l[0]; + for i=1 upto n-1: + l[i] = l[i-1] rotated (360/n); + draw l[i]; + endfor; + enddef; + + u:=3mm; + path c[], l[]; + sphere_with_holes(5); +endfig; +beginfig(175) + def curve(expr p,i,q,j,t) = + point i of p {direction i of p} .. + tension t .. + point j of q {direction j of q} + enddef; + + vardef sphere_with_holes (expr n) = + save i; + c[0] = fullcircle xscaled u yscaled 2u + shifted (4u,0) rotated (360/(2n)) ; + for i=1 upto n-1: + c[i] = c[i-1] rotated (360/n); + endfor; + l[0] = curve(c[0], 2, c[1], -2, 1); + for i=1 upto n-1: + l[i] = l[i-1] rotated (360/n); + endfor; + fill for i=0 upto n-1: + ( reverse subpath(2,6) of c[i] ) & + l[i] & + endfor + % To turn it into a cycle (ugly) + point length(l[n-1]) of l[n-1] -- cycle + withcolor .8white; + for i=0 upto n-1: + draw c[i]; draw l[i]; + endfor; + enddef; + + u:=3mm; + path c[], l[]; + sphere_with_holes(5); +endfig; +beginfig(176) + path c[], l[]; + sphere_with_holes(6); + def ellipse(expr a,b,c,d,e) = + draw curve(a,b,c,d,e) ; + draw curve(c,d,a,b,e) dashed evenly; + enddef; + + ellipse (l[0], 2/3, l[2], 1/3, 4); + ellipse (l[1], 2/3, l[3], 1/3, 4); + ellipse (l[2], 2/3, l[4], 1/3, 4); + ellipse (l[3], 2/3, l[5], 1/3, 4); + ellipse (l[4], 2/3, l[0], 1/3, 4); + ellipse (l[5], 2/3, l[1], 1/3, 4); +endfig; +beginfig(177) + vardef bar(expr m,a,b,c) = + m = 1/3a + 1/3b + 1/3c + enddef; + vardef dbar(expr m,a,b,c) = + draw m--a; draw m--b; draw m--c; + draw m withpen pencircle scaled 4bp; + enddef; + + pair P[], A,B,C; + for i=0 upto 4: + P[i] = 1cm * up rotated (i*360/5); + draw P[i] withpen pencircle scaled 4bp; + endfor; + bar(A, P[0], P[4], B); + bar(B, A, P[1], C); + bar(C, B, P[2], P[3]); + draw fullcircle scaled 2cm dashed evenly; + dbar(A, P[0], P[4], B); + dbar(B, A, P[1], C); + dbar(C, B, P[2], P[3]); +endfig; +beginfig(178) +% M est sur la bissectrice de l'angle A +vardef bissectrice(expr M,A,B,C) = + (M-A) = whatever * ( + (A-C) rotated 1/2(angle(B-A) - angle(C-A))) +enddef; + +% Le cercle inscrit +vardef cercle_inscrit(expr A,B,C) = + save M, h; pair M, h; + bissectrice(M,A,B,C); + bissectrice(M,B,C,A); + M-h = whatever * (B-C) rotated 90; + h = whatever[B,C]; + fullcircle scaled 2 length(M-h) shifted M +enddef; + + pair A,B,C,M; + u:=2cm; + A=(0,0); B=(2u,-.5u); C=(u,u); + draw A--B--C--cycle; + bissectrice(M, A,B,C); + bissectrice(M, B,C,A); + draw M--A; draw M--B; draw M--C; + draw cercle_inscrit(A,B,C); +endfig; +beginfig(179) +vardef premiere_trisectrice (expr M, A,B,C) = + (M-A) = whatever * ( (A-B) rotated 1/3 (angle(C-A) - angle(B-A)) ) +enddef; + +vardef deuxieme_trisectrice (expr M, A,B,C) = + (M-A) = whatever * ( (A-B) rotated 2/3 (angle(C-A) - angle(B-A)) ) +enddef; + + pair A,B,C,M[]; + u:=2cm; + A=(0,0); B=(2u,-.5u); C=(u,u); + draw A--B--C--cycle; + + premiere_trisectrice(M1,A,B,C); + deuxieme_trisectrice(M1,B,C,A); + premiere_trisectrice(M2,B,C,A); + deuxieme_trisectrice(M2,C,A,B); + premiere_trisectrice(M3,C,A,B); + deuxieme_trisectrice(M3,A,B,C); + + draw M1--A; draw M1--B; + draw M2--B; draw M2--C; + draw M3--C; draw M3--A; + + draw M1--M2--M3--cycle; +endfig; +beginfig(180) + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := point length(p) of p; + u := unitvector(direction length(p) of p); + A -- (A - ahlength*u rotated 15) -- + (A - ahlength*u rotated -15) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(181) + save arrowhead; + vardef arrowhead expr p = + save A,B,u; pair A,B,u; + A := point length(p) of p; + B := p intersectionpoint + (fullcircle scaled ahlength shifted A); + u := unitvector(direction length(p) of p); + A -- (A - ahlength*u rotated 30) -- B -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(182) + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := point length(p) of p; + u := unitvector(direction length(p) of p); + A -- (A - ahlength*u rotated 30) -- A -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(183) + save arrowhead; + vardef arrowhead expr p = + save A,u,a,b; pair A,u; path a,b; + A := point length(p) of p; + u := unitvector(direction length(p) of p); + a := A{-u} .. (A - ahlength*u rotated 30); + b := A{-u} .. (A - ahlength*u rotated -30); + ( a & reverse(a) & b & reverse(b) ) --cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(184) + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := point 1/2length(p) of p; + u := unitvector(direction 1/2length(p) of p); + A -- (A - ahlength*u rotated 15) -- + (A - ahlength*u rotated -15) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(185) + save arrowhead; + vardef arrowhead expr p = + save A,B,u; pair A,B,u; + A := point 1/2length(p) of p; + B := p intersectionpoint + (fullcircle scaled ahlength shifted A); + u := unitvector(direction 1/2length(p) of p); + A -- (A - ahlength*u rotated 30) -- B -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(186) + save arrowhead; + vardef arrowhead expr p = + save A,u; pair A,u; + A := point 1/2length(p) of p; + u := unitvector(direction 1/2length(p) of p); + A -- (A - ahlength*u rotated 30) -- A -- + (A - ahlength*u rotated -30) -- cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(187) + save arrowhead; + vardef arrowhead expr p = + save A,u,a,b; pair A,u; path a,b; + A := point 1/2length(p) of p; + u := unitvector(direction 1/2length(p) of p); + a := A{-u} .. (A - ahlength*u rotated 30); + b := A{-u} .. (A - ahlength*u rotated -30); + ( a & reverse(a) & b & reverse(b) ) --cycle + enddef; + + u:=1cm; + drawarrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(188) + def drawwhitearrow expr p = _apth:=p; _finwhitearr enddef; + + def _finwhitearr text t = + draw _apth t; + fill arrowhead _apth t withcolor white; + draw arrowhead _apth t + enddef; + + u:=1cm; + drawwhitearrow (0,0) .. (-u,u) .. (u,u); +endfig; +beginfig(189) + def draw_white_arrow expr p = _apth:=p; _fin_white_arr enddef; + def _fin_white_arr text t = + draw _apth t; + fill arrowhead _apth withcolor white; + draw arrowhead _apth t + enddef; + + def draw_middle_arrow expr p = _apth:=p; _fin_middle_arr enddef; + def _fin_middle_arr text t = + draw _apth t; + filldraw arrowhead_middle _apth t + enddef; + vardef arrowhead_middle expr p = + save A,u; pair A,u; + A := point (arctime (.5arclength p) of p) of p; + u := unitvector(direction (arctime (.5arclength p) of p) of p); + A -- (A - ahlength*u rotated (.5ahangle) ) -- + (A - ahlength*u rotated (-.5ahangle) ) -- cycle + enddef; + + def draw_middle_white_arrow expr p = _apth:=p; _fin_middle_white_arr enddef; + let draw_white_middle_arrow = draw_middle_white_arrow; + def _fin_middle_white_arr text t = + draw _apth t; + fill arrowhead_middle _apth t withcolor white; + draw arrowhead_middle _apth t + enddef; + + def draw_other_arrow expr p = _apth:=p; _fin_other_arr enddef; + def _fin_other_arr text t = + draw _apth t; + draw arrowhead_other _apth t + enddef; + vardef arrowhead_other expr p = + save A,u,a,b; pair A,u; path a,b; + A := point (length p) of p; + u := unitvector(direction (length p) of p); + a := A{-u} .. (A - ahlength*u rotated 30); + b := A{-u} .. (A - ahlength*u rotated -30); + ( a & reverse(a) & b & reverse(b) ) --cycle + enddef; + + def draw_other_middle_arrow expr p = _apth:=p; _fin_other_middle_arr enddef; + let draw_middle_other_arrow = draw_other_middle_arrow; + def _fin_other_middle_arr text t = + draw _apth t; + draw arrowhead_other_middle _apth t + enddef; + vardef arrowhead_other_middle expr p = + save A,u,a,b; pair A,u; path a,b; + A := point (arctime (.5arclength p) of p) of p; + u := unitvector(direction (arctime (.5arclength p) of p) of p); + a := A{-u} .. (A - ahlength*u rotated 30); + b := A{-u} .. (A - ahlength*u rotated -30); + ( a & reverse(a) & b & reverse(b) ) --cycle + enddef; + + path p; + p := halfcircle scaled 2cm; + p := (0,0) .. (3cm,1cm) .. (-1cm,3cm); + p := p scaled .3; + draw_middle_arrow p; + draw_white_arrow p scaled 1.3 withpen pencircle scaled 1bp; + draw_white_middle_arrow p scaled 1.6; + draw_other_middle_arrow p scaled 1.8 withpen pencircle scaled 1bp; + draw_other_arrow p scaled 2 withpen pencircle scaled 1bp; +endfig; +beginfig(190) + vardef mylabel(expr pic, p, t) = + save A; pair A; + A = point t of p + + 8bp * unitvector(direction t of p) rotated 90; + label(pic, A); + enddef; + path p; u:=1cm; + p = (0,0)..(-u,u)..(u,u); + draw p; + for i=0 step .2 until length(p): + draw point i of p withpen pencircle scaled 4bp; + mylabel(btex $A$ etex,p,i); + endfor; +endfig; +beginfig(191) + vardef mylabel(expr pic, p, t) = + save A; pair A; + A = point t of p + + 8bp * unitvector(direction t of p) rotated 90; + label(pic, A); + enddef; + path p; u:=1cm; + p = (0,0)..(-u,u)..(u,u); + draw p; + for i=0 step .2 until length(p): + draw point i of p withpen pencircle scaled 4bp; + mylabel(TEX decimal(i),p,i); + endfor; +endfig; +beginfig(192) + vardef mylabel(expr pic, p, t) = + save A,a; pair A; numeric a; + a := angle(direction t of p rotated 90); + show(a); + a := a + 45/2; + if a>180: a := a - 360 fi; + save ll, lr, ul, ur; + pair ul,ur,ll,lr; + ll := llcorner pic; + lr := lrcorner pic; + ul := ulcorner pic; + ur := urcorner pic; + A = point t of p + + 8bp * unitvector(direction t of p) rotated 90; + label(pic shifted ll, A + + if (a >= 0) and (a <= 45): 1/2(ur-ul) + elseif (a >= 45) and (a <= 90): 1/2(ur-ul) + 1/2(ur-lr) + elseif (a >= 90) and (a <= 135): 1/2(ur-lr) + elseif (a >= 135) and (a <= 180): 1/2(ll-lr) + 1/2(ur-lr) + elseif (a >= -180) and (a <= -135): 1/2(ll-lr) + elseif (a >= -135) and (a <= -90): 1/2(ll-ul) + 1/2(ll-lr) + elseif (a >= -90) and (a <= -45): 1/2(ll-ul) + elseif (a >= -45) and (a <= 0): 1/2(ll-ul) - 1/2(ll-lr) + else: hide(show "BUG") (0,0) + fi); + draw A withpen pencircle scaled 2bp withcolor red; + enddef; + path p; u:=1cm; + p = (0,0)..(-u,u)..(u,u); + p := reverse fullcircle scaled 2u; + draw p; + for i=0 step length(p)/10 until length(p): + draw point i of p withpen pencircle scaled 4bp; + mylabel(TEX decimal(i),p,i); + endfor; +endfig; +beginfig(193) + n:=8; + u:=5mm; + for i=0 upto n-1: + for j=0 upto n-1: + if odd(i+j): + fill (0,0)--(u,0)--(u,u)--(0,u)--cycle + shifted (i*u,j*u) withcolor .8white; + fi; + endfor; + endfor; + for i=0 upto n: + draw (0,i*u)--(n*u,i*u); + draw (i*u,0)--(i*u,n*u); + endfor; +endfig; +beginfig(194) + n:=8; + u:=5mm; + for i=0 upto n-1: + for j=0 upto n-1: + if odd(i+j): + for k=0 step u/5 until u: + draw ( (k,0)--(u,u-k) ) + shifted (i*u,j*u); + draw ( (0,k)--(u-k,u) ) + shifted (i*u,j*u); + endfor; + fi; + endfor; + endfor; + for i=0 upto n: + draw (0,i*u)--(n*u,i*u); + draw (i*u,0)--(i*u,n*u); + endfor; +endfig; +beginfig(195) + n:=8; + u:=5mm; + for i=0 upto n-1: + for j=0 upto n-1: + if odd(i+j): + for k=0 step u/5 until 4/5 u: + if odd(k*5/u): + fill ( (k,0)--(u,u-k)--(u,u-k-u/5)-- + (k+u/5,0)--cycle ) + shifted (i*u,j*u) withcolor .8white; + else: + fill ( (0,k)--(u-k,u)--(u-k-u/5,u)-- + (0,k+u/5)--cycle ) + shifted (i*u,j*u) withcolor .8white; + fi; + endfor; + fi; + endfor; + endfor; + for i=0 upto n: + draw (0,i*u)--(n*u,i*u); + draw (i*u,0)--(i*u,n*u); + endfor; +endfig; +beginfig(196) + vardef trace (suffix f)(expr a,b,inc) = + save i; numeric i; + for i=a step inc until b: + (i*1cm, f(i)*1cm) .. + endfor (b*1cm, f(b)*1cm) + enddef; + + vardef axes = + save p; picture p; + p:=nullpicture; + addto p doublepath (-infinity,0)--(infinity,0) withpen currentpen; + addto p doublepath (0,-infinity)--(0,infinity) withpen currentpen; + clip p to bbox currentpicture; + draw p; + enddef; + + vardef trace_rectangles_left (suffix f)(expr a,b,inc) = + save i; numeric i; + for i=a step inc until b-inc: + path p; + p = (i,0)--(i+inc,0)--(i+inc,f(i))--(i,f(i))--cycle; + p := p scaled 1cm; + fill p withcolor .8*white; + draw p; + endfor; + enddef; + + vardef f(expr x) = 2 ** x enddef; + + trace_rectangles_left(f,-2,2,.5); + draw trace(f, -2,2,.1); + axes; +endfig; +beginfig(197) + vardef trace_trapezes (suffix f)(expr a,b,inc) = + save i; numeric i; + for i=a step inc until b-inc: + path p; + p = (i,0)--(i+inc,0)--(i+inc,f(i+inc))--(i,f(i))--cycle; + p := p scaled 1cm; + fill p withcolor .8*white; + draw p; + endfor; + enddef; + + vardef f(expr x) = 4 - x**2 enddef; + + trace_trapezes(f,-2,2,.5); + draw trace(f, -2,2,.1); + axes; +endfig; +beginfig(198) + vardef trace_rectangles_right (suffix f)(expr a,b,inc) = + save i; numeric i; + for i=a step inc until b-inc: + path p; + p = (i,0)--(i+inc,0)--(i+inc,f(i+inc))--(i,f(i+inc))--cycle; + p := p scaled 1cm; + fill p withcolor .8*white; + draw p; + endfor; + enddef; + + trace_rectangles_right(f,-2,2,.5); + draw trace(f, -2,2,.1); + axes; +endfig; +beginfig(199) + vardef maxf(suffix f)(expr a,b) = + save m,i; numeric m,i; + m:=f(a); + for i=a step (b-a)/100 until b: + if mf(i): m:=f(i); fi; + endfor; + m + enddef; + + vardef trace_rectangles_min (suffix f)(expr a,b,inc) = + save i; numeric i; + for i=a step inc until b-inc: + path p; numeric m; + m:=minf(f,i,i+inc); + p = (i,0)--(i+inc,0)--(i+inc,m)--(i,m)--cycle; + p := p scaled 1cm; + fill p withcolor .8*white; + draw p; + endfor; + enddef; + + vardef f(expr x) = 4 - x**2 enddef; + + trace_rectangles_min(f,-2,2,.5); + draw trace(f, -2,2,.1); + axes; +endfig; +beginfig(201) + u:=2cm; + vardef koch(expr A,B,n) = + save C; pair C; + C = A rotatedaround(1/3[A,B], 120); + if n>0: + koch( A, 1/3[A,B], n-1); + koch( 1/3[A,B], C, n-1); + koch( C, 2/3[A,B], n-1); + koch( 2/3[A,B], B, n-1); + else: + draw A--1/3[A,B]--C--2/3[A,B]--B; + fi; + enddef; + z0=(u,0); + z1=z0 rotated 120; + z2=z1 rotated 120; + koch( z0, z1, 4 ); + koch( z1, z2, 4 ); + koch( z2, z0, 4 ); +endfig; +beginfig(202) + u:=2cm; + vardef koch(expr A,B,n) = + save C; pair C; + C = A rotatedaround(1/3[A,B], -120); + if n>0: + koch( A, 1/3[A,B], n-1); + koch( 1/3[A,B], C, n-1); + koch( C, 2/3[A,B], n-1); + koch( 2/3[A,B], B, n-1); + else: + draw A--1/3[A,B]--C--2/3[A,B]--B; + fi; + enddef; + z0=(u,0); + z1=z0 rotated 120; + z2=z1 rotated 120; + koch( z0, z1, 4 ); + koch( z1, z2, 4 ); + koch( z2, z0, 4 ); +endfig; +beginfig(203) + pair A,B,C,D; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + draw A--B--C--D--cycle; + draw A--C; + draw btex $B'$ etex shifted 1/3 (A+B+C); + draw btex $B$ etex shifted 1/3 (A+D+C); + +endfig; +beginfig(204) + pair A,B,C,D,E,F; + numeric d[]; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + d[0] := 1; + d[1] := sqrt( 2*(1+cosd(72)) ); + d[2] := sqrt( 2*(1-cosd(36)) ); + A := A; + B := C; + C := D; + draw A--B--C--cycle; + E := (d1/(d0+d1)) [A,C]; + F := (d0/(d0+d2)) [A,B]; + draw E--C--F--cycle; + draw btex $A$ etex shifted 1/3(E+C+F); + draw B--C--F--cycle; + draw btex $B$ etex shifted 1/3(B+C+E); + draw E--F--A--cycle; + draw btex $B'$ etex shifted 1/3(E+F+A); +endfig; +beginfig(205) + pair A,B,C,D,E,F; + numeric d[]; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + draw A--B--C--cycle; + d[0] := 1; + d[1] := sqrt( 2*(1+cosd(72)) ); + d[2] := sqrt( 2*(1-cosd(36)) ); + E := (d1/(d0+d1)) [A,C]; + F := (d0/(d0+d2)) [A,B]; + draw E--F--B--cycle; + draw btex $A'$ etex shifted 1/3(E+F+B); + draw E--A--F--cycle; + draw btex $B$ etex shifted 1/3(E+A+F); + draw C--E--B--cycle; + draw btex $B'$ etex shifted 1/3(C+E+B); +endfig; +beginfig(206) + pair A,B,C,D,E,F; + numeric d[]; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + d[0] := 1; + d[1] := sqrt( 2*(1+cosd(72)) ); + d[2] := sqrt( 2*(1-cosd(36)) ); + A := A; + B := C; + C := D; + E := (d1/(d0+d1)) [A,C]; + F := (d0/(d0+d2)) [A,B]; + B := 3*(C-E); + C := 3*(F-E); + + draw A--B--C--cycle; + + D := (d0/(d0+d2)) [C,A]; + draw B--C--D--cycle; + draw btex $A$ etex shifted 1/3(B+C+D); + draw B--D--A--cycle; + draw btex $B'$ etex shifted 1/3(B+D+A); +endfig; +beginfig(207) + pair A,B,C,D,E,F; + numeric d[]; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + d[0] := 1; + d[1] := sqrt( 2*(1+cosd(72)) ); + d[2] := sqrt( 2*(1-cosd(36)) ); + + % B' + E := (d1/(d0+d1)) [A,C]; + F := (d0/(d0+d2)) [A,B]; + + % A' + A := 2*(E-E); + C := 2*(B-E); + B := 2*(F-E); + + draw A--B--C--cycle; + D := (d0/(d0+d2)) [A,B]; + draw C--D--B--cycle; + draw btex $A'$ etex shifted 1/3(C+D+B); + draw C--A--D--cycle; + draw btex $B$ etex shifted 1/3(C+A+D); +endfig; +beginfig(208) + vardef pave(expr t, A, B, C, n) = + save D, E, d; + pair D,E; + numeric d[]; + d[0] := 1; + d[1] := sqrt( 2*(1+cosd(72)) ); + d[2] := sqrt( 2*(1-cosd(36)) ); + if n>0: + if t=1: + D := (d0/(d0+d2)) [A,C]; + pave(1,B,C,D,n-1); + pave(4,B,D,A,n-1); + elseif t=2: + D := (d0/(d0+d2)) [A,B]; + pave(2,C,D,B,n-1); + pave(3,C,A,D,n-1); + elseif t=3: + D := (d1/(d0+d1)) [A,B]; + E := (d0/(d0+d2)) [A,C]; + pave(1,D,C,E,n-1); + pave(3,B,C,D,n-1); + pave(4,D,E,A,n-1); + elseif t=4: + D := (d1/(d0+d1)) [A,C]; + E := (d0/(d0+d2)) [A,B]; + pave(2,D,E,B,n-1); + pave(3,D,A,E,n-1); + pave(4,C,D,B,n-1); + fi; + else: + draw A--B--C--cycle; + if t=1: + fill A--B--C--cycle withcolor green + blue; + draw A--C withpen pencircle scaled 1bp; + draw A--B withpen pencircle scaled 1bp; + elseif t=2: + fill A--B--C--cycle withcolor green + blue; + draw A--B withpen pencircle scaled 1bp; + draw A--B withpen pencircle scaled 1bp; + elseif t=3: + fill A--B--C--cycle withcolor green + red; + draw A--C withpen pencircle scaled 1bp; + draw C--B withpen pencircle scaled 1bp; + elseif t=4: + fill A--B--C--cycle withcolor green + red; + draw B--C withpen pencircle scaled 1bp; + draw A--B withpen pencircle scaled 1bp; + fi; + fi; + enddef; + numeric M; + M := 6; + pair A,B,C,D; + u := 3cm; + A := (0,0); + B := (u,0); + D := B rotated 72; + C := (u,0) + D; + pave(3,A,C,D,M); + pave(4,A,B,C,M); +endfig; +beginfig(209) +u:=1cm; + +def milieu (expr s, ss, n) = + if n<>0: + for i="A","BA","BBA": + milieu(s&i, ss, n-1); + endfor; + else: + dessine(s&ss); + fi; +enddef; + +def doit(expr N) = + for n=1 upto N: + for i="A","BA","BBA": + for j="","B","BB": + milieu(i,j,n-1); + endfor; + endfor; + endfor; + milieu("","",0); +enddef; + +vardef A(expr a) = + save x,y,n; + numeric x,y,n; + x := xpart a; + y := ypart a; + n:=x*x+y*y; + (-x/n, y/n) +enddef; + +vardef B(expr a) = + save x,y,n; + numeric x,y,n; + x := 1 + xpart a; + y := ypart a; + n := x*x+y*y; + (-x/n, y/n) +enddef; + +def dessine(expr s) = + _dessine(s, dir(60), up, dir(120)); + _dessine(s, dir(60), dir(31), dir(2)); + _dessine(s, dir(120), dir(149), dir(178)); +enddef; + +def _dessine(expr s, a,b,c) = + pair p[]; + p[0] := a; + p[1] := b; + p[2] := c; + + for i=0 upto length(s)-1: + if (substring(i,i+1) of s) = "A": + for j=0 upto 2: p[j] := A( p[j] ); endfor; + elseif (substring(i,i+1) of s) = "B": + for j=0 upto 2: p[j] := B( p[j] ); endfor; + else: show("Ceci n'est pas un générateur : "&substring(i,i+1) of s) + fi; + endfor; + if (xpart p[0] < 2) and (xpart p[0] > -2) and + (xpart p[2] > -2) and (xpart p[2] < 2) and + (ypart p[0] < 2) and (ypart p[2] < 2): + draw ( p[0] .. p[1] .. p[2] ) scaled u; + fi; + +enddef; + + fill (dir(60) .. up .. dir(120) -- + (dir120+up) -- (dir60+up) -- cycle) scaled u + withcolor red+green; + doit(7); + draw (u*dir(60)) withpen pencircle scaled 4bp; + draw (0,u) withpen pencircle scaled 4bp; + draw (u*dir(60) -- u*dir(60)+u*up) shifted (0u,0); + draw (u*dir(60) -- u*dir(60)+u*up) shifted (1u,0); + draw (u*dir(60) -- u*dir(60)+u*up) shifted (-u,0); + draw (u*dir(60) -- u*dir(60)+u*up) shifted (-2u,0); +endfig; +beginfig(210) + u:=5mm; + pickup pencircle scaled 1pt; + for i=0 upto 500: + draw (u*normaldeviate, u*normaldeviate); + endfor; +endfig; +beginfig(211) + u:=2cm; + pickup pencircle scaled 1pt; + for i=0 upto 500: + draw (u*uniformdeviate(1), u*uniformdeviate(1)); + endfor; +endfig; +beginfig(212) + numeric n; + n:=10; + path p; + p := for i=0 upto n-1: + ((1cm + 3mm*normaldeviate,0) rotated (i*360/n)) .. + endfor cycle; + fill p withcolor .8white; + draw p; +endfig; +beginfig(213) + m:=500; + u:=1cm; + pair A,B; + A:=(0,0); + for i=0 upto m: + B:=(i/m*3u, (ypart A)+normaldeviate/m*30u); + draw A--B; + A:=B; + endfor; + draw (0,0)--(3u,0); +endfig; +beginfig(214) + m:=50; + pair A[], B[]; + A[0]=(0,0); + for i=0 upto m: + A[i+1]=(i/m*3u, (ypart A[i])+(uniformdeviate(2)-1)/m*30u); + endfor; + B[0]=A[0]; + B[1]=A[1]; + B[2]=A[2]; + B[3]=A[3]; + for i=4 upto m+1: + B[i] = ( A[i-4] + A[i-3] + A[i-2] + A[i-1] + A[i])/5; + endfor; + for i=0 upto m: + draw B[i]--B[i+1] withpen pencircle scaled 2pt + withcolor .5*white; + endfor; + for i=0 upto m: + draw A[i]--A[i+1]; + endfor; + draw (0,0)--(3u,0); +endfig; +def rescale_currentpic := + if xpart (lrcorner currentpicture - llcorner currentpicture) > 4cm: + currentpicture := currentpicture scaled ( 4cm / + xpart (lrcorner currentpicture - llcorner currentpicture) ); + fi; +enddef; +beginfig(215) +vardef check_pascal = + save again; + boolean again; + again := false; + % Distance entre deux points sur le cercle : au moins 1mm + for i=0 upto 5: + for j=i+1 upto 5: + show( decimal(i) &" "& decimal(j) &" "& decimal(abs(A[i]-A[j])/2mm) ); + if abs(A[i]-A[j]) < 2mm: + again := true; + fi; + endfor; + endfor; + % Distance entre deux des M[i] : au moins 2mm, au plus 10cm + for i=0 upto 2: + for j=i+1 upto 2: + if (abs(M[i]-M[j]) > 10cm) or (abs(M[i]-M[j]) < 2mm): + again := true; + fi; + endfor; + endfor; + % Distance entre un A[i] et un M[i] : au moins 2mm + for i=0 upto 5: + for j=0 upto 2: + if abs(A[i]-M[j]) < 2mm: + again := true; + fi; + endfor; + endfor; + % Distance entre le cercle et l'un des M[i] : au plus 10cm + if abs(M[0])>10cm: + again:=true; + fi; + show again; + not again +enddef; + + forever: + path C; + C := fullcircle scaled 6cm; + pair A[], M[]; + for i=0 upto 5: + A[i] := point uniformdeviate(length(C)) of C; + endfor; + M[0] = whatever[ A[0], A[1] ]; + M[0] = whatever[ A[3], A[4] ]; + M[1] = whatever[ A[1], A[2] ]; + M[1] = whatever[ A[4], A[5] ]; + M[2] = whatever[ A[2], A[3] ]; + M[2] = whatever[ A[5], A[0] ]; + exitif check_pascal; + endfor; + + draw C; + draw A[0]--A[1] withcolor red; + draw A[3]--A[4] withcolor red; + draw A[0]--M[0] withcolor red dashed evenly; + draw A[3]--M[0] withcolor red dashed evenly; + + draw A[1]--A[2] withcolor green; + draw A[4]--A[5] withcolor green; + draw A[1]--M[1] withcolor green dashed evenly; + draw A[4]--M[1] withcolor green dashed evenly; + + draw A[2]--A[3] withcolor blue; + draw A[5]--A[0] withcolor blue; + draw A[2]--M[2] withcolor blue dashed evenly; + draw A[5]--M[2] withcolor blue dashed evenly; + + draw M[0]--M[1]--M[2]--cycle withpen pencircle scaled 2bp; + for i=0 upto 2: + draw M[i] withpen pencircle scaled 6bp; + endfor; + for i=0 upto 5: + draw A[i] withpen pencircle scaled 6bp; + endfor; + rescale_currentpic; +endfig; +beginfig(216) +vardef pascal(expr C) = + forever: + pair A[], M[]; + for i=0 upto 5: + A[i] := point uniformdeviate(length(C)) of C; + endfor; + M[0] = whatever[ A[0], A[1] ]; + M[0] = whatever[ A[3], A[4] ]; + M[1] = whatever[ A[1], A[2] ]; + M[1] = whatever[ A[4], A[5] ]; + M[2] = whatever[ A[2], A[3] ]; + M[2] = whatever[ A[5], A[0] ]; + exitif check_pascal; + endfor; + + draw C; + draw A[0]--A[1] withcolor red; + draw A[3]--A[4] withcolor red; + draw A[0]--M[0] withcolor red dashed evenly; + draw A[3]--M[0] withcolor red dashed evenly; + + draw A[1]--A[2] withcolor green; + draw A[4]--A[5] withcolor green; + draw A[1]--M[1] withcolor green dashed evenly; + draw A[4]--M[1] withcolor green dashed evenly; + + draw A[2]--A[3] withcolor blue; + draw A[5]--A[0] withcolor blue; + draw A[2]--M[2] withcolor blue dashed evenly; + draw A[5]--M[2] withcolor blue dashed evenly; + + draw M[0]--M[1]--M[2]--cycle withpen pencircle scaled 2bp; + for i=0 upto 2: + draw M[i] withpen pencircle scaled 6bp; + endfor; + for i=0 upto 5: + draw A[i] withpen pencircle scaled 6bp; + endfor; +enddef; + + pascal(fullcircle xscaled 6cm yscaled 3cm); + rescale_currentpic; +endfig; +beginfig(217) + pascal((for i=-2cm step .1cm until 2cm: + (i, (i/1cm)**2 *1cm) .. + endfor (2.1cm,4.41cm)) rotated 30); + rescale_currentpic; +endfig; +beginfig(218) +vardef pascal(expr C) = + forever: + pair A[], M[]; + + numeric t[]; + for i=0 upto 5: + t[i] = uniformdeviate(length(C)); + endfor; + for i=0 upto 5: + for j=0 upto 4: + if t[j]>t[j+1]: + tt:=t[j]; t[j]:=t[j+1]; t[j+1]:=tt; + fi; + endfor; + endfor; + for i=0 upto 5: + A[i] = point t[i] of C; + endfor; + + M[0] = whatever[ A[0], A[1] ]; + M[0] = whatever[ A[3], A[4] ]; + M[1] = whatever[ A[1], A[2] ]; + M[1] = whatever[ A[4], A[5] ]; + M[2] = whatever[ A[2], A[3] ]; + M[2] = whatever[ A[5], A[0] ]; + exitif check_pascal; + endfor; + + draw C; + draw A[0]--A[1] withcolor red; + draw A[3]--A[4] withcolor red; + draw A[0]--M[0] withcolor red dashed evenly; + draw A[3]--M[0] withcolor red dashed evenly; + + draw A[1]--A[2] withcolor green; + draw A[4]--A[5] withcolor green; + draw A[1]--M[1] withcolor green dashed evenly; + draw A[4]--M[1] withcolor green dashed evenly; + + draw A[2]--A[3] withcolor blue; + draw A[5]--A[0] withcolor blue; + draw A[2]--M[2] withcolor blue dashed evenly; + draw A[5]--M[2] withcolor blue dashed evenly; + + draw M[0]--M[1]--M[2]--cycle withpen pencircle scaled 2bp; + for i=0 upto 2: + draw M[i] withpen pencircle scaled 6bp; + endfor; + for i=0 upto 5: + draw A[i] withpen pencircle scaled 6bp; + endfor; +enddef; + + pascal(fullcircle scaled 6cm); + rescale_currentpic; +endfig; +beginfig(219) + pascal(fullcircle xscaled 6cm yscaled 3cm); + rescale_currentpic; +endfig; +beginfig(220) + pascal(fullcircle xscaled 6cm yscaled 3cm); + rescale_currentpic; +endfig; +beginfig(221) + vardef barycentre(text t) = + save n, G; + pair G; numeric n; + G := origin; n:=0; + for a=t: + G:=G+a; + n:=n+1; + endfor; + G/n + enddef; + + pair A[]; + n:=10; + for i=0 upto n: + A[i] = 1cm*(normaldeviate, normaldeviate); + draw A[i] withpen pencircle scaled 4bp; + endfor; + draw barycentre(A[0] for i=1 upto 10: ,A[i] endfor) + withpen pencircle scaled 4bp withcolor red; +endfig; +beginfig(222) + vardef barycentre(text t) = + save a, i, n, G, X; + pair G,X; numeric n,i; + G := origin; n:=0; i:=0; + for a=t: + show("i = "& decimal(i)); + show a; + if odd(i): + show("odd"); + n:=n+a; + G:= G + a*X; + else: + show("even"); + X:=a; + fi; + i:=i+1; + endfor; + G/n + enddef; + + pair A[]; + n:=10; + for i=0 upto n: + A[i] = 1cm*(normaldeviate, normaldeviate); + draw A[i] withpen pencircle scaled 4bp; + endfor; + draw barycentre(A[0],0 for i=1 upto 10: ,A[i],i endfor) + withpen pencircle scaled 4bp withcolor red; +endfig; +beginfig(223) + numeric n; + n:=10; + path p; + p := for i=0 upto n-1: + ((1cm + 3mm*normaldeviate,0) rotated (i*360/n)) .. + endfor cycle; + for i=0 step 2mm until 3cm: + draw fullcircle scaled i; + endfor; + clip currentpicture to p; + draw p; + +endfig; +beginfig(224) + u := 5mm; + draw (-2u,0) -- (2u,0); + draw (0,-u) -- (0,4u); + draw (-2u,4u) for i=-1.9 step .1 until 2.01: .. (i*u, i*i*u) endfor + withpen pencircle scaled 1bp; + draw bbox currentpicture withpen pensquare scaled 2bp withcolor .8white; + draw bbox currentpicture withpen pensquare scaled 2bp withcolor .8white; +endfig; +beginfig(225) + path p; + p := (0,0) -- (2cm,0); + def doit (suffix p)(expr t) = + begingroup + interim linecap := t; + draw p withpen pencircle scaled 5mm withcolor .8white; + endgroup; + draw point 0 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + p := p shifted (0,-7mm) + enddef; + doit(p,rounded); + doit(p,butt); + doit(p,squared); + +endfig; +beginfig(226) + path p; + p := (0,0) -- (1cm,5mm) -- (2cm,0); + def doit (suffix p)(expr t) = + begingroup + interim linejoin := t; + draw p withpen pencircle scaled 5mm withcolor .8white; + endgroup; + draw point 0 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + draw point 2 of p withpen pencircle scaled 4bp; + p := p shifted (0,-7mm) + enddef; + doit(p,rounded); + doit(p,mitered); + doit(p,beveled); + +endfig; +beginfig(227) + path p; + p := (0,0) -- (2cm,0); + vardef doit (suffix p)(expr t) = + interim linecap := t; + draw p withpen pencircle scaled 5mm withcolor .8white; + draw point 0 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + draw point 2 of p withpen pencircle scaled 4bp; + p := p shifted (0,-7mm) + enddef; + doit(p,rounded); + doit(p,butt); + doit(p,squared); + +endfig; +beginfig(228) + draw fullcircle scaled 2cm; + special("0 0 moveto 10 10 rlineto -10 10 rlineto stroke"); + +endfig; +beginfig(229) + draw fullcircle shifted (.5,.5) xscaled 18.2cm yscaled 4cm; + special( + "/Times-Roman findfont 150 scalefont setfont " & + "0 0 moveto (ABCabc) false charpath clip stroke " & + "gsave 300 0 translate " & + " 2 4 600 {dup 0 moveto 0 exch 0 exch 0 360 arc stroke} for " & + "grestore " + ); + +endfig; +beginfig(230) + draw fullcircle shifted (.5,.5) xscaled 18.2cm yscaled 4cm; + special( + "gsave " & + "/Times-Roman findfont 150 scalefont setfont " & + "0 0 moveto (ABCabc) false charpath clip stroke " & + "gsave 300 0 translate " & + " 2 4 600 {dup 0 moveto 0 exch 0 exch 0 360 arc stroke} for " & + "grestore " & + "grestore " + ); + +endfig; +beginfig(231) + path p; + p = + (0,u) + for i=.1 step .1 until 10: + hide( pair A; A = (i*u, (sind (i*180/3.14))/i *u); + draw A withpen pencircle scaled 2pt ) + .. A + endfor; + draw p; +endfig; +beginfig(232) +vardef inversion (expr O,k,M) = + if pair M: + (O + k*unitvector(M-O)/abs(M-O)) + elseif path M: + for i=0 step length(M)/10 until length(M): + hide( + draw O--inversion(O,k,point i of M)--(point i of M); + draw inversion(O,k,point i of M) withpen pencircle scaled 2pt; + draw point i of M withpen pencircle scaled 2pt withcolor red; + draw O withpen pencircle scaled 2pt; + ) + inversion(O,k,point i of M) .. + endfor + cycle + fi +enddef; + + path p[]; + p1=fullcircle scaled 2u shifted (u,0); + p2=fullcircle scaled 2u shifted (-u,0); + draw p1 dashed withdots scaled .25; + draw p2 dashed withdots scaled .25; + z0 = (.5u,2u); + draw inversion( z0, 2 (u**2), p1 ); + draw inversion( z0, 2 (u**2), p2 ); +endfig; +beginfig(233) + path p; + p := (0,0) -- (1cm,0); + show ahangle; + begingroup + interim ahangle := 30; + interim linejoin := mitered; + interim linecap := butt; + drawarrow p withpen pencircle scaled 2bp; + endgroup; + begingroup + interim ahangle := 60; + drawarrow p shifted (0,-5mm) withpen pencircle scaled 2bp; + endgroup; + +endfig; +beginfig(234) + numeric x; + x = sind(60); + draw TEX("$\sin 60 = " & decimal(x) & "$"); + +endfig; +beginfig(235) +picture _TEX_pic; + +def largeur(expr p) = + if picture p: + xpart( lrcorner(p) - llcorner(p) ) + elseif string p: + hide(_TEX_pic := TEX(p);) + xpart( lrcorner(_TEX_pic) - llcorner(_TEX_pic) ) + else: + hide( errmessage("largeur: wrong type"); 0) + fi +enddef; + +def hauteur(expr p) = + if picture p: + ypart(ulcorner(p)) + elseif string p: + hide(_TEX_pic := TEX(p);) + ypart(ulcorner(_TEX_pic)) + else: + hide( errmessage("hauteur: wrong type"); 0) + fi +enddef; + +def profondeur (expr p) = + if picture p: + -ypart(llcorner(p)) + elseif string p: + hide(_TEX_pic := TEX(p);) + -ypart(llcorner(_TEX_pic)) + else: + hide( errmessage("profondeur: wrong type"); 0) + fi +enddef; + + picture p; + string s; + s := "\huge\LaTeX"; + p := TEX(s); + drawarrow (0,0) -- (largeur(s),0) withcolor red; + drawarrow (0,0) -- (0,hauteur(s)) withcolor green; + drawarrow (0,0) -- (0,-profondeur(s)) withcolor blue; + draw p; + draw bbox p; +endfig; +beginfig(236) + def reddraw text t = draw t withcolor red enddef; + draw (0,0) -- (2cm,0); + reddraw (0,0) -- (2cm,5mm) withpen pencircle scaled 2bp; + +endfig; +beginfig(237) +path _myfill_p; + +def myfill expr p = + _myfill_p := p; + _myfill +enddef; + +def _myfill text t = + fill _myfill_p t; + draw _myfill_p t withcolor red; +enddef; + + myfill fullcircle scaled 1cm withcolor .8white withpen pencircle scaled 2bp; +endfig; +beginfig(238) + boxit.a(btex Essai etex); + a.c = (0,0); + drawboxed(a); + +endfig; +beginfig(239) + circleit.a(btex Essai etex); + a.c = (0,0); + drawboxed(a); + +endfig; +beginfig(240) + rboxit.a(btex Essai etex); + a.c = (0,0); + drawboxed(a); + +endfig; +beginfig(241) + boxit.a(btex Essai etex); + a.c = (0,0); + drawunboxed(a); + +endfig; +beginfig(242) + circleit.a(btex Essai etex); + a.c = (0,0); + a.dx = a.dy; + drawboxed(a); +endfig; +beginfig(243) + circleit.a(btex Essai etex); + a.c = (0,0); + a.dx = a.dy; + drawunboxed(a); + for i=0 step 10 until 360: + draw (0,0) -- 1cm*right rotated i cutbefore bpath.a; + endfor; +endfig; +beginfig(244) + circleit.a(btex Début etex); + a.c = (0,0); + a.dx = a.dy; + circleit.b(btex Fin etex); + b.c = (2cm,0); + b.dx = b.dy; + drawboxed(a,b); + drawarrow a.c {dir 45} .. b.c {dir -45} + cutbefore bpath.a cutafter bpath.b; + drawarrow b.c {dir -135} .. a.c {dir 135} + cutbefore bpath.b cutafter bpath.a; +endfig; +beginfig(245) + circleit.a(btex Début etex); + a.c = (0,0); + a.dx = a.dy; + circleit.b(btex Fin etex); + b.c = (2cm,0); + b.dx = b.dy; + drawunboxed(a,b); + drawarrow a.c {dir 45} .. b.c {dir -45} + cutbefore bpath.a cutafter bpath.b; + drawarrow b.c {dir -135} .. a.c {dir 135} + cutbefore bpath.b cutafter bpath.a; +endfig; +beginfig(246) + boxjoin( + a.dx = a.dy; + b.dx = b.dy; + a.e + (5mm,0) = b.w; + ); + circleit.a(btex Début etex); + a.c = (0,0); + circleit.b(btex Fin etex); + drawboxed(a,b); + drawarrow a.c {dir 45} .. b.c {dir -45} + cutbefore bpath.a cutafter bpath.b; + drawarrow b.c {dir -135} .. a.c {dir 135} + cutbefore bpath.b cutafter bpath.a; +endfig; +beginfig(247) + % Toujours mettre la commande boxjoin au début. + boxjoin(a.e = b.w); + boxit.a(btex A etex); + boxit.b(btex B etex); + boxit.c(btex C etex); + boxit.d(btex D etex); + drawboxed(a,b,c,d); +endfig; +beginfig(248) + boxjoin(a.e = b.w); + boxit.a(btex a etex); + boxit.b(btex b etex); + boxit.c(btex c etex); + boxit.d(btex d etex); + drawboxed(a,b,c,d); +endfig; +beginfig(249) + boxjoin(a.se = b.sw; a.ne = b.nw); + boxit.a(btex a etex); + boxit.b(btex b etex); + boxit.c(btex c etex); + boxit.d(btex d etex); + drawboxed(a,b,c,d); +endfig; +beginfig(250) + boxjoin(a.se = b.sw; a.ne = b.nw); + boxit.a1(btex a etex); + boxit.a2(btex b etex); + boxit.a3(btex c etex); + boxit.a4(btex d etex); + drawboxed(a1,a2,a3,a4); +endfig; +beginfig(251) + draw (0,0) -- (5cm,0) withcolor red; + draw btex a etex ; + draw btex b etex shifted (1cm,0); + draw btex c etex shifted (2cm,0); + draw btex d etex shifted (3cm,0); + draw btex e etex shifted (4cm,0); +endfig; +beginfig(252) + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawunboxed(a,b,c,d,e); +endfig; +beginfig(253) + vardef boxTEX expr s = + save p,h,l; + picture p; + numeric h,l; + p := TEX(s); + h := max(ypart ulcorner(p), abs(ypart llcorner(p))); + l := xpart lrcorner(p); + setbounds p to (0,-h)--(l,-h)--(l,h)--(0,h)--cycle; + p + enddef; + + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (boxTEX "a"); + boxit b (boxTEX "b"); + boxit c (boxTEX "c"); + boxit d (boxTEX "d"); + boxit e (boxTEX "e"); + drawunboxed(a,b,c,d,e); +endfig; +beginfig(254) + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (boxTEX "a"); + boxit b (boxTEX "b"); + boxit c (boxTEX "c"); + boxit d (boxTEX "d"); + boxit e (boxTEX "e"); + drawboxed(a,b,c,d,e); +endfig; +beginfig(255) + let OLD_beginbox_ = beginbox_; + def beginbox_(expr pp,sp)(suffix $)(text t) = + _n_ := str $; + generic_declare(pair) _n.off, _n.c; + generic_declare(string) pproc_._n, sproc_._n; + generic_declare(picture) pic_._n; + pproc_$:=pp; sproc_$:=sp; + pic_$ = nullpicture; + for _p_=t: + pic_$:= + if picture _p_: _p_ + else: _p_ infont defaultfont scaled defaultscale + fi; + endfor + $c = $off + (.5[xpart llcorner pic_$, xpart urcorner pic_$], 0) + enddef; + + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawunboxed(a,b,c,d,e); +endfig; +beginfig(256) + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(257) +let OLD_boxit = boxit; +let OLD_sizebox_ = sizebox_; +let OLD_clearb_ = clearb_; + +vardef boxit@#(text tt) = + beginbox_("boxpath_","sizebox_",@#,tt); + generic_declare(pair) _n.sw, _n.s, _n.se, _n.e, _n.ne, _n.n, _n.nw, _n.w; + 0 = xpart (@#nw-@#sw) = ypart(@#se-@#sw); + 0 = xpart(@#ne-@#se) = ypart(@#ne-@#nw); + @#s = .5[@#sw,@#se]; + @#n = .5[@#ne,@#nw]; + xpart @#w = xpart @#nw; + xpart @#e = xpart @#ne; + ypart @#w = ypart @#c = ypart @#e; + @#ne-@#c = (@#dx,@#dy) + + (xpart(.5*(urcorner pic_@# - llcorner pic_@#)), ypart urcorner pic_@#); + @#c-@#sw = (@#dx,@#dy) + + (xpart(.5*(urcorner pic_@# - llcorner pic_@#)), -ypart lrcorner pic_@#); + endbox_(clearb_,@#); +enddef; + + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(258) + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0); b.ne - b.se = a.nw - a.sw); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(259) +vardef boxit@#(text tt) = + beginbox_("boxpath_","sizebox_",@#,tt); + generic_declare(pair) _n.sw, _n.s, _n.se, _n.e, _n.ne, _n.n, _n.nw, _n.w; + 0 = xpart (@#nw-@#sw) = ypart(@#se-@#sw); + 0 = xpart(@#ne-@#se) = ypart(@#ne-@#nw); + @#s = .5[@#sw,@#se]; + @#n = .5[@#ne,@#nw]; + xpart @#w = xpart @#nw; + xpart @#e = xpart @#ne; + ypart @#w = ypart @#c = ypart @#e; + @#ne-@#c = (@#dx,@#dyup) + + (xpart(.5*(urcorner pic_@# - llcorner pic_@#)), ypart urcorner pic_@#); + @#c-@#sw = (@#dx,@#dydown) + + (xpart(.5*(urcorner pic_@# - llcorner pic_@#)), -ypart lrcorner pic_@#); + endbox_(clearb_,@#); +enddef; + +def sizebox_(suffix $) = + if unknown $.dx: $.dx=defaultdx; fi + if unknown $.dyup: + if unknown $.dy: + $.dyup=defaultdy + else: + $.dyup=$.dy + fi; + fi; + if unknown $.dydown: + if unknown $.dy: + $.dydown=defaultdy + else: + $.dydown=$.dy + fi; + fi; +enddef; + +vardef clearb_(suffix $) = + _n_ := str $; + generic_redeclare(numeric) _n.sw, _n.s, _n.se, _n.e, _n.ne, _n.n, _n.nw, _n.w, + _n.c, _n.off, _n.dx, _n.dy, _n.dyup, _n.dy_down; +enddef; + + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0); ypart( b.ne - a.ne ) = 0; ypart( b.se - a.se ) = 0;); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(260) + draw (0,0) -- (5cm,0) withcolor red; + picture p; + numeric h; + p := btex b etex; + h = ypart ( ulcorner p - llcorner p ); + boxjoin( + b.c - a.c = (1cm,0); + ypart( b.ne - a.ne ) = 0; + ypart( a.ne - a.se ) = h+2defaultdy; + ); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(261) + % Les lignes suivantes n'ont pas l'effet escompté... + let beginbox_ = OLD_beginbox_; + let boxit = OLD_boxit; + let sizebox_ = OLD_sizebox_; + let clearb_ = OLD_clearb_; + + % On recopie donc les définitions initiales des macros que l'on a modifiées... + extra_beginfig := ""; + extra_endfig := ""; + input boxes; + + % Et on regarde sur un exemple si ça marche... + draw (0,0) -- (5cm,0) withcolor red; + boxjoin(b.c - a.c = (1cm,0)); + boxit a (btex a etex); + boxit b (btex b etex); + boxit c (btex c etex); + boxit d (btex d etex); + boxit e (btex e etex); + drawboxed(a,b,c,d,e); +endfig; +beginfig(262) + boxit.a1(btex $a$ etex); + boxit.b1(btex etex); + boxit.a2(btex $b$ etex); + boxit.b2(btex etex); + boxit.a3(btex $c$ etex); + boxit.b3(btex etex); + boxit.a4(btex $d$ etex); + boxit.b4(btex etex); + for i=1 upto 4: + % Les boites a[i] et b[i] sont collées + a[i].e = b[i].w; + % Il y a un peu d'espace entre b[i] et a[i+1] + b[i].e + (5mm,0) = a[i+1].w; + % La hauteur des boites est la même + a[i].n - a[i].s = a[i+1].n - a[i+1].s = b[i].n - b[i].s ; + % Les b[i] ne sont pas très larges + b[i].e - b[i].w = (2mm,0); + endfor; + drawboxed(a1,b1,a2,b2,a3,b3,a4,b4); + for i=1 upto 3: + drawarrow b[i].c {up} .. a[i+1].c {down} + cutafter bpath.a[i+1]; + endfor; +endfig; +beginfig(263) + boxit.a(btex A etex); + boxit.b(btex B etex); + boxit.c(btex C etex); + boxit.d(btex D etex); + boxit.e(btex E etex); + + b.c-a.c = (1cm,0); + c.c-b.c = (b.c-a.c) rotated 72; + d.c-c.c = (c.c-b.c) rotated 72; + e.c-d.c = (d.c-c.c) rotated 72; + a.c-e.c = (e.c-d.c) rotated 72; + b.c-a.c = (a.c-e.c) rotated 72; + + drawboxed(a,b,c,d,e); + + drawarrow a.c -- b.c cutbefore bpath.a cutafter bpath.b; + drawarrow b.c -- c.c cutbefore bpath.b cutafter bpath.c; + drawarrow c.c -- d.c cutbefore bpath.c cutafter bpath.d; + drawarrow d.c -- e.c cutbefore bpath.d cutafter bpath.e; + drawarrow e.c -- a.c cutbefore bpath.e cutafter bpath.a; +endfig; +beginfig(264) + boxit.a(btex A etex); + boxit.b(btex B etex); + boxit.c(btex C etex); + boxit.d(btex D etex); + boxit.e(btex E etex); + + d.c = 1cm*up; + e.c = 1cm*up rotated (1*72); + a.c = 1cm*up rotated (2*72); + b.c = 1cm*up rotated (3*72); + c.c = 1cm*up rotated (4*72); + + drawunboxed(a,b,c,d,e); + + drawarrow a.c -- b.c cutbefore bpath.a cutafter bpath.b; + drawarrow b.c -- c.c cutbefore bpath.b cutafter bpath.c; + drawarrow c.c -- d.c cutbefore bpath.c cutafter bpath.d; + drawarrow d.c -- e.c cutbefore bpath.d cutafter bpath.e; + drawarrow e.c -- a.c cutbefore bpath.e cutafter bpath.a; +endfig; +beginfig(265) + def linkboxes(suffix a,b) = + drawarrow a.c -- b.c cutbefore bpath.a cutafter bpath.b; + enddef; + + boxit.a(btex A etex); + boxit.b(btex B etex); + boxit.c(btex C etex); + boxit.d(btex D etex); + boxit.e(btex E etex); + + d.c = 1cm*up; + e.c = 1cm*up rotated (1*72); + a.c = 1cm*up rotated (2*72); + b.c = 1cm*up rotated (3*72); + c.c = 1cm*up rotated (4*72); + + drawunboxed(a,b,c,d,e); + + linkboxes(a,b); + linkboxes(b,c); + linkboxes(c,d); + linkboxes(d,e); + linkboxes(e,a); +endfig; +beginfig(266) + boxit a(btex Essai etex); + fill bpath a withcolor .5[red,white]; + drawboxed(a); + +endfig; +beginfig(267) + def drawredboxed(text t) = + forsuffixes a=t: + fill bpath a withcolor .5[red,white]; + endfor; + drawboxed(t); + enddef; + + circleit.a(btex Début etex); + a.c = (0,0); + a.dx = a.dy; + circleit.b(btex Fin etex); + b.c = (2cm,0); + b.dx = b.dy; + drawredboxed(a,b); + drawarrow a.c {dir 45} .. b.c {dir -45} + cutbefore bpath.a cutafter bpath.b; + drawarrow b.c {dir -135} .. a.c {dir 135} + cutbefore bpath.b cutafter bpath.a; + +endfig; +beginfig(268) + def drawcoloredboxed(expr c)(text t) = + forsuffixes a=t: + fill bpath a withcolor c; + endfor; + drawboxed(t); + enddef; + + circleit.a(btex Début etex); + a.c = (0,0); + a.dx = a.dy; + circleit.b(btex Fin etex); + b.c = (2cm,0); + b.dx = b.dy; + drawcoloredboxed(.5[red,white], a); + drawcoloredboxed(.5[blue,white], b); + drawarrow a.c {dir 45} .. b.c {dir -45} + cutbefore bpath.a cutafter bpath.b; + drawarrow b.c {dir -135} .. a.c {dir 135} + cutbefore bpath.b cutafter bpath.a; + +endfig; +beginfig(269) +def begindiag = + begingroup; + save _diag_x, _diag_x_max, _diag_y, _diag_y_max, _diag; + numeric _diag_x, _diag_x_max, _diag_y, _diag_y_max; + string _diag[][]; + % Numéro de ligne et de colonne courrants + _diag_x = -1; _diag_y = 0; + % Numéro de ligne et de colonne maximaux + _diag_x_max = _diag_y_max = 0; + save _diag_ar_n, _diag_ar_source, _diag_ar_but, _diag_ar_up, _diag_ar_down; + % Nombre de flèches + numeric _diag_ar_n; _diag_ar_n=-1; + % Source et but de la flèche + pair _diag_ar_source[], _diag_ar_but[]; + % Ce qu'il faut écrire au dessus ou au dessous + string _diag_ar_up[], _diag_ar_down[]; + save _diag_ar_curved, _diag_ar_shape, _diag_ar_color, _diag_ar_width; + % « courbure » (c'est une distance) + numeric _diag_ar_curved[]; + % Forme de la flèche + string _diag_ar_shape[]; + % Couleur, épaisseur, pointillés + color _diag_ar_color[]; + numeric _diag_ar_width[]; + picture _diag_ar_dashed[]; +enddef; + +def node expr A = + _diag_x := _diag_x + 1; + _diag_x_max := max(_diag_x,_diag_x_max); + _diag[_diag_x][_diag_y] := A; +enddef; + +def nextline = + _diag_x := -1; + _diag_y := _diag_y + 1; + _diag_y_max := max(_diag_y, _diag_y_max); +enddef; + +tertiarydef a => b = a, b enddef; +def even (expr a) = not odd(a) enddef; + +vardef rarrowto(expr a,b)(text t) = + save i,p; + _diag_ar_n := _diag_ar_n + 1; + _diag_ar_source[_diag_ar_n] = (_diag_x, _diag_y); + _diag_ar_but[_diag_ar_n] = (_diag_x + a, _diag_y + b); + + numeric i; i:=0; + string current; + for p=t: + if even(i): + current := p; + else: + if current = "above": + _diag_ar_up[_diag_ar_n] = p; + elseif current = "below": + _diag_ar_down[_diag_ar_n] = p; + elseif current = "shape": + _diag_ar_shape[_diag_ar_n] = p; + elseif current = "curved": + _diag_ar_curved[_diag_ar_n] = p; + elseif current = "color": + _diag_ar_color[_diag_ar_n] = p; + elseif current = "width": + _diag_ar_width[_diag_ar_n] = p; + elseif current = "dashed": + _diag_ar_dashed[_diag_ar_n] = p; + else: + errmessage("rarrowto: Wrong argument "&ditto¤t&ditto); + fi; + fi; + i := i + 1; + endfor; + if odd i: + errmessage("rarrowto: Odd number of arguments "&decimal(i)); + fi; +enddef; + +%% Les têtes de flèches + +picture withsmalldots, notdashed; +withsmalldots := withdots scaled .3; +notdashed := dashpattern(on 50cm); + +vardef diag_arrow_head (expr p, t) = + save A,B,C,u; pair A,B,C,u; + B := point t of p; + u := -unitvector(direction t of p); + A := B + ahlength*u rotated(-ahangle); + C := B + ahlength*u rotated(+ahangle); + A .. {-u} B {u} .. C +enddef; + +vardef diag_arrow_bar (expr p, t) = + save A,B,C,u; pair A,B,C,u; + B := point t of p; + u := unitvector(direction t of p); + A := B + ahlength*sind(ahangle)*u rotated(90); + C := B + ahlength*sind(ahangle)*u rotated(-90); + A .. B .. C +enddef; + +%% Les flèches + +def diag_draw_arrow_default(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + draw pp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; +enddef; + +def diag_draw_arrow_middle(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + draw pp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head(p,1) + withcolor col withpen pencircle scaled w; +enddef; + +def diag_draw_arrow_epi(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + draw pp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; + path ppp; + ppp := pp cutafter (fullcircle scaled 1mm shifted point length(pp) of pp); + draw diag_arrow_head(ppp, length(ppp)) + withcolor col withpen pencircle scaled w; +enddef; + +def diag_draw_arrow_mono(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + path ppp; + ppp := pp cutbefore (fullcircle scaled 1mm shifted point 0 of pp); + draw ppp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; + draw diag_arrow_head(ppp, 0) + withcolor col withpen pencircle scaled w; +enddef; + +vardef diag_draw_arrow_inj(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + path ppp; + ppp := pp cutbefore (fullcircle scaled 1mm shifted point 0 of pp); + draw ppp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; + save u,A,B,C; + pair u,A,B,C; + A := point 0 of ppp; + u := unitvector(direction 0 of ppp); + B := A + ahlength*(-u) rotated (-ahangle); + C := A + 2 ahlength*sind(ahangle)*u rotated 90; + draw C {-u} .. B .. A {u} + withcolor col withpen pencircle scaled w dashed dash; +enddef; + +def diag_draw_arrow_mapsto(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + draw pp + withcolor col withpen pencircle scaled w dashed dash; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; + draw diag_arrow_bar (pp, 0) + withcolor col withpen pencircle scaled w; +enddef; + +def diag_draw_arrow_half_dotted(suffix a,b)(expr curved, w, col, dash) = + p = a.c .. + (1/2 [a.c,b.c] + curved*unitvector(b.c-a.c) rotated 90) + .. b.c; + pp := p cutbefore bpath.a cutafter bpath.b; + draw subpath(0,1) of pp + withcolor col withpen pencircle scaled w dashed withsmalldots; + draw subpath(1,2) of pp + withcolor col withpen pencircle scaled w; + draw diag_arrow_head (pp, length(pp)) + withcolor col withpen pencircle scaled w; +enddef; + +%% Fin des flèches + +def color_to_string (expr a) = + "("& + decimal(redpart a) + &","& + decimal(greenpart a) + &","& + decimal(bluepart a) + &")" +enddef; + +def enddiag = + save i,j,k,l,mm,a,A,p,b; + for i=0 upto _diag_x_max: + for j=0 upto _diag_y_max: + if known _diag[i][j]: + circleit.a[i][j]( _diag[i][j] ); + a[i][j].dx = a[i][j].dy; + a[i][j].c = 1cm * (i,-j); + drawunboxed( a[i][j] ); + fi; + endfor; + endfor; + for m=0 upto _diag_ar_n: + % Vérifier que le but existe + i := xpart _diag_ar_source[m]; + j := ypart _diag_ar_source[m]; + k := xpart _diag_ar_but[m]; + l := ypart _diag_ar_but[m]; + + % On trace la flèche. Le chemin est mis dans la variable p. + path p,pp; + if unknown _diag_ar_shape[m]: _diag_ar_shape[m] := "default" fi; + if unknown _diag_ar_color[m]: _diag_ar_color[m] := black fi; + if unknown _diag_ar_width[m]: _diag_ar_width[m] := .5bp fi; + if unknown _diag_ar_curved[m]: _diag_ar_curved[m] := 0 fi; + if unknown _diag_ar_dashed[m]: _diag_ar_dashed[m] := notdashed fi; + % On ne peut PAS utiliser m dans une chaîne ce caractères que l'on donne + % à scantokens, car m est une variable de boucle. C'est vraiment spécial, + % une variable de boucle. + mm := m; + scantokens( + "diag_draw_arrow_"& _diag_ar_shape[m] + &"(" + &"a[i][j], a[k][l],_diag_ar_curved[mm],_diag_ar_width[mm]," + &"_diag_ar_color[mm],_diag_ar_dashed[mm]" + &");" + ); + + % On écrit des choses au dessus ou au dessous des flèches + pair A; + A = point 1/2 length(p) of p; + if known _diag_ar_up[m]: + boxit.b[m](_diag_ar_up[m]); + b[m].c = A + 4bp*unitvector(direction 1/2 length(p) of p rotated 90); + drawunboxed(b[m]); + fi; + if known _diag_ar_down[m]: + boxit.c[m](_diag_ar_down[m]); + c[m].c = A + 4bp*unitvector(direction 1/2 length(p) of p rotated -90); + drawunboxed(c[m]); + fi; + endfor; + endgroup; +enddef; + + begindiag; + node "A"; + rarrowto(1,0, "above" => "a", + "shape" => "middle", + "curved" => 3mm, + "dashed" => withsmalldots); + rarrowto(0,1, "below" => "b", + "color" => blue, + "shape" => "mapsto", + "dashed" => evenly); + node "A"; + rarrowto(1,0, "above" => "c", "width" => 1bp, "shape" => "inj"); + rarrowto(0,1, "below" => "d", "shape" => "mono"); + node "A"; + nextline; + node "A"; + rarrowto(1,0, "below" => "e", "shape" => "epi"); + node "A"; + rarrowto(1,-1, "below" => "f", "curved" => -3mm, "shape" => "half_dotted"); + enddiag; +endfig; +beginfig(270) + draw begingraph(3cm,2cm) + gdraw "data1"; + endgraph; + +endfig; +beginfig(271) + draw begingraph(3cm,2cm) + gdraw "data1" withpen pencircle scaled 2bp; + endgraph; +endfig; +beginfig(272) + draw begingraph(3cm,2cm) + gdraw "data1" dashed evenly; + endgraph; +endfig; +beginfig(273) + draw begingraph(3cm,2cm) + gdraw "data1" withcolor red; + endgraph; +endfig; +beginfig(274) + draw begingraph(3cm,2cm) + gdraw "data1" withpen pencircle scaled 2bp; + gdraw "data2" ; + endgraph; +endfig; +beginfig(275) + draw begingraph(3cm,2cm) + gdraw "data1" ; + gdraw "data2" dashed evenly; + gdraw "data3" dashed withdots; + endgraph; +endfig; +beginfig(276) + draw begingraph(3cm,2cm) + gdraw "data1" withcolor red; + gdraw "data2" withcolor blue; + endgraph; +endfig; +beginfig(277) + draw begingraph(3cm,2cm) + gdraw "data1" plot btex $\bullet$ etex; + endgraph; + +endfig; +beginfig(278) + picture gros_point; + draw (0,0) withpen pencircle scaled 4bp; + gros_point := currentpicture; + currentpicture := nullpicture; + draw begingraph(3cm,2cm) + gdraw "data1" plot gros_point; + endgraph; +endfig; +beginfig(279) + picture gros_point; + gros_point := nullpicture; + addto gros_point doublepath (0,0) + withpen pencircle scaled 4bp; + draw begingraph(3cm,2cm) + gdraw "data1" plot gros_point; + endgraph; +endfig; +beginfig(280) + picture croix; + croix := nullpicture; + addto croix doublepath (-2bp,2bp)--(2bp,-2bp) + withpen pencircle scaled 1bp; + addto croix doublepath (-2bp,-2bp)--(2bp,2bp) + withpen pencircle scaled 1bp; + picture gros_carre; + gros_carre := nullpicture; + addto gros_carre contour unitsquare shifted (-.5,-.5) scaled 2bp; + + draw begingraph(3cm,2cm) + gdraw "data1"; + gdraw "data1" plot croix; + gdraw "data2"; + gdraw "data2" plot gros_carre; + endgraph; +endfig; +beginfig(281) + draw begingraph(3cm,2cm) + gdata("data1", + v, + glabel(gros_point, v1, v2); + ); + endgraph; + +endfig; +beginfig(282) + draw begingraph(3cm,2cm) + path p; + gdata("data1", + v, + augment.p(v1,v2); + ); + gdraw p; + endgraph; + +endfig; +beginfig(283) + interim linecap := squared; + interim linejoin := mitered; + draw begingraph(3cm,2cm) + path p; + gdata("data1", + v, + augment.p(v1,v2); + ); + gdraw p withpen pencircle scaled 2bp; + gdraw p withpen pencircle scaled 1bp withcolor .8white; + endgraph; +endfig; +beginfig(284) + draw begingraph(3cm,2cm) + gdata("data1", + v, + path p; + augment p (v1,0); + augment p (v1,v2); + gdraw p; + ); + endgraph; +endfig; +beginfig(285) + draw begingraph(3cm,2cm) + gdata("data1", + v, + path p; + augment p (v1,0); + augment p (v1,v2); + gdraw p withpen pencircle scaled 4bp; + ); + endgraph; +endfig; +beginfig(286) + interim linecap:=2; + draw begingraph(3cm,2cm) + gdata("data1", + v, + path p; + augment p (v1,0); + augment p (v1,v2); + gdraw p withpen pencircle scaled 4bp; + ); + endgraph; +endfig; +beginfig(287) + draw begingraph(3cm,2cm) + gdata("data1", v, + path p; + augment p (v1,0); + augment p (v1,v2); + augment p (v1 Sadd "1",v2); + augment p (v1 Sadd "1",0); + gdraw p--cycle; + ); + endgraph; +endfig; +beginfig(288) + draw begingraph(3cm,2cm) + gdata("data1", v, + path p; + augment p (v1,0); + augment p (v1,v2); + augment p (v1 Sadd "1",v2); + augment p (v1 Sadd "1",0); + gfill p--cycle withcolor .8white; + gdraw p--cycle; + ); + endgraph; +endfig; +beginfig(289) + draw begingraph(3cm,2cm) + gdata("data1", v, + + % Le dessus + path p; + augment p (v1,v2); + augment p (v1 Sadd "1",v2); + augment p (v1 Sadd "1.5", v2 Sadd "10"); + augment p (v1 Sadd ".5", v2 Sadd "10"); + gfill p--cycle withcolor white; + gdraw p--cycle; + + % Le côté + path p; + augment p (v1 Sadd "1",0); + augment p (v1 Sadd "1",v2); + augment p (v1 Sadd "1.5", v2 Sadd "10"); + augment p (v1 Sadd "1.5", "10"); + gfill p--cycle withcolor .5white; + gdraw p--cycle; + + % Le devant + path p; + augment p (v1,0); + augment p (v1,v2); + augment p (v1 Sadd "1",v2); + augment p (v1 Sadd "1",0); + gfill p--cycle withcolor .8white; + gdraw p--cycle; + + ); + endgraph; +endfig; +beginfig(290) + draw begingraph(3cm,2cm) + path p,q; + gdata("data1", v, + augment.p(v1,v2); + ); + q:= (xpart point 0 of p, 0) -- p -- + (xpart point length(p) of p, 0) -- cycle; + gfill q withcolor .8white; + gdraw p withpen pencircle scaled 2bp; + endgraph; +endfig; +beginfig(291) + draw begingraph(3cm,2cm) + gdata("data1", + v, + path p; + augment p ("0", i); + augment p (v2, i); + augment p (v2, i Sadd ".5"); + augment p (0, i Sadd ".5"); + gfill p--cycle withcolor .8white; + gdraw p--cycle; + ); + autogrid(otick.bot,); + endgraph; +endfig; +beginfig(292) + draw begingraph(3cm,2cm) + gdraw "data1"; + glabel.bot(btex Abscisse etex, OUT); + glabel.lft(btex Ordonnée etex, OUT); + endgraph; + +endfig; +beginfig(293) + draw begingraph(3cm,2cm) + gdraw "data1" withcolor red; + glabel.lft(btex 1 etex, 8); + gdraw "data2" withcolor blue; + glabel.bot(btex 2 etex, 9); + endgraph; + +endfig; +beginfig(294) + draw begingraph(3cm,2cm) + gdraw "data1"; + glabel.bot(btex Abscisse etex, OUT); + glabel.lft(btex Ordonnée etex rotated 90, OUT); + endgraph; +endfig; +beginfig(295) + % La légende + color couleur[]; + couleur[0] := red; + couleur[1] := green; + couleur[2] := blue; + picture p[], legende; + legende := nullpicture; + for i=0 upto 2: + p[i] := nullpicture; + addto p[i] also TEX("Courbe " & decimal(i+1)) + withcolor couleur[i]; + addto legende doublepath ( (0,0)--(5mm,0) ) + shifted (0, -5mm*i) + withpen currentpen withcolor couleur[i]; + addto legende also p[i] + shifted 1/2(lrcorner p[i] - ulcorner p[i]) + shifted (0, -5mm*i); + endfor; + % Les courbes + draw begingraph(3cm,2cm) + for i=1 upto 3: + gdraw "data" & decimal(i) withcolor couleur[i-1]; + endfor; + glabel.top(legende,OUT); + endgraph; +endfig; +beginfig(296) + draw begingraph(3cm,2cm) + setcoords(-linear,log); + gdraw "data1"; + endgraph; + +endfig; +beginfig(297) + draw begingraph(3cm,2cm) + gdraw "data1"; + endgraph; + +endfig; +beginfig(298) + draw begingraph(3cm,2cm) + setrange( (whatever,0), (whatever,whatever) ); + gdraw "data1"; + endgraph; + +endfig; +beginfig(299) + draw begingraph(3cm,2cm) + setrange(whatever, 0, whatever, whatever); + gdraw "data1"; + endgraph; + +endfig; +beginfig(300) + vardef TEX primary s = + write "verbatimtex" to "mptextmp.mp"; + write "\documentclass[12pt]{article}" to "mptextmp.mp"; + write "\usepackage[T1]{fontenc}" to "mptextmp.mp"; + write "\usepackage{amsmath,amssymb}" to "mptextmp.mp"; + write "\begin{document}" to "mptextmp.mp"; + write "etex" to "mptextmp.mp"; + write "btex "&s&" etex" to "mptextmp.mp"; + write EOF to "mptextmp.mp"; + scantokens "input mptextmp" + enddef; + vardef mylabel(expr pic, p, t) = + save A; pair A; + A = point t of p + + 8bp * unitvector(direction t of p) rotated 90; + label(pic, A); + enddef; + path p; u:=1cm; + p = (0,0)..(-u,u)..(u,u); + draw p; + for i=0 step .2 until length(p): + draw point i of p withpen pencircle scaled 4bp; + mylabel(TEX("$"&decimal(round(5*i))&"$"),p,i); + endfor; + +endfig; +beginfig(301) + path p; + p := subpath(1,3) of fullcircle scaled 2cm; + interim linejoin := mitered; + interim linecap := butt; + + interim ahangle := 30; + drawarrow p withpen pencircle scaled 2bp; + + interim ahangle := 45; + drawarrow p shifted (0,-5mm) withpen pencircle scaled 2bp; + + interim ahangle := 60; + drawarrow p shifted (0,-10mm) withpen pencircle scaled 2bp; + +endfig; +beginfig(302) + path p; + p := subpath(1,3) of fullcircle scaled 2cm; + interim linejoin := mitered; + interim linecap := butt; + interim ahangle := 30; + + interim ahlength := 2bp; + drawarrow p withpen pencircle scaled 2bp; + + interim ahlength := 4bp; + drawarrow p shifted (0,-5mm) withpen pencircle scaled 2bp; + + interim ahlength := 6bp; + drawarrow p shifted (0,-10mm) withpen pencircle scaled 2bp; + +endfig; +beginfig(303) + draw TEX( "Nous sommes le "& + decimal(day) &"/"& + decimal(month) &"/"& + decimal(year) &"." ); + +endfig; +beginfig(304) + path p; + p := (0,0) -- (2cm,0); + def doit (suffix p)(expr t) = + begingroup + interim linecap := t; + draw p withpen pencircle scaled 5mm withcolor .8white; + endgroup; + draw point 0 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + p := p shifted (0,-7mm) + enddef; + doit(p,rounded); + doit(p,butt); + doit(p,squared); + +endfig; +beginfig(305) + path p; + p := (0,0) -- (1cm,5mm) -- (2cm,0); + def doit (suffix p)(expr t) = + begingroup + interim linejoin := t; + draw p withpen pencircle scaled 5mm withcolor .8white; + endgroup; + draw point 0 of p withpen pencircle scaled 4bp; + draw point 1 of p withpen pencircle scaled 4bp; + draw point 2 of p withpen pencircle scaled 4bp; + p := p shifted (0,-7mm) + enddef; + doit(p,rounded); + doit(p,mitered); + doit(p,beveled); + +endfig; +bye; diff --git a/Master/texmf-doc/doc/english/metapost-examples/mp2html.pl b/Master/texmf-doc/doc/english/metapost-examples/mp2html.pl new file mode 100644 index 00000000000..143e2314e0a --- /dev/null +++ b/Master/texmf-doc/doc/english/metapost-examples/mp2html.pl @@ -0,0 +1,170 @@ +#! perl -w + +# +# Builds an HTML file and a bunch of GIF files from a Metapost file +# Also creates a PS file +# +# (c) Vincent Zoonekynd +# August 1999 +# modified in august 2001 +# distributed under the GPL +# + +$main = $ARGV[0] || "examples"; +$main =~ s/\.mp$//i; + +# On crée les images GIF +# BUG : à chaque fois qu'il y a des fontes, ça plante. +# C'est normal pour deux raisons : +# - si j'utilisais prologuse:=2, il ne trouverait pas les fontes. +# - Comme j'utilise prologues:=0, c'est encore pire... +# L'idéal serait de créer un fichier LaTeX pour chaque fichier postscript, +# de lancer later puis dvips dessus et de récupérer le fichier postscript. + +# 1. Compile the examples + +system "TEX=latex mpost --interaction=nonstopmode $main"; + +# 2. Create a LaTeX file encompassing the examples and compile it + +open(LATEX,'>', "$main.tex") || die "Cannot open examples.tex for writing: $!"; +print LATEX '\documentclass[a4paper]{article}' ."\n"; +print LATEX '\usepackage{graphicx}' ."\n"; +print LATEX '\begin{document}' ."\n"; +print LATEX '\begin{verbatim}' ."\n"; +open(MP, "<", "$main.mp") || die "cannot open $main.mp for reading: $!"; +while(){ + if (m/^\s*beginfig\s*\((.*)\)/) { + print LATEX '\end{verbatim}' . "\n"; + print LATEX "\\includegraphics{${main}_$1.mps}\n"; + print LATEX '\begin{verbatim}' . "\n"; + print LATEX $_; + } elsif (m/^\s*endfig/) { + print LATEX $_; + print LATEX '\end{verbatim}' ."\n"; + print LATEX '\hrulefill' . "\n"; + print LATEX '\begin{verbatim}' . "\n"; + } else { + print LATEX $_; + } +} +print LATEX '\end{verbatim}' . "\n"; +print LATEX '\end{document}' ."\n"; +close MP; +close LATEX; + +opendir(DIR,"./") || die "Cannot open ./ directory for reading : $!"; +foreach $file (readdir DIR) { + if ($file =~ m/^$main.[0-9]+$/) { + my $new = $file; + $new =~ s/\./_/g; + $new .= ".mps"; + symlink $file, $new; + } +} +closedir(DIR); + +system "latex --interaction=nonstopmode $main.tex"; +system "dvips -o $main.ps $main.dvi"; +#system "pdflatex --interaction=nonstopmode $main.tex"; + +# 3. Create the GIF pictures + +opendir(DIR,"./") || die "Cannot open ./ directory for reading : $!"; +foreach $file (readdir DIR) { + if ($file =~ m/^$main.[0-9]+$/) { + + ## Création du fichier PS + symlink "$file", "$file.eps"; + open(TEX,">$file.tex") || die "cannot open $file.tex for writing : $!"; + print TEX '\nonstopmode' ."\n" ; + print TEX '\documentclass[a4paper,10pt]{article}' ."\n" ; + print TEX '\usepackage[T1]{fontenc}\usepackage[latin1]{inputenc}' ."\n" ; + print TEX '\usepackage{graphicx,amsmath,amssymb}' ."\n" ; + print TEX '\pagestyle{empty}' ."\n" ; + print TEX '\begin{document}' ."\n" ; + print TEX '\includegraphics{'. "$file.eps" .'}' ."\n" ; + print TEX '\end{document}' ."\n" ; + close TEX; + system "latex $file.tex"; + system "dvips -E -f $file.dvi -o $file.ps"; + + ## Transformation en GIF + my ($bbx,$bby,$bbw,$bbh); + open(PS,"$file.ps"); + while () { + if (/^%%BoundingBox:\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)/) { + $bbx = 0-$1; $bby = 0-$2; + $bbw = $3+$bbx; $bbh = $4+$bby; +# print "*** Seen BBOX\n"; + } + last if /^%%EndComments/; + } + close(PS); + + my $scale = 3; + my $density = 72*$scale; + $bbw = $scale * $bbw; + $bbh = $scale * $bbh; +# print "*** gs -q -dNOPAUSE -dNO_PAUSE -sDEVICE=ppmraw -g${bbw}x${bbh} -r$density -sOutputFile=$file.ppm\n"; + open(GS, "|gs -q -dNOPAUSE -dNO_PAUSE -sDEVICE=ppmraw -g${bbw}x${bbh} -r$density -sOutputFile=$file.ppm"); + print GS "$bbx $bby translate\n"; + print GS "($file.ps) run\n"; + print GS "showpage\n"; + print GS "quit\n"; + close(GS); + + system("pnmcrop $file.ppm | ppmquant 256 | ppmtogif > $file.gif"); + + unlink "$file.ppm"; + } +} + + +# 4. Create the HTML file +open(MP,"$main.mp") || die "cannot open $main.mp for reading: $!"; +open(HTML,">$main.html") || die "cannot open $main.html for writing: $!"; +select HTML; +print "Metapost : exemples\n"; +print "

Métapost : exemples

\n"; +print "
\n";
+while(){
+  if (m/^\s*beginfig\s*\((.*)\)/) {
+    print "
\n";
+    print ;
+  } elsif (m/^\s*endfig/) {
+    print;
+    print "

\n";
+  } else {
+    print;
+  }
+}
+print "
\n"; +print "\n"; +close HTML; +close MP; + +# 5. Remove unnecessary files + +opendir(DIR,"./") || die "Cannot open ./ directory for reading : $!"; +foreach $file (readdir DIR) { + if ($file =~ m/^$main.[0-9]+$/) { + unlink $file; + unlink "$file.tex"; + unlink "$file.dvi"; + unlink "$file.aux"; + unlink "$file.log"; + unlink "$file.eps"; + unlink "$file.ps"; + my $new = $file; + $new =~ s/\./_/g; + $new .= ".mps"; + unlink $new; + } elsif( $file =~ m/\.mpx$/ ) { + unlink $file; + } +} +closedir DIR; +unlink "$main.aux"; +unlink "$main.log"; + -- cgit v1.2.3